Update reference builds to 34.0.1800.0.



git-svn-id: http://src.chromium.org/svn/trunk/deps/reference_builds/chrome_linux@254637 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/PepperFlash/libpepflashplayer.so b/PepperFlash/libpepflashplayer.so
index 8d97bf4..b2523aa 100755
--- a/PepperFlash/libpepflashplayer.so
+++ b/PepperFlash/libpepflashplayer.so
Binary files differ
diff --git a/PepperFlash/manifest.json b/PepperFlash/manifest.json
index 712a368..9defdc6 100644
--- a/PepperFlash/manifest.json
+++ b/PepperFlash/manifest.json
@@ -1,8 +1,8 @@
 {
     "description": "Pepper Flash Player", 
     "name": "Flapper", 
-    "version": "11.9.900.152", 
-    "x-flapper-revision": "1225153", 
+    "version": "12.0.0.41", 
+    "x-flapper-revision": "1236382", 
     "x-ppapi-arch": "ia32", 
     "x-ppapi-os": "linux", 
     "x-ppapi-required-interfaces": [
@@ -42,7 +42,7 @@
         "PPB_URLLoaderTrusted;0.3", 
         "PPB_URLRequestInfo;1.0", 
         "PPB_URLResponseInfo;1.0", 
-        "PPB_URLUtil(Dev);0.6", 
+        "PPB_URLUtil(Dev);0.7|PPB_URLUtil(Dev);0.6", 
         "PPB_Var;1.1|PPB_Var;1.0", 
         "PPB_VideoCapture(Dev);0.3|PPB_VideoCapture(Dev);0.2", 
         "PPB_View;1.0"
diff --git a/chrome b/chrome
index 659fe7e..b2ea374 100755
--- a/chrome
+++ b/chrome
Binary files differ
diff --git a/chrome_100_percent.pak b/chrome_100_percent.pak
index cf61f2d..5679e8a 100644
--- a/chrome_100_percent.pak
+++ b/chrome_100_percent.pak
Binary files differ
diff --git a/chrome_sandbox b/chrome_sandbox
index 74e45c6..d30f73a 100755
--- a/chrome_sandbox
+++ b/chrome_sandbox
Binary files differ
diff --git a/installer/common/eu-strip b/installer/common/eu-strip
new file mode 100755
index 0000000..7f93eec
--- /dev/null
+++ b/installer/common/eu-strip
Binary files differ
diff --git a/installer/common/installer.include b/installer/common/installer.include
index aa4b7a3..962fd86 100644
--- a/installer/common/installer.include
+++ b/installer/common/installer.include
@@ -115,7 +115,7 @@
   # We need to add the debug link so gdb knows to look for the symbols.
   DEBUGFILE="${BUILDDIR}/${PROGNAME}.debug"
   STRIPPEDFILE="${BUILDDIR}/${PROGNAME}.stripped"
-  eu-strip -o "${STRIPPEDFILE}" -f "${DEBUGFILE}" "${BUILDDIR}/${PROGNAME}"
+  "${BUILDDIR}/installer/common/eu-strip" -o "${STRIPPEDFILE}" -f "${DEBUGFILE}" "${BUILDDIR}/${PROGNAME}"
   install -m 755 "${STRIPPEDFILE}" "${STAGEDIR}/${INSTALLDIR}/${PROGNAME}"
   rm "${DEBUGFILE}" "${STRIPPEDFILE}"
 
@@ -186,7 +186,7 @@
     if [ -f "${buildfile}" ]; then
       strippedfile="${buildfile}.stripped"
       debugfile="${buildfile}.debug"
-      eu-strip -o "${strippedfile}" -f "${debugfile}" "${buildfile}"
+      "${BUILDDIR}/installer/common/eu-strip" -o "${strippedfile}" -f "${debugfile}" "${buildfile}"
       install -m 755 "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
     fi
   done
@@ -226,8 +226,8 @@
   install -m 755 "${BUILDDIR}/xdg-mime" "${STAGEDIR}${INSTALLDIR}/"
   install -m 755 "${BUILDDIR}/xdg-settings" "${STAGEDIR}${INSTALLDIR}/"
   process_template "${BUILDDIR}/installer/common/desktop.template" \
-    "${STAGEDIR}/${INSTALLDIR}/${PACKAGE}.desktop"
-  chmod 644 "${STAGEDIR}/${INSTALLDIR}/${PACKAGE}.desktop"
+    "${STAGEDIR}/usr/share/applications/${PACKAGE}.desktop"
+  chmod 644 "${STAGEDIR}/usr/share/applications/${PACKAGE}.desktop"
   process_template "${BUILDDIR}/installer/common/default-app.template" \
     "${STAGEDIR}/usr/share/gnome-control-center/default-apps/${PACKAGE}.xml"
   chmod 644 "${STAGEDIR}/usr/share/gnome-control-center/default-apps/${PACKAGE}.xml"
diff --git a/installer/common/postinst.include b/installer/common/postinst.include
index d286b53..9d10185 100644
--- a/installer/common/postinst.include
+++ b/installer/common/postinst.include
@@ -9,19 +9,48 @@
   "$XDG_ICON_RESOURCE" install --size "${size%.png}" "$icon" "@@PACKAGE@@"
 done
 
-# Add an entry to the system menu
-XDG_DESKTOP_MENU="`which xdg-desktop-menu 2> /dev/null || true`"
 UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
-if [ ! -x "$XDG_DESKTOP_MENU" ]; then
-  echo "Error: Could not find xdg-desktop-menu" >&2
-  exit 1
-fi
-"$XDG_DESKTOP_MENU" install @@INSTALLDIR@@/@@PACKAGE@@.desktop
-
 if [ -x "$UPDATE_MENUS" ]; then
   update-menus
 fi
 
+# Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
+update-desktop-database || true
+
+# Updates defaults.list file if present.
+update_defaults_list() {
+  # $1: name of the .desktop file
+
+  local DEFAULTS_FILE="/usr/share/applications/defaults.list"
+
+  if [ ! -f "${DEFAULTS_FILE}" ]; then
+    return
+  fi
+
+  # Split key-value pair out of MimeType= line from the .desktop file,
+  # then split semicolon-separated list of mime types (they should not contain
+  # spaces).
+  mime_types="$(grep MimeType= /usr/share/applications/${1} |
+                cut -d '=' -f 2- |
+                tr ';' ' ')"
+  for mime_type in ${mime_types}; do
+    if egrep -q "^${mime_type}=" "${DEFAULTS_FILE}"; then
+      if ! egrep -q "^${mime_type}=.*${1}" "${DEFAULTS_FILE}"; then
+        default_apps="$(grep ${mime_type}= "${DEFAULTS_FILE}" |
+                        cut -d '=' -f 2-)"
+        egrep -v "^${mime_type}=" "${DEFAULTS_FILE}" > "${DEFAULTS_FILE}.new"
+        echo "${mime_type}=${default_apps};${1}" >> "${DEFAULTS_FILE}.new"
+        mv "${DEFAULTS_FILE}.new" "${DEFAULTS_FILE}"
+      fi
+    else
+      # If there's no mention of the mime type in the file, add it.
+      echo "${mime_type}=${1};" >> "${DEFAULTS_FILE}"
+    fi
+  done
+}
+
+update_defaults_list "@@PACKAGE@@.desktop"
+
 # This function uses sed to insert the contents of one file into another file,
 # after the first line matching a given regular expression. If there is no
 # matching line, then the file is unchanged.
diff --git a/installer/common/prerm.include b/installer/common/prerm.include
index e70dfdf..721f525 100644
--- a/installer/common/prerm.include
+++ b/installer/common/prerm.include
@@ -9,15 +9,10 @@
   "$XDG_ICON_RESOURCE" uninstall --size "${size%.png}" "@@PACKAGE@@"
 done
 
-# Remove the entry from the system menu
-XDG_DESKTOP_MENU="`which xdg-desktop-menu 2> /dev/null || true`"
 UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
-if [ ! -x "$XDG_DESKTOP_MENU" ]; then
-  echo "Error: Could not find xdg-desktop-menu" >&2
-  exit 1
-fi
-"$XDG_DESKTOP_MENU" uninstall @@INSTALLDIR@@/@@PACKAGE@@.desktop
-
 if [ -x "$UPDATE_MENUS" ]; then
   update-menus
 fi
+
+# Update cache of .desktop file MIME types. Non-fatal since it's just a cache.
+update-desktop-database || true
diff --git a/installer/debian/build.sh b/installer/debian/build.sh
index 6c41120..4db53cb 100755
--- a/installer/debian/build.sh
+++ b/installer/debian/build.sh
@@ -63,14 +63,12 @@
     local DEFAULT_FLAGS="--user-data-dir=\"${SXS_USER_DATA_DIR}\""
 
     # Avoid file collisions between channels.
+    local INSTALLDIR="${INSTALLDIR}-${CHANNEL}"
+
     # TODO(phajdan.jr): Do that for all packages for SxS,
     # http://crbug.com/38598 .
-    # We can't do this for now for all packages because of
-    # http://crbug.com/295103 , and ultimately http://crbug.com/22703 .
-    # Also see https://groups.google.com/a/chromium.org/d/msg/chromium-dev/DBEqOORaRiw/pE0bNI6h0kcJ .
     if [ "$CHANNEL" = "trunk" ] || [ "$CHANNEL" = "asan" ]; then
       local PACKAGE="${PACKAGE}-${CHANNEL}"
-      local INSTALLDIR="${INSTALLDIR}-${CHANNEL}"
     fi
 
     # Make it possible to distinguish between menu entries
diff --git a/installer/debian/expected_deps b/installer/debian/expected_deps
index ef2b0a2..ffe7ef2 100644
--- a/installer/debian/expected_deps
+++ b/installer/debian/expected_deps
@@ -1,8 +1,8 @@
 gconf-service
 libasound2 (>= 1.0.23)
-libatk1.0-0 (>= 1.12.4)
 libc6 (>= 2.11)
 libcairo2 (>= 1.6.0)
+libcap2 (>= 2.10)
 libcups2 (>= 1.4.0)
 libdbus-1-3 (>= 1.2.14)
 libexpat1 (>= 1.95.8)
@@ -12,7 +12,7 @@
 libgconf-2-4 (>= 2.31.1)
 libgcrypt11 (>= 1.4.5)
 libgdk-pixbuf2.0-0 (>= 2.22.0)
-libglib2.0-0 (>= 2.18.0)
+libglib2.0-0 (>= 2.26.0)
 libgtk2.0-0 (>= 2.24.0)
 libnspr4 (>= 1.8.0.10)
 libnss3 (>= 3.14.3)
@@ -21,10 +21,12 @@
 libudev0 (>= 147)
 libx11-6 (>= 2:1.4.99.1)
 libxcomposite1 (>= 1:0.3-1)
+libxcursor1 (>> 1.1.2)
 libxdamage1 (>= 1:1.1)
 libxext6
-libxfixes3
+libxfixes3 (>= 1:5.0)
 libxi6 (>= 2:1.2.99.4)
+libxrandr2 (>= 2:1.2.99.2)
 libxrender1
 libxss1
 libxtst6
diff --git a/installer/rpm/build.sh b/installer/rpm/build.sh
index 66322e4..52cb1b8 100755
--- a/installer/rpm/build.sh
+++ b/installer/rpm/build.sh
@@ -118,7 +118,7 @@
     echo
     echo "ERROR: Shared library dependencies changed!"
     echo "If this is intentional, please update:"
-    echo "chrome/installer/linux/rpm/expected_deps_i686"
+    echo "chrome/installer/linux/rpm/expected_deps_i386"
     echo "chrome/installer/linux/rpm/expected_deps_x86_64"
     echo
     exit $BAD_DIFF
diff --git a/installer/rpm/chrome.spec.template b/installer/rpm/chrome.spec.template
index 6df419f..e93f02f 100644
--- a/installer/rpm/chrome.spec.template
+++ b/installer/rpm/chrome.spec.template
@@ -89,6 +89,7 @@
 /etc/cron.daily/@@PACKAGE_FILENAME@@
 %ghost %attr(755,root,root) /usr/bin/google-chrome
 /usr/bin/@@USR_BIN_SYMLINK_NAME@@
+/usr/share/applications/@@PACKAGE_FILENAME@@.desktop
 /usr/share/gnome-control-center/default-apps/@@PACKAGE_FILENAME@@.xml
 %docdir /usr/share/man/man1
 /usr/share/man/man1/@@PACKAGE_FILENAME@@.1
diff --git a/installer/rpm/expected_deps_i386 b/installer/rpm/expected_deps_i386
index 40d1741..52fd504 100644
--- a/installer/rpm/expected_deps_i386
+++ b/installer/rpm/expected_deps_i386
@@ -1,17 +1,18 @@
 ld-linux.so.2
+ld-linux.so.2(GLIBC_2.1)
 ld-linux.so.2(GLIBC_2.3)
 libasound.so.2
-libatk-1.0.so.0
 libcairo.so.2
+libcap.so.2
 libc.so.6
 libc.so.6(GLIBC_2.0)
 libc.so.6(GLIBC_2.1)
 libc.so.6(GLIBC_2.11)
-libc.so.6(GLIBC_2.1.2)
 libc.so.6(GLIBC_2.1.3)
 libc.so.6(GLIBC_2.2)
 libc.so.6(GLIBC_2.2.3)
 libc.so.6(GLIBC_2.3)
+libc.so.6(GLIBC_2.3.2)
 libc.so.6(GLIBC_2.3.4)
 libc.so.6(GLIBC_2.4)
 libc.so.6(GLIBC_2.6)
@@ -34,6 +35,7 @@
 libgcrypt.so.11
 libgdk_pixbuf-2.0.so.0
 libgdk-x11-2.0.so.0
+libgio-2.0.so.0
 libglib-2.0.so.0
 libgobject-2.0.so.0
 libgtk-x11-2.0.so.0
@@ -50,6 +52,7 @@
 libpthread.so.0(GLIBC_2.0)
 libpthread.so.0(GLIBC_2.1)
 libpthread.so.0(GLIBC_2.2)
+libpthread.so.0(GLIBC_2.2.3)
 libpthread.so.0(GLIBC_2.3.2)
 libpthread.so.0(GLIBC_2.3.3)
 librt.so.1
@@ -64,10 +67,12 @@
 libstdc++.so.6(GLIBCXX_3.4.9)
 libX11.so.6
 libXcomposite.so.1
+libXcursor.so.1
 libXdamage.so.1
 libXext.so.6
 libXfixes.so.3
 libXi.so.6
+libXrandr.so.2
 libXrender.so.1
 libXss.so.1
 libXtst.so.6
diff --git a/installer/rpm/expected_deps_x86_64 b/installer/rpm/expected_deps_x86_64
index 07453a4..1435e39 100644
--- a/installer/rpm/expected_deps_x86_64
+++ b/installer/rpm/expected_deps_x86_64
@@ -1,11 +1,13 @@
 ld-linux-x86-64.so.2()(64bit)
+ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
 ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
 libasound.so.2()(64bit)
-libatk-1.0.so.0()(64bit)
 libcairo.so.2()(64bit)
+libcap.so.2()(64bit)
 libc.so.6()(64bit)
 libc.so.6(GLIBC_2.11)(64bit)
 libc.so.6(GLIBC_2.2.5)(64bit)
+libc.so.6(GLIBC_2.3.2)(64bit)
 libc.so.6(GLIBC_2.3.4)(64bit)
 libc.so.6(GLIBC_2.3)(64bit)
 libc.so.6(GLIBC_2.4)(64bit)
@@ -27,6 +29,7 @@
 libgcrypt.so.11()(64bit)
 libgdk_pixbuf-2.0.so.0()(64bit)
 libgdk-x11-2.0.so.0()(64bit)
+libgio-2.0.so.0()(64bit)
 libglib-2.0.so.0()(64bit)
 libgobject-2.0.so.0()(64bit)
 libgtk-x11-2.0.so.0()(64bit)
@@ -54,10 +57,12 @@
 libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
 libX11.so.6()(64bit)
 libXcomposite.so.1()(64bit)
+libXcursor.so.1()(64bit)
 libXdamage.so.1()(64bit)
 libXext.so.6()(64bit)
 libXfixes.so.3()(64bit)
 libXi.so.6()(64bit)
+libXrandr.so.2()(64bit)
 libXrender.so.1()(64bit)
 libXss.so.1()(64bit)
 libXtst.so.6()(64bit)
diff --git a/installer/version.txt b/installer/version.txt
index 6405b63..05160fc 100644
--- a/installer/version.txt
+++ b/installer/version.txt
@@ -1,6 +1,6 @@
-MAJOR=32
+MAJOR=34
 MINOR=0
-BUILD=1700
-PATCH=19
-LASTCHANGE=235778
+BUILD=1800
+PATCH=0
+LASTCHANGE=246310
 OFFICIAL_BUILD=1
diff --git a/lib/libpeerconnection.so b/lib/libpeerconnection.so
index ba5a883..00b066f 100755
--- a/lib/libpeerconnection.so
+++ b/lib/libpeerconnection.so
Binary files differ
diff --git a/libclearkeycdm.so b/libclearkeycdm.so
index e239aec..eef5599 100755
--- a/libclearkeycdm.so
+++ b/libclearkeycdm.so
Binary files differ
diff --git a/libclearkeycdmadapter.so b/libclearkeycdmadapter.so
index 16d393d..39248c7 100755
--- a/libclearkeycdmadapter.so
+++ b/libclearkeycdmadapter.so
Binary files differ
diff --git a/libffmpegsumo.so b/libffmpegsumo.so
index 9348611..8257b15 100755
--- a/libffmpegsumo.so
+++ b/libffmpegsumo.so
Binary files differ
diff --git a/libpdf.so b/libpdf.so
index 811ca5b..c803bbc 100755
--- a/libpdf.so
+++ b/libpdf.so
Binary files differ
diff --git a/libppGoogleNaClPluginChrome.so b/libppGoogleNaClPluginChrome.so
index 4a25718..6480d79 100755
--- a/libppGoogleNaClPluginChrome.so
+++ b/libppGoogleNaClPluginChrome.so
Binary files differ
diff --git a/libwidevinecdm.so b/libwidevinecdm.so
index c7675c2..0050fb5 100644
--- a/libwidevinecdm.so
+++ b/libwidevinecdm.so
Binary files differ
diff --git a/libwidevinecdmadapter.so b/libwidevinecdmadapter.so
index 5e9e011..ca24ebf 100755
--- a/libwidevinecdmadapter.so
+++ b/libwidevinecdmadapter.so
Binary files differ
diff --git a/locales/am.pak b/locales/am.pak
index 51fb3cd..6d4aaf9 100644
--- a/locales/am.pak
+++ b/locales/am.pak
Binary files differ
diff --git a/locales/ar.pak b/locales/ar.pak
index 0ff2cfb..19965c1 100644
--- a/locales/ar.pak
+++ b/locales/ar.pak
Binary files differ
diff --git a/locales/bg.pak b/locales/bg.pak
index ddc3ced..c498a4d 100644
--- a/locales/bg.pak
+++ b/locales/bg.pak
Binary files differ
diff --git a/locales/bn.pak b/locales/bn.pak
index e6b81c9..c8df0b6 100644
--- a/locales/bn.pak
+++ b/locales/bn.pak
Binary files differ
diff --git a/locales/ca.pak b/locales/ca.pak
index 4f90a1a..0abe8ac 100644
--- a/locales/ca.pak
+++ b/locales/ca.pak
Binary files differ
diff --git a/locales/cs.pak b/locales/cs.pak
index 5ecbba9..11b899c 100644
--- a/locales/cs.pak
+++ b/locales/cs.pak
Binary files differ
diff --git a/locales/da.pak b/locales/da.pak
index a377e73..ba10e9a 100644
--- a/locales/da.pak
+++ b/locales/da.pak
Binary files differ
diff --git a/locales/de.pak b/locales/de.pak
index 59e76c9..80dbdb0 100644
--- a/locales/de.pak
+++ b/locales/de.pak
Binary files differ
diff --git a/locales/el.pak b/locales/el.pak
index f75e1f3..bf08580 100644
--- a/locales/el.pak
+++ b/locales/el.pak
Binary files differ
diff --git a/locales/en-GB.pak b/locales/en-GB.pak
index 45321d0..2b33a23 100644
--- a/locales/en-GB.pak
+++ b/locales/en-GB.pak
Binary files differ
diff --git a/locales/en-US.pak b/locales/en-US.pak
index 22e677a..fa949a9 100644
--- a/locales/en-US.pak
+++ b/locales/en-US.pak
Binary files differ
diff --git a/locales/es-419.pak b/locales/es-419.pak
index ec6e5f5..60a6225 100644
--- a/locales/es-419.pak
+++ b/locales/es-419.pak
Binary files differ
diff --git a/locales/es.pak b/locales/es.pak
index fb5c93e..8e2b990 100644
--- a/locales/es.pak
+++ b/locales/es.pak
Binary files differ
diff --git a/locales/et.pak b/locales/et.pak
index 4a2828c..be3f58a 100644
--- a/locales/et.pak
+++ b/locales/et.pak
Binary files differ
diff --git a/locales/fa.pak b/locales/fa.pak
index d59fe85..16c42cb 100644
--- a/locales/fa.pak
+++ b/locales/fa.pak
Binary files differ
diff --git a/locales/fi.pak b/locales/fi.pak
index 2320404..e4db2b2 100644
--- a/locales/fi.pak
+++ b/locales/fi.pak
Binary files differ
diff --git a/locales/fil.pak b/locales/fil.pak
index 0f34620..adcef7c 100644
--- a/locales/fil.pak
+++ b/locales/fil.pak
Binary files differ
diff --git a/locales/fr.pak b/locales/fr.pak
index 44423a3..1467f73 100644
--- a/locales/fr.pak
+++ b/locales/fr.pak
Binary files differ
diff --git a/locales/gu.pak b/locales/gu.pak
index 2f29c70..adff5d3 100644
--- a/locales/gu.pak
+++ b/locales/gu.pak
Binary files differ
diff --git a/locales/he.pak b/locales/he.pak
index f0a9b46..cf54c09 100644
--- a/locales/he.pak
+++ b/locales/he.pak
Binary files differ
diff --git a/locales/hi.pak b/locales/hi.pak
index dd63a84..7751254 100644
--- a/locales/hi.pak
+++ b/locales/hi.pak
Binary files differ
diff --git a/locales/hr.pak b/locales/hr.pak
index 049a648..3eff961 100644
--- a/locales/hr.pak
+++ b/locales/hr.pak
Binary files differ
diff --git a/locales/hu.pak b/locales/hu.pak
index 427f7fe..54f9bff 100644
--- a/locales/hu.pak
+++ b/locales/hu.pak
Binary files differ
diff --git a/locales/id.pak b/locales/id.pak
index 7da2dc2..c8cffd8 100644
--- a/locales/id.pak
+++ b/locales/id.pak
Binary files differ
diff --git a/locales/it.pak b/locales/it.pak
index ceefed6..0d4c313 100644
--- a/locales/it.pak
+++ b/locales/it.pak
Binary files differ
diff --git a/locales/ja.pak b/locales/ja.pak
index bbcfe06..c26aeb7 100644
--- a/locales/ja.pak
+++ b/locales/ja.pak
Binary files differ
diff --git a/locales/kn.pak b/locales/kn.pak
index da1f12a..5f0913f 100644
--- a/locales/kn.pak
+++ b/locales/kn.pak
Binary files differ
diff --git a/locales/ko.pak b/locales/ko.pak
index 6bef9c4..8155fbd 100644
--- a/locales/ko.pak
+++ b/locales/ko.pak
Binary files differ
diff --git a/locales/lt.pak b/locales/lt.pak
index 4c6438d..e042292 100644
--- a/locales/lt.pak
+++ b/locales/lt.pak
Binary files differ
diff --git a/locales/lv.pak b/locales/lv.pak
index cd778ec..68362b4 100644
--- a/locales/lv.pak
+++ b/locales/lv.pak
Binary files differ
diff --git a/locales/ml.pak b/locales/ml.pak
index 4032ceb..9abc4f4 100644
--- a/locales/ml.pak
+++ b/locales/ml.pak
Binary files differ
diff --git a/locales/mr.pak b/locales/mr.pak
index 932739f..37cbd44 100644
--- a/locales/mr.pak
+++ b/locales/mr.pak
Binary files differ
diff --git a/locales/ms.pak b/locales/ms.pak
index 2ce3831..981fa28 100644
--- a/locales/ms.pak
+++ b/locales/ms.pak
Binary files differ
diff --git a/locales/nb.pak b/locales/nb.pak
index 2fd19a2..451d4d2 100644
--- a/locales/nb.pak
+++ b/locales/nb.pak
Binary files differ
diff --git a/locales/nl.pak b/locales/nl.pak
index acc2400..f8433c1 100644
--- a/locales/nl.pak
+++ b/locales/nl.pak
Binary files differ
diff --git a/locales/pl.pak b/locales/pl.pak
index c77bee9..9878766 100644
--- a/locales/pl.pak
+++ b/locales/pl.pak
Binary files differ
diff --git a/locales/pt-BR.pak b/locales/pt-BR.pak
index 17f9aad..f3958ef 100644
--- a/locales/pt-BR.pak
+++ b/locales/pt-BR.pak
Binary files differ
diff --git a/locales/pt-PT.pak b/locales/pt-PT.pak
index d6f3045..af520a1 100644
--- a/locales/pt-PT.pak
+++ b/locales/pt-PT.pak
Binary files differ
diff --git a/locales/ro.pak b/locales/ro.pak
index cf6ee0c..a504ddd 100644
--- a/locales/ro.pak
+++ b/locales/ro.pak
Binary files differ
diff --git a/locales/ru.pak b/locales/ru.pak
index c82ce5e..7ed4528 100644
--- a/locales/ru.pak
+++ b/locales/ru.pak
Binary files differ
diff --git a/locales/sk.pak b/locales/sk.pak
index 0a2ad72..150e7f4 100644
--- a/locales/sk.pak
+++ b/locales/sk.pak
Binary files differ
diff --git a/locales/sl.pak b/locales/sl.pak
index 95046c9..f557074 100644
--- a/locales/sl.pak
+++ b/locales/sl.pak
Binary files differ
diff --git a/locales/sr.pak b/locales/sr.pak
index 1b2b955..2ef6e1d 100644
--- a/locales/sr.pak
+++ b/locales/sr.pak
Binary files differ
diff --git a/locales/sv.pak b/locales/sv.pak
index 480c2ec..9a2a920 100644
--- a/locales/sv.pak
+++ b/locales/sv.pak
Binary files differ
diff --git a/locales/sw.pak b/locales/sw.pak
index 499e5be..2b80169 100644
--- a/locales/sw.pak
+++ b/locales/sw.pak
Binary files differ
diff --git a/locales/ta.pak b/locales/ta.pak
index a6c6c8c..5ada1df 100644
--- a/locales/ta.pak
+++ b/locales/ta.pak
Binary files differ
diff --git a/locales/te.pak b/locales/te.pak
index a54c789..9897ef4 100644
--- a/locales/te.pak
+++ b/locales/te.pak
Binary files differ
diff --git a/locales/th.pak b/locales/th.pak
index d834bc6..e6121ed 100644
--- a/locales/th.pak
+++ b/locales/th.pak
Binary files differ
diff --git a/locales/tr.pak b/locales/tr.pak
index f5b2f98..0d6e113 100644
--- a/locales/tr.pak
+++ b/locales/tr.pak
Binary files differ
diff --git a/locales/uk.pak b/locales/uk.pak
index a218032..fd74aab 100644
--- a/locales/uk.pak
+++ b/locales/uk.pak
Binary files differ
diff --git a/locales/vi.pak b/locales/vi.pak
index 3a05866..6120e3e 100644
--- a/locales/vi.pak
+++ b/locales/vi.pak
Binary files differ
diff --git a/locales/zh-CN.pak b/locales/zh-CN.pak
index ef44d70..5ef8ccf 100644
--- a/locales/zh-CN.pak
+++ b/locales/zh-CN.pak
Binary files differ
diff --git a/locales/zh-TW.pak b/locales/zh-TW.pak
index 5b7031d..b35bf0d 100644
--- a/locales/zh-TW.pak
+++ b/locales/zh-TW.pak
Binary files differ
diff --git a/nacl_helper b/nacl_helper
index ea2d626..d2ca184 100755
--- a/nacl_helper
+++ b/nacl_helper
Binary files differ
diff --git a/nacl_irt_x86_32.nexe b/nacl_irt_x86_32.nexe
index c3f63c6..778851c 100755
--- a/nacl_irt_x86_32.nexe
+++ b/nacl_irt_x86_32.nexe
Binary files differ
diff --git a/resources.pak b/resources.pak
index 72275a1..4ba58b2 100644
--- a/resources.pak
+++ b/resources.pak
Binary files differ
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf b/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf
new file mode 100644
index 0000000..0c85c6a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf
@@ -0,0 +1,8 @@
+{
+  "files": {},
+  "program": {
+    "x86-32": {
+      "url": "liblouis_nacl_x86_32.nexe"
+    }
+  }
+}
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_32.nexe b/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_32.nexe
new file mode 100755
index 0000000..207ab07
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_32.nexe
Binary files differ
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables.json b/resources/chromeos/chromevox/chromevox/background/braille/tables.json
new file mode 100644
index 0000000..54e089d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables.json
@@ -0,0 +1,398 @@
+[
+  {
+    "locale": "ar",
+    "dots": "6",
+    "id": "ar-g1",
+    "grade": "1",
+    "fileName": "ar-ar-g1.utb"
+  },
+  {
+    "locale": "bg",
+    "dots": "8",
+    "id": "bg-comp8",
+    "fileName": "bg.ctb"
+  },
+  {
+    "locale": "ca",
+    "dots": "6",
+    "id": "ca-g1",
+    "grade": "1",
+    "fileName": "ca-g1.ctb"
+  },
+  {
+    "locale": "hr",
+    "dots": "8",
+    "id": "hr-comp8",
+    "fileName": "hr.ctb"
+  },
+  {
+    "locale": "cs",
+    "dots": "6",
+    "id": "cs-g1",
+    "grade": "1",
+    "fileName": "cs-g1.ctb"
+  },
+  {
+    "locale": "da",
+    "dots": "8",
+    "id": "da-comp8",
+    "fileName": "da.ctb"
+  },
+  {
+    "locale": "nl",
+    "dots": "6",
+    "id": "nl-g1",
+    "grade": "1",
+    "fileName": "Nl-Nl-g1.utb"
+  },
+  {
+    "locale": "en_CA",
+    "dots": "8",
+    "id": "en-CA-comp8",
+    "fileName": "en_CA.ctb"
+  },
+  {
+    "locale": "en_GB",
+    "dots": "6",
+    "id": "en-GB-g1",
+    "grade": "1",
+    "fileName": "en-gb-g1.utb"
+  },
+  {
+    "locale": "en_GB",
+    "dots": "6",
+    "id": "en-GB-g2",
+    "grade": "2",
+    "fileName": "en-GB-g2.ctb"
+  },
+  {
+    "locale": "en_US",
+    "dots": "8",
+    "id": "en-US-comp8",
+    "fileName": "en-us-comp8.ctb"
+  },
+  {
+    "locale": "en_US",
+    "dots": "6",
+    "id": "en-US-g1",
+    "grade": "1",
+    "fileName": "en-us-g1.ctb"
+  },
+  {
+    "locale": "en_US",
+    "dots": "6",
+    "id": "en-US-g2",
+    "grade": "2",
+    "fileName": "en-us-g2.ctb"
+  },
+  {
+    "locale": "et",
+    "dots": "8",
+    "id": "et-comp8",
+    "fileName": "et-g0.utb"
+  },
+  {
+    "locale": "fr",
+    "dots": "8",
+    "id": "fr-comp8",
+    "fileName": "fr-2007.ctb"
+  },
+  {
+    "locale": "fr_CA",
+    "dots": "6",
+    "id": "fr-CA-g1",
+    "grade": "1",
+    "fileName": "fr-ca-g1.utb"
+  },
+  {
+    "locale": "fr_CA",
+    "dots": "6",
+    "id": "fr-CA-g2",
+    "grade": "2",
+    "fileName": "Fr-Ca-g2.ctb"
+  },
+  {
+    "locale": "fr_FR",
+    "dots": "6",
+    "id": "fr-FR-g1",
+    "grade": "1",
+    "fileName": "fr-fr-g1.utb"
+  },
+  {
+    "locale": "fr_FR",
+    "dots": "6",
+    "id": "fr-FR-g2",
+    "grade": "2",
+    "fileName": "Fr-Fr-g2.ctb"
+  },
+  {
+    "locale": "fi",
+    "dots": "8",
+    "id": "fi-comp8",
+    "fileName": "fi-fi-8dot.ctb"
+  },
+  {
+    "locale": "de",
+    "dots": "8",
+    "id": "de-comp8",
+    "fileName": "de-de-comp8.ctb"
+  },
+  {
+    "locale": "de_CH",
+    "dots": "6",
+    "id": "de-CH-g0",
+    "grade": "0",
+    "fileName": "de-ch-g0.utb"
+  },
+  {
+    "locale": "de_CH",
+    "dots": "6",
+    "id": "de-CH-g1",
+    "grade": "1",
+    "fileName": "de-ch-g1.ctb"
+  },
+  {
+    "locale": "de_CH",
+    "dots": "6",
+    "id": "de-CH-g2",
+    "grade": "2",
+    "fileName": "de-ch-g2.ctb"
+  },
+  {
+    "locale": "de_DE",
+    "dots": "6",
+    "id": "de-DE-g0",
+    "grade": "0",
+    "fileName": "de-de-g0.utb"
+  },
+  {
+    "locale": "de_DE",
+    "dots": "6",
+    "id": "de-DE-g1",
+    "grade": "1",
+    "fileName": "de-de-g1.ctb"
+  },
+  {
+    "locale": "de_DE",
+    "dots": "6",
+    "id": "de-DE-g2",
+    "grade": "2",
+    "fileName": "de-de-g2.ctb"
+  },
+  {
+    "locale": "el",
+    "dots": "6",
+    "id": "el-g1",
+    "grade": "1",
+    "fileName": "gr-gr-g1.utb"
+  },
+  {
+    "locale": "hi",
+    "dots": "8",
+    "id": "hi-comp8",
+    "fileName": "hi.ctb"
+  },
+  {
+    "locale": "hi",
+    "dots": "6",
+    "id": "hi-g1",
+    "grade": "1",
+    "fileName": "hi-in-g1.utb"
+  },
+  {
+    "locale": "hu",
+    "dots": "8",
+    "id": "hu-comp8",
+    "fileName": "hu-hu-comp8.ctb"
+  },
+  {
+    "locale": "hu",
+    "dots": "6",
+    "id": "hu-g1",
+    "grade": "1",
+    "fileName": "hu-hu-g1.ctb"
+  },
+  {
+    "locale": "is",
+    "dots": "8",
+    "id": "is-comp8",
+    "fileName": "is.ctb"
+  },
+  {
+    "locale": "it",
+    "dots": "8",
+    "id": "it-comp8",
+    "fileName": "it-it-comp8.utb"
+  },
+  {
+    "locale": "it",
+    "dots": "6",
+    "id": "it-g1",
+    "grade": "1",
+    "fileName": "it-it-comp6.utb"
+  },
+  {
+    "locale": "lv",
+    "dots": "6",
+    "id": "lv-g1",
+    "grade": "1",
+    "fileName": "Lv-Lv-g1.utb"
+  },
+  {
+    "locale": "lt",
+    "dots": "8",
+    "id": "lt-comp8",
+    "fileName": "lt.ctb"
+  },
+  {
+    "locale": "nb",
+    "dots": "8",
+    "id": "nb-comp8",
+    "fileName": "no-no.ctb"
+  },
+  {
+    "locale": "nb",
+    "dots": "6",
+    "id": "nb-g0",
+    "grade": "0",
+    "fileName": "no-no-g0.utb"
+  },
+  {
+    "locale": "nb",
+    "dots": "6",
+    "id": "nb-g1",
+    "grade": "1",
+    "fileName": "no-no-g1.ctb"
+  },
+  {
+    "locale": "nb",
+    "dots": "6",
+    "id": "nb-g2",
+    "grade": "2",
+    "fileName": "no-no-g2.ctb"
+  },
+  {
+    "locale": "nb",
+    "dots": "6",
+    "id": "nb-g3",
+    "grade": "3",
+    "fileName": "no-no-g3.ctb"
+  },
+  {
+    "locale": "pl",
+    "dots": "6",
+    "id": "pl-g1",
+    "grade": "1",
+    "fileName": "Pl-Pl-g1.utb"
+  },
+  {
+    "locale": "pt",
+    "dots": "8",
+    "id": "pt-comp8",
+    "fileName": "pt-pt-comp8.ctb"
+  },
+  {
+    "locale": "pt",
+    "dots": "6",
+    "id": "pt-g1",
+    "grade": "1",
+    "fileName": "pt-pt-g1.utb"
+  },
+  {
+    "locale": "pt",
+    "dots": "6",
+    "id": "pt-g2",
+    "grade": "2",
+    "fileName": "pt-pt-g2.ctb"
+  },
+  {
+    "locale": "ro",
+    "dots": "8",
+    "id": "ro-comp8",
+    "fileName": "ro.ctb"
+  },
+  {
+    "locale": "ru",
+    "dots": "8",
+    "id": "ru-comp8",
+    "fileName": "ru.ctb"
+  },
+  {
+    "locale": "ru",
+    "dots": "6",
+    "id": "ru-g1",
+    "grade": "1",
+    "fileName": "ru-ru-g1.utb"
+  },
+  {
+    "locale": "sr",
+    "dots": "6",
+    "id": "sr-g1",
+    "grade": "1",
+    "fileName": "sr-g1.ctb"
+  },
+  {
+    "locale": "sk",
+    "dots": "6",
+    "id": "sk-g1",
+    "grade": "1",
+    "fileName": "sk-sk-g1.utb"
+  },
+  {
+    "locale": "sl",
+    "dots": "6",
+    "id": "sl-g1",
+    "grade": "1",
+    "fileName": "sl-si-g1.utb"
+  },
+  {
+    "locale": "es",
+    "dots": "8",
+    "id": "es-comp8",
+    "fileName": "Es-Es-G0.utb"
+  },
+  {
+    "locale": "es",
+    "dots": "6",
+    "id": "es-g1",
+    "grade": "1",
+    "fileName": "es-g1.ctb"
+  },
+  {
+    "locale": "sv",
+    "dots": "8",
+    "id": "sv-comp8",
+    "fileName": "sv-1996.ctb"
+  },
+  {
+    "locale": "sv",
+    "dots": "6",
+    "id": "sv-g1",
+    "grade": "1",
+    "fileName": "Se-Se-g1.utb"
+  },
+  {
+    "locale": "tr",
+    "dots": "8",
+    "id": "tr-comp8",
+    "fileName": "tr.ctb"
+  },
+  {
+    "locale": "vi",
+    "dots": "8",
+    "id": "vi-comp8",
+    "fileName": "vi.ctb"
+  },
+  {
+    "locale": "zh",
+    "dots": "8",
+    "id": "zh-comp8",
+    "fileName": "zh-hk.ctb"
+  },
+  {
+    "locale": "zh_TW",
+    "dots": "8",
+    "id": "zh-TW-comp8",
+    "fileName": "zh-tw.ctb"
+  }
+]
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb
new file mode 100644
index 0000000..af9f674
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb
@@ -0,0 +1,205 @@
+# liblouis: Computer Spanish 8 dots Braille table
+#
+#  Copyright (C) 2012 by José Enrique Fernández del Campo and Juan Carlos Buño Suárez <quetzatl@eresmas.net>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# -----------------------------------------------------------------------------
+
+# Uncontracted Computer Spanish Table
+# Autor José Enrique Fernández del Campo <jefdelcampo@gmail.com> and Juan Carlos Buño Suárez <quetzatl@eresmas.net>
+# -----------------------------------------------------------------------------
+
+
+space \s 0      			# blank 32
+space \t 9              # tab 9
+space \x001B 1b         # escape
+space \x000A 0          # lf
+space \x000D 0          # cr
+space \X00A0 0          # Espacio de no separación
+
+# all except 0 are the same, so define 0 here to take higher presidence
+digit 0 34678				cero
+include digits6DotsPlusDot6.uti
+
+include latinLetterDef8Dots.uti
+
+uplow \x00c7\x00e7 1234678,123468		c cedilla
+uplow \x00c1\x00e1 123567,12356     a con acento
+uplow \x00c9\x00e9 23467,2346		e con acento
+uplow \x00cd\x00ed 347,34     i con acento
+uplow \x00d3\x00f3 3467,346     o con acento
+uplow \x00da\x00fa 234567,23456     u con acento
+uplow \x00c0\x00e0 1235678,123568		a grave
+uplow \x00c8\x00e8 234678,23468			e grave
+uplow \x00cc\x00ec 345,348     i grave
+uplow \x00d2\x00f2 2458,3468     o grave
+uplow \x00d9\x00f9 2345678,234568		u grave
+uplow \x00c2\x00e2 178,18				a con circunflejo
+uplow \x00ca\x00ea 1578,158			e con circunflejo
+uplow \x00ce\x00ee 2478,248			i con circunflejo
+uplow \x00d4\x00f4 13578,1358			o con circunflejo
+uplow \x00db\x00fb 13678,1368			u con circunflejo
+uplow \x00c4\x00e4 34578,3458       a con diéresis
+uplow \x00cb\x00eb 124678,12468			e con diéresis
+uplow \x00cf\x00ef 1245678,258		i con diéresis
+uplow \x00d6\x00f6 24678,2468         o con diéresis
+uplow \x00dc\x00fc 125678,12568			u con diéresis
+uplow \x00dd\x00fd 1567,2348     ye con acento agudo
+uplow \x009F\x00FF 367,67     ye con diéresis
+
+uplow \X00c6\X00e6 38,1348     ae
+uplow \X0152\X0153 1468,1238     oe
+uplow \x008C\x009C 1468,1238     oe
+uplow \x00C3\x00E3 3567,168     a con tilde
+uplow \x00D5\x00F5 12458,4567     o con tilde
+uplow \x00D1\x00F1 124567,124568 letra eñe
+
+punctuation , 2			coma
+punctuation ; 23		punto y coma
+punctuation : 25		dos puntos
+punctuation - 36		guión
+punctuation . 3		punto
+punctuation ? 26		cerrar interrogación
+punctuation ! 2357		cerrar admiración
+punctuation \X0022 56 	comillas
+punctuation \X201c 14568 	abrir comillas
+punctuation \X201d 12348 	cerrar comillas
+punctuation ( 1268		abre paréntesis
+punctuation ) 3457		cierra paréntesis
+punctuation \X2018 4			apóstrofo
+punctuation \x00ab 238		comillas angulares izquierda
+punctuation \x00bb 567		comillas angulares derecha
+punctuation [ 2367		abre corchetes
+punctuation ] 3568	 	cierra corchetes
+punctuation { 46			abre llave
+punctuation } 35			cierra llave
+
+sign * 256						asterisco
+sign \\ 123456						barra invertida
+sign @ 5					arroba
+sign % 456					por ciento
+sign _ 6								subrayado
+sign # 3456					signo de número
+sign \x0060 58					acento grave
+sign ^ 45					circunflejo
+sign \X007E   57     #126 ~    tilde
+sign \X007C 4568   # barra vertical
+sign \X007F 7   # borrar
+sign \x00a1 23578   # abrir admiración
+sign \X00A6 478   # barra vertical cortada
+sign \X00A7 167   # sección
+sign \X00A8 268   # diéresis
+sign \X00A9 23567   # copyright
+sign \X00AC 257   # guión opcional
+sign \X20AC 12358   # euros
+sign \X00AD 2358   # soft hyphen
+sign \X00AE 2368   # registrado
+sign \X00AF 24568   # macron
+sign \X00B1 12467   # más-menos
+sign \X00B5 13468   # my
+sign \X00B6 14567   # párrafo
+sign \X00B7 14678   # punto centrado
+sign \X00B9 237   # Super uno
+sign \X00BA 5678   # ordinal masculino
+sign \x00AA 23568  # ordinal femenino 
+sign \X00BF 267   # abrir interrogación
+sign \X00C5 12368   #*a mayúscula con círculo superescrito
+
+sign \X00D0 13458   # letra eth mayúscula
+sign \X00D7 1678   # multiplicado por
+sign \X00D8 34567   # Alfa
+sign \X00DE 123458   # Thorn
+sign \X00DF 128   # Beta
+sign \X00E5 15678   # a con círculo superescrito
+sign \X00F0 235678   # letra eth
+sign \X00F7 2578   # dividido por
+sign \X00F8 457   # latin small letter o with stroke
+sign \X00FE 1568   # thorn
+sign \x00A8 268			diéresis
+
+math + 235				más
+math = 2356				igual
+math \x00d7 1678					multiplicado por
+math < 236				menor que
+math > 356				mayor que
+math / 3478						barra oblicua
+math \x00F7 2578		dividido por
+
+sign \x00a9 23567							copyright
+sign \x00b0 8						grado
+sign & 12346					ampersand
+sign \x00a2 12678						centavo
+sign \x00a4 2567						
+sign \x00a3 2378						libra
+sign \x00a7 167					sección
+sign \x0024 123467						dólar
+sign \x00a5 145678					yen
+sign \x00b9 237						super 1
+sign \x00b2 47					al cuadrado
+sign \x00b3 568					al cubo
+sign \x00bc 1467			un cuarto
+sign \x00bd 468			un medio
+sign \x00be 48		tres cuartos
+
+sign \x0081 358		sin nombre
+sign \x0082 37		por
+sign \X201a 37		por
+sign \X0083 1248		signo
+sign \X0192 1248		signo
+sign \X0084 78		signo
+sign \X201e 78		signo
+sign \X0085 1267		elipsis
+sign \X2026 1267		elipsis
+sign \X0086 28		sin nombre
+sign \X2020 28		sin nombre
+sign \X0087 23458		sin nombre
+sign \X2021 23458		sin nombre
+sign \X0088 458		sin nombre
+sign \X02c6 23458		sin nombre
+sign \X0089 45678		sin nombre
+sign \X2030 45678		sin nombre
+sign \X008a 1234568		sh mayúscula
+sign \X0160 1234568		sh mayúscula
+sign \X008b 1258		
+sign \X2039 1258		
+sign \X008d 357		sin nombre
+sign \X008e 148		sin nombre
+sign \X017d 148		sin nombre
+sign \X008f 58		
+sign \X0090 68		sin 	nombre
+sign \X2019 378		apóstrofo
+sign \X0095 1458		signo
+sign \X2022 1458		signo
+sign \X0096 368		guión
+sign \X2013 368		guión
+sign \X0097 3678		guión
+sign \X2014 3678		guión
+sign \X0098 134568		tilde
+sign \X02dc 134568		tilde
+sign \X0099 2467		marca registrada
+sign \X2122 2467		marca registrada
+sign \X009a 34568		signo
+sign \X203a 34568		signo
+sign \X0161 12567		sh
+sign \X009d 25678		
+sign \X009e 2568		
+sign \X017e 2568		
+sign \X009f 367		
+sign \X0178 367		
+sign \x00b4 467     acento agudo
+sign \x00B8 135678     z con caron
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb
new file mode 100644
index 0000000..d20e25d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb
@@ -0,0 +1,1790 @@
+# liblouis: Canadian French grade 2 Table
+###############################################################################
+# BRLTTY - A background process providing access to the Linux console (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# Auteur:
+#
+#	Nicolas Pitre <nico@cam.org>
+#
+# Référence:
+#
+#	Index de l'abrégé orthographique français étendu, lecture et écriture
+#	Révision 1993
+#	Service de production Braille, Institut Nazareth et Louis-Braille
+#	Longueuil (Québec)
+
+# Contracted Unified French Table
+# --------------------------------
+
+include fr-ca-g1.utb
+
+###
+### 1. Assemblages de lettres représentés par un seul symbole,
+###    et finales représentées par deux ou trois symboles;
+###
+
+letsign 6
+
+class voy aeiouyéàèùâêîôûëïüAEIOUYÉÀÈÙÂÊËïü
+class con bcçdfghjklmnpqrstvwxzBCÇDFGHJKLMNPQRSTVWXZ
+class bmp bmpBMP
+
+endword able 45
+always ai 34
+endword ait 146
+before con always an 2
+endword ant 1456
+before con always ar 4
+endword ar 4
+endword ation 16
+always au 13
+
+always bl 45
+before voy always br 23
+
+always ch 12356
+before voy always cl 146
+before con begword com 36
+before con always con 25
+before voy always cr 25
+
+before con begword dis 256
+before voy always dr 1456
+
+endword elle 456
+before con always em 345
+before con always en 26
+endword en 26
+endword ent 126
+before con midword er 236
+endword er 236
+begword es 156
+endword es 156
+word eu 15-136
+always eu 5
+before con always eur 46
+endword eur 46
+before con always ex 1346
+endword ez 1356
+
+before voy always fl 126
+before voy always fr 16
+
+before voy always gl 345
+always gn 2356
+before voy always gr 12456
+
+always ien 256
+always ieu 6
+before bmp begword im 246
+always in 35
+always ion 3456
+endword ition 246
+
+before voy after voy always ll 456
+
+always oi 23456
+before con always om 2456
+endword om 2456
+before con always on 346
+endword on 346
+before con always or 56
+endword or 56
+always ou 1256
+before con always our 12346
+endword our 12346
+
+before voy always pl 1246
+before voy always pr 235
+before con always pro 235
+
+always qu 12345
+endword que 12345
+
+before con begword re 3
+
+before voy after voy always ss 2346
+
+before voy always tr 356
+before con begword trans 356
+before voy after voy always tt 2456
+
+before con always ui 23
+
+endword ablement 45-134
+endword bilité 12-123-2345
+endword bilités 12-123-2345-234
+endword ellement 456-134
+endword logie 123-1245
+endword quement 12345-134
+endword quements 12345-134-234
+endword tement 2345-134
+endword tements 2345-134-234
+endword ttement 2345-2345-134
+endword ttements 2345-2345-134-234
+endword vement 1236-134
+endword vements 1236-134-234
+
+before con always ain 1-35
+endword ain 1-35
+before con always oin 135-35
+endword oin 135-35
+
+before con begword recom 3-36
+before con begword redis 3-256
+before con begword retrans 3-356
+before con begword incom 35-36
+before con begword indis 35-256
+before con begword intrans 35-356
+begword ines 35-156
+
+prfword tient 2345-256-2345
+prfword vient 1236-256-2345
+endword ient 24-126
+word balbutient 12-1-123-12-136-2345-24-126
+word initient 35-24-2345-24-126
+word dévient 145-123456-1236-24-126
+word envient 1235-26-1236-24-126
+
+sufword bleu 45-15-136
+before con always brui 12-1235-23
+endword clait 14-123-146
+before voy always concr 14-346-25
+endword drant 145-1235-1456
+always drô 145-1235-1456
+endword en? 15-1345-26
+always ien. 24-26-256
+before voy always propr 235-135-235
+before con begword ren 1235-26
+always ssè 234-234-2346
+word (en 236-15-1345
+word (la 236-123-1
+
+###
+### 2. Mots représentés par un seul symbole
+###
+
+word a 1
+word à 12356
+word ai 34
+word au 13
+word aux 13-1346
+word bien 12
+word biens 12-234
+word ce 14
+word celui 36
+word cet 146
+word dans 1456
+word de 145
+word dès 256
+word du 236
+word elle 1356
+word elles 1356-234
+word en 26
+word est 156
+word et 23456
+word été 2356
+word étés 2356-234
+word faire 124
+word grand 12456
+word grands 12456-234
+word il 24
+word ils 24-234
+word je 245
+word la 3
+word le 123
+word les 345
+word lui 3456
+word mais 1346
+word me 134
+word même 126
+word mêmes 126-234
+word ne 1345
+word nous 135
+word on 346
+word ou 1256
+word par 1234
+word plus 1246
+word pour 12346
+word puis 235
+word que 12345
+word qui 1245
+word quoi 123456
+word rien 1235
+word riens 1235-234
+word sans 2346
+word se 234
+word si 35
+word son 246
+word sons 246-234
+word sous 356
+word sur 125
+word te 2345
+word tous 2456
+word tout 16
+word un 136
+word uns 136-234
+word vous 1236
+word y 13456
+
+begword c' 14-3
+begword d' 145-3
+begword j' 245-3
+begword l' 123-3
+begword m' 134-3
+begword n' 1345-3
+begword s' 234-3
+begword t' 2345-3
+
+###
+### 3. Mots représentés par deux ou plusieurs symboles
+###
+
+word absolu		1-12
+word absolus		1-12-234
+word absolue		1-12-15
+word absolues		1-12-156
+word absolument		1-12-134
+word action		1-3456
+word actions		1-3456-234
+word actionnaire	1-3456-1235
+word actionnaires	1-3456-1235-234
+word affaire		1-124-124
+word affaires		1-124-124-234
+word afin		1-124
+word ailleurs		34-136
+word ainsi		1-24
+word alors		1-123
+word amour		1-134
+word amours		1-134-234
+word amoureuse		1-134-234-15
+word amoureuses		1-134-234-156
+word amoureusement	1-134-234-134
+word amoureux		1-134-1346
+word apparemment	1-1234-134
+word apparence		1-1234-14
+word apparences		1-1234-14-234
+word apparent		1-1234
+word apparents		1-1234-234
+word apparente		1-1234-15
+word apparentes		1-1234-156
+word après		1-235
+word assez		1-1356
+word atentif		1-2345-124
+word atentifs		1-2345-124-234
+word attention		1-2345
+word attentions		1-2345-234
+word attentive		1-2345-1236
+word attentives		1-2345-1236-234
+word attentivement	1-2345-1236-134
+word aucun		13-14
+word aucune		13-1345
+word aucunement		13-1345-134
+word auparavant		13-1234
+word auprès		13-235
+word auquel		13-12345-123
+word aussi		13-234
+word aussitôt		13-2345
+word autour		13-1235
+word autre		13-356
+word autres		13-356-234
+word autrefois		13-124
+word autrement		13-356-134
+word auxquelles		13-1346-12345-123-123-234
+word auxquels		13-1346-12345-123-234
+word avance		1-1236-14
+word avances		1-1236-14-234
+word avancement		1-1236-14-134
+word avant		1-1236
+word avantage		1-1236-1245
+word avantages		1-1236-1245-234
+word avantageuse	1-1236-1245-234-15
+word avantageuses	1-1236-1245-234-156
+word avantageusement	1-1236-1245-234-134
+word avantageux		1-1236-1245-1346
+word avec		1-14
+word avoir		1-1235
+word avoirs		1-1235-234
+word ayant		1-13456
+
+word beaucoup		12-14
+word besogne		12-2356
+word besognes		12-2356-234
+word besogneuse		12-2356-234-15
+word besogneuses		12-2356-234-156
+word besogneux		12-2356-1346
+word besoin		12-35
+word besoins		12-35-234
+word bête		12-126
+word bêtes		12-126-234
+word bêtement		12-126-134
+word bienfaisance	12-124-14
+word bienfaisances	12-124-14-234
+word bienfait		12-124
+word bienfaits		12-124-234
+word bienfaiteur	12-124-46
+word bienfaiteurs	12-124-46-234
+word bientôt		12-2345
+word bienveillance	12-1236-14
+word bienveillances	12-1236-14-234
+word bienveillant	12-1236
+word bienveillants	12-1236-234
+word bienveillante	12-1236-15
+word bienveillantes	12-1236-156
+word bizarre		12-1356
+word bizarres		12-1356-234
+word bizarrement	12-1356-134
+word bonheur		12-125
+word bonheurs		12-125-234
+word bonjour		12-245
+word bonjours		12-245-234
+word bonne		12-1345
+word bonnes		12-1345-234
+word bonnement		12-1345-134
+word bonté		12-135
+word bontés		12-135-234
+word boulevard		12-145
+word boulevards		12-145-234
+word braille		23-123
+word branchage		23-12356-1245
+word branchages		23-12356-1245-234
+word branche		23-12356
+word branches		23-12356-234
+word branchement	23-12356-134
+word branchements	23-12356-134-234
+word brave		23-1236
+word braves		23-1236-234
+word bravement		23-1236-134
+word bruit		23-2345
+word bruits		23-2345-234
+word brusque		23-12345
+word brusques		23-12345-234
+word brusquement	23-12345-134
+word budget		12-1245
+word budgets		12-1245-234
+word budgétaire		12-1245-1235
+word budgétaires	12-1245-1235-234
+
+word caractère		14-2346
+word caractères		14-2346-234
+word caractéristique	14-123456-12345
+word caractéristiques	14-123456-12345-234
+word ceci		14-14
+word cela		14-1
+word celle		14-123
+word celles		14-123-234
+word celui-ci		36-36-14-24
+word celui-là		36-36-123-12356
+word cependant		14-1234
+word certain		14-35
+word certains		14-35-234
+word certaine		14-1345
+word certaines		14-1345-234
+word certainement	14-1345-134
+word certes		14-236
+word certitude		14-236-145
+word certitudes		14-236-145-234
+word ces		14-234
+word cette		14-2345
+word ceux		14-1346
+word chacun		12356-14
+word chacune		12356-1345
+word chagrin		12356-12456
+word chagrins		12356-12456-234
+word chaleur		12356-123
+word chaleurs		12356-123-234
+word chaleureuse	12356-123-234-15
+word chaleureuses	12356-123-234-156
+word chaleureusement	12356-123-234-134
+word chaleureux		12356-123-1346
+word champ		12356-1234
+word champs		12356-1234-234
+word change		12356-1245
+word changes		12356-1245-234
+word changement		12356-1245-134
+word changeur		12356-1245-46
+word changeurs		12356-1245-46-234
+word chaque		12356-12345
+word charitable		12356-2345-45
+word charitables		12356-2345-45-234
+word charitablement	12356-2345-45-134
+word charité		12356-2345
+word charités		12356-2345-234
+word chaud		12356-145
+word chauds		12356-145-234
+word chaude		12356-145-15
+word chaudes		12356-145-156
+word chaudement		12356-145-134
+word chemin		12356-134
+word chemins		12356-134-234
+word chère		12356-2346
+word chères		12356-2346-234
+word chèrement		12356-2346-134
+word chez		12356-1356
+word chiffrage		12356-124-1245
+word chiffrages		12356-124-1245-234
+word chiffre		12356-124
+word chiffres		12356-124-234
+word choeur		12356-1235
+word choeurs		12356-1235-234
+word choix		12356-1346
+word chose		12356-234
+word choses		12356-234-234
+word circonstance	14-25-14
+word circonstances	14-25-14-234
+word circonstanciel	14-25-14-123
+word circonstanciels	14-25-14-123-234
+word circonstancielle	14-25-14-123-123
+word circonstancielles	14-25-14-123-123-234
+word civil		14-1236
+word civils		14-1236-234
+word civile		14-1236-15
+word civiles		14-1236-156
+word civilement		14-1236-134
+word civilisation	14-1236-16
+word civilisations	14-1236-16-234
+word civilité		14-1236-2345
+word civilités		14-1236-2345-234
+word coeur		14-1235
+word coeurs		14-1235-234
+word combien		14-12
+word comme		14-134
+word commencement	36-134
+word commencements	36-134-234
+word comment		14-26
+word commentaire	14-26-1235
+word commentaires	14-26-1235-234
+word commentateur	14-26-46
+word commentateurs	14-26-46-234
+word commun		36-1345
+word communs		36-1345-234
+word commune		36-1345-15
+word communes		36-1345-156
+word communal		36-1345-123
+word communale		36-1345-123-15
+word communales		36-1345-123-156
+word communautaire	36-1345-2345-1235
+word communautaires	36-1345-2345-1235-234
+word communauté		36-1345-2345
+word communautés		36-1345-2345-234
+word communaux		36-1345-1346
+word communément	36-1345-134
+word communion		36-1345-3456
+word communions		36-1345-3456-234
+word complément		36-1246-134
+word compléments	36-1246-134-234
+word complémentaire	36-1246-134-1235
+word complémentaires	36-1246-134-1235-234
+word complet		36-1246
+word complets		36-1246-234
+word complète		36-2345
+word complètes		36-2345-234
+word complètement	36-2345-134
+word conclusion		25-14
+word conclusions	25-14-234
+word condition		25-145
+word conditions		25-145-234
+word conditionnel	25-145-123
+word conditionnels	25-145-123-234
+word conditionnelle	25-145-123-123
+word conditionnelles	25-145-123-123-234
+word conditionnellement	25-145-123-134
+word confiance		25-124-14
+word confiant		25-124
+word congrès		25-12456
+word connaissance	25-1345-14
+word connaissances	25-1345-14-234
+word connaître		25-1345
+word consciemment	25-234-134
+word conscience		25-234-14
+word consciences	25-234-14-234
+word consciencieuse	25-234-14-234-15
+word consciencieuses	25-234-14-234-156
+word consciencieusement	25-234-14-234-134
+word consciencieux	25-234-14-1346
+word conscient		25-234
+word conscients		25-234-234
+word consciente		25-234-15
+word conscientes	25-234-156
+word conséquemment	14-12345-134
+word conséquence	14-12345-14
+word conséquences	14-12345-14-234
+word conséquent		14-12345
+word conséquents	14-12345-234
+word conséquente	14-12345-15
+word conséquentes	14-12345-156
+word considérable	14-145
+word considérables	14-145-234
+word considérablement	14-145-134
+word considération	14-145-16
+word considérations	14-145-16-234
+word contraire		14-356
+word contraires		14-356-234
+word contrairement	14-356-134
+word conversation	25-1236
+word conversations	25-1236-234
+word côté		14-1456
+word côtés		14-1456-234
+word couple		14-1246
+word couples		14-1246-234
+word courage		14-1245
+word courageuse		14-1245-234-15
+word courageuses		14-1245-234-156
+word courageusement	14-1245-234-134
+word courageux		14-1245-1346
+
+word danger		145-1245
+word dangers		145-1245-234
+word dangeureuse	145-1245-234-15
+word dangeureuses	145-1245-234-156
+word dangeureusement	145-1245-234-134
+word dangeureux		145-1245-1346
+word davantage		145-1
+word debout		145-12
+word dedans		145-145
+word degré		145-12456
+word degrés		145-12456-234
+word dehors		145-125
+word déjà		145-245
+word demain		145-134
+word depuis		145-1234
+word dernier		145-1345
+word derniers		145-1345-234
+word dernière		145-1235
+word dernières		145-1235-234
+word dernièrement	145-1235-134
+word derrière		145-236
+word derrières		145-236-234
+word des		145-234
+word désormais		145-34
+word desquels		145-234-12345-123-234
+word desquelles		145-234-12345-123-123-234
+word destin		145-35
+word destins		145-35-234
+word destinataire	145-35-1235
+word destinataires	145-35-1235-234
+word destination	145-35-16
+word destinations	145-35-16-234
+word devant		145-1236
+word devants		145-1236-234
+word différemment	145-345-134
+word différence		145-26-14
+word différences	145-26-14-234
+word différent		145-26
+word différents		145-26-234
+word différente		145-26-15
+word différentes	145-26-156
+word difficile		145-124
+word difficiles		145-124-234
+word difficilement	145-124-134
+word difficulté		145-124-2345
+word difficultés	145-124-2345-234
+word digne		145-2356
+word dignes		145-2356-234
+word dignement		145-2356-134
+word dignitaire		145-2356-2345-1235
+word dignitaires	145-2356-2345-1235-234
+word dignité		145-2356-2345
+word discours		256-14
+word dispositif		256-1234-124
+word dispositifs	256-1234-124-234
+word disposition	256-1234
+word dispositions	256-1234-234
+word distance		256-2345-14
+word distances		256-2345-14-234
+word distant		256-2345
+word distants		256-2345-234
+word distante		256-2345-15
+word distantes		256-2345-156
+word donc		145-14
+word dont		145-2345
+word douleur		145-123
+word douleurs		145-123-234
+word douloureuse	145-123-234-15
+word douloureuses	145-123-234-156
+word douloureusement	145-123-234-134
+word douloureux		145-123-1346
+word doute		145-1256
+word doutes		145-1256-234
+word duquel		145-12345-123
+
+word effectif		15-124-124
+word effectifs		15-124-124-234
+word effective		15-124-1236
+word effectives		15-124-1236-234
+word effectivement	15-124-1236-134
+word effet		15-124
+word effets		15-124-234
+word égal		123456-1245
+word égale		123456-1245-15
+word égales		123456-1245-156
+word également		123456-1245-134
+word égalitaire		123456-1245-2345-1235
+word égalitaires	123456-1245-2345-1235-234
+word égalité		123456-1245-2345
+word égalités		123456-1245-2345-234
+word égaux		123456-1245-1346
+word élément		123456-123
+word éléments		123456-123-234
+word élémentaire	123456-123-1235
+word élémentaires	123456-123-1235-234
+word encore		26-14
+word endroit		26-145
+word endroits		26-145-234
+word énergie		123456-1345
+word énergies		123456-1345-234
+word énergique		123456-1345-12345
+word énergiques		123456-1345-12345-234
+word énergiquement	123456-1345-12345-134
+word enfin		26-124
+word ennui		26-1345
+word ennuis		26-1345-234
+word ennuyeuse		26-1345-234-15
+word ennuyeuses		26-1345-234-156
+word ennuyeux		26-1345-1346
+word enquête		26-12345
+word enquêtes		26-12345-234
+word enquêteur		26-12345-46
+word enquêteurs		26-12345-46-234
+word enquêteuse		26-12345-234-15
+word enquêteuses	26-12345-234-156
+word ensemble		26-345
+word ensembles		26-345-234
+word ensuite		26-234
+word entier		26-2345
+word entiers		26-2345-234
+word entière		26-1235
+word entières		26-1235-234
+word entièrement	26-1235-134
+word environ		26-1236
+word espèce		156-1234
+word espèces		156-1234-234
+word espérance		156-1235-14
+word espérances		156-1235-14-234
+word espoir		156-1235
+word espoirs		156-1235-234
+word esprit		15-235
+word esprits		15-235-234
+word essentiel		156-123
+word essentiels		156-123-234
+word essentielle	156-123-123
+word essentielles	156-123-123-234
+word essentiellement	156-123-134
+word étant		123456-2345
+word être		126-356
+word êtres		126-356-234
+word événement		123456-1236
+word événements		123456-1236-234
+word éventualité	123456-1236-123-2345
+word éventualités	123456-1236-123-2345-234
+word éventuel		123456-1236-123
+word éventuels		123456-1236-123-234
+word éventuelle		123456-1236-123-123
+word éventuelles	123456-1236-123-123-234
+word éventuellement	123456-1236-123-134
+word excellemment	1346-123-134
+word excellence		1346-123-14
+word excellences	1346-123-14-234
+word excellent		1346-123
+word excellents		1346-123-234
+word excellente		1346-123-15
+word excellentes	1346-123-156
+word excès		1346-14
+word excessif		1346-14-124
+word excessifs		1346-14-124-234
+word excessive		1346-14-1236
+word excessives		1346-14-1236-234
+word excessivement	1346-14-1236-134
+word exercice		1346-236
+word exercices		1346-236-234
+word expérience		1346-1234
+word expériences	1346-1234-234
+word expérimental	1346-1234-123
+word expérimentale	1346-1234-123-15
+word expérimentales	1346-1234-123-156
+word expérimentallement	1346-1234-123-134
+word expérimentateur	1346-1234-46
+word expérimentateurs	1346-1234-46-234
+word expérimentation	1346-1234-16
+word expérimentations	1346-1234-16-234
+word expérimentaux	1346-1234-1346
+word explicable		1346-1246-45
+word explicables	1346-1246-45-234
+word explicatif		1346-1246-124
+word explicatifs	1346-1246-124-234
+word explication	1346-1246
+word explications	1346-1246-234
+word explicative	1346-1246-1236
+word explicatives	1346-1246-1236-234
+word expressif		1346-235-124
+word expressifs		1346-235-124-234
+word expression		1346-235
+word expressions	1346-235-234
+word expressive		1346-235-1236
+word expressives	1346-235-1236-234
+word expressivement	1346-235-1236-134
+word extérieur		1346-2345
+word extérieurs		1346-2345-234
+word extérieure		1346-2345-15
+word extérieures	1346-2345-156
+word extérieurement	1346-2345-134
+word extrême		1346-356
+word extrêmes		1346-356-234
+word extrêmement	1346-356-134
+word extrémité		1346-356-2345
+word extrémités		1346-356-2345-234
+
+word facile		124-14
+word faciles		124-14-234
+word facilement		124-14-134
+word facilité		124-14-2345
+word facilités		124-14-2345-234
+word faubourg		124-12
+word faubourgs		124-12-234
+word faut		124-2345
+word faute		124-2345-15
+word fautes		124-2345-15-234
+word fautif		124-2345-124
+word fautifs		124-2345-124-234
+word fautive		124-2345-1236
+word fautives		124-2345-1236-234
+word faveur		124-1236
+word faveurs		124-1236-234
+word favorable		124-1236-45
+word favorables		124-1236-45-234
+word favorablement	124-1236-45-134
+word féminin		124-134-35
+word féminins		124-134-35-234
+word féminine		124-134-1345
+word féminines		124-134-1345-234
+word femme		124-134
+word femmes		124-134-234
+word fête		124-126
+word fêtes		124-126-234
+word fidèle		124-145
+word fidèles		124-145-234
+word fidèlement		124-145-134
+word fidélité		124-145-2345
+word fidélités		124-145-2345-234
+word figuratif		124-1245-124
+word figuratifs		124-1245-124-234
+word figuration		124-1245-16
+word figurations	124-1245-16-234
+word figurative		124-1245-1236
+word figuratives	124-1245-1236-234
+word figure		124-1245
+word figures		124-1245-234
+word fille		124-123
+word filles		124-123-234
+word fils		124-234
+word fonction		124-346
+word fonctions		124-346-234
+word fonctionnaire	124-346-1235
+word fonctionnaires	124-346-1235-234
+word fonctionnel	124-346-123
+word fonctionnels	124-346-123-234
+word fonctionnelle	124-346-123-123
+word fonctionnelles	124-346-123-123-234
+word fonctionnement	124-346-134
+word fonctionnements	124-346-134-234
+word force		124-135
+word forces		124-135-234
+word forcément		124-135-134
+word fortune		124-1345
+word fortunes		124-1345-234
+word fraternel		124-1235-123
+word fraternels		124-1235-123-234
+word fraternelle	124-1235-123-123
+word fraternelles	124-1235-123-123-234
+word fraternellement	124-1235-123-134
+word fraternisation	124-1235-16
+word fraternisations	124-1235-16-234
+word fraternité		124-1235-2345
+word fraternités	124-1235-2345-234
+word fréquemment	124-12345-134
+word fréquence		124-12345-14
+word fréquences		124-12345-14-234
+word fréquent		124-12345
+word fréquents		124-12345-234
+word fréquente		124-12345-15
+word fréquentes		124-12345-156
+word fréquentation	124-12345-16
+word fréquentations	124-12345-16-234
+word frère		124-1235
+word frères		124-1235-234
+
+word garde		1245-145
+word gardes		1245-145-234
+word général		1245-1345
+word générale		1245-1345-15
+word générales		1245-1345-156
+word généralement	1245-1345-134
+word généralisation	1245-1345-16
+word généralisations	1245-1345-16-234
+word généralité		1245-1345-2345
+word généralités	1245-1345-2345-234
+word généraux		1245-1345-1346
+word généreuse		1245-234-15
+word généreuses		1245-234-156
+word généreusement	1245-234-134
+word généreux		1245-1346
+word générosité		1245-234-2345
+word générosités	1245-234-2345-234
+word gloire		1245-1235
+word gloires		1245-1235-234
+word glorieuse		1245-1235-234-15
+word glorieuses		1245-1235-234-156
+word glorieusement	1245-1235-234-134
+word glorieux		1245-1235-1346
+word gouvernement	1245-1236
+word gouvernements	1245-1236-234
+word gouvernemental	1245-1236-123
+word gouvernementale	1245-1236-123-15
+word gouvernementales	1245-1236-123-156
+word gouvernementaux	1245-1236-1346
+word gouverneur		1245-1236-46
+word gouverneurs	1245-1236-46-234
+word grâce		12456-14
+word grâces		12456-14-234
+word gracieuse		12456-14-234-15
+word gracieuses		12456-14-234-156
+word gracieusement	12456-14-234-134
+word gracieux		12456-14-1346
+word grande		12456-145
+word grandes		12456-145-234
+word grandement		12456-145-134
+word grandeur		12456-46
+word grandeurs		12456-46-234
+word grave		12456-1236
+word graves		12456-1236-234
+word gravement		12456-1236-134
+word gravitation	12456-1236-2345-16
+word gravitations	12456-1236-2345-16-234
+word gravité		12456-1236-2345
+word gravités		12456-1236-2345-234
+word groupe		12456-1234
+word groupes		12456-1234-234
+word groupement		12456-1234-134
+word groupements	12456-1234-134-234
+word guère		1245-2346
+word guerre		1245-236
+word guerres		1245-236-234
+
+word habitude		125-12
+word habitudes		125-12-234
+word habituel		125-12-123
+word habituels		125-12-123-234
+word habituelle		125-12-123-123
+word habituelles	125-12-123-123-234
+word habituellement	125-12-123-134
+word hasard		125-145
+word hasards		125-145-234
+word hasardeuse		125-145-234-15
+word hasardeuses	125-145-234-156
+word hasardeux		125-145-1346
+word hélas		125-123
+word heure		125-1235
+word heures		125-1235-234
+word heureuse		125-234-15
+word heureuses		125-234-156
+word heureusement	125-234-134
+word heureux		125-1346
+word hier		125-236
+word histoire		125-2345
+word histoires		125-2345-234
+word historique		125-2345-12345
+word historiques	125-2345-12345-234
+word historiquement	125-2345-12345-134
+word hiver		125-1236
+word hivers		125-1236-234
+word hivernal		125-1236-123
+word hivernaux		125-1236-1346
+word hommage		125-1245
+word hommages		125-1245-234
+word homme		125-134
+word hommes		125-134-234
+word honnête		125-126
+word honnêtes		125-126-234
+word honnêtement	125-126-134
+word honnêteté		125-126-2345
+word honnêtetés		125-126-2345-234
+word honneur		125-1345
+word honneurs		125-1345-234
+word honorabilité	125-1345-12-123-2345
+word honorabilités	125-1345-12-123-2345-234
+word honorable		125-1345-45
+word honorables		125-1345-45-234
+word honorablement	125-1345-45-134
+word honoraire		125-1345-1235
+word honoraires		125-1345-1235-234
+word horaire		125-1235-1235
+word horaires		125-1235-1235-234
+word horizon		125-1356
+word horizons		125-1356-234
+word horizontal		125-1356-123
+word horizontale	125-1356-123-15
+word horizontales	125-1356-123-156
+word horizontalement	125-1356-123-134
+word horizontalité	125-1356-123-2345
+word horizontalités	125-1356-123-2345-234
+word horizontaux	125-1356-1346
+word hypothèse		125-1234
+word hypothèses		125-1234-234
+word hypothétique	125-1234-12345
+word hypothétiques	125-1234-12345-234
+word hypothétiquement	125-1234-12345-134
+word humain		125-134-35
+word humains		125-134-35-234
+word humaine		125-134-1345
+word humaines		125-134-1345-234
+word humainement	125-134-1345-134
+word humanitaire	125-134-1345-2345-1235
+word humanitaires	125-134-1345-2345-1235-234
+word humanité		125-134-1345-2345
+word humanités		125-134-1345-2345-234
+
+word idéal		24-145-123
+word idéale		24-145-123-15
+word idéales		24-145-123-156
+word idéalement		24-145-123-134
+word idéaux		24-145-1346
+word idée		24-145
+word idées		24-145-234
+word image		24-1245
+word images		24-1245-234
+word imaginable		24-1245-45
+word imaginables	24-1245-45-234
+word imaginaire		24-1245-1235
+word imaginaires	24-1245-1235-234
+word imagination	24-1245-16
+word immédiat		24-134
+word immédiats		24-134-234
+word immédiate		24-134-15
+word immédiates		24-134-156
+word immédiatement	24-134-134
+word impression		246-235
+word impressions	246-235-234
+word impressionnable	246-235-45
+word impressionnables	246-235-45-234
+word inférieur		35-124
+word inférieurs		35-124-234
+word inférieure		35-124-15
+word inférieures	35-124-156
+word inférieurement	35-124-134
+word infériorité	35-124-2345
+word infériorités	35-124-2345-234
+word inquiet		35-12345
+word inquiets		35-12345-234
+word inquiète		35-2346
+word inquiètes		35-2346-234
+word inquiétude		35-12345-145
+word inquiétudes	35-12345-145-234
+word intelligemment	35-1245-134
+word intelligence	35-1245-14
+word intelligent	35-1245
+word intelligents	35-1245-234
+word intelligente	35-1245-15
+word intelligentes	35-1245-156
+word intérieur		35-2345
+word intérieurs		35-2345-234
+word intérieure		35-2345-15
+word intérieures	35-2345-156
+word intérieurement	35-2345-134
+
+word jadis		245-145
+word jamais		245-134
+word jeune		245-1345
+word jeunes		245-1345-234
+word jour		245-1235
+word jours		245-1235-234
+word journal		245-1235-123
+word journaux		245-1235-1346
+word joyeuse		245-234-15
+word joyeuses		245-234-156
+word joyeusement	245-234-134
+word joyeux		245-1346
+word juge		245-1245
+word juges		245-1245-234
+word jugement		245-1245-134
+word jugements		245-1245-134-234
+word jusque		245-12345
+word juste		245-2345
+word justes		245-2345-234
+word justement		245-2345-134
+word justice		245-14
+
+word laquelle		123-123-123
+word lecture		123-1235
+word lectures		123-1235-234
+word lequel		123-123
+word lesquelles		123-123-123-234
+word lesquels		123-123-234
+word lettre		123-356
+word lettres		123-356-234
+word libéral		123-12-123
+word libérale		123-12-123-15
+word libérales		123-12-123-156
+word libéralement	123-12-123-134
+word libéralité		123-12-123-2345
+word libéralités	123-12-123-2345-234
+word libérateur		123-12-46
+word libérateurs	123-12-46-234
+word libération		123-12-16
+word libérations	123-12-16-234
+word libéraux		123-12-1346
+word liberté		123-12-2345
+word libertés		123-12-2345-234
+word libre		123-12
+word libres		123-12-234
+word librement		123-12-134
+word ligne		123-2356
+word lignes		123-2356-234
+word livre		123-1236
+word livres		123-1236-234
+word logique		123-1245-12345
+word logiques		123-1245-12345-234
+word logiquement	123-1245-12345-134
+word loin		123-1345
+word loins		123-1345-234
+word lointain		123-1345-35
+word lointains		123-1345-35-234
+word lointaine		123-1345-1345
+word lointaines		123-1345-1345-234
+word longtemps		123-2345
+word lorsque		123-12345
+word lourd		123-145
+word lourds		123-145-234
+word lourde		123-145-15
+word lourdes		123-145-156
+word lourdement		123-145-134
+word lourdeur		123-145-46
+word lourdeurs		123-145-46-234
+word lumière		123-134
+word lumières		123-134-234
+word lumineuse		123-134-234-15
+word lumineuses		123-134-234-156
+word lumineusement	123-134-234-134
+word lumineux		123-134-1346
+word luminosité		123-134-234-2345
+word luminosités	123-134-234-2345-234
+
+word madame		134-145
+word mademoiselle	134-134
+word magnificence	134-2356-14
+word magnificences	134-2356-14-234
+word magnifique		134-2356
+word magnifiques	134-2356-234
+word magnifiquement	134-2356-134
+word maintenant		134-2345
+word malgré		134-12456
+word malheur		134-125
+word malheurs		134-125-234
+word malheureuse	134-125-234-15
+word malheureuses	134-125-234-156
+word malheureusement	134-125-234-134
+word malheureux		134-125-1346
+word manière		134-1345
+word manières		134-1345-234
+word mauvais		134-1236
+word mauvaise		134-1236-15
+word mauvaises		134-1236-156
+word meilleur		134-123
+word meilleurs		134-123-234
+word meilleure		134-123-15
+word meilleures		134-123-156
+word merci		134-14
+word mère		134-2346
+word mères		134-2346-234
+word mes		134-234
+word mesdames		134-145-234
+word mesdemoiselles	134-134-234
+word messieurs		134-1235-234
+word mettre		134-356
+word mieux		134-1346
+word mission		134-3456
+word missions		134-3456-234
+word missionnaire	134-3456-1235
+word missionnaires	134-3456-1235-234
+word mobile		134-12
+word mobiles		134-12-234
+word mobilisation	134-12-16
+word mobilisations	134-12-16-234
+word mobilité		134-12-2345
+word mobilités		134-12-2345-234
+word moins		134-35
+word moment		134-26
+word moments		134-26-234
+word momentanément	134-26-134
+word monsieur		134-1235
+word multiple		134-1246
+word multiples		134-1246-234
+word multiplicateur	134-1246-46
+word multiplicateurs	134-1246-46-234
+word multiplication	134-1246-16
+word multiplications	134-1246-16-234
+word multiplicité	134-1246-2345
+word multiplicités	134-1246-2345-234
+word musique		134-12345
+word musiques		134-12345-234
+word mystère		134-13456
+word mystères		134-13456-234
+word mystérieuse	134-13456-234-15
+word mystérieuses	134-13456-234-156
+word mystérieusement	134-13456-234-134
+word mystérieux		134-13456-1346
+
+word naguère		1345-1245
+word nation		1345-16
+word nations		1345-16-234
+word national		1345-16-123
+word nationale		1345-16-123-15
+word nationales		1345-16-123-156
+word nationalité	1345-16-123-2345
+word nationalités	1345-16-123-2345-234
+word nationaux		1345-16-1346
+word nature		1345-2345
+word natures		1345-2345-234
+word naturel		1345-2345-123
+word naturels		1345-2345-123-234
+word naturelle		1345-2345-123-123
+word naturelles		1345-2345-123-123-234
+word naturellement	1345-2345-123-134
+word néanmoins		1345-134
+word nécessaire		1345-14
+word nécessaires	1345-14-234
+word nécessairement	1345-14-134
+word nécessité		1345-14-2345
+word nécessités		1345-14-2345-234
+word nécessiteuse	1345-14-2345-234-15
+word nécessiteuses	1345-14-2345-234-156
+word nécessiteux	1345-14-2345-1346
+word nombre		1345-12
+word nombres		1345-12-234
+word nombreuse		1345-12-234-15
+word nombreuses		1345-12-234-156
+word nombreux		1345-12-1346
+word nos		1345-234
+word notre		1345-356
+word nôtre		1345-1456
+word nôtres		1345-1456-234
+word nouveau		1345-1236
+word nouveaux		1345-1236-1346
+word nouveauté		1345-1236-2345
+word nouveautés		1345-1236-2345-234
+word nouvel		1345-123
+word nouvelle		1345-123-123
+word nouvelles		1345-123-123-234
+word nouvellement	1345-123-134
+
+word objectif		135-245-124
+word objectifs		135-245-124-234
+word objection		135-245-3456
+word objections		135-245-3456-234
+word objective		135-245-1236
+word objectives		135-245-1236-234
+word objectivement	135-245-1236-134
+word objectivité	135-245-1236-2345
+word objectivités	135-245-1236-2345-234
+word objet		135-245
+word objets		135-245-234
+word observateur	135-12-46
+word observateurs	135-12-46-234
+word observation	135-12
+word observations	135-12-234
+word occasion		135-14
+word occasions		135-14-234
+word occasionnel	135-14-123
+word occasionnels	135-14-123-234
+word occasionnelle	135-14-123-123
+word occasionnelles	135-14-123-123-234
+word occasionnellement	135-14-123-134
+word oeuvre		246-1236
+word oeuvres		246-1236-234
+word office		135-124
+word offices		135-124-234
+word officiel		135-124-123
+word officiels		135-124-123-234
+word officielle		135-124-123-123
+word officielles		135-124-123-123-234
+word officiellement	135-124-123-134
+word officieuse		135-124-234-15
+word officieuses	135-124-234-156
+word officieusement	135-124-234-134
+word officieux		135-124-1346
+word opinion		135-1234
+word opinions		135-1234-234
+word ordinaire		56-145
+word ordinaires		56-145-234
+word ordinairement	56-145-134
+word originaire		135-1245-1235
+word originaires	135-1245-1235-234
+word originairement	135-1245-1235-134
+word original		135-1245-123
+word originale		135-1245-123-15
+word originales		135-1245-123-156
+word originalement	135-1245-123-134
+word originalité	135-1245-123-2345
+word originalités	135-1245-123-2345-234
+word originaux		135-1245-1346
+word origine		135-1245
+word origines		135-1245-234
+word outrage		1256-356-1245
+word outrages		1256-356-1245-234
+word outrageuse		1256-356-1245-234-15
+word outrageuses	1256-356-1245-234-156
+word outrageusement	1256-356-1245-234-134
+word outrageux		1256-356-1245-1346
+word outre		1256-356
+word ouvrage		1256-1245
+word ouvrages		1256-1245-234
+word ouvrier		1256-1236
+word ouvriers		1256-1236-234
+word ouvrière		1256-2346
+word ouvrières		1256-2346-234
+
+word parfois		1234-124
+word parmi		1234-134
+word parole		1234-1235
+word paroles		1234-1235-234
+word particularité	1234-1235-123-2345
+word particularités	1234-1235-123-2345-234
+word particulier	1234-123
+word particuliers	1234-123-234
+word particulière	1234-123-1235
+word particulières	1234-123-1235-234
+word particulièrement	1234-123-1235-134
+word partout		1234-1
+word pas		1234-234
+word pauvre		1234-1236
+word pauvres		1234-1236-234
+word pauvrement		1234-1236-134
+word pauvreté		1234-1236-2345
+word pauvretés		1234-1236-2345-234
+word pendant		1234-145
+word pensée		1234-26
+word pensées		1234-26-234
+word pensif		1234-26-124
+word pensifs		1234-26-124-234
+word pensive		1234-26-1236
+word pensives		1234-26-1236-234
+word pensivement	1234-26-1236-134
+word père		1234-2346
+word pères		1234-2346-234
+word personnage		1234-1345-1245
+word personnages	1234-1345-1245-234
+word personnalité	1234-1345-123-2345
+word personnalités	1234-1345-123-2345-234
+word personne		1234-1345
+word personnes		1234-1345-234
+word personnel		1234-1345-123
+word personnels		1234-1345-123-234
+word personnelle	1234-1345-123-123
+word personnelles	1234-1345-123-123-234
+word personnellement	1234-1345-123-134
+word petit		1234-15
+word petits		1234-15-234
+word petite		1234-15-15
+word petites		1234-15-156
+word peuple		1234-1246
+word peuples		1234-1246-234
+word peuplement		1234-1246-134
+word peuplements	1234-1246-134-234
+word place		1246-14
+word places		1246-14-234
+word placement		1246-14-134
+word placements		1246-14-134-234
+word plaisir		1246-1235
+word plaisirs		1246-1235-234
+word plusieurs		1246-234
+word plutôt		1246-2345
+word point		1234-2345
+word points		1234-2345-234
+word pointe		1234-2345-15
+word pointes		1234-2345-15-234
+word populaire		1234-1234-1235
+word populaires		1234-1234-1235-234
+word populairement	1234-1234-1235-134
+word popularité		1234-1234-1235-2345
+word popularités	1234-1234-1235-2345-234
+word population		1234-1234
+word populations	1234-1234-234
+word populeuse		1234-1234-234-15
+word populeuses		1234-1234-234-156
+word populeux		1234-1234-1346
+word possibilité	1234-12-2345
+word possibilités	1234-12-2345-234
+word possible		1234-12
+word possibles		1234-12-234
+word pourquoi		1234-23456
+word pourtant		1234-135
+word praticable		235-2345-45
+word praticables	235-2345-45-234
+word pratique		235-2345
+word pratiques		235-2345-234
+word pratiquement	235-2345-134
+word premier		235-134
+word premiers		235-134-234
+word première		235-1235
+word premières		235-1235-234
+word premièrement	235-1235-134
+word près		235-234
+word presque		235-12345
+word preuve		235-1236
+word preuves		235-1236-234
+word primitif		235-134-124
+word primitifs		235-134-124-234
+word primitive		235-134-1236
+word primitives		235-134-1236-234
+word primitivement	235-134-1236-134
+word principal		235-14-123
+word principale		235-14-123-15
+word principales	235-14-123-156
+word principalement	235-14-123-134
+word principaux		235-14-1346
+word principe		235-14
+word principes		235-14-234
+word prix		235-1346
+word probabilité	235-12-2345
+word probabilités	235-12-2345-234
+word probable		235-12
+word probables		235-12-234
+word probablement	235-12-134
+word prochain		235-12356
+word prochains		235-12356-234
+word prochaine		235-1345
+word prochaines		235-1345-234
+word prochainement	235-1345-134
+word producteur		235-145-46
+word producteurs	235-145-46-234
+word productif		235-145-124
+word productifs		235-145-124-234
+word production		235-145-3456
+word productions	235-145-3456-234
+word productive		235-145-1236
+word productives	235-145-1236-234
+word productivement	235-145-1236-134
+word productivité	235-145-1236-2345
+word productivités	235-145-1236-2345-234
+word produit		235-145
+word produits		235-145-234
+word profit		235-124
+word profits		235-124-234
+word profitable		235-124-45
+word profitables	235-124-45-234
+word profiteur		235-124-46
+word profiteurs		235-124-46-234
+word profiteuse		235-124-234-15
+word profiteuses	235-124-234-156
+word progrès		235-12456
+word progressif		235-12456-124
+word progressifs	235-12456-124-234
+word progression	235-12456-3456
+word progressions	235-12456-3456-234
+word progressive	235-12456-1236
+word progressives	235-12456-1236-234
+word progressivement	235-12456-1236-134
+word projecteur		235-245-46
+word projecteurs	235-245-46-234
+word projection		235-245-3456
+word projections	235-245-3456-234
+word projet		235-245
+word projets		235-245-234
+word proportion		235-1234
+word proportions	235-1234-234
+word proportionnalité	235-1234-123-2345
+word proportionnalités	235-1234-123-2345-234
+word proportionnel	235-1234-123
+word proportionnels	235-1234-123-234
+word proportionnelle	235-1234-123-123
+word proportionnelles	235-1234-123-123-234
+word proportionnellement 235-1234-123-134
+word proposition	235-246
+word propositions	235-246-234
+word puisque		1234-12345
+word puissance		1234-14
+word puissances		1234-14-234
+
+word qualitatif		12345-123-2345-124
+word qualitatifs	12345-123-2345-124-234
+word qualitative	12345-123-2345-1236
+word qualitatives	12345-123-2345-1236-234
+word qualitativement	12345-123-2345-1236-134
+word qualité		12345-123-2345
+word qualités		12345-123-2345-234
+word quand		12345-145
+word quant		12345-2345
+word quantitatif	12345-2345-2345-124
+word quantitatifs	12345-2345-2345-124-234
+word quantitative	12345-2345-2345-1236
+word quantitatives	12345-2345-2345-1236-234
+word quantitativement	12345-2345-2345-1236-134
+word quantité		12345-2345-2345
+word quantités		12345-2345-2345-234
+word quel		12345-123
+word quels		12345-123-234
+word quelle		12345-123-123
+word quelles		12345-123-123-234
+word quelconque		12345-14
+word quelconques	12345-14-234
+word quelque		12345-12345
+word quelques		12345-12345-234
+word quelquefois	12345-124
+word question		12345-3456
+word questions		12345-3456-234
+word questionnaire	12345-3456-1235
+word questionnaires	12345-3456-1235-234
+word quiconque		12345-346
+word quoique		12345-15
+
+word raison		1235-346
+word raisons		1235-346-234
+word raisonnable	1235-346-45
+word raisonnables	1235-346-45-234
+word raisonnablement	1235-346-45-134
+word raisonnement	1235-346-134
+word raisonnements	1235-346-134-234
+word rapport		1235-1234
+word rapports		1235-1234-234
+word rapporteur		1235-1234-46
+word rapporteurs	1235-1234-46-234
+word rare		1235-1235
+word rares		1235-1235-234
+word rarement		1235-1235-134
+word rareté		1235-1235-2345
+word raretés		1235-1235-2345-234
+word réalisable		1235-123-45
+word réalisables	1235-123-45-234
+word réalisateur	1235-123-46
+word réalisateurs	1235-123-46-234
+word réalisation	1235-123-16
+word réalisations	1235-123-16-234
+word réalité		1235-123-2345
+word réalités		1235-123-2345-234
+word réel		1235-123
+word réels		1235-123-234
+word réelle		1235-123-123
+word réelles		1235-123-123-234
+word réellement		1235-123-134
+word réflexion		1235-124
+word réflexions		1235-124-234
+word regard		1235-1245
+word regards		1235-1245-234
+word regret		1235-12456
+word regrets		1235-12456-234
+word regrettable	1235-12456-45
+word regrettables	1235-12456-45-234
+word relatif		1235-2345-124
+word relatifs		1235-2345-124-234
+word relation		1235-2345
+word relations		1235-2345-234
+word relative		1235-2345-1236
+word relatives		1235-2345-1236-234
+word relativement	1235-2345-1236-134
+word relativité		1235-2345-1236-2345
+word relativités	1235-2345-1236-2345-234
+word remarquable	1235-12345-45
+word remarquables	1235-12345-45-234
+word remarquablement	1235-12345-45-134
+word remarque		1235-12345
+word remarques		1235-12345-234
+word remerciement	1235-134
+word remerciements	1235-134-234
+word renseignement	1235-26
+word renseignements	1235-26-234
+word rêve		1235-126
+word rêves		1235-126-234
+word rêveur		1235-126-46
+word rêveurs		1235-126-46-234
+word rêveuse		1235-126-234-15
+word rêveuses		1235-126-234-156
+word rêveusement	1235-126-234-134
+word rôle		1235-1456
+word rôles		1235-1456-234
+word route		1235-1256
+word routes		1235-1256-234
+word rythme		1235-13456
+word rythmes		1235-13456-234
+word rythmique		1235-13456-12345
+word rythmiques		1235-13456-12345-234
+word rythmiquement	1235-13456-12345-134
+
+word séculaire		234-14-1235
+word séculaires		234-14-1235-234
+word séculairement	234-14-1235-134
+word seigneur		234-2356
+word seigneurs		234-2356-234
+word semblable		234-12
+word semblables		234-12-234
+word semblablement	234-12-134
+word sentiment		234-2345-134
+word sentiments		234-2345-134-234
+word sentimental	234-2345-134-123
+word sentimentale	234-2345-134-123-15
+word sentimentales	234-2345-134-123-156
+word sentimentalement	234-2345-134-123-134
+word sentimentalité	234-2345-134-123-2345
+word sentimentalités	234-2345-134-123-2345-234
+word sentimentaux	234-2345-134-1346
+word ses		234-234
+word seul		234-123
+word seuls		234-123-234
+word seule		234-123-15
+word seules		234-123-156
+word seulement		234-123-134
+word siècle		234-14
+word siècles		234-14-234
+word simple		234-1246
+word simples		234-1246-234
+word simplement		234-1246-134
+word simplicité		234-1246-2345
+word simplicités	234-1246-2345-234
+word simplification	234-1246-16
+word simplifications	234-1246-16-234
+word soeur		234-1235
+word soeurs		234-1235-234
+word soin		234-35
+word soins		234-35-234
+word solitaire		234-123-1235
+word solitaires		234-123-1235-234
+word solitairement	234-123-1235-134
+word solitude		234-123-145
+word solitudes		234-123-145-234
+word sommaire		234-2456-1235
+word sommaires		234-2456-1235-234
+word sommairement	234-2456-1235-134
+word somme		234-2456
+word sommes		234-2456-234
+word sont		234-2345
+word sorte		234-135
+word sortes		234-135-234
+word soudain		234-145
+word soudains		234-145-234
+word soudaine		234-1345
+word soudaines		234-1345-234
+word soudainement	234-1345-134
+word soudaineté		234-1345-2345
+word soudainetés	234-1345-2345-234
+word souffrance		234-124-14
+word souffrances	234-124-14-234
+word souffrant		234-124
+word souffrants		234-124-234
+word souffrante		234-124-15
+word souffrantes	234-124-156
+word souvent		234-1236
+word subjectif		234-245-124
+word subjectifs		234-245-124-234
+word subjective		234-245-1236
+word subjectives	234-245-1236-234
+word subjectivement	234-245-1236-134
+word subjectivité	234-245-1236-2345
+word subjectivités	234-245-1236-2345-234
+word sujet		234-245
+word sujets		234-245-234
+word sujétion		234-245-3456
+word sujétions		234-245-3456-234
+word supérieur		234-1234
+word supérieurs		234-1234-234
+word supérieure		234-1234-15
+word supérieures	234-1234-156
+word supérieurement	234-1234-134
+word supériorité	234-1234-2345
+word supériorités	234-1234-2345-234
+word surtout		234-2345
+word systématique	234-13456-12345
+word systématiques	234-13456-12345-234
+word systématiquement	234-13456-12345-134
+word système		234-13456
+word systèmes		234-13456-234
+
+word tel		2345-123
+word tels		2345-123-234
+word telle		2345-123-123
+word telles		2345-123-123-234
+word tellement		2345-123-134
+word temporaire		2345-1234-1235
+word temporaires	2345-1234-1235-234
+word temporairement	2345-1234-1235-134
+word temporel		2345-1234-123
+word temporels		2345-1234-123-234
+word temporelle		2345-1234-123-123
+word temporelles	2345-1234-123-123-234
+word temps		2345-1234
+word tenir		2345-1345
+word terre		2345-1235
+word terres		2345-1235-234
+word tes		2345-234
+word tête		2345-126
+word têtes		2345-126-234
+word théorie		2345-125
+word théories		2345-125-234
+word théorique		2345-125-12345
+word théoriques		2345-125-12345-234
+word théoriquement	2345-125-12345-134
+word titre		2345-356
+word titres		2345-356-234
+word toujours		2345-245
+word toute		2345-2345
+word toutes		2345-2345-234
+word toutefois		2345-124
+word tragique		356-1245
+word tragiques		356-1245-234
+word tragiquement	356-1245-134
+word trajet		356-245
+word trajets		356-245-234
+word tranquille		356-12345
+word tranquilles	356-12345-234
+word tranquillement	356-12345-134
+word tranquillité	356-12345-2345
+word tranquillités	356-12345-2345-234
+word travail		356-123
+word travailleur	356-123-46
+word travailleurs	356-123-46-234
+word travailleuse	356-123-234-15
+word travailleuses	356-123-234-156
+word travaux		356-1346
+word travers		356-1236
+word très		356-234
+word trop		356-1234
+word type		2345-13456
+word types		2345-13456-234
+word typique		2345-13456-12345
+word typiques		2345-13456-12345-234
+word typiquement	2345-13456-12345-134
+
+word une		136-1345
+word unes		136-1345-234
+word unique		136-12345
+word uniques		136-12345-234
+word uniquement		136-12345-134
+word unitaire		136-1345-2345-1235
+word unitaires		136-1345-2345-1235-234
+word unité		136-1345-2345
+word unités		136-1345-2345-234
+word univers		136-1236
+word universalité	136-1236-123-2345
+word universalités	136-1236-123-2345-234
+word universel		136-1236-123
+word universels		136-1236-123-234
+word universelle	136-1236-123-123
+word universelles	136-1236-123-123-234
+word universellement	136-1236-123-134
+word universitaire	136-1236-2345-1235
+word universitaires	136-1236-2345-1235-234
+word université		136-1236-2345
+word universités	136-1236-2345-234
+word usage		136-1245
+word usages		136-1245-234
+word utile		136-123
+word utiles		136-123-234
+word utilement		136-123-134
+word utilisable		136-123-45
+word utilisables	136-123-45-234
+word utilisateur	136-123-46
+word utilisateurs	136-123-46-234
+word utilisation	136-123-16
+word utilisations	136-123-16-234
+word utilitaire		136-123-2345-1235
+word utilitaires	136-123-2345-1235-234
+word utilité		136-123-2345
+word utilités		136-123-2345-234
+
+word valeur		1236-46
+word valeurs		1236-46-234
+word venir		1236-1345
+word véritable		1236-1235
+word véritables		1236-1235-234
+word véritablement	1236-1235-134
+word vérité		1236-123456
+word vérités		1236-123456-234
+word vieux		1236-1346
+word vif		1236-124
+word vifs		1236-124-234
+word vive		1236-1236
+word vives		1236-1236-234
+word vivement		1236-1236-134
+word voici		1236-14
+word voilà		1236-123
+word volontaire		1236-135-1235
+word volontaires	1236-135-1235-234
+word volontairement	1236-135-1235-134
+word volonté		1236-135
+word volontés		1236-135-234
+word volontiers		1236-346
+word vos		1236-234
+word votre		1236-356
+word vôtre		1236-1456
+word vôtres		1236-1456-234
+word voyage		1236-1245
+word voyages		1236-1245-234
+word voyageur		1236-1245-46
+word voyageurs		1236-1245-46-234
+word voyageuse		1236-1245-234-15
+word voyageuses		1236-1245-234-156
+word vraiment		1236-134
+
+###
+### 4. Locutions
+###
+
+word à\scause 12356-456-14
+word à\smesure 12356-456-134
+word à\speine 12356-456-1234
+word à\speu\sprès 12356-456-1234-456-235
+word à\sprésent 12356-456-235
+word à\stravers 12356-456-356
+word au\scontraire 13-456-14
+word au-dessous 13-36-1256
+word au-dessus 13-36-145
+word aujourd'hui 13-3-125
+word autant\sque 13-456-12345
+word autre\schose 13-456-12356
+word autre\spart 13-456-1234
+word c'est-à-dire 14-3-15-36-12356-36-145
+word d'abord 145-3-1
+word de\ssuite 145-456-234
+word en\smesure 26-456-134
+word en\sréalité 26-456-1235
+word et\scétera 15-456-14
+word la\splupart 123-456-1246
+word non\sseulement 1345-456-234
+word parce\sque 1234-456-12345
+word par\sconséquent 1234-456-14
+word par-dessous 1234-36-1256
+word par-dessus 1234-36-145
+word par\sexemple 1234-456-15
+word par\ssuite 1234-456-234
+word peu\sà\speu 1234-456-12356-456-1234
+word peut-être 1234-36-126
+word plus\stard 1246-456-2345
+word plus\stôt 1246-456-1456
+word pour\sainsi\sdire 1234-456-1-456-145
+word quelque\schose 12345-456-12356
+word quelque\spart 12345-456-1234
+word quelque\stemps 12345-456-2345
+word sans\scesse 234-456-14
+word sans\sdoute 234-456-145
+word tandis\sque 2345-456-12345
+word tour\sà\stour 2345-456-12356-456-2345
+word tout\sà\scoup 16-456-12356-456-14
+word tout\sà\sfait 16-456-12356-456-124
+word très\sbien 356-456-12
+word vis-à-vis 1236-36-12356-36-1236
+
+sufword jusqu' 245-12345-3
+sufword lorsqu' 123-12345-3
+sufword parce\squ' 1234-456-12345-3
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb
new file mode 100644
index 0000000..f741164
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb
@@ -0,0 +1,1794 @@
+# liblouis: French Grade 2 Table
+###############################################################################
+# BRLTTY - A background process providing access to the Linux console (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# Auteur:
+#
+#	Nicolas Pitre <nico@cam.org>
+#
+# Référence:
+#
+#	Index de l'abrégé orthographique français étendu, lecture et écriture
+#	Révision 1993
+#	Service de production Braille, Institut Nazareth et Louis-Braille
+#	Longueuil (Québec)
+
+# Contracted Unified French Table
+# --------------------------------
+
+include fr-fr-g1.utb
+
+###
+### 1. Assemblages de lettres représentés par un seul symbole,
+###    et finales représentées par deux ou trois symboles;
+###
+
+punctuation ' 6		so the line below compiles
+letsign 6
+
+sign ^ 4					so the line: "before con always ar 4" compiles
+sign ~ 5
+
+class voy aeiouyéàèùâêîôûëïüAEIOUYÉÀÈÙÂÊËïü
+class con bcçdfghjklmnpqrstvwxzBCÇDFGHJKLMNPQRSTVWXZ
+class bmp bmpBMP
+
+endword able 45
+always ai 34
+endword ait 146
+before con always an 2
+endword ant 1456
+before con always ar 4
+endword ar 4
+endword ation 16
+always au 13
+
+always bl 45
+before voy always br 23
+
+always ch 12356
+before voy always cl 146
+before con begword com 36
+before con always con 25
+before voy always cr 25
+
+before con begword dis 256
+before voy always dr 1456
+
+endword elle 456
+before con always em 345
+before con always en 26
+endword en 26
+endword ent 126
+before con midword er 236
+endword er 236
+begword es 156
+endword es 156
+word eu 15-136
+always eu 5
+before con always eur 46
+endword eur 46
+before con always ex 1346
+endword ez 1356
+
+before voy always fl 126
+before voy always fr 16
+
+before voy always gl 345
+always gn 2356
+before voy always gr 12456
+
+always ien 256
+always ieu 6
+before bmp begword im 246
+always in 35
+always ion 3456
+endword ition 246
+
+before voy after voy always ll 456
+
+always oi 23456
+before con always om 2456
+endword om 2456
+before con always on 346
+endword on 346
+before con always or 56
+endword or 56
+always ou 1256
+before con always our 12346
+endword our 12346
+
+before voy always pl 1246
+before voy always pr 235
+before con always pro 235
+
+always qu 12345
+endword que 12345
+
+before con begword re 3
+
+before voy after voy always ss 2346
+
+before voy always tr 356
+before con begword trans 356
+before voy after voy always tt 2456
+
+before con always ui 23
+
+endword ablement 45-134
+endword bilité 12-123-2345
+endword bilités 12-123-2345-234
+endword ellement 456-134
+endword logie 123-1245
+endword quement 12345-134
+endword quements 12345-134-234
+endword tement 2345-134
+endword tements 2345-134-234
+endword ttement 2345-2345-134
+endword ttements 2345-2345-134-234
+endword vement 1236-134
+endword vements 1236-134-234
+
+before con always ain 1-35
+endword ain 1-35
+before con always oin 135-35
+endword oin 135-35
+
+before con begword recom 3-36
+before con begword redis 3-256
+before con begword retrans 3-356
+before con begword incom 35-36
+before con begword indis 35-256
+before con begword intrans 35-356
+begword ines 35-156
+
+prfword tient 2345-256-2345
+prfword vient 1236-256-2345
+endword ient 24-126
+word balbutient 12-1-123-12-136-2345-24-126
+word initient 35-24-2345-24-126
+word dévient 145-123456-1236-24-126
+word envient 1235-26-1236-24-126
+
+sufword bleu 45-15-136
+before con always brui 12-1235-23
+endword clait 14-123-146
+before voy always concr 14-346-25
+endword drant 145-1235-1456
+always drô 145-1235-1456
+endword en? 15-1345-26
+always ien. 24-26-256
+before voy always propr 235-135-235
+before con begword ren 1235-26
+always ssè 234-234-2346
+word (en 236-15-1345
+word (la 236-123-1
+
+###
+### 2. Mots représentés par un seul symbole
+###
+
+word a 1
+word à 12356
+word ai 34
+word au 13
+word aux 13-1346
+word bien 12
+word biens 12-234
+word ce 14
+word celui 36
+word cet 146
+word dans 1456
+word de 145
+word dès 256
+word du 236
+word elle 1356
+word elles 1356-234
+word en 26
+word est 156
+word et 23456
+word été 2356
+word étés 2356-234
+word faire 124
+word grand 12456
+word grands 12456-234
+word il 24
+word ils 24-234
+word je 245
+word la 3
+word le 123
+word les 345
+word lui 3456
+word mais 1346
+word me 134
+word même 126
+word mêmes 126-234
+word ne 1345
+word nous 135
+word on 346
+word ou 1256
+word par 1234
+word plus 1246
+word pour 12346
+word puis 235
+word que 12345
+word qui 1245
+word quoi 123456
+word rien 1235
+word riens 1235-234
+word sans 2346
+word se 234
+word si 35
+word son 246
+word sons 246-234
+word sous 356
+word sur 125
+word te 2345
+word tous 2456
+word tout 16
+word un 136
+word uns 136-234
+word vous 1236
+word y 13456
+
+begword c' 14-3
+begword d' 145-3
+begword j' 245-3
+begword l' 123-3
+begword m' 134-3
+begword n' 1345-3
+begword s' 234-3
+begword t' 2345-3
+
+###
+### 3. Mots représentés par deux ou plusieurs symboles
+###
+
+word absolu		1-12
+word absolus		1-12-234
+word absolue		1-12-15
+word absolues		1-12-156
+word absolument		1-12-134
+word action		1-3456
+word actions		1-3456-234
+word actionnaire	1-3456-1235
+word actionnaires	1-3456-1235-234
+word affaire		1-124-124
+word affaires		1-124-124-234
+word afin		1-124
+word ailleurs		34-136
+word ainsi		1-24
+word alors		1-123
+word amour		1-134
+word amours		1-134-234
+word amoureuse		1-134-234-15
+word amoureuses		1-134-234-156
+word amoureusement	1-134-234-134
+word amoureux		1-134-1346
+word apparemment	1-1234-134
+word apparence		1-1234-14
+word apparences		1-1234-14-234
+word apparent		1-1234
+word apparents		1-1234-234
+word apparente		1-1234-15
+word apparentes		1-1234-156
+word après		1-235
+word assez		1-1356
+word atentif		1-2345-124
+word atentifs		1-2345-124-234
+word attention		1-2345
+word attentions		1-2345-234
+word attentive		1-2345-1236
+word attentives		1-2345-1236-234
+word attentivement	1-2345-1236-134
+word aucun		13-14
+word aucune		13-1345
+word aucunement		13-1345-134
+word auparavant		13-1234
+word auprès		13-235
+word auquel		13-12345-123
+word aussi		13-234
+word aussitôt		13-2345
+word autour		13-1235
+word autre		13-356
+word autres		13-356-234
+word autrefois		13-124
+word autrement		13-356-134
+word auxquelles		13-1346-12345-123-123-234
+word auxquels		13-1346-12345-123-234
+word avance		1-1236-14
+word avances		1-1236-14-234
+word avancement		1-1236-14-134
+word avant		1-1236
+word avantage		1-1236-1245
+word avantages		1-1236-1245-234
+word avantageuse	1-1236-1245-234-15
+word avantageuses	1-1236-1245-234-156
+word avantageusement	1-1236-1245-234-134
+word avantageux		1-1236-1245-1346
+word avec		1-14
+word avoir		1-1235
+word avoirs		1-1235-234
+word ayant		1-13456
+
+word beaucoup		12-14
+word besogne		12-2356
+word besognes		12-2356-234
+word besogneuse		12-2356-234-15
+word besogneuses		12-2356-234-156
+word besogneux		12-2356-1346
+word besoin		12-35
+word besoins		12-35-234
+word bête		12-126
+word bêtes		12-126-234
+word bêtement		12-126-134
+word bienfaisance	12-124-14
+word bienfaisances	12-124-14-234
+word bienfait		12-124
+word bienfaits		12-124-234
+word bienfaiteur	12-124-46
+word bienfaiteurs	12-124-46-234
+word bientôt		12-2345
+word bienveillance	12-1236-14
+word bienveillances	12-1236-14-234
+word bienveillant	12-1236
+word bienveillants	12-1236-234
+word bienveillante	12-1236-15
+word bienveillantes	12-1236-156
+word bizarre		12-1356
+word bizarres		12-1356-234
+word bizarrement	12-1356-134
+word bonheur		12-125
+word bonheurs		12-125-234
+word bonjour		12-245
+word bonjours		12-245-234
+word bonne		12-1345
+word bonnes		12-1345-234
+word bonnement		12-1345-134
+word bonté		12-135
+word bontés		12-135-234
+word boulevard		12-145
+word boulevards		12-145-234
+word braille		23-123
+word branchage		23-12356-1245
+word branchages		23-12356-1245-234
+word branche		23-12356
+word branches		23-12356-234
+word branchement	23-12356-134
+word branchements	23-12356-134-234
+word brave		23-1236
+word braves		23-1236-234
+word bravement		23-1236-134
+word bruit		23-2345
+word bruits		23-2345-234
+word brusque		23-12345
+word brusques		23-12345-234
+word brusquement	23-12345-134
+word budget		12-1245
+word budgets		12-1245-234
+word budgétaire		12-1245-1235
+word budgétaires	12-1245-1235-234
+
+word caractère		14-2346
+word caractères		14-2346-234
+word caractéristique	14-123456-12345
+word caractéristiques	14-123456-12345-234
+word ceci		14-14
+word cela		14-1
+word celle		14-123
+word celles		14-123-234
+word celui-ci		36-36-14-24
+word celui-là		36-36-123-12356
+word cependant		14-1234
+word certain		14-35
+word certains		14-35-234
+word certaine		14-1345
+word certaines		14-1345-234
+word certainement	14-1345-134
+word certes		14-236
+word certitude		14-236-145
+word certitudes		14-236-145-234
+word ces		14-234
+word cette		14-2345
+word ceux		14-1346
+word chacun		12356-14
+word chacune		12356-1345
+word chagrin		12356-12456
+word chagrins		12356-12456-234
+word chaleur		12356-123
+word chaleurs		12356-123-234
+word chaleureuse	12356-123-234-15
+word chaleureuses	12356-123-234-156
+word chaleureusement	12356-123-234-134
+word chaleureux		12356-123-1346
+word champ		12356-1234
+word champs		12356-1234-234
+word change		12356-1245
+word changes		12356-1245-234
+word changement		12356-1245-134
+word changeur		12356-1245-46
+word changeurs		12356-1245-46-234
+word chaque		12356-12345
+word charitable		12356-2345-45
+word charitables		12356-2345-45-234
+word charitablement	12356-2345-45-134
+word charité		12356-2345
+word charités		12356-2345-234
+word chaud		12356-145
+word chauds		12356-145-234
+word chaude		12356-145-15
+word chaudes		12356-145-156
+word chaudement		12356-145-134
+word chemin		12356-134
+word chemins		12356-134-234
+word chère		12356-2346
+word chères		12356-2346-234
+word chèrement		12356-2346-134
+word chez		12356-1356
+word chiffrage		12356-124-1245
+word chiffrages		12356-124-1245-234
+word chiffre		12356-124
+word chiffres		12356-124-234
+word choeur		12356-1235
+word choeurs		12356-1235-234
+word choix		12356-1346
+word chose		12356-234
+word choses		12356-234-234
+word circonstance	14-25-14
+word circonstances	14-25-14-234
+word circonstanciel	14-25-14-123
+word circonstanciels	14-25-14-123-234
+word circonstancielle	14-25-14-123-123
+word circonstancielles	14-25-14-123-123-234
+word civil		14-1236
+word civils		14-1236-234
+word civile		14-1236-15
+word civiles		14-1236-156
+word civilement		14-1236-134
+word civilisation	14-1236-16
+word civilisations	14-1236-16-234
+word civilité		14-1236-2345
+word civilités		14-1236-2345-234
+word coeur		14-1235
+word coeurs		14-1235-234
+word combien		14-12
+word comme		14-134
+word commencement	36-134
+word commencements	36-134-234
+word comment		14-26
+word commentaire	14-26-1235
+word commentaires	14-26-1235-234
+word commentateur	14-26-46
+word commentateurs	14-26-46-234
+word commun		36-1345
+word communs		36-1345-234
+word commune		36-1345-15
+word communes		36-1345-156
+word communal		36-1345-123
+word communale		36-1345-123-15
+word communales		36-1345-123-156
+word communautaire	36-1345-2345-1235
+word communautaires	36-1345-2345-1235-234
+word communauté		36-1345-2345
+word communautés		36-1345-2345-234
+word communaux		36-1345-1346
+word communément	36-1345-134
+word communion		36-1345-3456
+word communions		36-1345-3456-234
+word complément		36-1246-134
+word compléments	36-1246-134-234
+word complémentaire	36-1246-134-1235
+word complémentaires	36-1246-134-1235-234
+word complet		36-1246
+word complets		36-1246-234
+word complète		36-2345
+word complètes		36-2345-234
+word complètement	36-2345-134
+word conclusion		25-14
+word conclusions	25-14-234
+word condition		25-145
+word conditions		25-145-234
+word conditionnel	25-145-123
+word conditionnels	25-145-123-234
+word conditionnelle	25-145-123-123
+word conditionnelles	25-145-123-123-234
+word conditionnellement	25-145-123-134
+word confiance		25-124-14
+word confiant		25-124
+word congrès		25-12456
+word connaissance	25-1345-14
+word connaissances	25-1345-14-234
+word connaître		25-1345
+word consciemment	25-234-134
+word conscience		25-234-14
+word consciences	25-234-14-234
+word consciencieuse	25-234-14-234-15
+word consciencieuses	25-234-14-234-156
+word consciencieusement	25-234-14-234-134
+word consciencieux	25-234-14-1346
+word conscient		25-234
+word conscients		25-234-234
+word consciente		25-234-15
+word conscientes	25-234-156
+word conséquemment	14-12345-134
+word conséquence	14-12345-14
+word conséquences	14-12345-14-234
+word conséquent		14-12345
+word conséquents	14-12345-234
+word conséquente	14-12345-15
+word conséquentes	14-12345-156
+word considérable	14-145
+word considérables	14-145-234
+word considérablement	14-145-134
+word considération	14-145-16
+word considérations	14-145-16-234
+word contraire		14-356
+word contraires		14-356-234
+word contrairement	14-356-134
+word conversation	25-1236
+word conversations	25-1236-234
+word côté		14-1456
+word côtés		14-1456-234
+word couple		14-1246
+word couples		14-1246-234
+word courage		14-1245
+word courageuse		14-1245-234-15
+word courageuses		14-1245-234-156
+word courageusement	14-1245-234-134
+word courageux		14-1245-1346
+
+word danger		145-1245
+word dangers		145-1245-234
+word dangeureuse	145-1245-234-15
+word dangeureuses	145-1245-234-156
+word dangeureusement	145-1245-234-134
+word dangeureux		145-1245-1346
+word davantage		145-1
+word debout		145-12
+word dedans		145-145
+word degré		145-12456
+word degrés		145-12456-234
+word dehors		145-125
+word déjà		145-245
+word demain		145-134
+word depuis		145-1234
+word dernier		145-1345
+word derniers		145-1345-234
+word dernière		145-1235
+word dernières		145-1235-234
+word dernièrement	145-1235-134
+word derrière		145-236
+word derrières		145-236-234
+word des		145-234
+word désormais		145-34
+word desquels		145-234-12345-123-234
+word desquelles		145-234-12345-123-123-234
+word destin		145-35
+word destins		145-35-234
+word destinataire	145-35-1235
+word destinataires	145-35-1235-234
+word destination	145-35-16
+word destinations	145-35-16-234
+word devant		145-1236
+word devants		145-1236-234
+word différemment	145-345-134
+word différence		145-26-14
+word différences	145-26-14-234
+word différent		145-26
+word différents		145-26-234
+word différente		145-26-15
+word différentes	145-26-156
+word difficile		145-124
+word difficiles		145-124-234
+word difficilement	145-124-134
+word difficulté		145-124-2345
+word difficultés	145-124-2345-234
+word digne		145-2356
+word dignes		145-2356-234
+word dignement		145-2356-134
+word dignitaire		145-2356-2345-1235
+word dignitaires	145-2356-2345-1235-234
+word dignité		145-2356-2345
+word discours		256-14
+word dispositif		256-1234-124
+word dispositifs	256-1234-124-234
+word disposition	256-1234
+word dispositions	256-1234-234
+word distance		256-2345-14
+word distances		256-2345-14-234
+word distant		256-2345
+word distants		256-2345-234
+word distante		256-2345-15
+word distantes		256-2345-156
+word donc		145-14
+word dont		145-2345
+word douleur		145-123
+word douleurs		145-123-234
+word douloureuse	145-123-234-15
+word douloureuses	145-123-234-156
+word douloureusement	145-123-234-134
+word douloureux		145-123-1346
+word doute		145-1256
+word doutes		145-1256-234
+word duquel		145-12345-123
+
+word effectif		15-124-124
+word effectifs		15-124-124-234
+word effective		15-124-1236
+word effectives		15-124-1236-234
+word effectivement	15-124-1236-134
+word effet		15-124
+word effets		15-124-234
+word égal		123456-1245
+word égale		123456-1245-15
+word égales		123456-1245-156
+word également		123456-1245-134
+word égalitaire		123456-1245-2345-1235
+word égalitaires	123456-1245-2345-1235-234
+word égalité		123456-1245-2345
+word égalités		123456-1245-2345-234
+word égaux		123456-1245-1346
+word élément		123456-123
+word éléments		123456-123-234
+word élémentaire	123456-123-1235
+word élémentaires	123456-123-1235-234
+word encore		26-14
+word endroit		26-145
+word endroits		26-145-234
+word énergie		123456-1345
+word énergies		123456-1345-234
+word énergique		123456-1345-12345
+word énergiques		123456-1345-12345-234
+word énergiquement	123456-1345-12345-134
+word enfin		26-124
+word ennui		26-1345
+word ennuis		26-1345-234
+word ennuyeuse		26-1345-234-15
+word ennuyeuses		26-1345-234-156
+word ennuyeux		26-1345-1346
+word enquête		26-12345
+word enquêtes		26-12345-234
+word enquêteur		26-12345-46
+word enquêteurs		26-12345-46-234
+word enquêteuse		26-12345-234-15
+word enquêteuses	26-12345-234-156
+word ensemble		26-345
+word ensembles		26-345-234
+word ensuite		26-234
+word entier		26-2345
+word entiers		26-2345-234
+word entière		26-1235
+word entières		26-1235-234
+word entièrement	26-1235-134
+word environ		26-1236
+word espèce		156-1234
+word espèces		156-1234-234
+word espérance		156-1235-14
+word espérances		156-1235-14-234
+word espoir		156-1235
+word espoirs		156-1235-234
+word esprit		15-235
+word esprits		15-235-234
+word essentiel		156-123
+word essentiels		156-123-234
+word essentielle	156-123-123
+word essentielles	156-123-123-234
+word essentiellement	156-123-134
+word étant		123456-2345
+word être		126-356
+word êtres		126-356-234
+word événement		123456-1236
+word événements		123456-1236-234
+word éventualité	123456-1236-123-2345
+word éventualités	123456-1236-123-2345-234
+word éventuel		123456-1236-123
+word éventuels		123456-1236-123-234
+word éventuelle		123456-1236-123-123
+word éventuelles	123456-1236-123-123-234
+word éventuellement	123456-1236-123-134
+word excellemment	1346-123-134
+word excellence		1346-123-14
+word excellences	1346-123-14-234
+word excellent		1346-123
+word excellents		1346-123-234
+word excellente		1346-123-15
+word excellentes	1346-123-156
+word excès		1346-14
+word excessif		1346-14-124
+word excessifs		1346-14-124-234
+word excessive		1346-14-1236
+word excessives		1346-14-1236-234
+word excessivement	1346-14-1236-134
+word exercice		1346-236
+word exercices		1346-236-234
+word expérience		1346-1234
+word expériences	1346-1234-234
+word expérimental	1346-1234-123
+word expérimentale	1346-1234-123-15
+word expérimentales	1346-1234-123-156
+word expérimentallement	1346-1234-123-134
+word expérimentateur	1346-1234-46
+word expérimentateurs	1346-1234-46-234
+word expérimentation	1346-1234-16
+word expérimentations	1346-1234-16-234
+word expérimentaux	1346-1234-1346
+word explicable		1346-1246-45
+word explicables	1346-1246-45-234
+word explicatif		1346-1246-124
+word explicatifs	1346-1246-124-234
+word explication	1346-1246
+word explications	1346-1246-234
+word explicative	1346-1246-1236
+word explicatives	1346-1246-1236-234
+word expressif		1346-235-124
+word expressifs		1346-235-124-234
+word expression		1346-235
+word expressions	1346-235-234
+word expressive		1346-235-1236
+word expressives	1346-235-1236-234
+word expressivement	1346-235-1236-134
+word extérieur		1346-2345
+word extérieurs		1346-2345-234
+word extérieure		1346-2345-15
+word extérieures	1346-2345-156
+word extérieurement	1346-2345-134
+word extrême		1346-356
+word extrêmes		1346-356-234
+word extrêmement	1346-356-134
+word extrémité		1346-356-2345
+word extrémités		1346-356-2345-234
+
+word facile		124-14
+word faciles		124-14-234
+word facilement		124-14-134
+word facilité		124-14-2345
+word facilités		124-14-2345-234
+word faubourg		124-12
+word faubourgs		124-12-234
+word faut		124-2345
+word faute		124-2345-15
+word fautes		124-2345-15-234
+word fautif		124-2345-124
+word fautifs		124-2345-124-234
+word fautive		124-2345-1236
+word fautives		124-2345-1236-234
+word faveur		124-1236
+word faveurs		124-1236-234
+word favorable		124-1236-45
+word favorables		124-1236-45-234
+word favorablement	124-1236-45-134
+word féminin		124-134-35
+word féminins		124-134-35-234
+word féminine		124-134-1345
+word féminines		124-134-1345-234
+word femme		124-134
+word femmes		124-134-234
+word fête		124-126
+word fêtes		124-126-234
+word fidèle		124-145
+word fidèles		124-145-234
+word fidèlement		124-145-134
+word fidélité		124-145-2345
+word fidélités		124-145-2345-234
+word figuratif		124-1245-124
+word figuratifs		124-1245-124-234
+word figuration		124-1245-16
+word figurations	124-1245-16-234
+word figurative		124-1245-1236
+word figuratives	124-1245-1236-234
+word figure		124-1245
+word figures		124-1245-234
+word fille		124-123
+word filles		124-123-234
+word fils		124-234
+word fonction		124-346
+word fonctions		124-346-234
+word fonctionnaire	124-346-1235
+word fonctionnaires	124-346-1235-234
+word fonctionnel	124-346-123
+word fonctionnels	124-346-123-234
+word fonctionnelle	124-346-123-123
+word fonctionnelles	124-346-123-123-234
+word fonctionnement	124-346-134
+word fonctionnements	124-346-134-234
+word force		124-135
+word forces		124-135-234
+word forcément		124-135-134
+word fortune		124-1345
+word fortunes		124-1345-234
+word fraternel		124-1235-123
+word fraternels		124-1235-123-234
+word fraternelle	124-1235-123-123
+word fraternelles	124-1235-123-123-234
+word fraternellement	124-1235-123-134
+word fraternisation	124-1235-16
+word fraternisations	124-1235-16-234
+word fraternité		124-1235-2345
+word fraternités	124-1235-2345-234
+word fréquemment	124-12345-134
+word fréquence		124-12345-14
+word fréquences		124-12345-14-234
+word fréquent		124-12345
+word fréquents		124-12345-234
+word fréquente		124-12345-15
+word fréquentes		124-12345-156
+word fréquentation	124-12345-16
+word fréquentations	124-12345-16-234
+word frère		124-1235
+word frères		124-1235-234
+
+word garde		1245-145
+word gardes		1245-145-234
+word général		1245-1345
+word générale		1245-1345-15
+word générales		1245-1345-156
+word généralement	1245-1345-134
+word généralisation	1245-1345-16
+word généralisations	1245-1345-16-234
+word généralité		1245-1345-2345
+word généralités	1245-1345-2345-234
+word généraux		1245-1345-1346
+word généreuse		1245-234-15
+word généreuses		1245-234-156
+word généreusement	1245-234-134
+word généreux		1245-1346
+word générosité		1245-234-2345
+word générosités	1245-234-2345-234
+word gloire		1245-1235
+word gloires		1245-1235-234
+word glorieuse		1245-1235-234-15
+word glorieuses		1245-1235-234-156
+word glorieusement	1245-1235-234-134
+word glorieux		1245-1235-1346
+word gouvernement	1245-1236
+word gouvernements	1245-1236-234
+word gouvernemental	1245-1236-123
+word gouvernementale	1245-1236-123-15
+word gouvernementales	1245-1236-123-156
+word gouvernementaux	1245-1236-1346
+word gouverneur		1245-1236-46
+word gouverneurs	1245-1236-46-234
+word grâce		12456-14
+word grâces		12456-14-234
+word gracieuse		12456-14-234-15
+word gracieuses		12456-14-234-156
+word gracieusement	12456-14-234-134
+word gracieux		12456-14-1346
+word grande		12456-145
+word grandes		12456-145-234
+word grandement		12456-145-134
+word grandeur		12456-46
+word grandeurs		12456-46-234
+word grave		12456-1236
+word graves		12456-1236-234
+word gravement		12456-1236-134
+word gravitation	12456-1236-2345-16
+word gravitations	12456-1236-2345-16-234
+word gravité		12456-1236-2345
+word gravités		12456-1236-2345-234
+word groupe		12456-1234
+word groupes		12456-1234-234
+word groupement		12456-1234-134
+word groupements	12456-1234-134-234
+word guère		1245-2346
+word guerre		1245-236
+word guerres		1245-236-234
+
+word habitude		125-12
+word habitudes		125-12-234
+word habituel		125-12-123
+word habituels		125-12-123-234
+word habituelle		125-12-123-123
+word habituelles	125-12-123-123-234
+word habituellement	125-12-123-134
+word hasard		125-145
+word hasards		125-145-234
+word hasardeuse		125-145-234-15
+word hasardeuses	125-145-234-156
+word hasardeux		125-145-1346
+word hélas		125-123
+word heure		125-1235
+word heures		125-1235-234
+word heureuse		125-234-15
+word heureuses		125-234-156
+word heureusement	125-234-134
+word heureux		125-1346
+word hier		125-236
+word histoire		125-2345
+word histoires		125-2345-234
+word historique		125-2345-12345
+word historiques	125-2345-12345-234
+word historiquement	125-2345-12345-134
+word hiver		125-1236
+word hivers		125-1236-234
+word hivernal		125-1236-123
+word hivernaux		125-1236-1346
+word hommage		125-1245
+word hommages		125-1245-234
+word homme		125-134
+word hommes		125-134-234
+word honnête		125-126
+word honnêtes		125-126-234
+word honnêtement	125-126-134
+word honnêteté		125-126-2345
+word honnêtetés		125-126-2345-234
+word honneur		125-1345
+word honneurs		125-1345-234
+word honorabilité	125-1345-12-123-2345
+word honorabilités	125-1345-12-123-2345-234
+word honorable		125-1345-45
+word honorables		125-1345-45-234
+word honorablement	125-1345-45-134
+word honoraire		125-1345-1235
+word honoraires		125-1345-1235-234
+word horaire		125-1235-1235
+word horaires		125-1235-1235-234
+word horizon		125-1356
+word horizons		125-1356-234
+word horizontal		125-1356-123
+word horizontale	125-1356-123-15
+word horizontales	125-1356-123-156
+word horizontalement	125-1356-123-134
+word horizontalité	125-1356-123-2345
+word horizontalités	125-1356-123-2345-234
+word horizontaux	125-1356-1346
+word hypothèse		125-1234
+word hypothèses		125-1234-234
+word hypothétique	125-1234-12345
+word hypothétiques	125-1234-12345-234
+word hypothétiquement	125-1234-12345-134
+word humain		125-134-35
+word humains		125-134-35-234
+word humaine		125-134-1345
+word humaines		125-134-1345-234
+word humainement	125-134-1345-134
+word humanitaire	125-134-1345-2345-1235
+word humanitaires	125-134-1345-2345-1235-234
+word humanité		125-134-1345-2345
+word humanités		125-134-1345-2345-234
+
+word idéal		24-145-123
+word idéale		24-145-123-15
+word idéales		24-145-123-156
+word idéalement		24-145-123-134
+word idéaux		24-145-1346
+word idée		24-145
+word idées		24-145-234
+word image		24-1245
+word images		24-1245-234
+word imaginable		24-1245-45
+word imaginables	24-1245-45-234
+word imaginaire		24-1245-1235
+word imaginaires	24-1245-1235-234
+word imagination	24-1245-16
+word immédiat		24-134
+word immédiats		24-134-234
+word immédiate		24-134-15
+word immédiates		24-134-156
+word immédiatement	24-134-134
+word impression		246-235
+word impressions	246-235-234
+word impressionnable	246-235-45
+word impressionnables	246-235-45-234
+word inférieur		35-124
+word inférieurs		35-124-234
+word inférieure		35-124-15
+word inférieures	35-124-156
+word inférieurement	35-124-134
+word infériorité	35-124-2345
+word infériorités	35-124-2345-234
+word inquiet		35-12345
+word inquiets		35-12345-234
+word inquiète		35-2346
+word inquiètes		35-2346-234
+word inquiétude		35-12345-145
+word inquiétudes	35-12345-145-234
+word intelligemment	35-1245-134
+word intelligence	35-1245-14
+word intelligent	35-1245
+word intelligents	35-1245-234
+word intelligente	35-1245-15
+word intelligentes	35-1245-156
+word intérieur		35-2345
+word intérieurs		35-2345-234
+word intérieure		35-2345-15
+word intérieures	35-2345-156
+word intérieurement	35-2345-134
+
+word jadis		245-145
+word jamais		245-134
+word jeune		245-1345
+word jeunes		245-1345-234
+word jour		245-1235
+word jours		245-1235-234
+word journal		245-1235-123
+word journaux		245-1235-1346
+word joyeuse		245-234-15
+word joyeuses		245-234-156
+word joyeusement	245-234-134
+word joyeux		245-1346
+word juge		245-1245
+word juges		245-1245-234
+word jugement		245-1245-134
+word jugements		245-1245-134-234
+word jusque		245-12345
+word juste		245-2345
+word justes		245-2345-234
+word justement		245-2345-134
+word justice		245-14
+
+word laquelle		123-123-123
+word lecture		123-1235
+word lectures		123-1235-234
+word lequel		123-123
+word lesquelles		123-123-123-234
+word lesquels		123-123-234
+word lettre		123-356
+word lettres		123-356-234
+word libéral		123-12-123
+word libérale		123-12-123-15
+word libérales		123-12-123-156
+word libéralement	123-12-123-134
+word libéralité		123-12-123-2345
+word libéralités	123-12-123-2345-234
+word libérateur		123-12-46
+word libérateurs	123-12-46-234
+word libération		123-12-16
+word libérations	123-12-16-234
+word libéraux		123-12-1346
+word liberté		123-12-2345
+word libertés		123-12-2345-234
+word libre		123-12
+word libres		123-12-234
+word librement		123-12-134
+word ligne		123-2356
+word lignes		123-2356-234
+word livre		123-1236
+word livres		123-1236-234
+word logique		123-1245-12345
+word logiques		123-1245-12345-234
+word logiquement	123-1245-12345-134
+word loin		123-1345
+word loins		123-1345-234
+word lointain		123-1345-35
+word lointains		123-1345-35-234
+word lointaine		123-1345-1345
+word lointaines		123-1345-1345-234
+word longtemps		123-2345
+word lorsque		123-12345
+word lourd		123-145
+word lourds		123-145-234
+word lourde		123-145-15
+word lourdes		123-145-156
+word lourdement		123-145-134
+word lourdeur		123-145-46
+word lourdeurs		123-145-46-234
+word lumière		123-134
+word lumières		123-134-234
+word lumineuse		123-134-234-15
+word lumineuses		123-134-234-156
+word lumineusement	123-134-234-134
+word lumineux		123-134-1346
+word luminosité		123-134-234-2345
+word luminosités	123-134-234-2345-234
+
+word madame		134-145
+word mademoiselle	134-134
+word magnificence	134-2356-14
+word magnificences	134-2356-14-234
+word magnifique		134-2356
+word magnifiques	134-2356-234
+word magnifiquement	134-2356-134
+word maintenant		134-2345
+word malgré		134-12456
+word malheur		134-125
+word malheurs		134-125-234
+word malheureuse	134-125-234-15
+word malheureuses	134-125-234-156
+word malheureusement	134-125-234-134
+word malheureux		134-125-1346
+word manière		134-1345
+word manières		134-1345-234
+word mauvais		134-1236
+word mauvaise		134-1236-15
+word mauvaises		134-1236-156
+word meilleur		134-123
+word meilleurs		134-123-234
+word meilleure		134-123-15
+word meilleures		134-123-156
+word merci		134-14
+word mère		134-2346
+word mères		134-2346-234
+word mes		134-234
+word mesdames		134-145-234
+word mesdemoiselles	134-134-234
+word messieurs		134-1235-234
+word mettre		134-356
+word mieux		134-1346
+word mission		134-3456
+word missions		134-3456-234
+word missionnaire	134-3456-1235
+word missionnaires	134-3456-1235-234
+word mobile		134-12
+word mobiles		134-12-234
+word mobilisation	134-12-16
+word mobilisations	134-12-16-234
+word mobilité		134-12-2345
+word mobilités		134-12-2345-234
+word moins		134-35
+word moment		134-26
+word moments		134-26-234
+word momentanément	134-26-134
+word monsieur		134-1235
+word multiple		134-1246
+word multiples		134-1246-234
+word multiplicateur	134-1246-46
+word multiplicateurs	134-1246-46-234
+word multiplication	134-1246-16
+word multiplications	134-1246-16-234
+word multiplicité	134-1246-2345
+word multiplicités	134-1246-2345-234
+word musique		134-12345
+word musiques		134-12345-234
+word mystère		134-13456
+word mystères		134-13456-234
+word mystérieuse	134-13456-234-15
+word mystérieuses	134-13456-234-156
+word mystérieusement	134-13456-234-134
+word mystérieux		134-13456-1346
+
+word naguère		1345-1245
+word nation		1345-16
+word nations		1345-16-234
+word national		1345-16-123
+word nationale		1345-16-123-15
+word nationales		1345-16-123-156
+word nationalité	1345-16-123-2345
+word nationalités	1345-16-123-2345-234
+word nationaux		1345-16-1346
+word nature		1345-2345
+word natures		1345-2345-234
+word naturel		1345-2345-123
+word naturels		1345-2345-123-234
+word naturelle		1345-2345-123-123
+word naturelles		1345-2345-123-123-234
+word naturellement	1345-2345-123-134
+word néanmoins		1345-134
+word nécessaire		1345-14
+word nécessaires	1345-14-234
+word nécessairement	1345-14-134
+word nécessité		1345-14-2345
+word nécessités		1345-14-2345-234
+word nécessiteuse	1345-14-2345-234-15
+word nécessiteuses	1345-14-2345-234-156
+word nécessiteux	1345-14-2345-1346
+word nombre		1345-12
+word nombres		1345-12-234
+word nombreuse		1345-12-234-15
+word nombreuses		1345-12-234-156
+word nombreux		1345-12-1346
+word nos		1345-234
+word notre		1345-356
+word nôtre		1345-1456
+word nôtres		1345-1456-234
+word nouveau		1345-1236
+word nouveaux		1345-1236-1346
+word nouveauté		1345-1236-2345
+word nouveautés		1345-1236-2345-234
+word nouvel		1345-123
+word nouvelle		1345-123-123
+word nouvelles		1345-123-123-234
+word nouvellement	1345-123-134
+
+word objectif		135-245-124
+word objectifs		135-245-124-234
+word objection		135-245-3456
+word objections		135-245-3456-234
+word objective		135-245-1236
+word objectives		135-245-1236-234
+word objectivement	135-245-1236-134
+word objectivité	135-245-1236-2345
+word objectivités	135-245-1236-2345-234
+word objet		135-245
+word objets		135-245-234
+word observateur	135-12-46
+word observateurs	135-12-46-234
+word observation	135-12
+word observations	135-12-234
+word occasion		135-14
+word occasions		135-14-234
+word occasionnel	135-14-123
+word occasionnels	135-14-123-234
+word occasionnelle	135-14-123-123
+word occasionnelles	135-14-123-123-234
+word occasionnellement	135-14-123-134
+word oeuvre		246-1236
+word oeuvres		246-1236-234
+word office		135-124
+word offices		135-124-234
+word officiel		135-124-123
+word officiels		135-124-123-234
+word officielle		135-124-123-123
+word officielles		135-124-123-123-234
+word officiellement	135-124-123-134
+word officieuse		135-124-234-15
+word officieuses	135-124-234-156
+word officieusement	135-124-234-134
+word officieux		135-124-1346
+word opinion		135-1234
+word opinions		135-1234-234
+word ordinaire		56-145
+word ordinaires		56-145-234
+word ordinairement	56-145-134
+word originaire		135-1245-1235
+word originaires	135-1245-1235-234
+word originairement	135-1245-1235-134
+word original		135-1245-123
+word originale		135-1245-123-15
+word originales		135-1245-123-156
+word originalement	135-1245-123-134
+word originalité	135-1245-123-2345
+word originalités	135-1245-123-2345-234
+word originaux		135-1245-1346
+word origine		135-1245
+word origines		135-1245-234
+word outrage		1256-356-1245
+word outrages		1256-356-1245-234
+word outrageuse		1256-356-1245-234-15
+word outrageuses	1256-356-1245-234-156
+word outrageusement	1256-356-1245-234-134
+word outrageux		1256-356-1245-1346
+word outre		1256-356
+word ouvrage		1256-1245
+word ouvrages		1256-1245-234
+word ouvrier		1256-1236
+word ouvriers		1256-1236-234
+word ouvrière		1256-2346
+word ouvrières		1256-2346-234
+
+word parfois		1234-124
+word parmi		1234-134
+word parole		1234-1235
+word paroles		1234-1235-234
+word particularité	1234-1235-123-2345
+word particularités	1234-1235-123-2345-234
+word particulier	1234-123
+word particuliers	1234-123-234
+word particulière	1234-123-1235
+word particulières	1234-123-1235-234
+word particulièrement	1234-123-1235-134
+word partout		1234-1
+word pas		1234-234
+word pauvre		1234-1236
+word pauvres		1234-1236-234
+word pauvrement		1234-1236-134
+word pauvreté		1234-1236-2345
+word pauvretés		1234-1236-2345-234
+word pendant		1234-145
+word pensée		1234-26
+word pensées		1234-26-234
+word pensif		1234-26-124
+word pensifs		1234-26-124-234
+word pensive		1234-26-1236
+word pensives		1234-26-1236-234
+word pensivement	1234-26-1236-134
+word père		1234-2346
+word pères		1234-2346-234
+word personnage		1234-1345-1245
+word personnages	1234-1345-1245-234
+word personnalité	1234-1345-123-2345
+word personnalités	1234-1345-123-2345-234
+word personne		1234-1345
+word personnes		1234-1345-234
+word personnel		1234-1345-123
+word personnels		1234-1345-123-234
+word personnelle	1234-1345-123-123
+word personnelles	1234-1345-123-123-234
+word personnellement	1234-1345-123-134
+word petit		1234-15
+word petits		1234-15-234
+word petite		1234-15-15
+word petites		1234-15-156
+word peuple		1234-1246
+word peuples		1234-1246-234
+word peuplement		1234-1246-134
+word peuplements	1234-1246-134-234
+word place		1246-14
+word places		1246-14-234
+word placement		1246-14-134
+word placements		1246-14-134-234
+word plaisir		1246-1235
+word plaisirs		1246-1235-234
+word plusieurs		1246-234
+word plutôt		1246-2345
+word point		1234-2345
+word points		1234-2345-234
+word pointe		1234-2345-15
+word pointes		1234-2345-15-234
+word populaire		1234-1234-1235
+word populaires		1234-1234-1235-234
+word populairement	1234-1234-1235-134
+word popularité		1234-1234-1235-2345
+word popularités	1234-1234-1235-2345-234
+word population		1234-1234
+word populations	1234-1234-234
+word populeuse		1234-1234-234-15
+word populeuses		1234-1234-234-156
+word populeux		1234-1234-1346
+word possibilité	1234-12-2345
+word possibilités	1234-12-2345-234
+word possible		1234-12
+word possibles		1234-12-234
+word pourquoi		1234-23456
+word pourtant		1234-135
+word praticable		235-2345-45
+word praticables	235-2345-45-234
+word pratique		235-2345
+word pratiques		235-2345-234
+word pratiquement	235-2345-134
+word premier		235-134
+word premiers		235-134-234
+word première		235-1235
+word premières		235-1235-234
+word premièrement	235-1235-134
+word près		235-234
+word presque		235-12345
+word preuve		235-1236
+word preuves		235-1236-234
+word primitif		235-134-124
+word primitifs		235-134-124-234
+word primitive		235-134-1236
+word primitives		235-134-1236-234
+word primitivement	235-134-1236-134
+word principal		235-14-123
+word principale		235-14-123-15
+word principales	235-14-123-156
+word principalement	235-14-123-134
+word principaux		235-14-1346
+word principe		235-14
+word principes		235-14-234
+word prix		235-1346
+word probabilité	235-12-2345
+word probabilités	235-12-2345-234
+word probable		235-12
+word probables		235-12-234
+word probablement	235-12-134
+word prochain		235-12356
+word prochains		235-12356-234
+word prochaine		235-1345
+word prochaines		235-1345-234
+word prochainement	235-1345-134
+word producteur		235-145-46
+word producteurs	235-145-46-234
+word productif		235-145-124
+word productifs		235-145-124-234
+word production		235-145-3456
+word productions	235-145-3456-234
+word productive		235-145-1236
+word productives	235-145-1236-234
+word productivement	235-145-1236-134
+word productivité	235-145-1236-2345
+word productivités	235-145-1236-2345-234
+word produit		235-145
+word produits		235-145-234
+word profit		235-124
+word profits		235-124-234
+word profitable		235-124-45
+word profitables	235-124-45-234
+word profiteur		235-124-46
+word profiteurs		235-124-46-234
+word profiteuse		235-124-234-15
+word profiteuses	235-124-234-156
+word progrès		235-12456
+word progressif		235-12456-124
+word progressifs	235-12456-124-234
+word progression	235-12456-3456
+word progressions	235-12456-3456-234
+word progressive	235-12456-1236
+word progressives	235-12456-1236-234
+word progressivement	235-12456-1236-134
+word projecteur		235-245-46
+word projecteurs	235-245-46-234
+word projection		235-245-3456
+word projections	235-245-3456-234
+word projet		235-245
+word projets		235-245-234
+word proportion		235-1234
+word proportions	235-1234-234
+word proportionnalité	235-1234-123-2345
+word proportionnalités	235-1234-123-2345-234
+word proportionnel	235-1234-123
+word proportionnels	235-1234-123-234
+word proportionnelle	235-1234-123-123
+word proportionnelles	235-1234-123-123-234
+word proportionnellement 235-1234-123-134
+word proposition	235-246
+word propositions	235-246-234
+word puisque		1234-12345
+word puissance		1234-14
+word puissances		1234-14-234
+
+word qualitatif		12345-123-2345-124
+word qualitatifs	12345-123-2345-124-234
+word qualitative	12345-123-2345-1236
+word qualitatives	12345-123-2345-1236-234
+word qualitativement	12345-123-2345-1236-134
+word qualité		12345-123-2345
+word qualités		12345-123-2345-234
+word quand		12345-145
+word quant		12345-2345
+word quantitatif	12345-2345-2345-124
+word quantitatifs	12345-2345-2345-124-234
+word quantitative	12345-2345-2345-1236
+word quantitatives	12345-2345-2345-1236-234
+word quantitativement	12345-2345-2345-1236-134
+word quantité		12345-2345-2345
+word quantités		12345-2345-2345-234
+word quel		12345-123
+word quels		12345-123-234
+word quelle		12345-123-123
+word quelles		12345-123-123-234
+word quelconque		12345-14
+word quelconques	12345-14-234
+word quelque		12345-12345
+word quelques		12345-12345-234
+word quelquefois	12345-124
+word question		12345-3456
+word questions		12345-3456-234
+word questionnaire	12345-3456-1235
+word questionnaires	12345-3456-1235-234
+word quiconque		12345-346
+word quoique		12345-15
+
+word raison		1235-346
+word raisons		1235-346-234
+word raisonnable	1235-346-45
+word raisonnables	1235-346-45-234
+word raisonnablement	1235-346-45-134
+word raisonnement	1235-346-134
+word raisonnements	1235-346-134-234
+word rapport		1235-1234
+word rapports		1235-1234-234
+word rapporteur		1235-1234-46
+word rapporteurs	1235-1234-46-234
+word rare		1235-1235
+word rares		1235-1235-234
+word rarement		1235-1235-134
+word rareté		1235-1235-2345
+word raretés		1235-1235-2345-234
+word réalisable		1235-123-45
+word réalisables	1235-123-45-234
+word réalisateur	1235-123-46
+word réalisateurs	1235-123-46-234
+word réalisation	1235-123-16
+word réalisations	1235-123-16-234
+word réalité		1235-123-2345
+word réalités		1235-123-2345-234
+word réel		1235-123
+word réels		1235-123-234
+word réelle		1235-123-123
+word réelles		1235-123-123-234
+word réellement		1235-123-134
+word réflexion		1235-124
+word réflexions		1235-124-234
+word regard		1235-1245
+word regards		1235-1245-234
+word regret		1235-12456
+word regrets		1235-12456-234
+word regrettable	1235-12456-45
+word regrettables	1235-12456-45-234
+word relatif		1235-2345-124
+word relatifs		1235-2345-124-234
+word relation		1235-2345
+word relations		1235-2345-234
+word relative		1235-2345-1236
+word relatives		1235-2345-1236-234
+word relativement	1235-2345-1236-134
+word relativité		1235-2345-1236-2345
+word relativités	1235-2345-1236-2345-234
+word remarquable	1235-12345-45
+word remarquables	1235-12345-45-234
+word remarquablement	1235-12345-45-134
+word remarque		1235-12345
+word remarques		1235-12345-234
+word remerciement	1235-134
+word remerciements	1235-134-234
+word renseignement	1235-26
+word renseignements	1235-26-234
+word rêve		1235-126
+word rêves		1235-126-234
+word rêveur		1235-126-46
+word rêveurs		1235-126-46-234
+word rêveuse		1235-126-234-15
+word rêveuses		1235-126-234-156
+word rêveusement	1235-126-234-134
+word rôle		1235-1456
+word rôles		1235-1456-234
+word route		1235-1256
+word routes		1235-1256-234
+word rythme		1235-13456
+word rythmes		1235-13456-234
+word rythmique		1235-13456-12345
+word rythmiques		1235-13456-12345-234
+word rythmiquement	1235-13456-12345-134
+
+word séculaire		234-14-1235
+word séculaires		234-14-1235-234
+word séculairement	234-14-1235-134
+word seigneur		234-2356
+word seigneurs		234-2356-234
+word semblable		234-12
+word semblables		234-12-234
+word semblablement	234-12-134
+word sentiment		234-2345-134
+word sentiments		234-2345-134-234
+word sentimental	234-2345-134-123
+word sentimentale	234-2345-134-123-15
+word sentimentales	234-2345-134-123-156
+word sentimentalement	234-2345-134-123-134
+word sentimentalité	234-2345-134-123-2345
+word sentimentalités	234-2345-134-123-2345-234
+word sentimentaux	234-2345-134-1346
+word ses		234-234
+word seul		234-123
+word seuls		234-123-234
+word seule		234-123-15
+word seules		234-123-156
+word seulement		234-123-134
+word siècle		234-14
+word siècles		234-14-234
+word simple		234-1246
+word simples		234-1246-234
+word simplement		234-1246-134
+word simplicité		234-1246-2345
+word simplicités	234-1246-2345-234
+word simplification	234-1246-16
+word simplifications	234-1246-16-234
+word soeur		234-1235
+word soeurs		234-1235-234
+word soin		234-35
+word soins		234-35-234
+word solitaire		234-123-1235
+word solitaires		234-123-1235-234
+word solitairement	234-123-1235-134
+word solitude		234-123-145
+word solitudes		234-123-145-234
+word sommaire		234-2456-1235
+word sommaires		234-2456-1235-234
+word sommairement	234-2456-1235-134
+word somme		234-2456
+word sommes		234-2456-234
+word sont		234-2345
+word sorte		234-135
+word sortes		234-135-234
+word soudain		234-145
+word soudains		234-145-234
+word soudaine		234-1345
+word soudaines		234-1345-234
+word soudainement	234-1345-134
+word soudaineté		234-1345-2345
+word soudainetés	234-1345-2345-234
+word souffrance		234-124-14
+word souffrances	234-124-14-234
+word souffrant		234-124
+word souffrants		234-124-234
+word souffrante		234-124-15
+word souffrantes	234-124-156
+word souvent		234-1236
+word subjectif		234-245-124
+word subjectifs		234-245-124-234
+word subjective		234-245-1236
+word subjectives	234-245-1236-234
+word subjectivement	234-245-1236-134
+word subjectivité	234-245-1236-2345
+word subjectivités	234-245-1236-2345-234
+word sujet		234-245
+word sujets		234-245-234
+word sujétion		234-245-3456
+word sujétions		234-245-3456-234
+word supérieur		234-1234
+word supérieurs		234-1234-234
+word supérieure		234-1234-15
+word supérieures	234-1234-156
+word supérieurement	234-1234-134
+word supériorité	234-1234-2345
+word supériorités	234-1234-2345-234
+word surtout		234-2345
+word systématique	234-13456-12345
+word systématiques	234-13456-12345-234
+word systématiquement	234-13456-12345-134
+word système		234-13456
+word systèmes		234-13456-234
+
+word tel		2345-123
+word tels		2345-123-234
+word telle		2345-123-123
+word telles		2345-123-123-234
+word tellement		2345-123-134
+word temporaire		2345-1234-1235
+word temporaires	2345-1234-1235-234
+word temporairement	2345-1234-1235-134
+word temporel		2345-1234-123
+word temporels		2345-1234-123-234
+word temporelle		2345-1234-123-123
+word temporelles	2345-1234-123-123-234
+word temps		2345-1234
+word tenir		2345-1345
+word terre		2345-1235
+word terres		2345-1235-234
+word tes		2345-234
+word tête		2345-126
+word têtes		2345-126-234
+word théorie		2345-125
+word théories		2345-125-234
+word théorique		2345-125-12345
+word théoriques		2345-125-12345-234
+word théoriquement	2345-125-12345-134
+word titre		2345-356
+word titres		2345-356-234
+word toujours		2345-245
+word toute		2345-2345
+word toutes		2345-2345-234
+word toutefois		2345-124
+word tragique		356-1245
+word tragiques		356-1245-234
+word tragiquement	356-1245-134
+word trajet		356-245
+word trajets		356-245-234
+word tranquille		356-12345
+word tranquilles	356-12345-234
+word tranquillement	356-12345-134
+word tranquillité	356-12345-2345
+word tranquillités	356-12345-2345-234
+word travail		356-123
+word travailleur	356-123-46
+word travailleurs	356-123-46-234
+word travailleuse	356-123-234-15
+word travailleuses	356-123-234-156
+word travaux		356-1346
+word travers		356-1236
+word très		356-234
+word trop		356-1234
+word type		2345-13456
+word types		2345-13456-234
+word typique		2345-13456-12345
+word typiques		2345-13456-12345-234
+word typiquement	2345-13456-12345-134
+
+word une		136-1345
+word unes		136-1345-234
+word unique		136-12345
+word uniques		136-12345-234
+word uniquement		136-12345-134
+word unitaire		136-1345-2345-1235
+word unitaires		136-1345-2345-1235-234
+word unité		136-1345-2345
+word unités		136-1345-2345-234
+word univers		136-1236
+word universalité	136-1236-123-2345
+word universalités	136-1236-123-2345-234
+word universel		136-1236-123
+word universels		136-1236-123-234
+word universelle	136-1236-123-123
+word universelles	136-1236-123-123-234
+word universellement	136-1236-123-134
+word universitaire	136-1236-2345-1235
+word universitaires	136-1236-2345-1235-234
+word université		136-1236-2345
+word universités	136-1236-2345-234
+word usage		136-1245
+word usages		136-1245-234
+word utile		136-123
+word utiles		136-123-234
+word utilement		136-123-134
+word utilisable		136-123-45
+word utilisables	136-123-45-234
+word utilisateur	136-123-46
+word utilisateurs	136-123-46-234
+word utilisation	136-123-16
+word utilisations	136-123-16-234
+word utilitaire		136-123-2345-1235
+word utilitaires	136-123-2345-1235-234
+word utilité		136-123-2345
+word utilités		136-123-2345-234
+
+word valeur		1236-46
+word valeurs		1236-46-234
+word venir		1236-1345
+word véritable		1236-1235
+word véritables		1236-1235-234
+word véritablement	1236-1235-134
+word vérité		1236-123456
+word vérités		1236-123456-234
+word vieux		1236-1346
+word vif		1236-124
+word vifs		1236-124-234
+word vive		1236-1236
+word vives		1236-1236-234
+word vivement		1236-1236-134
+word voici		1236-14
+word voilà		1236-123
+word volontaire		1236-135-1235
+word volontaires	1236-135-1235-234
+word volontairement	1236-135-1235-134
+word volonté		1236-135
+word volontés		1236-135-234
+word volontiers		1236-346
+word vos		1236-234
+word votre		1236-356
+word vôtre		1236-1456
+word vôtres		1236-1456-234
+word voyage		1236-1245
+word voyages		1236-1245-234
+word voyageur		1236-1245-46
+word voyageurs		1236-1245-46-234
+word voyageuse		1236-1245-234-15
+word voyageuses		1236-1245-234-156
+word vraiment		1236-134
+
+###
+### 4. Locutions
+###
+
+word à\scause 12356-456-14
+word à\smesure 12356-456-134
+word à\speine 12356-456-1234
+word à\speu\sprès 12356-456-1234-456-235
+word à\sprésent 12356-456-235
+word à\stravers 12356-456-356
+word au\scontraire 13-456-14
+word au-dessous 13-36-1256
+word au-dessus 13-36-145
+word aujourd'hui 13-3-125
+word autant\sque 13-456-12345
+word autre\schose 13-456-12356
+word autre\spart 13-456-1234
+word c'est-à-dire 14-3-15-36-12356-36-145
+word d'abord 145-3-1
+word de\ssuite 145-456-234
+word en\smesure 26-456-134
+word en\sréalité 26-456-1235
+word et\scétera 15-456-14
+word la\splupart 123-456-1246
+word non\sseulement 1345-456-234
+word parce\sque 1234-456-12345
+word par\sconséquent 1234-456-14
+word par-dessous 1234-36-1256
+word par-dessus 1234-36-145
+word par\sexemple 1234-456-15
+word par\ssuite 1234-456-234
+word peu\sà\speu 1234-456-12356-456-1234
+word peut-être 1234-36-126
+word plus\stard 1246-456-2345
+word plus\stôt 1246-456-1456
+word pour\sainsi\sdire 1234-456-1-456-145
+word quelque\schose 12345-456-12356
+word quelque\spart 12345-456-1234
+word quelque\stemps 12345-456-2345
+word sans\scesse 234-456-14
+word sans\sdoute 234-456-145
+word tandis\sque 2345-456-12345
+word tour\sà\stour 2345-456-12356-456-2345
+word tout\sà\scoup 16-456-12356-456-14
+word tout\sà\sfait 16-456-12356-456-124
+word très\sbien 356-456-12
+word vis-à-vis 1236-36-12356-36-1236
+
+sufword jusqu' 245-12345-3
+sufword lorsqu' 123-12345-3
+sufword parce\squ' 1234-456-12345-3
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb
new file mode 100644
index 0000000..c962f20
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb
@@ -0,0 +1,249 @@
+# liblouis: Latvian Grade 1 Braille Table
+# Created & maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+
+include text_nabcc.dis
+
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 235				exclamation sign 						x0021
+punctuation " 356				double quote								x0022
+sign # 3456							number sign									x0023
+sign $ 4-256						dollar sign									x0024
+sign % 25-1234					percent sign								x0025
+sign & 4-12346					ampersand										z0026
+punctuation ' 3					apostrophe									x0027
+punctuation ( 2356			left parenthesis						x0028
+punctuation ) 2356			right parenthesis						x0029
+sign * 35-35						asterisk										x002A
+math + 56-235						plus												002B
+punctuation , 6					coma												002C
+punctuation - 36-36			hyphen-minus								002D
+punctuation . 256				point												002E
+math / 34								solidus											002F
+
+include digits6Dots.uti
+
+punctuation : 25				colon								x003A
+punctuation ; 23				semicolon						x003B
+punctuation < 126				less-than sign			x003C
+math = 123456						equal sign					x003D
+math > 345							greater-than sign		x003E
+punctuation ? 26				question mark				x003F
+sign @ 3456-12456				commercial at				x0040
+
+uplow \x0100\x0101 16			letter A with macron
+uplow \x010C\x010D 146		letter C with caron
+uplow \x0112\x0113 156		letter E with macron
+uplow \x0122\x0123 12456	letter g with cedilla
+uplow \x012A\x012B 246		letter I with macron
+uplow \x0136\x0137 136		letter K with cedilla
+uplow \x013B\x013C 1236		letter L with cedilla
+uplow \x0145\x0146 13456	Letter N with cedilla
+uplow \x014C\x014D 1356		letter O with macron
+uplow \x0156\x0157 16-12346	letter T with cedilla
+uplow \x0160\x0161 2346			letter S with caron
+uplow \x016A\x016B 346			letter U with macron
+uplow \x017D\x017E 3456			letter Z with caron
+
+# define the dot combinations that are different from the default.
+# placed before the include to take precedence.
+uplow Uu 34									letter U *** Different from other langs ***
+uplow Vv 2456								letter V *** Different from other langs ***
+uplow Zz 345								letter Z *** Different from other langs ***
+include latinLetterDef6Dots.uti
+
+punctuation [ 6-2356		left square bracket		x005B
+sign \\ 3456-1256				reverse solidus				x005C
+punctuation ] 356-3			right square bracket	x005D
+sign ^ 45								circumflex accent			x005E
+sign _ 6-36							low line							x005F
+sign ` 45-4							grave accent					x0060
+
+# a - z								# 97 - 122							x0061-x007A
+
+punctuation { 45-236		left curly bracket		x007B
+sign | 456							vertical line					x007C
+punctuation } 45-356		right curly bracket		x007D
+math ~ 5								tilde									x007E
+sign \x0080 15-136-1235-135										x0080
+
+space \X00A0 0		no-break space																x00A0
+sign ¢ 4-14				cent sign																			x00A2
+sign £ 45-123			pound sign																		x00A3
+sign ¤ 45-15			currency sign																	x00A4
+sign ¥ 45-13456		yen	sign																			x00A5
+sign § 346				section sign																	x00A7
+sign © 2356-6-14-2356		copyright																x00A9
+punctuation « 45-2356		left-pointing double angle quotation 		x00AB
+punctuation \x00AD 36 soft hyphen
+sign ° 4-356			degree sign																		x00B0
+sign ² 4-6-126		superscript 2 sign														x00B2
+sign ³ 4-6-146		superscript 3 sign														x00B3
+sign µ 46-134			micro sign																		x00B5
+sign ¶ 4-1234-345 pilcrow sign (paragraph)											x00B6
+sign ¹ 1-27				superscript 1 sign														x00B9
+punctuation » 2356-12		right-pointing double angle quotation		x00BB
+math ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+math ½ 6-16-34-126		vulgar fraction one half									x00BD
+math ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+
+
+
+uplow \x00C0\x00E0 12356	letter a with grave							x00C0 / 00E0
+uplow \x00C1\x00E1 16			letter a with acute									x00E1
+uplow \x00C2\x00E2 16					letter a with circumflex						x00E2
+uplow \x00C3\x00E3 126		letter a with tilde											x00E3
+uplow Ää 345				A with diaeresis											x00C4 / 00E4
+uplow Åå 16					A with ring above											x00C5 / 00E5
+uplow \x00C6\x00E6 6-345	ae															x00C6
+uplow Çç 12346							letter c with cedilla					x00C7 / 00E7
+uplow Èè 2346								e with grave									x00C8 / 00E8
+uplow \x00C9\x00E9 345			e with acute									x00E9
+uplow \x00CA\x00EA 126			e with circumflex							x00EA
+uplow \x00CB\x00EB 1246		e with diaeresis								x00EB
+uplow \x00CD\x00ED 34			i with acute										x00ED
+uplow \x00CE\x00EE 146		i with circumflex								x00EE
+uplow \x00CF\x00EF 12456	i with diaeresis								x00CF / 00EF
+
+uplow	\x00D3\x00F3	246		O with acute										x00D3 / 00F3
+uplow \x00D4\x00F4 1456		o with circumflex												x00F4
+uplow \x00D5\x00F5 246		o with tilde														x00F5
+uplow Öö 246							O with diaeresis								x00D6 / 00F6
+math × 236				multiplication sign											x00D7
+uplow \x00D8\x00F8 246		o with stroke										x00D8 / 00F8
+
+math ÷ 256				division sign										x00F7
+
+uplow \x00DA\x00FA 346				u with acute							x00DA / 00FA
+uplow \x00DB\x00FB 156				u with circumflex					x00FB
+uplow \x00DC\x00FC 1256				u with diaeresis					x00FC
+uplow \x00DD\x00FD 12346			y with acute							x00DD / 00FD
+
+# the letter a with ogonek -----------------------------------
+uplow \x0104\x0105 16
+
+# the letter c with acute
+uplow \x0106\x0107 146
+
+uplow \x010C\x010D 146					C with caron
+uplow \x010E\x010F 1456					D with caron
+
+
+# the letter e with ogonek
+uplow \x0118\x0119 156
+
+uplow \x011A\x011B 126					E with caron
+
+# the letter l with stroke
+uplow \x0141\x0142 126
+
+# the letter n with acute
+uplow \x0143\x0144 1456
+uplow \x0147\x0148 1246					N with caron
+
+uplow \x0158\x0159 2456					R with caron
+
+# the letter s	with acute
+uplow \x015A\x015B 246
+
+uplow \x0160\x0161 156						S with caron
+uplow \x0164\x0165 1256						T with caron
+uplow \x016C\x016D 23456						U with breve
+uplow \x016E\x016F 23456					U with ring above
+
+
+# the letter z	with acute
+uplow \x0179\x017A 2346
+
+# the letter z with dot above
+uplow \x017B\x017C 12346
+
+uplow \x017D\x017E 2346						Z with caron
+
+punctuation	\x2010 36		 # 8208			hyphen
+punctuation	\x2011 36		 # 8209			non-breaking hyphen
+punctuation	\x2013 36		 # 8211			smart minus sign
+punctuation	\x2018 3		 # 8216			smart single left quotation mark
+punctuation	\x2019 3		 # 8217			smart single right quotation mark
+
+punctuation	\x201C 236	 # 8220			smart opening double quote
+punctuation	\x201D 356	 # 8221			smart closing double quote
+punctuation	\x201E 236	 # 8222			smart double low quotation mark
+punctuation	\x201F 356	 # 8223			smart double high reverse quotation mark
+punctuation  \x2026 3-3-3 # 8230		smart ellipsis
+
+# ------------------------------------------------------
+
+
+capsign 6				# single capital letter indicator
+begcaps 6-6			# a block of consecutive capital letters indicator
+
+
+numsign 3456		#	number sign, just one operand
+midnum , 6
+midnum . 256
+midnum + 235
+midnum - 36
+midnum / 256
+midnum : 25
+midnum = 2356
+
+# endnum # 56-3456
+
+prepunc " 236
+postpunc " 356
+
+prepunc ' 6-236
+postpunc ' 356-3
+postpunc '' 356
+postpunc ''' 356-3-356
+
+repeated *** 16-16-16
+
+prepunc `` 236
+prepunc ` 6-236
+
+
+repeated \s 0
+repeated \t 0
+repeated \x00a0 0 no break space
+repeated --- 36-36-36
+
+repeated ::: 25-25-25
+
+repeated ~~~ 156-156-156
+always \s-\s 36-36
+always \s-\scom 36-36-14-135-134
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+
+always \s­\s 36-36
+
+# special character sequences
+literal :// URLs
+literal www.
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zip
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb
new file mode 100644
index 0000000..74db27b
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb
@@ -0,0 +1,175 @@
+# liblouis: Dutch (netherlands) Grade 1 Braille Table
+# Created by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+# Compilation June 22, 2006
+
+locale Netherlands
+
+include text_nabcc.dis
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 235			exclamation mark				x0021
+punctuation " 2356		double quote						x0022
+sign # 3456						number sign							x0023
+# sign $ 256-3456				dollar sign							x0024
+sign $ 145						dollar sign							x0024		Suzanne's correction
+sign % 245-356				percent sign						x0025
+sign & 356						ampersand								z0026
+punctuation ' 3				apostrophe							x0027
+punctuation ( 236			left parenthesis				x0028
+punctuation ) 356			right parenthesis				x0029
+sign * 35							asterisk								x002A
+math + 235						plus										002B
+punctuation , 2				coma										002C
+punctuation - 36			hyphen-minus						002D
+punctuation . 256			point										002E
+math / 34							solidus									002F
+
+include digits6Dots.uti
+
+punctuation : 25		colon											x003A
+punctuation ; 23		semicolon									x003B
+math < 5-246				less-than sign						x003C
+math = 2356					equal sign								x003D
+# math > 4-135				greater-than sign					x003E
+math > 5-135				greater-than sign					x003E		Suzanne's correction
+punctuation ? 26		question mark							x003F
+sign @ 345					commercial at							x0040
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 12356		left square bracket				x005B
+# sign \\ 2346					reverse solidus								x005C
+# sign \\ 16						reverse solidus								x005C		Suzanne's correction
+sign \\ 5-16						reverse solidus								x005C		Suzanne's correction
+
+punctuation ] 23456		right square bracket					x005D
+sign ^ 235						circumflex accent							x005E
+sign _ 456						low line											x005F
+sign ` 4							grave accent									x0060
+
+# a - z								# 97 - 122								x0061-x007A
+
+# punctuation { 246			left curly bracket				x007B
+punctuation { 5-12356	left parenthesis						x007B
+
+# sign | 1256						vertical line								x007C
+sign | 5-1456						vertical line								x007C
+
+# punctuation } 12456		right curly bracket				x007D
+punctuation } 5-23456		right curly bracket				x007D
+
+# math ~ 25							tilde											x007E
+sign ~ 5-26							tilde											x007E
+
+# sign \x0080 15-136-1235-135		euro sign					x0080
+sign \x0080 15				euro sign									x0080	Suzanne's correction
+
+punctuation \x0092 3	single right quotation mark		x0092
+
+space \X00A0 0				no-break space								x00A0
+
+sign ¢ 4-14				cent sign													x00A2
+# sign £ 123-3456		pound sign											x00A3
+sign £ 1234		pound sign														x00A3	Suzanne's correction
+
+sign ¤ 45-15			currency sign											x00A4
+# sign ¥ 45-13456		yen	sign												x00A5
+sign ¥ 13456			yen	sign													x00A5	Suzanne's correction
+sign § 346				paragraph	sign																x00A7
+sign © 6-14-135-1234-13456-1235-24-1245-125-2345		copyright		x00A9
+sign « 45-2356		left-pointing double angle quotation mark			x00AB
+sign ° 34-356			degree sign																		x00B0
+sign ² 4-6-126		superscript 2 sign														x00B2
+sign ³ 4-6-146		superscript 3 sign														x00B3
+sign ¹ 4-6-16			superscript 1 sign														x00B9
+sign » 2356-12		right-pointing double angle quotation mark		x00BB
+math ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+math ½ 6-16-34-126		vulgar fraction one half									x00BD
+math ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+
+uplow \x00C0\x00E0 12356	letter a with grave	(à)		x00C0 / 00E0
+uplow Áá 12356						letter a with acute				x00C1 / 00E1
+uplow Ââ 16								letter a with circumflex	x00C2 / 00E2
+uplow \x00C3\x00E3 345		letter a with tilde				x00C3
+uplow Ää 345							A with diaeresis					x00C4 / 00E4
+uplow Åå 16								A with ring above					x00C5 / 00E5
+uplow Ææ 345																				x00C6 / 00E6
+uplow Çç 12346						letter c with cedilla			x00C7
+uplow Èè 2346																				x00C8
+uplow Éé 123456						small e with acute				x00C9
+uplow \x00CA\x00EA 126		e with circumflex (ê)			x00CA
+uplow \x00DC\x00FC 1256		u with diaeresis
+uplow Ëë 1246																				x00CB
+uplow Ññ 12456						N with tilde							x00D1
+uplow Öö 123456						O with diaeresis					x00D6
+math × 236								multiplication sign				x00D7
+
+letter ì 24																					x00EC
+letter í 34					small i with acute							x00ED
+letter î 146																				x00EE
+letter ï 12456																			x00EF
+letter ñ 12456			small n with tilde							x00F1
+letter ò 135																				x00F2
+letter ó 346				small o with acute							x00F3
+letter ô 1456				small o with circumflex					x00F4
+letter \x00F5 246		small o with tilde							x00F5
+letter ö 123456			small o with diaeresis					x00F6
+math ÷ 256				division sign										x00F7
+letter ù 12356																			x00F9
+letter ú 23456				small u with acute							x00FA
+letter û 156																				x00FB
+
+letter \x0192 124		small F with hook								x0192
+
+
+
+punctuation	\x2010 36		 # 8208			hyphen
+punctuation	\x2011 46		 # 8209			non-breaking hyphen
+punctuation	\x2013 36		 # 8211			smart minus sign
+punctuation	\x2018 3		 # 8216			smart single left quotation mark
+punctuation	\x2019 3		 # 8217			smart single right quotation mark
+
+punctuation	\x201C 236					# 8220	smart opening double quote
+punctuation	\x201D 356					# 8221	smart closing double quote
+punctuation	\x201E 236					# 8222	smart double low quotation mark
+punctuation	\x201F 356					# 8223	smart double high reverse quotation mark
+punctuation  \x2026 256-256-256	# 8230	smart ellipsis
+
+sign \x00B7 56			# so the lines below compile
+sign \x00B8 45			# ibid
+
+sign \x2030 3456-245-356-356		# per mile sign 
+
+# sign \x20AC 46-15-3456					# 8364 Euro sign
+sign \x20AC 15				euro sign									x0080	Suzanne's correction
+
+prepunc " 236
+postpunc " 356
+
+capsign 46
+begcaps 45
+
+numsign 3456
+midnum , 2
+midnum . 3
+midnum + 235
+midnum - 36
+midnum / 256
+midnum : 25
+midnum = 2356
+
+endnum # 56-3456
+
+repeated \s 0
+repeated \t 0
+repeated \x00a0 0
+
+repeated ... 3-3-3
+repeated --- 36-36-36
+repeated ___ 456-456-456
+
+always \s--\s 36-36	tiret
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb
new file mode 100644
index 0000000..0095f92
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb
@@ -0,0 +1,218 @@
+# liblouis: Polish Grade 1 Braille Table
+# Created & maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+
+include text_nabcc.dis
+
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 235			exclamation sign   						x0021
+punctuation " 356			double quote									x0022
+sign # 3456						number sign										x0023
+sign $ 256						dollar sign										x0024
+sign % 4-356					percent sign									x0025
+sign & 456-12346			ampersand											z0026
+punctuation ' 3				apostrophe										x0027
+punctuation ( 2356			left parenthesis						x0028
+punctuation ) 2356			right parenthesis						x0029
+sign * 35-35						asterisk										x002A
+math + 235							plus												002B
+punctuation , 2					coma												002C
+punctuation - 36				hyphen-minus								002D
+punctuation . 3					point												002E
+math / 456-34						solidus											002F
+
+include digits6Dots.uti
+
+punctuation : 25				colon								x003A
+punctuation ; 23				semicolon						x003B
+punctuation < 5-13			less-than sign			x003C
+math = 2356			equal sign					x003D
+math > 46-2			greater-than sign		x003E
+punctuation ? 26				question mark				x003F
+sign @ 4-1			commercial at				x0040
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 12356		left square bracket						x005B
+sign \\ 2				reverse solidus								x005C
+punctuation ] 23456		right square bracket					x005D
+sign ^ 5				circumflex accent							x005E
+sign _ 46				low line											x005F
+sign ` 4				grave accent									x0060
+
+# a - z								# 97 - 122								x0061-x007A
+
+punctuation { 246				left curly bracket					x007B
+sign | 56					vertical line								x007C
+punctuation } 12456			right curly bracket					x007D
+math ~ 256				tilde												x007E
+sign \x0080 15-136-1235-135										x0080
+
+space \X00A0 0		no-break space																x00A0
+sign ¢ 4-14				cent sign																			x00A2
+sign £ 45-123			pound sign																		x00A3
+sign ¤ 45-15			currency sign																	x00A4
+sign ¥ 45-13456		yen	sign																			x00A5
+sign § 346				section sign																	x00A7
+sign © 2356-6-14-2356		copyright																x00A9
+punctuation « 236				left-pointing double angle quotation 		x00AB
+punctuation \x00AD 36 soft hyphen
+sign ° 4-356			degree sign																		x00B0
+sign ² 4-6-126		superscript 2 sign														x00B2
+sign ³ 4-6-146		superscript 3 sign														x00B3
+sign µ 46-134			micro sign																		x00B5
+sign ¶ 4-1234-345 pilcrow sign (paragraph)											x00B6
+sign ¹ 1-27				superscript 1 sign														x00B9
+punctuation » 356			right-pointing double angle quotation		x00BB
+math ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+math ½ 6-16-34-126		vulgar fraction one half									x00BD
+math ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+
+uplow \x00C0\x00E0 12356	letter a with grave							x00C0 / 00E0
+uplow \x00C1\x00E1 12356			letter a with acute									x00E1
+uplow \x00C2\x00E2 16					letter a with circumflex						x00E2
+uplow \x00C3\x00E3 126		letter a with tilde											x00E3
+uplow Ää 345				A with diaeresis											x00C4 / 00E4
+uplow Åå 16					A with ring above											x00C5 / 00E5
+uplow \x00C6\x00E6 6-345	ae															x00C6
+uplow Çç 12346			letter c with cedilla									x00C7 / 00E7
+uplow Èè 2346				e with grave													x00C8 / 00E8
+uplow \x00C9\x00E9 123456		e with acute													x00E9
+uplow \x00CA\x00EA 126			e with circumflex											x00EA
+uplow \x00CB\x00EB 1246		e with diaeresis												x00EB
+uplow \x00CD\x00ED 34			i with acute													x00ED
+uplow \x00CE\x00EE 146		i with circumflex											x00EE
+uplow \x00CF\x00EF 12456	i with diaeresis								x00CF / 00EF
+
+uplow	\x00D3\x00F3	346 O with acute											x00D3 / 00F3
+uplow \x00D4\x00F4 1456	o with circumflex													x00F4
+uplow \x00D5\x00F5 246		o with tilde														x00F5
+uplow Öö 246						O with diaeresis									x00D6 / 00F6
+math × 236				multiplication sign											x00D7
+uplow \x00D8\x00F8 246		o with stroke										x00D8 / 00F8
+
+math ÷ 256				division sign										x00F7
+
+uplow \x00DA\x00FA 23456			u with acute							x00DA / 00FA
+uplow \x00DB\x00FB 156				u with circumflex					x00FB
+uplow \x00DC\x00FC 1256				u with diaeresis					x00FC
+uplow \x00DD\x00FD 12346			y with acute							x00DD / 00FD
+
+# the letter a with ogonek -----------------------------------
+uplow \x0104\x0105 16
+
+# the letter c with acute
+uplow \x0106\x0107 146
+
+# the letter e with ogonek
+uplow \x0118\x0119 156
+
+# the letter l with stroke
+uplow \x0141\x0142 126
+
+# the letter n with acute
+uplow \x0143\x0144 1456
+
+# the letter s	with acute
+# always	\x015A	246																	x015A
+# always	\x015B	246
+uplow \x015A\x015B 246
+
+# the letter z	with acute
+# always	\x0179	2346																x0179
+# always	\x017A	2346
+uplow \x0179\x017A 2346
+
+# the letter z with dot above
+# always	\x017B	12346																x017B
+# always	\x017C	12346																x017C
+uplow \x017B\x017C 12346
+
+punctuation	\x2010 36		 # 8208			hyphen
+punctuation	\x2011 36		 # 8209			non-breaking hyphen
+punctuation	\x2013 36		 # 8211			smart minus sign
+punctuation	\x2018 3		 # 8216			smart single left quotation mark
+punctuation	\x2019 3		 # 8217			smart single right quotation mark
+
+punctuation	\x201C 236	 # 8220			smart opening double quote
+punctuation	\x201D 356	 # 8221			smart closing double quote
+punctuation	\x201E 236	 # 8222			smart double low quotation mark
+punctuation	\x201F 356	 # 8223			smart double high reverse quotation mark
+punctuation  \x2026 3-3-3 # 8230		smart ellipsis
+
+# ------------------------------------------------------
+
+
+capsign 46			# single capital letter indicator
+begcaps 4-6			# a block of consecutive capital letters indicator
+
+numsign 3456		#	number sign, just one operand
+midnum , 3
+midnum . 2
+midnum + 235
+midnum - 36
+midnum / 256
+midnum : 25
+midnum = 2356
+
+endnum # 56-3456
+
+prepunc " 236
+postpunc " 356
+
+prepunc ' 6-236
+postpunc ' 356-3
+postpunc '' 356
+postpunc ''' 356-3-356
+
+repeated *** 16-16-16
+
+prepunc `` 236
+prepunc ` 6-236
+
+
+repeated \s 0
+repeated \t 0
+repeated \x00a0 0 no break space
+repeated --- 36-36-36
+
+repeated ___ 46-46-46
+
+repeated ::: 25-25-25
+repeated === 46-13-46-13-46-13
+repeated ~~~ 4-156-4-156-4-156
+always \s-\s 36-36
+always \s-\scom 36-36-14-135-134
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+
+always \s­\s 36-36
+
+# special character sequences
+literal :// URLs
+literal www.
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zip
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb
new file mode 100644
index 0000000..5f9ffe2
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb
@@ -0,0 +1,129 @@
+# liblouis: Swedish Grade 1 Braille Table
+# Created by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+
+locale Sweden
+
+include se-se.dis
+
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+
+punctuation ! 235			exclamation mark		x0021
+punctuation " 56			double quote				x0022
+sign # 45-3456				number sign					x0023
+sign $ 4-234					dollar							x0024
+sign % 46-356					percent							x0025
+sign & 5-346					ampersand						x0026
+punctuation ' 5				apostrophe					x0027
+punctuation ( 236			left parenthesis		x0028
+punctuation ) 356			right parenthesis		x0029
+sign * 35							asterisk						x002A
+math + 256						plus								x002B
+punctuation , 2				coma								x002C
+punctuation - 36			hyphen-minus				x002D
+punctuation . 3				point								x002E
+math / 34							solidus							x002F
+
+include digits6Dots.uti
+
+punctuation : 25			colon								x003A
+punctuation ; 23			semicolon						x003B
+math < 246-3					less-than sign			x003C
+math = 2356						equal sign					x003D
+math > 135-2					greater-than sign		x003E
+punctuation ? 26			question mark				x003F
+sign @ 45-12356				commercial at				x0040
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 12356	left square bracket		x005B
+sign \\ 45-34				reverse solidus				x005C
+punctuation ] 23456	right square bracket	x005D
+sign ^ 4						circumflex accent			x005E
+sign _ 6						low line							x005F
+sign ` 46						grave accent					x0060
+
+# a - z								# 97 - 122					x0061-x007A
+
+punctuation { 6-236	left curly bracket		x007B
+sign | 456					vertical line					x007C
+punctuation } 6-356	right curly bracket		x007D
+math ~ 45-2					tilde									x007E
+space \X00A0 0			no-break space				x00A0
+sign ¢ 4-14					cent sign							x00A2
+sign £ 45-123				pound sign						x00A3
+sign ¤ 45-15				currency sign					x00A4
+sign ¥ 45-13456			yen										x00A5
+sign § 346					paragraph							x00A7
+
+sign © 6-14-135-1234-13456-1235-24-1245-125-2345		copyright		x00A9
+punctuation « 45-2356	left pointing double angle								x00AB
+
+sign ° 4-356					degree sign									x00B0
+sign ² 4-6-126				superscript 2								x00B2
+sign ³ 4-6-146				superscript 3								x00B3
+sign ¹ 4-6-16					superscript 1								x00B9
+punctuation » 2356-12	right pointing double angle	x00BB
+math ¼ 6-16-34-1456		vulgar fraction 1 quarter		x00BC
+math ½ 6-16-34-126		vulgar fraction one half		x00BD
+math ¾ 6-126-34-1456	vulgar fraction 3 quarters	x00BE
+
+uplow \x00C0\x00E0 12356			A with grave				x00C0
+uplow Ää 345							a with diaeresis		x00C4
+uplow Åå 16										A with ring above		x00C5
+uplow \x00C8\x00E8	2346			E with grave above	x00C8
+uplow Éé 123456								E with acute above	x00C9
+
+uplow Öö 246																			x00D6
+math × 1346						multiplication sign					x00D7
+
+uplow Üü 1256-1256						U with diaeresis		x00DC
+
+math ÷ 34							division sign								x00F7
+
+punctuation	\x2010 46		 # 8208			hyphen
+punctuation	\x2011 46		 # 8209			non-breaking hyphen
+punctuation	\x2013 36		 # 8211			smart minus sign
+punctuation	\x2018 5		 # 8216			smart single left quotation mark
+punctuation	\x2019 5		 # 8217			smart single right quotation mark
+
+punctuation	\x201C 56		# 8220			smart opening double quote
+punctuation	\x201D 56		# 8221			smart closing double quote
+punctuation	\x201E 56		# 8222			smart double low quotation mark
+punctuation	\x201F 56		# 8223			smart double high reverse quotation mark
+
+punctuation \x2026 3-3-3 # 8230			smart ellipsis
+
+sign \x20AC 15-136-1235-135					Euro sign
+
+
+# -----------------------
+
+capsign 6
+begcaps 6-6			# uncomment if you don't want capitalization
+
+sign \x00B7 3456			# so the line below compile
+numsign 3456
+midnum , 2
+midnum . 3
+midnum + 256
+midnum - 36
+midnum / 34
+midnum : 25
+
+endnum # 56-3456
+
+repeated \s 0		spaces
+repeated \t 0		tabulations
+repeated \x00a0 0		espaces insécables
+
+repeated ... 3-3-3		ellipsis
+repeated --- 36-36-36
+repeated ___ 6-6-6
+
+always \s--\s 36-36	tiret
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb
new file mode 100644
index 0000000..7c10d27
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb
@@ -0,0 +1,300 @@
+# liblouis: Generic Arabic Grade 1 table
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. 
+# Copyright (C) 2004 by ViewPlus Technologies, Inc.,  www.viewplustech.com
+# Copyright (C) 2004 by Computers to Help People, Inc., www.chpi.org  
+# Copyright (C) 2011-2012 by Mesar Hameed <mhameed@src.gnome.org>
+#
+# liblouis comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+#
+# This table is built and maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>
+# with help and guidance from Mohammed R. Ramadan <mramadan@nattiq.com>
+
+include text_nabcc.dis All display opcodes
+include braille-patterns.cti # unicode braille.
+
+
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab					#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank				# 32
+punctuation ! 235				# 33
+punctuation " 2356				# 34
+sign # 3456					# 35
+sign $ 4-234					# 36
+sign % 25-1234					# 37
+sign & 1234					# 38
+punctuation ' 3					# 39 apostrophe
+
+punctuation ) 356				# 40
+punctuation ( 236				# 41
+
+sign * 56-35					# 42
+math + 56-235					# 43
+punctuation , 46				# 44
+punctuation - 36				# 45
+
+punctuation \x06D4 256				# Arabic Full stop
+punctuation . 256				# 46
+
+math / 34					# 47
+include loweredDigits6Dots.uti
+punctuation : 25				# 58
+punctuation ; 56				# 59
+math < 0-246-0					# 60
+math = 56-2356					# 61
+math > 0-135-0					# 62
+punctuation ? 1456				# 63
+sign @ 4					# 64
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 6-236				# 91
+sign \\ 6-34					# 92
+punctuation ] 356-6				# 93
+sign ^ 346					# 94 circumflex accent
+sign _ 456					# 95 underscore
+sign ` 4					# 96 grave accent
+punctuation { 5-236				# 123
+sign | 1245					# 124
+punctuation } 356-2				# 125
+math ~ 45					# 126
+
+space \X00A0 0					# 160 no-break space
+sign \x00A2 4-14				# 162 ¢ cents sign
+sign \x00A3 4-123				# 163 £ pounds sign
+
+sign \x00A5 4-13456				# 165 ¥ yen sign
+
+sign \x00A7 4-234-3				# 167 section sign §
+
+sign \x00A9 2356-6-14-2356 			# 169 © copyright sign
+
+sign \x00AB 2356 				# LEFT-POINTING DOUBLE ANGLE QUOTATION
+sign \x00AE 16-256				# ® Registered mark
+
+punctuation \x00Ad 36				# 173 soft hyphen
+
+sign \x00B0 356					# 176 ° degrees sign
+
+sign \x00B5 46-134				# 181 µ micro sign
+sign \x00B6 4-1234-345				# 182 ¶ pilcrow sign
+
+sign \x00BB 2356 				# RIGHT-POINTING DOUBLE ANGLE QUOTATION
+sign \x00BF 236					# 191 inverted question mark
+
+math \x00D7 56-236				# 215 × multiplication sign
+
+math \x00F7 56-256				# 247 ÷ division sign
+
+sign \x200C 9 					# ZERO WIDTH NON-JOINER
+punctuation \x2010 36				# 8208 hyphen
+punctuation \x2011 23478			# 8209 non-breaking hyphen
+
+punctuation \x2013 6-36				# 8211	en dash
+
+
+punctuation	\x2018 3			# 8216	smart single left quotation mark
+punctuation	\x2019 3			# 8217	smart single right quotation mark
+
+punctuation	\x201C 2356			# 8220	smart opening double quote
+punctuation	\x201D 2356			# 8221	smart closing double quote
+punctuation	\x201E 2356			# 8222	smart double low quotation mark
+punctuation	\x201F 2356			# 8223	smart double high reverse quotation mark
+
+
+punctuation \x2026 3-3-3			# 8230 smart ellipsis
+
+sign \x20AC 4-15				# 8364 Euro sign
+sign \x25CF 35 					# BLACK CIRCLE
+
+#-------------------------- Arabic characters ---------------------------------
+
+sign \x060C 5
+sign \x061B 56
+sign \x061F 236					# Arabic question mark (؟)
+sign \x0621 3
+sign \x0622 345
+sign \x0623 34
+sign \x0624 1256
+sign \x0625 46
+sign \x0626 13456
+sign \x0627 1					# Alef (ا)
+sign \x0628 12
+sign \x0629 16
+sign \x062B 1456
+sign \x062A 2345				# Teh (ت)
+sign \x062C 245
+sign \x062D 156
+sign \x062E 1346
+sign \x062F 145
+sign \x0630 2346
+sign \x0631 1235
+sign \x0632 1356
+sign \x0633 234
+sign \x0634 146
+sign \x0635 12346
+sign \x0636 1246
+sign \x0637 23456
+sign \x0638 123456
+sign \x0639 12356
+sign \x063A 126
+sign \x0640 2
+sign \x0641 124
+sign \x0642 12345
+sign \x0643 13
+sign \x0644 123
+sign \x0645 134
+sign \x0646 1345
+sign \x0647 125
+sign \x0648 2456
+sign \x0649 135
+sign \x064A 24
+sign \x064E 2
+sign \x0650 15
+
+
+sign \x064B 23
+sign \x064C 26
+sign \x064D 35
+sign \x064F 136
+sign \x0651 6
+sign \x0652 25
+
+
+always \x0644\x0627 1236
+always \x0640\x0640\x0640\x064F 136
+always \x0640\x0640\x0640\x064B 23
+always \x0640\x0640\x0640\x064C 26
+
+# --------------------------- end definitions ---------------------------------
+
+include countries.cti
+
+# include text.nabcc.dis All display opcodes
+# include text_nabcc.dis All display opcodes
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+multind 56-6 letsign capsign
+# letsign 56
+capsign 6
+begcaps 6-6
+endcaps 6-3
+begital 46
+endital 46-46
+begbold 456
+endbold 456-456
+begcomp 456-346
+endcomp 456-156
+
+# the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Arabic numerals
+digit \x0660 345		# 0 (٠)
+digit \x0661 1			# 1 (١)
+digit \x0662 12 		# 2 (٢)
+digit \x0663 14 		# 3 (٣)
+digit \x0664 145 		# 4 (٤)
+digit \x0665 15 		# 5 (٥)
+digit \x0666 124 		# 6 (٦)
+digit \x0667 1245 		# 7 (٧)
+digit \x0668 125 		# 8 (٨)
+digit \x0669 24 		# 9 (٩)
+
+# Letters are defined in en-chardefs
+# punctuation
+
+# prepunc ( 356
+# postpunc ) 236
+prepunc ) 356
+postpunc ( 236
+
+prepunc " 2356
+postpunc " 2356
+
+prepunc ' 6-236
+postpunc ' 356-3
+word 'em = 
+word 'tis =
+word 'twas =
+begnum # 3456-4 print number sign before number
+midnum , 46
+postpunc , 46
+decpoint . 46
+midnum - 36
+hyphen - 36
+#capsnocont
+postpunc . 256
+postpunc ; 23
+midnum : 25
+postpunc : 25
+postpunc ! 235
+midnum / 34
+always / 34
+always < 0-246-0
+always > 0-135-0
+postpunc ? 236
+endnum % 25-1234
+midnum ^ 346
+always ^ 346
+always ~ 45
+always & 1234
+midnum * 56-35
+always * 56-35
+always [ 6-236
+always ] 356-3
+always { 5-236
+always } 356-2
+prepunc ` 6-236
+always @ 4
+always \\ 6-34
+always | 1245
+repeated \s 0
+repeated \t 0
+# always \s-\s 36-36
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+always $ 4-234
+
+# special character sequences
+compbrl :// URLs
+compbrl www.
+compbrl .com
+compbrl .edu
+compbrl .gov
+compbrl .mil
+compbrl .net
+compbrl .org
+# include countries.cti
+compbrl .doc
+compbrl .htm
+compbrl .html
+compbrl .tex
+compbrl .txt
+compbrl .gif
+compbrl .jpg
+compbrl .png
+compbrl .wav
+compbrl .tar
+compbrl .zip
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb
new file mode 100644
index 0000000..714ecf9
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb
@@ -0,0 +1,112 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Bulgarian
+#
+# Samuel Thibault <samuel.thibault@ens-lyon.org>
+# 
+# This table is based on the Unesco report on the progress of unification of
+# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
+# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
+# The document is dated 1954, so this table may be quite outdated.
+
+# generated by ttbtest
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation ' 3		APOSTROPHE
+punctuation ( 236		LEFT PARENTHESIS
+punctuation ) 356		RIGHT PARENTHESIS
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+include digits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation ? 26		QUESTION MARK
+punctuation \x00a0 0		NO-BREAK SPACE
+uppercase \x0401 167		CYRILLIC CAPITAL LETTER IO
+uppercase \x0410 17		CYRILLIC CAPITAL LETTER A
+uppercase \x0411 127		CYRILLIC CAPITAL LETTER BE
+uppercase \x0412 24567		CYRILLIC CAPITAL LETTER VE
+uppercase \x0413 12457		CYRILLIC CAPITAL LETTER GHE
+uppercase \x0414 1457		CYRILLIC CAPITAL LETTER DE
+uppercase \x0415 157		CYRILLIC CAPITAL LETTER IE
+uppercase \x0416 2457		CYRILLIC CAPITAL LETTER ZHE
+uppercase \x0417 13567		CYRILLIC CAPITAL LETTER ZE
+uppercase \x0418 247		CYRILLIC CAPITAL LETTER I
+uppercase \x0419 123467		CYRILLIC CAPITAL LETTER SHORT I
+uppercase \x041a 137		CYRILLIC CAPITAL LETTER KA
+uppercase \x041b 1237		CYRILLIC CAPITAL LETTER EL
+uppercase \x041c 1347		CYRILLIC CAPITAL LETTER EM
+uppercase \x041d 13457		CYRILLIC CAPITAL LETTER EN
+uppercase \x041e 1357		CYRILLIC CAPITAL LETTER O
+uppercase \x041f 12347		CYRILLIC CAPITAL LETTER PE
+uppercase \x0420 12357		CYRILLIC CAPITAL LETTER ER
+uppercase \x0421 2347		CYRILLIC CAPITAL LETTER ES
+uppercase \x0422 23457		CYRILLIC CAPITAL LETTER TE
+uppercase \x0423 1367		CYRILLIC CAPITAL LETTER U
+uppercase \x0424 1247		CYRILLIC CAPITAL LETTER EF
+uppercase \x0425 1257		CYRILLIC CAPITAL LETTER HA
+uppercase \x0426 147		CYRILLIC CAPITAL LETTER TSE
+uppercase \x0427 123457		CYRILLIC CAPITAL LETTER CHE
+uppercase \x0428 1567		CYRILLIC CAPITAL LETTER SHA
+uppercase \x0429 13467		CYRILLIC CAPITAL LETTER SHCHA
+uppercase \x042a 123567		CYRILLIC CAPITAL LETTER HARD SIGN
+uppercase \x042b 23467		CYRILLIC CAPITAL LETTER YERU
+uppercase \x042c 234567		CYRILLIC CAPITAL LETTER SOFT SIGN
+uppercase \x042d 2467		CYRILLIC CAPITAL LETTER E
+uppercase \x042e 12567		CYRILLIC CAPITAL LETTER YU
+uppercase \x042f 12467		CYRILLIC CAPITAL LETTER YA
+lowercase \x0430 1		CYRILLIC SMALL LETTER A
+lowercase \x0431 12		CYRILLIC SMALL LETTER BE
+lowercase \x0432 2456		CYRILLIC SMALL LETTER VE
+lowercase \x0433 1245		CYRILLIC SMALL LETTER GHE
+lowercase \x0434 145		CYRILLIC SMALL LETTER DE
+lowercase \x0435 15		CYRILLIC SMALL LETTER IE
+lowercase \x0436 245		CYRILLIC SMALL LETTER ZHE
+lowercase \x0437 1356		CYRILLIC SMALL LETTER ZE
+lowercase \x0438 24		CYRILLIC SMALL LETTER I
+lowercase \x0439 12346		CYRILLIC SMALL LETTER SHORT I
+lowercase \x043a 13		CYRILLIC SMALL LETTER KA
+lowercase \x043b 123		CYRILLIC SMALL LETTER EL
+lowercase \x043c 134		CYRILLIC SMALL LETTER EM
+lowercase \x043d 1345		CYRILLIC SMALL LETTER EN
+lowercase \x043e 135		CYRILLIC SMALL LETTER O
+lowercase \x043f 1234		CYRILLIC SMALL LETTER PE
+lowercase \x0440 1235		CYRILLIC SMALL LETTER ER
+lowercase \x0441 234		CYRILLIC SMALL LETTER ES
+lowercase \x0442 2345		CYRILLIC SMALL LETTER TE
+lowercase \x0443 136		CYRILLIC SMALL LETTER U
+lowercase \x0444 124		CYRILLIC SMALL LETTER EF
+lowercase \x0445 125		CYRILLIC SMALL LETTER HA
+lowercase \x0446 14		CYRILLIC SMALL LETTER TSE
+lowercase \x0447 12345		CYRILLIC SMALL LETTER CHE
+lowercase \x0448 156		CYRILLIC SMALL LETTER SHA
+lowercase \x0449 1346		CYRILLIC SMALL LETTER SHCHA
+lowercase \x044a 12356		CYRILLIC SMALL LETTER HARD SIGN
+lowercase \x044b 2346		CYRILLIC SMALL LETTER YERU
+lowercase \x044c 23456		CYRILLIC SMALL LETTER SOFT SIGN
+lowercase \x044d 246		CYRILLIC SMALL LETTER E
+lowercase \x044e 1256		CYRILLIC SMALL LETTER YU
+lowercase \x044f 1246		CYRILLIC SMALL LETTER YA
+lowercase \x0451 16		CYRILLIC SMALL LETTER IO
+uppercase \x0462 3457		CYRILLIC CAPITAL LETTER YAT
+lowercase \x0463 345		CYRILLIC SMALL LETTER YAT
+uppercase \x046a 2467		CYRILLIC CAPITAL LETTER BIG YUS
+lowercase \x046b 246		CYRILLIC SMALL LETTER BIG YUS
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti
new file mode 100644
index 0000000..eafd6c0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti
@@ -0,0 +1,287 @@
+#
+#  Copyright (C) 2010, 2011 DocArch <http://www.docarch.be>.
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# ----------------------------------------------------------------------------------------------
+#  odt2braille - Braille authoring in OpenOffice.org.
+# ----------------------------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2800..28FF  Braille Patterns
+# ----------------------------------------------------------------------------------------------
+
+noback sign        \x2800  0                    # ⠀                   BRAILLE PATTERN DOTS-0
+noback sign        \x2801  1                    # ⠁                   BRAILLE PATTERN DOTS-1
+noback sign        \x2802  2                    # ⠂                   BRAILLE PATTERN DOTS-2
+noback sign        \x2803  12                   # ⠃                   BRAILLE PATTERN DOTS-12
+noback sign        \x2804  3                    # ⠄                   BRAILLE PATTERN DOTS-3
+noback sign        \x2805  13                   # ⠅                   BRAILLE PATTERN DOTS-13
+noback sign        \x2806  23                   # ⠆                   BRAILLE PATTERN DOTS-23
+noback sign        \x2807  123                  # ⠇                   BRAILLE PATTERN DOTS-123
+noback sign        \x2808  4                    # ⠈                   BRAILLE PATTERN DOTS-4
+noback sign        \x2809  14                   # ⠉                   BRAILLE PATTERN DOTS-14
+noback sign        \x280A  24                   # ⠊                   BRAILLE PATTERN DOTS-24
+noback sign        \x280B  124                  # ⠋                   BRAILLE PATTERN DOTS-124
+noback sign        \x280C  34                   # ⠌                   BRAILLE PATTERN DOTS-34
+noback sign        \x280D  134                  # ⠍                   BRAILLE PATTERN DOTS-134
+noback sign        \x280E  234                  # ⠎                   BRAILLE PATTERN DOTS-234
+noback sign        \x280F  1234                 # ⠏                   BRAILLE PATTERN DOTS-1234
+noback sign        \x2810  5                    # ⠐                   BRAILLE PATTERN DOTS-5
+noback sign        \x2811  15                   # ⠑                   BRAILLE PATTERN DOTS-15
+noback sign        \x2812  25                   # ⠒                   BRAILLE PATTERN DOTS-25
+noback sign        \x2813  125                  # ⠓                   BRAILLE PATTERN DOTS-125
+noback sign        \x2814  35                   # ⠔                   BRAILLE PATTERN DOTS-35
+noback sign        \x2815  135                  # ⠕                   BRAILLE PATTERN DOTS-135
+noback sign        \x2816  235                  # ⠖                   BRAILLE PATTERN DOTS-235
+noback sign        \x2817  1235                 # ⠗                   BRAILLE PATTERN DOTS-1235
+noback sign        \x2818  45                   # ⠘                   BRAILLE PATTERN DOTS-45
+noback sign        \x2819  145                  # ⠙                   BRAILLE PATTERN DOTS-145
+noback sign        \x281A  245                  # ⠚                   BRAILLE PATTERN DOTS-245
+noback sign        \x281B  1245                 # ⠛                   BRAILLE PATTERN DOTS-1245
+noback sign        \x281C  345                  # ⠜                   BRAILLE PATTERN DOTS-345
+noback sign        \x281D  1345                 # ⠝                   BRAILLE PATTERN DOTS-1345
+noback sign        \x281E  2345                 # ⠞                   BRAILLE PATTERN DOTS-2345
+noback sign        \x281F  12345                # ⠟                   BRAILLE PATTERN DOTS-12345
+noback sign        \x2820  6                    # ⠠                   BRAILLE PATTERN DOTS-6
+noback sign        \x2821  16                   # ⠡                   BRAILLE PATTERN DOTS-16
+noback sign        \x2822  26                   # ⠢                   BRAILLE PATTERN DOTS-26
+noback sign        \x2823  126                  # ⠣                   BRAILLE PATTERN DOTS-126
+noback sign        \x2824  36                   # ⠤                   BRAILLE PATTERN DOTS-36
+noback sign        \x2825  136                  # ⠥                   BRAILLE PATTERN DOTS-136
+noback sign        \x2826  236                  # ⠦                   BRAILLE PATTERN DOTS-236
+noback sign        \x2827  1236                 # ⠧                   BRAILLE PATTERN DOTS-1236
+noback sign        \x2828  46                   # ⠨                   BRAILLE PATTERN DOTS-46
+noback sign        \x2829  146                  # ⠩                   BRAILLE PATTERN DOTS-146
+noback sign        \x282A  246                  # ⠪                   BRAILLE PATTERN DOTS-246
+noback sign        \x282B  1246                 # ⠫                   BRAILLE PATTERN DOTS-1246
+noback sign        \x282C  346                  # ⠬                   BRAILLE PATTERN DOTS-346
+noback sign        \x282D  1346                 # ⠭                   BRAILLE PATTERN DOTS-1346
+noback sign        \x282E  2346                 # ⠮                   BRAILLE PATTERN DOTS-2346
+noback sign        \x282F  12346                # ⠯                   BRAILLE PATTERN DOTS-12346
+noback sign        \x2830  56                   # ⠰                   BRAILLE PATTERN DOTS-56
+noback sign        \x2831  156                  # ⠱                   BRAILLE PATTERN DOTS-156
+noback sign        \x2832  256                  # ⠲                   BRAILLE PATTERN DOTS-256
+noback sign        \x2833  1256                 # ⠳                   BRAILLE PATTERN DOTS-1256
+noback sign        \x2834  356                  # ⠴                   BRAILLE PATTERN DOTS-356
+noback sign        \x2835  1356                 # ⠵                   BRAILLE PATTERN DOTS-1356
+noback sign        \x2836  2356                 # ⠶                   BRAILLE PATTERN DOTS-2356
+noback sign        \x2837  12356                # ⠷                   BRAILLE PATTERN DOTS-12356
+noback sign        \x2838  456                  # ⠸                   BRAILLE PATTERN DOTS-456
+noback sign        \x2839  1456                 # ⠹                   BRAILLE PATTERN DOTS-1456
+noback sign        \x283A  2456                 # ⠺                   BRAILLE PATTERN DOTS-2456
+noback sign        \x283B  12456                # ⠻                   BRAILLE PATTERN DOTS-12456
+noback sign        \x283C  3456                 # ⠼                   BRAILLE PATTERN DOTS-3456
+noback sign        \x283D  13456                # ⠽                   BRAILLE PATTERN DOTS-13456
+noback sign        \x283E  23456                # ⠾                   BRAILLE PATTERN DOTS-23456
+noback sign        \x283F  123456               # ⠿                   BRAILLE PATTERN DOTS-123456
+noback sign        \x2840  7                    # ⡀                   BRAILLE PATTERN DOTS-7
+noback sign        \x2841  17                   # ⡁                   BRAILLE PATTERN DOTS-17
+noback sign        \x2842  27                   # ⡂                   BRAILLE PATTERN DOTS-27
+noback sign        \x2843  127                  # ⡃                   BRAILLE PATTERN DOTS-127
+noback sign        \x2844  37                   # ⡄                   BRAILLE PATTERN DOTS-37
+noback sign        \x2845  137                  # ⡅                   BRAILLE PATTERN DOTS-137
+noback sign        \x2846  237                  # ⡆                   BRAILLE PATTERN DOTS-237
+noback sign        \x2847  1237                 # ⡇                   BRAILLE PATTERN DOTS-1237
+noback sign        \x2848  47                   # ⡈                   BRAILLE PATTERN DOTS-47
+noback sign        \x2849  147                  # ⡉                   BRAILLE PATTERN DOTS-147
+noback sign        \x284A  247                  # ⡊                   BRAILLE PATTERN DOTS-247
+noback sign        \x284B  1247                 # ⡋                   BRAILLE PATTERN DOTS-1247
+noback sign        \x284C  347                  # ⡌                   BRAILLE PATTERN DOTS-347
+noback sign        \x284D  1347                 # ⡍                   BRAILLE PATTERN DOTS-1347
+noback sign        \x284E  2347                 # ⡎                   BRAILLE PATTERN DOTS-2347
+noback sign        \x284F  12347                # ⡏                   BRAILLE PATTERN DOTS-12347
+noback sign        \x2850  57                   # ⡐                   BRAILLE PATTERN DOTS-57
+noback sign        \x2851  157                  # ⡑                   BRAILLE PATTERN DOTS-157
+noback sign        \x2852  257                  # ⡒                   BRAILLE PATTERN DOTS-257
+noback sign        \x2853  1257                 # ⡓                   BRAILLE PATTERN DOTS-1257
+noback sign        \x2854  357                  # ⡔                   BRAILLE PATTERN DOTS-357
+noback sign        \x2855  1357                 # ⡕                   BRAILLE PATTERN DOTS-1357
+noback sign        \x2856  2357                 # ⡖                   BRAILLE PATTERN DOTS-2357
+noback sign        \x2857  12357                # ⡗                   BRAILLE PATTERN DOTS-12357
+noback sign        \x2858  457                  # ⡘                   BRAILLE PATTERN DOTS-457
+noback sign        \x2859  1457                 # ⡙                   BRAILLE PATTERN DOTS-1457
+noback sign        \x285A  2457                 # ⡚                   BRAILLE PATTERN DOTS-2457
+noback sign        \x285B  12457                # ⡛                   BRAILLE PATTERN DOTS-12457
+noback sign        \x285C  3457                 # ⡜                   BRAILLE PATTERN DOTS-3457
+noback sign        \x285D  13457                # ⡝                   BRAILLE PATTERN DOTS-13457
+noback sign        \x285E  23457                # ⡞                   BRAILLE PATTERN DOTS-23457
+noback sign        \x285F  123457               # ⡟                   BRAILLE PATTERN DOTS-123457
+noback sign        \x2860  67                   # ⡠                   BRAILLE PATTERN DOTS-67
+noback sign        \x2861  167                  # ⡡                   BRAILLE PATTERN DOTS-167
+noback sign        \x2862  267                  # ⡢                   BRAILLE PATTERN DOTS-267
+noback sign        \x2863  1267                 # ⡣                   BRAILLE PATTERN DOTS-1267
+noback sign        \x2864  367                  # ⡤                   BRAILLE PATTERN DOTS-367
+noback sign        \x2865  1367                 # ⡥                   BRAILLE PATTERN DOTS-1367
+noback sign        \x2866  2367                 # ⡦                   BRAILLE PATTERN DOTS-2367
+noback sign        \x2867  12367                # ⡧                   BRAILLE PATTERN DOTS-12367
+noback sign        \x2868  467                  # ⡨                   BRAILLE PATTERN DOTS-467
+noback sign        \x2869  1467                 # ⡩                   BRAILLE PATTERN DOTS-1467
+noback sign        \x286A  2467                 # ⡪                   BRAILLE PATTERN DOTS-2467
+noback sign        \x286B  12467                # ⡫                   BRAILLE PATTERN DOTS-12467
+noback sign        \x286C  3467                 # ⡬                   BRAILLE PATTERN DOTS-3467
+noback sign        \x286D  13467                # ⡭                   BRAILLE PATTERN DOTS-13467
+noback sign        \x286E  23467                # ⡮                   BRAILLE PATTERN DOTS-23467
+noback sign        \x286F  123467               # ⡯                   BRAILLE PATTERN DOTS-123467
+noback sign        \x2870  567                  # ⡰                   BRAILLE PATTERN DOTS-567
+noback sign        \x2871  1567                 # ⡱                   BRAILLE PATTERN DOTS-1567
+noback sign        \x2872  2567                 # ⡲                   BRAILLE PATTERN DOTS-2567
+noback sign        \x2873  12567                # ⡳                   BRAILLE PATTERN DOTS-12567
+noback sign        \x2874  3567                 # ⡴                   BRAILLE PATTERN DOTS-3567
+noback sign        \x2875  13567                # ⡵                   BRAILLE PATTERN DOTS-13567
+noback sign        \x2876  23567                # ⡶                   BRAILLE PATTERN DOTS-23567
+noback sign        \x2877  123567               # ⡷                   BRAILLE PATTERN DOTS-123567
+noback sign        \x2878  4567                 # ⡸                   BRAILLE PATTERN DOTS-4567
+noback sign        \x2879  14567                # ⡹                   BRAILLE PATTERN DOTS-14567
+noback sign        \x287A  24567                # ⡺                   BRAILLE PATTERN DOTS-24567
+noback sign        \x287B  124567               # ⡻                   BRAILLE PATTERN DOTS-124567
+noback sign        \x287C  34567                # ⡼                   BRAILLE PATTERN DOTS-34567
+noback sign        \x287D  134567               # ⡽                   BRAILLE PATTERN DOTS-134567
+noback sign        \x287E  234567               # ⡾                   BRAILLE PATTERN DOTS-234567
+noback sign        \x287F  1234567              # ⡿                   BRAILLE PATTERN DOTS-1234567
+noback sign        \x2880  8                    # ⢀                   BRAILLE PATTERN DOTS-8
+noback sign        \x2881  18                   # ⢁                   BRAILLE PATTERN DOTS-18
+noback sign        \x2882  28                   # ⢂                   BRAILLE PATTERN DOTS-28
+noback sign        \x2883  128                  # ⢃                   BRAILLE PATTERN DOTS-128
+noback sign        \x2884  38                   # ⢄                   BRAILLE PATTERN DOTS-38
+noback sign        \x2885  138                  # ⢅                   BRAILLE PATTERN DOTS-138
+noback sign        \x2886  238                  # ⢆                   BRAILLE PATTERN DOTS-238
+noback sign        \x2887  1238                 # ⢇                   BRAILLE PATTERN DOTS-1238
+noback sign        \x2888  48                   # ⢈                   BRAILLE PATTERN DOTS-48
+noback sign        \x2889  148                  # ⢉                   BRAILLE PATTERN DOTS-148
+noback sign        \x288A  248                  # ⢊                   BRAILLE PATTERN DOTS-248
+noback sign        \x288B  1248                 # ⢋                   BRAILLE PATTERN DOTS-1248
+noback sign        \x288C  348                  # ⢌                   BRAILLE PATTERN DOTS-348
+noback sign        \x288D  1348                 # ⢍                   BRAILLE PATTERN DOTS-1348
+noback sign        \x288E  2348                 # ⢎                   BRAILLE PATTERN DOTS-2348
+noback sign        \x288F  12348                # ⢏                   BRAILLE PATTERN DOTS-12348
+noback sign        \x2890  58                   # ⢐                   BRAILLE PATTERN DOTS-58
+noback sign        \x2891  158                  # ⢑                   BRAILLE PATTERN DOTS-158
+noback sign        \x2892  258                  # ⢒                   BRAILLE PATTERN DOTS-258
+noback sign        \x2893  1258                 # ⢓                   BRAILLE PATTERN DOTS-1258
+noback sign        \x2894  358                  # ⢔                   BRAILLE PATTERN DOTS-358
+noback sign        \x2895  1358                 # ⢕                   BRAILLE PATTERN DOTS-1358
+noback sign        \x2896  2358                 # ⢖                   BRAILLE PATTERN DOTS-2358
+noback sign        \x2897  12358                # ⢗                   BRAILLE PATTERN DOTS-12358
+noback sign        \x2898  458                  # ⢘                   BRAILLE PATTERN DOTS-458
+noback sign        \x2899  1458                 # ⢙                   BRAILLE PATTERN DOTS-1458
+noback sign        \x289A  2458                 # ⢚                   BRAILLE PATTERN DOTS-2458
+noback sign        \x289B  12458                # ⢛                   BRAILLE PATTERN DOTS-12458
+noback sign        \x289C  3458                 # ⢜                   BRAILLE PATTERN DOTS-3458
+noback sign        \x289D  13458                # ⢝                   BRAILLE PATTERN DOTS-13458
+noback sign        \x289E  23458                # ⢞                   BRAILLE PATTERN DOTS-23458
+noback sign        \x289F  123458               # ⢟                   BRAILLE PATTERN DOTS-123458
+noback sign        \x28A0  68                   # ⢠                   BRAILLE PATTERN DOTS-68
+noback sign        \x28A1  168                  # ⢡                   BRAILLE PATTERN DOTS-168
+noback sign        \x28A2  268                  # ⢢                   BRAILLE PATTERN DOTS-268
+noback sign        \x28A3  1268                 # ⢣                   BRAILLE PATTERN DOTS-1268
+noback sign        \x28A4  368                  # ⢤                   BRAILLE PATTERN DOTS-368
+noback sign        \x28A5  1368                 # ⢥                   BRAILLE PATTERN DOTS-1368
+noback sign        \x28A6  2368                 # ⢦                   BRAILLE PATTERN DOTS-2368
+noback sign        \x28A7  12368                # ⢧                   BRAILLE PATTERN DOTS-12368
+noback sign        \x28A8  468                  # ⢨                   BRAILLE PATTERN DOTS-468
+noback sign        \x28A9  1468                 # ⢩                   BRAILLE PATTERN DOTS-1468
+noback sign        \x28AA  2468                 # ⢪                   BRAILLE PATTERN DOTS-2468
+noback sign        \x28AB  12468                # ⢫                   BRAILLE PATTERN DOTS-12468
+noback sign        \x28AC  3468                 # ⢬                   BRAILLE PATTERN DOTS-3468
+noback sign        \x28AD  13468                # ⢭                   BRAILLE PATTERN DOTS-13468
+noback sign        \x28AE  23468                # ⢮                   BRAILLE PATTERN DOTS-23468
+noback sign        \x28AF  123468               # ⢯                   BRAILLE PATTERN DOTS-123468
+noback sign        \x28B0  568                  # ⢰                   BRAILLE PATTERN DOTS-568
+noback sign        \x28B1  1568                 # ⢱                   BRAILLE PATTERN DOTS-1568
+noback sign        \x28B2  2568                 # ⢲                   BRAILLE PATTERN DOTS-2568
+noback sign        \x28B3  12568                # ⢳                   BRAILLE PATTERN DOTS-12568
+noback sign        \x28B4  3568                 # ⢴                   BRAILLE PATTERN DOTS-3568
+noback sign        \x28B5  13568                # ⢵                   BRAILLE PATTERN DOTS-13568
+noback sign        \x28B6  23568                # ⢶                   BRAILLE PATTERN DOTS-23568
+noback sign        \x28B7  123568               # ⢷                   BRAILLE PATTERN DOTS-123568
+noback sign        \x28B8  4568                 # ⢸                   BRAILLE PATTERN DOTS-4568
+noback sign        \x28B9  14568                # ⢹                   BRAILLE PATTERN DOTS-14568
+noback sign        \x28BA  24568                # ⢺                   BRAILLE PATTERN DOTS-24568
+noback sign        \x28BB  124568               # ⢻                   BRAILLE PATTERN DOTS-124568
+noback sign        \x28BC  34568                # ⢼                   BRAILLE PATTERN DOTS-34568
+noback sign        \x28BD  134568               # ⢽                   BRAILLE PATTERN DOTS-134568
+noback sign        \x28BE  234568               # ⢾                   BRAILLE PATTERN DOTS-234568
+noback sign        \x28BF  1234568              # ⢿                   BRAILLE PATTERN DOTS-1234568
+noback sign        \x28C0  78                   # ⣀                   BRAILLE PATTERN DOTS-78
+noback sign        \x28C1  178                  # ⣁                   BRAILLE PATTERN DOTS-178
+noback sign        \x28C2  278                  # ⣂                   BRAILLE PATTERN DOTS-278
+noback sign        \x28C3  1278                 # ⣃                   BRAILLE PATTERN DOTS-1278
+noback sign        \x28C4  378                  # ⣄                   BRAILLE PATTERN DOTS-378
+noback sign        \x28C5  1378                 # ⣅                   BRAILLE PATTERN DOTS-1378
+noback sign        \x28C6  2378                 # ⣆                   BRAILLE PATTERN DOTS-2378
+noback sign        \x28C7  12378                # ⣇                   BRAILLE PATTERN DOTS-12378
+noback sign        \x28C8  478                  # ⣈                   BRAILLE PATTERN DOTS-478
+noback sign        \x28C9  1478                 # ⣉                   BRAILLE PATTERN DOTS-1478
+noback sign        \x28CA  2478                 # ⣊                   BRAILLE PATTERN DOTS-2478
+noback sign        \x28CB  12478                # ⣋                   BRAILLE PATTERN DOTS-12478
+noback sign        \x28CC  3478                 # ⣌                   BRAILLE PATTERN DOTS-3478
+noback sign        \x28CD  13478                # ⣍                   BRAILLE PATTERN DOTS-13478
+noback sign        \x28CE  23478                # ⣎                   BRAILLE PATTERN DOTS-23478
+noback sign        \x28CF  123478               # ⣏                   BRAILLE PATTERN DOTS-123478
+noback sign        \x28D0  578                  # ⣐                   BRAILLE PATTERN DOTS-578
+noback sign        \x28D1  1578                 # ⣑                   BRAILLE PATTERN DOTS-1578
+noback sign        \x28D2  2578                 # ⣒                   BRAILLE PATTERN DOTS-2578
+noback sign        \x28D3  12578                # ⣓                   BRAILLE PATTERN DOTS-12578
+noback sign        \x28D4  3578                 # ⣔                   BRAILLE PATTERN DOTS-3578
+noback sign        \x28D5  13578                # ⣕                   BRAILLE PATTERN DOTS-13578
+noback sign        \x28D6  23578                # ⣖                   BRAILLE PATTERN DOTS-23578
+noback sign        \x28D7  123578               # ⣗                   BRAILLE PATTERN DOTS-123578
+noback sign        \x28D8  4578                 # ⣘                   BRAILLE PATTERN DOTS-4578
+noback sign        \x28D9  14578                # ⣙                   BRAILLE PATTERN DOTS-14578
+noback sign        \x28DA  24578                # ⣚                   BRAILLE PATTERN DOTS-24578
+noback sign        \x28DB  124578               # ⣛                   BRAILLE PATTERN DOTS-124578
+noback sign        \x28DC  34578                # ⣜                   BRAILLE PATTERN DOTS-34578
+noback sign        \x28DD  134578               # ⣝                   BRAILLE PATTERN DOTS-134578
+noback sign        \x28DE  234578               # ⣞                   BRAILLE PATTERN DOTS-234578
+noback sign        \x28DF  1234578              # ⣟                   BRAILLE PATTERN DOTS-1234578
+noback sign        \x28E0  678                  # ⣠                   BRAILLE PATTERN DOTS-678
+noback sign        \x28E1  1678                 # ⣡                   BRAILLE PATTERN DOTS-1678
+noback sign        \x28E2  2678                 # ⣢                   BRAILLE PATTERN DOTS-2678
+noback sign        \x28E3  12678                # ⣣                   BRAILLE PATTERN DOTS-12678
+noback sign        \x28E4  3678                 # ⣤                   BRAILLE PATTERN DOTS-3678
+noback sign        \x28E5  13678                # ⣥                   BRAILLE PATTERN DOTS-13678
+noback sign        \x28E6  23678                # ⣦                   BRAILLE PATTERN DOTS-23678
+noback sign        \x28E7  123678               # ⣧                   BRAILLE PATTERN DOTS-123678
+noback sign        \x28E8  4678                 # ⣨                   BRAILLE PATTERN DOTS-4678
+noback sign        \x28E9  14678                # ⣩                   BRAILLE PATTERN DOTS-14678
+noback sign        \x28EA  24678                # ⣪                   BRAILLE PATTERN DOTS-24678
+noback sign        \x28EB  124678               # ⣫                   BRAILLE PATTERN DOTS-124678
+noback sign        \x28EC  34678                # ⣬                   BRAILLE PATTERN DOTS-34678
+noback sign        \x28ED  134678               # ⣭                   BRAILLE PATTERN DOTS-134678
+noback sign        \x28EE  234678               # ⣮                   BRAILLE PATTERN DOTS-234678
+noback sign        \x28EF  1234678              # ⣯                   BRAILLE PATTERN DOTS-1234678
+noback sign        \x28F0  5678                 # ⣰                   BRAILLE PATTERN DOTS-5678
+noback sign        \x28F1  15678                # ⣱                   BRAILLE PATTERN DOTS-15678
+noback sign        \x28F2  25678                # ⣲                   BRAILLE PATTERN DOTS-25678
+noback sign        \x28F3  125678               # ⣳                   BRAILLE PATTERN DOTS-125678
+noback sign        \x28F4  35678                # ⣴                   BRAILLE PATTERN DOTS-35678
+noback sign        \x28F5  135678               # ⣵                   BRAILLE PATTERN DOTS-135678
+noback sign        \x28F6  235678               # ⣶                   BRAILLE PATTERN DOTS-235678
+noback sign        \x28F7  1235678              # ⣷                   BRAILLE PATTERN DOTS-1235678
+noback sign        \x28F8  45678                # ⣸                   BRAILLE PATTERN DOTS-45678
+noback sign        \x28F9  145678               # ⣹                   BRAILLE PATTERN DOTS-145678
+noback sign        \x28FA  245678               # ⣺                   BRAILLE PATTERN DOTS-245678
+noback sign        \x28FB  1245678              # ⣻                   BRAILLE PATTERN DOTS-1245678
+noback sign        \x28FC  345678               # ⣼                   BRAILLE PATTERN DOTS-345678
+noback sign        \x28FD  1345678              # ⣽                   BRAILLE PATTERN DOTS-1345678
+noback sign        \x28FE  2345678              # ⣾                   BRAILLE PATTERN DOTS-2345678
+noback sign        \x28FF  12345678             # ⣿                   BRAILLE PATTERN DOTS-12345678
+
+
+# ----------------------------------------------------------------------------------------------
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti
new file mode 100644
index 0000000..e70ca53
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti
@@ -0,0 +1,197 @@
+# ----------------------------------------------------------------------------------------------
+#  odt2braille - Braille authoring in OpenOffice.org.
+#  Copyright (c) 2010 by DocArch <http://www.docarch.be>.
+# ----------------------------------------------------------------------------------------------
+#
+#  Catalan Braille
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
+#
+# ----------------------------------------------------------------------------------------------
+
+# ==============================================================================================
+# SINGLE-CELL
+# ==============================================================================================
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+include latinLetterDef6Dots.uti
+
+uplow       \x00C0\x00E0  12356,12356         Àà                  LATIN CAPITAL LETTER A WITH GRAVE - LATIN SMALL LETTER A WITH GRAVE
+uplow       \x00C7\x00E7  12346,12346         Çç                  LATIN CAPITAL LETTER C WITH CEDILLA - LATIN SMALL LETTER C WITH CEDILLA
+uplow       \x00C8\x00E8  2346,2346           Èè                  LATIN CAPITAL LETTER E WITH GRAVE - LATIN SMALL LETTER E WITH GRAVE
+uplow       \x00C9\x00E9  123456,123456       Éé                  LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE
+uplow       \x00CD\x00ED  34,34               Íí                  LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE
+uplow       \x00CF\x00EF  12456,12456         Ïï                  LATIN CAPITAL LETTER I WITH DIAERESIS - LATIN SMALL LETTER I WITH DIAERESIS
+uplow       \x00D2\x00F2  346,346             Òò                  LATIN CAPITAL LETTER O WITH GRAVE - LATIN SMALL LETTER O WITH GRAVE
+uplow       \x00D3\x00F3  246,246             Óó                  LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE
+uplow       \x00DA\x00FA  23456,23456         Úú                  LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE
+uplow       \x00DC\x00FC  1256,1256           Üü                  LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS
+
+space       \x0009        9                                       <control> HORIZONTAL TABULATION
+space       \x000A        0                                       <control> LINE FEED
+space       \x000C        0                                       <control> FORM FEED
+space       \x000D        0                                       <control> CARRIAGE RETURN
+space       \x001B        1b                                      <control> ESCAPE
+space       \x0020        0                                       SPACE
+punctuation \x0021        256                 !                   EXCLAMATION MARK
+punctuation \x0022        236                 "                   QUOTATION MARK
+punctuation \x0027        3                   '                   APOSTROPHE
+punctuation \x0028        126                 (                   LEFT PARENTHESIS
+punctuation \x0029        345                 )                   RIGHT PARENTHESIS
+sign        \x002A        35                  *                   ASTERISK
+math        \x002B        235                 +                   PLUS SIGN
+punctuation \x002C        2                   ,                   COMMA
+punctuation \x002D        36                  -                   HYPHEN-MINUS
+punctuation \x002E        3                   .                   FULL STOP
+include loweredDigits6Dots.uti
+punctuation \x003A        25                  :                   COLON
+punctuation \x003B        23                  ;                   SEMICOLON
+math        \x003C        246                 <                   LESS-THAN SIGN
+math        \x003D        2356                =                   EQUALS SIGN
+math        \x003E        135                 >                   GREATER-THAN SIGN
+punctuation \x003F        26                  ?                   QUESTION MARK
+punctuation \x005B        12356               [                   LEFT SQUARE BRACKET
+punctuation \x005D        23456               ]                   RIGHT SQUARE BRACKET
+sign        \x007C        456                 |                   VERTICAL LINE
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x0082        2                   ‚                   <control> BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA
+punctuation \x0084        236                 „                   <control> - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE
+punctuation \x0093        236                 “                   <control> SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE
+punctuation \x0094        236                 ”                   <control> CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX
+punctuation \x0096        36                  –                   <control> START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE
+space       \x00A0        a                                       NO-BREAK SPACE
+punctuation \x00A1        235                 ¡                   INVERTED EXCLAMATION MARK
+punctuation \x00AB        236                 «                   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00AD        36                  ­                   SOFT HYPHEN
+sign        \x00B8        2                   ¸                   CEDILLA
+punctuation \x00BB        236                 »                   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00B7        5                   ·                   MIDDLE DOT
+punctuation \x00BF        26                  ¿                   INVERTED QUESTION MARK
+math        \x00D7        236                 ×                   MULTIPLICATION SIGN
+math        \x00F7        256                 ÷                   DIVISION SIGN
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2000..206F  General Punctuation
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x2010        36                  ‐                   HYPHEN
+punctuation \x2011        36                  ‑                   NON-BREAKING HYPHEN
+punctuation \x2012        36                  ‒                   FIGURE DASH
+punctuation \x2013        36                  –                   EN DASH
+punctuation \x2018        236                 ‘                   LEFT SINGLE QUOTATION MARK
+punctuation \x2019        236                 ’                   RIGHT SINGLE QUOTATION MARK
+punctuation \x201A        236                 ‚                   SINGLE LOW-9 QUOTATION MARK
+punctuation \x201B        236                 ‛                   SINGLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation \x201C        236                 “                   LEFT DOUBLE QUOTATION MARK
+punctuation \x201D        236                 ”                   RIGHT DOUBLE QUOTATION MARK
+punctuation \x201E        236                 „                   DOUBLE LOW-9 QUOTATION MARK
+punctuation \x201F        236                 ‟                   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation \x2043        36                  ⁃                   HYPHEN BULLET
+
+include braille-patterns.cti
+
+# ==============================================================================================
+# MULTI-CELL
+# ==============================================================================================
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0024        345-234             $                   DOLLAR SIGN
+math        \x0025        456-356             %                   PERCENT SIGN
+sign        \x0026        6-12346             &                   AMPERSAND
+math        \x002F        6-2                 /                   SOLIDUS
+sign        \x0040        56-16               @                   COMMERCIAL AT
+sign        \x005C        5-3                 \                   REVERSE SOLIDUS
+math        \x007B        5-123               {                   LEFT CURLY BRACKET
+math        \x007D        456-2               }                   RIGHT CURLY BRACKET
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0080        456-15              €                   <control> - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS
+punctuation \x0085        3-3-3               …                   <control> NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS
+sign        \x0089        456-356-356         ‰                   <control> CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX
+punctuation \x0097        36-36               —                   <control> END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE
+sign        \x00A2        45-14               ¢                   CENT SIGN
+sign        \x00A3        5-2346              £                   POUND SIGN
+sign        \x00A5        456-13456           ¥                   YEN SIGN
+sign        \x00A9        126-46-14-345       ©                   COPYRIGHT SIGN
+sign        \x00AA        56-16               ª                   FEMININE ORDINAL INDICATOR
+sign        \x00AE        126-46-1235-345     ®                   REGISTERED SIGN
+math        \x00B1        235-25-36           ±                   PLUS-MINUS SIGN
+sign        \x00B2        16-3456-12          ²                   SUPERSCRIPT TWO
+sign        \x00B3        16-3456-14          ³                   SUPERSCRIPT THREE
+sign        \x00B5        4-134               µ                   MICRO SIGN
+math        \x00BC        1456-2-145          ¼                   VULGAR FRACTION ONE QUARTER
+math        \x00BD        1456-2-12           ½                   VULGAR FRACTION ONE HALF
+math        \x00BE        1456-25-145         ¾                   VULGAR FRACTION THREE QUARTERS
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0100..017F  Latin Extended-A
+# ----------------------------------------------------------------------------------------------
+
+uplow       \x013F\x0140  123-5,123-5         Ŀŀ                  LATIN CAPITAL LETTER L WITH MIDDLE DOT - LATIN SMALL LETTER L WITH MIDDLE DOT
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0370..03FF  Greek and Coptic
+# ----------------------------------------------------------------------------------------------
+
+lowercase   \x03B1        4-1                 α                   GREEK SMALL LETTER ALPHA
+lowercase   \x03B2        4-12                β                   GREEK SMALL LETTER BETA
+lowercase   \x03B3        4-1245              γ                   GREEK SMALL LETTER GAMMA
+lowercase   \x03B4        4-145               δ                   GREEK SMALL LETTER DELTA
+lowercase   \x03B5        4-15                ε                   GREEK SMALL LETTER EPSILON
+lowercase   \x03B6        4-1356              ζ                   GREEK SMALL LETTER ZETA
+lowercase   \x03B7        4-156               η                   GREEK SMALL LETTER ETA
+lowercase   \x03B8        4-1456              θ                   GREEK SMALL LETTER THETA
+lowercase   \x03B9        4-24                ι                   GREEK SMALL LETTER IOTA
+lowercase   \x03BA        4-13                κ                   GREEK SMALL LETTER KAPPA
+lowercase   \x03BB        4-123               λ                   GREEK SMALL LETTER LAMDA
+lowercase   \x03BC        4-134               μ                   GREEK SMALL LETTER MU
+lowercase   \x03BD        4-1345              ν                   GREEK SMALL LETTER NU
+lowercase   \x03BE        4-1346              ξ                   GREEK SMALL LETTER XI
+lowercase   \x03BF        4-135               ο                   GREEK SMALL LETTER OMICRON
+lowercase   \x03C0        4-1234              π                   GREEK SMALL LETTER PI
+lowercase   \x03C1        4-1235              ρ                   GREEK SMALL LETTER RHO
+lowercase   \x03C2        4-234               ς                   GREEK SMALL LETTER FINAL SIGMA
+lowercase   \x03C3        4-234               σ                   GREEK SMALL LETTER SIGMA
+lowercase   \x03C4        4-2345              τ                   GREEK SMALL LETTER TAU
+lowercase   \x03C5        4-136               υ                   GREEK SMALL LETTER UPSILON
+lowercase   \x03C6        4-124               φ                   GREEK SMALL LETTER PHI
+lowercase   \x03C7        4-12346             χ                   GREEK SMALL LETTER CHI
+lowercase   \x03C8        4-13456             ψ                   GREEK SMALL LETTER PSI
+lowercase   \x03C9        4-2456              ω                   GREEK SMALL LETTER OMEGA
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2000..206F  General Punctuation
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x2014        36-36               —                   EM DASH
+punctuation \x2015        36-36               ―                   HORIZONTAL BAR
+punctuation \x2026        3-3-3               …                   HORIZONTAL ELLIPSIS
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 20A0..20CF  Currency Symbols
+# ----------------------------------------------------------------------------------------------
+
+sign        \x20AC        456-15              €                   EURO SIGN
+
+
+# ----------------------------------------------------------------------------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb
new file mode 100644
index 0000000..bdea1d2
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb
@@ -0,0 +1,44 @@
+# ----------------------------------------------------------------------------------------------
+#  odt2braille - Braille authoring in OpenOffice.org.
+#  Copyright (c) 2010 by DocArch <http://www.docarch.be>.
+# ----------------------------------------------------------------------------------------------
+#
+#  Catalan Braille
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
+#
+# ----------------------------------------------------------------------------------------------
+
+include ca-chardefs.cti
+
+# ---------------------------------------
+# Digits
+# ---------------------------------------
+
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# ---------------------------------------
+# Braille indicator opcodes
+# ---------------------------------------
+
+numsign 3456
+capsign 46
+begcaps 46-46
+
+# ---------------------------------------
+# Translation opcodes
+# ---------------------------------------
+
+repeated \s 0
+repeated \t 0
+
+# ----------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti
new file mode 100644
index 0000000..33adc20
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti
@@ -0,0 +1,188 @@
+# liblouis: English, U.S. (EBAE) character definitions table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
+#  The BRLTTY Team
+#
+#  Copyright (C) 2004, 2005, 2006
+#  ViewPlus Technologies, Inc. www.viewplus.com
+#  and
+#  JJB Software, Inc. www.jjb-software.com
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License 
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+# 
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public 
+#  License along with this program; see the file COPYING.  If not, write 
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by John J. Boyer john.boyer@jjb-software.com
+
+# Computer braille single-cell characters
+space \s 0 blank
+space \t 9 tab
+space \x000a 0 newline
+space \x000c 0
+space \x000d 0 carriage return
+space \x001b 1b escape character for html back-translation
+space \x00A0 a NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE 
+include loweredDigits6Dots.uti
+
+include latinLetterDef8Dots.uti
+
+punctuation ( 12356
+punctuation } 12456
+punctuation ] 124567
+punctuation ? 1456
+punctuation : 156
+punctuation ) 23456
+punctuation ! 2346
+punctuation { 246
+punctuation [ 2467
+punctuation ' 3
+punctuation - 36
+punctuation . 46
+punctuation " 5
+punctuation ; 56
+punctuation , 6
+sign & 12346
+sign $ 1246
+sign | 1256
+sign \\ 12567
+sign % 146
+sign * 16
+sign # 3456
+punctuation ` 4
+sign _ 456
+sign ^ 457
+sign @ 47
+math = 123456
+math < 126
+math / 34
+math > 345
+math + 346
+math ~ 45
+
+# Accented letters
+lowercase \x00DF 4-234 LATIN SMALL LETTER SHARP S German 
+lowercase \x00E0 4-1 LATIN SMALL LETTER A WITH GRAVE 0061 0300 LATIN 
+lowercase \x00E1 4-1 LATIN SMALL LETTER A WITH ACUTE 0061 0301 LATIN 
+lowercase \x00E2 4-1 LATIN SMALL LETTER A WITH CIRCUMFLEX 0061 0302 
+lowercase \x00E3 4-1 LATIN SMALL LETTER A WITH TILDE 0061 0303 LATIN 
+lowercase \x00E4 4-1 LATIN SMALL LETTER A WITH DIAERESIS 0061 0308 LATIN 
+lowercase \x00E5 4-1 LATIN SMALL LETTER A WITH RING ABOVE 0061 030A 
+lowercase \x00E6 4-1 LATIN SMALL LETTER AE LATIN SMALL LETTER A E ash * 
+lowercase \x00E7 4-14 LATIN SMALL LETTER C WITH CEDILLA 0063 0327 LATIN 
+lowercase \x00E8 4-15 LATIN SMALL LETTER E WITH GRAVE 0065 0300 LATIN 
+lowercase \x00E9 4-15 LATIN SMALL LETTER E WITH ACUTE 0065 0301 LATIN 
+lowercase \x00EA 4-15 LATIN SMALL LETTER E WITH CIRCUMFLEX 0065 0302 
+lowercase \x00EB 4-15 LATIN SMALL LETTER E WITH DIAERESIS 0065 0308 
+lowercase \x00EC 4-24 LATIN SMALL LETTER I WITH GRAVE 0069 0300 LATIN 
+lowercase \x00ED 4-24 LATIN SMALL LETTER I WITH ACUTE 0069 0301 LATIN 
+lowercase \x00EE 4-24 LATIN SMALL LETTER I WITH CIRCUMFLEX 0069 0302 
+lowercase \x00EF 4-24 LATIN SMALL LETTER I WITH DIAERESIS 0069 0308 
+lowercase \x00F0 4-15 LATIN SMALL LETTER ETH Icelandic 00D0 00D0
+lowercase \x00F1 4-1345 LATIN SMALL LETTER N WITH TILDE 006E 0303 LATIN 
+lowercase \x00F2 4-135 LATIN SMALL LETTER O WITH GRAVE 006F 0300 LATIN 
+lowercase \x00F3 4-135 LATIN SMALL LETTER O WITH ACUTE 006F 0301 LATIN 
+lowercase \x00F4 4-135 LATIN SMALL LETTER O WITH CIRCUMFLEX 006F 0302 
+lowercase \x00F5 4-135 LATIN SMALL LETTER O WITH TILDE 006F 0303 LATIN 
+lowercase \x00F6 4-135 LATIN SMALL LETTER O WITH DIAERESIS 006F 0308 
+lowercase \x00F8 4-135 LATIN SMALL LETTER O WITH STROKE LATIN SMALL 
+lowercase \x00F9 4-136 LATIN SMALL LETTER U WITH GRAVE 0075 0300 LATIN 
+lowercase \x00FA 4-136 LATIN SMALL LETTER U WITH ACUTE 0075 0301 LATIN 
+lowercase \x00FB 4-136 LATIN SMALL LETTER U WITH CIRCUMFLEX 0075 0302 
+lowercase \x00FC 4-136 LATIN SMALL LETTER U WITH DIAERESIS 0075 0308 
+lowercase \x00FD 4-13456 LATIN SMALL LETTER Y WITH ACUTE 0079 0301 LATIN 
+lowercase \x00FE 4-2345 LATIN SMALL LETTER THORN Icelandic 00DE 00DE
+lowercase \x00FF 4-13456 LATIN SMALL LETTER Y WITH DIAERESIS 0079 0308 
+uppercase \x00C0 4-1 LATIN CAPITAL LETTER A WITH GRAVE 0041 0300 LATIN 
+uppercase \x00C1 4-1 LATIN CAPITAL LETTER A WITH ACUTE 0041 0301 LATIN 
+uppercase \x00C2 4-1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0041 0302 
+uppercase \x00C3 4-1 LATIN CAPITAL LETTER A WITH TILDE 0041 0303 LATIN 
+uppercase \x00C4 4-1 LATIN CAPITAL LETTER A WITH DIAERESIS 0041 0308 
+uppercase \x00C5 4-1 LATIN CAPITAL LETTER A WITH RING ABOVE 0041 030A 
+uppercase \x00C6 4-1 LATIN CAPITAL LETTER AE LATIN CAPITAL LETTER A E 
+uppercase \x00C7 4-14 LATIN CAPITAL LETTER C WITH CEDILLA 0043 0327 
+uppercase \x00C8 4-15 LATIN CAPITAL LETTER E WITH GRAVE 0045 0300 LATIN 
+uppercase \x00C9 4-15 LATIN CAPITAL LETTER E WITH ACUTE 0045 0301 LATIN 
+uppercase \x00CA 4-15 LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0045 0302 
+uppercase \x00CB 4-15 LATIN CAPITAL LETTER E WITH DIAERESIS 0045 0308 
+uppercase \x00CC 4-24 LATIN CAPITAL LETTER I WITH GRAVE 0049 0300 LATIN 
+uppercase \x00CD 4-24 LATIN CAPITAL LETTER I WITH ACUTE 0049 0301 LATIN 
+uppercase \x00CE 4-24 LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0049 0302 
+uppercase \x00CF 4-24 LATIN CAPITAL LETTER I WITH DIAERESIS 0049 0308 
+uppercase \x00D0 4-15 LATIN CAPITAL LETTER ETH Icelandic 00F0 
+uppercase \x00D1 4-1345 LATIN CAPITAL LETTER N WITH TILDE 004E 0303 
+uppercase \x00D2 4-135 LATIN CAPITAL LETTER O WITH GRAVE 004F 0300 LATIN 
+uppercase \x00D3 4-135 LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 LATIN 
+uppercase \x00D4 4-135 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 004F 0302 
+uppercase \x00D6 4-135 LATIN CAPITAL LETTER O WITH DIAERESIS 004F 0308 
+uppercase \x00D8 4-135 LATIN CAPITAL LETTER O WITH STROKE LATIN CAPITAL 
+uppercase \x00D9 4-136 LATIN CAPITAL LETTER U WITH GRAVE 0055 0300 LATIN 
+uppercase \x00DA 4-136 LATIN CAPITAL LETTER U WITH ACUTE 0055 0301 LATIN 
+uppercase \x00DB 4-136 LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0055 0302 
+uppercase \x00DC 4-136 LATIN CAPITAL LETTER U WITH DIAERESIS 0055 0308 
+uppercase \x00DD 4-13456 LATIN CAPITAL LETTER Y WITH ACUTE 0059 0301 
+uppercase \x00DE 4-2345 LATIN CAPITAL LETTER THORN Icelandic 00FE 
+
+# Miscellaneous
+math \x00B1 346-36 PLUS-MINUS SIGN PLUS-OR-MINUS SIGN 
+math \x00B7 4-16 MIDDLE DOT 
+math \x00BC 1456-2-34-256-3456 VULGAR FRACTION ONE QUARTER No 0031 2044 
+math \x00BD 1456-2-34-23-3456 VULGAR FRACTION ONE HALF No 0031 2044 0032 
+math \x00BE 1456-25-34-23-3456 VULGAR FRACTION THREE QUARTERS No 0033 
+math \x00D7 16 MULTIPLICATION SIGN 
+math \x00F7 4-34 DIVISION SIGN 
+punctuation \x0092 3
+punctuation \x0097 36-36
+punctuation \x00A1 235 INVERTED EXCLAMATION MARK 
+punctuation \x00ad 36
+punctuation \x00BF 236 INVERTED QUESTION MARK 
+punctuation \x2011 36
+punctuation \x2013 36-36
+punctuation \x2014 36-36
+punctuation \x2018 6-236
+punctuation \x2019 3
+punctuation \x2019 356-3
+punctuation \x201c 236
+punctuation \x201d 356
+punctuation \x2026 3
+sign \x2122 45-2345 trademark sign
+sign \x00A2 4-14 CENT SIGN 
+sign \x00A3 3456 POUND SIGN 
+sign \x00A4 1246 CURRENCY SIGN 
+sign \x00A7 4-234 SECTION SIGN 
+sign \x00A9 45-14 COPYRIGHT SIGN 
+sign \x00AE 45-1235 REGISTERED SIGN REGISTERED TRADE MARK SIGN 
+sign \x00B0 56-145-1245 DEGREE SIGN 
+sign \x00B4 b4 ACUTE ACCENT 0020 0301 SPACING ACUTE 
+sign \x00B5 46-134 MICRO SIGN 03BC 039C 039C
+# sign \x00A5 YEN SIGN 
+punctuation \x00A6 456-1256 BROKEN BAR BROKEN VERTICAL BAR 
+punctuation \x0093 236
+punctuation \x0094 356
+punctuation \x0096 36
+# sign \x00A8 DIAERESIS 0020 0308 SPACING DIAERESIS 
+# sign \x00AA FEMININE ORDINAL INDICATOR 0061 
+# punctuation \x00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK LEFT 
+# sign \x00AC NOT SIGN 
+# sign \x00AF MACRON 0020 0304 SPACING MACRON 
+# math \x00B2 SUPERSCRIPT TWO 0032 2 2 SUPERSCRIPT DIGIT TWO 
+# math \x00B3 SUPERSCRIPT THREE 0033 3 3 SUPERSCRIPT DIGIT THREE 
+# sign \x00B6 PILCROW SIGN PARAGRAPH SIGN 
+# sign \x00B8 CEDILLA 0020 0327 SPACING CEDILLA 
+# math \x00B9 SUPERSCRIPT ONE 0031 1 1 SUPERSCRIPT DIGIT ONE 
+# sign \x00BA MASCULINE ORDINAL INDICATOR 006F 
+# punctuation \x00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK Pf Y 
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti
new file mode 100644
index 0000000..ceba371
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti
@@ -0,0 +1,260 @@
+###############################################################################
+# BRLTTY - A background process providing access to the Linux console (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# show any "word" which contains a country code in 8-dot computer braille.
+compbrl .ad Andorra
+compbrl .ae United Arab Emirates
+compbrl .af Afghanistan
+compbrl .ag Antigua and Barbuda
+compbrl .ai Anguilla
+compbrl .al Albania
+compbrl .am Armenia
+compbrl .an Netherlands Antilles
+compbrl .ao Angola
+compbrl .aq Antarctica
+compbrl .ar Argentina
+compbrl .as American Samoa
+compbrl .at Austria
+compbrl .au Australia
+compbrl .aw Aruba
+compbrl .az Azerbaijan
+compbrl .ba Bosnia-Herzegovina
+compbrl .bb Barbados
+compbrl .bd Bangladesh
+compbrl .be Belgium
+compbrl .bf Burkina Faso
+compbrl .bg Bulgaria
+compbrl .bh Bahrain
+compbrl .bi Burundi
+compbrl .bj Benin
+compbrl .bm Bermuda
+compbrl .bn Brunei Darussalam
+compbrl .bo Bolivia
+compbrl .br Brazil
+compbrl .bs Bahamas
+compbrl .bt Bhutan
+compbrl .bv Bouvet Island
+compbrl .bw Botswana
+compbrl .by Belarus
+compbrl .bz Belize
+compbrl .ca Canada
+compbrl .cc Cocos (Keeling) Islands
+compbrl .cd The Democratic Republic of The Congo
+compbrl .cf Central African Republic
+compbrl .cg Congo
+compbrl .ch Switzerland
+compbrl .ci Ivory Coast
+compbrl .ck Cook Islands
+compbrl .cl Chile
+compbrl .cm Cameroon
+compbrl .cn China
+compbrl .co Colombia
+compbrl .cr Costa Rica
+compbrl .cu Cuba
+compbrl .cv Cape Verde
+compbrl .cx Christmas Island
+compbrl .cy Cyprus
+compbrl .cz Czech Republic
+compbrl .de Germany
+compbrl .dj Djibouti
+compbrl .dk Denmark
+compbrl .dm Dominica
+compbrl .do Dominican Republic
+compbrl .dz Algeria
+compbrl .ec Ecuador
+compbrl .ee Estonia
+compbrl .eg Egypt
+compbrl .eh Western Sahara
+compbrl .er Eritrea
+compbrl .es Spain
+compbrl .et Ethiopia
+compbrl .fi Finland
+compbrl .fj Fiji
+compbrl .fk Falkland Islands (Malvinas)
+compbrl .fm Micronesia
+compbrl .fo Faroe Islands
+compbrl .fr France
+compbrl .ga Gabon
+compbrl .gb United Kingdom
+compbrl .gd Grenada
+compbrl .ge Georgia
+compbrl .gf French Guiana
+compbrl .gh Ghana
+compbrl .gi Gibraltar
+compbrl .gl Greenland
+compbrl .gm Gambia
+compbrl .gn Guinea
+compbrl .gp Guadeloupe (Fr.)
+compbrl .gq Equatorial Guinea
+compbrl .gr Greece
+compbrl .gs South Georgia And The South Sandwich Islands
+compbrl .gt Guatemala
+compbrl .gu Guam (U.S.)
+compbrl .gw Guinea-Bissau
+compbrl .gy Guyana
+compbrl .hk Hong Kong
+compbrl .hm Heard Island And Mcdonald Islands
+compbrl .hn Honduras
+compbrl .hr Croatia
+compbrl .ht Haiti
+compbrl .hu Hungary
+compbrl .id Indonesia
+compbrl .ie Ireland
+compbrl .il Israel
+compbrl .im Isle of Man
+compbrl .in India
+compbrl .io British Indian Ocean Territory
+compbrl .iq Iraq
+compbrl .ir Iran
+compbrl .is Iceland
+compbrl .it Italy
+compbrl .jm Jamaica
+compbrl .jo Jordan
+compbrl .jp Japan
+compbrl .ke Kenya
+compbrl .kg Kyrgyzstan
+compbrl .kh Cambodia
+compbrl .ki Kiribati
+compbrl .km Comoros
+compbrl .kn Saint Kitts and Nevis
+compbrl .kp Korea (North)
+compbrl .kr Korea (South)
+compbrl .kw Kuwait
+compbrl .ky Cayman Islands
+compbrl .kz Kazakstan
+compbrl .la Lao People's Democratic Republic
+compbrl .lb Lebanon
+compbrl .lc Saint Lucia
+compbrl .li Liechtenstein
+compbrl .lk Sri Lanka
+compbrl .lr Liberia
+compbrl .ls Lesotho
+compbrl .lt Lithuania
+compbrl .lu Luxembourg
+compbrl .lv Latvia
+compbrl .ly Libyan Arab Jamahiriya
+compbrl .ma Morocco
+compbrl .mc Monaco
+compbrl .md Moldova
+compbrl .mg Madagascar
+compbrl .mh Marshall Islands
+compbrl .mk Macedonia
+compbrl .ml Mali
+compbrl .mm Myanmar
+compbrl .mn Mongolia
+compbrl .mo Macau
+compbrl .mp Northern Mariana Islands
+compbrl .mq Martinique
+compbrl .mr Mauritania
+compbrl .ms Montserrat
+compbrl .mt Malta
+compbrl .mu Mauritius
+compbrl .mv Maldives
+compbrl .mw Malawi
+compbrl .mx Mexico
+compbrl .my Malaysia
+compbrl .mz Mozambique
+compbrl .na Namibia
+compbrl .nc New Caledonia (Fr.)
+compbrl .ne Niger
+compbrl .nf Norfolk Island
+compbrl .ng Nigeria
+compbrl .ni Nicaragua
+compbrl .nl Netherlands
+compbrl .no Norway
+compbrl .np Nepal
+compbrl .nr Nauru
+compbrl .nu Niue
+compbrl .nz New Zealand
+compbrl .om Oman
+compbrl .pa Panama
+compbrl .pe Peru
+compbrl .pf Polynesia (Fr.)
+compbrl .pg Papua New Guinea
+compbrl .ph Philippines
+compbrl .pk Pakistan
+compbrl .pl Poland
+compbrl .pm Saint Pierre and Miquelon
+compbrl .pn Pitcairn
+compbrl .pr Puerto Rico (U.S.)
+compbrl .ps Palestinian Territory, Occupied
+compbrl .pt Portugal
+compbrl .pw Palau
+compbrl .py Paraguay
+compbrl .qa Qatar
+compbrl .re Reunion (Fr.)
+compbrl .ro Romania
+compbrl .ru Russia
+compbrl .rw Rwanda
+compbrl .sa Saudi Arabia
+compbrl .sb Solomon Islands
+compbrl .sc Seychelles
+compbrl .sd Sudan
+compbrl .se Sweden
+compbrl .sg Singapore
+compbrl .sh Saint Helena
+compbrl .si Slovenia
+compbrl .sj Svalbard and Jan Mayen
+compbrl .sk Slovakia
+compbrl .sl Sierra Leone
+compbrl .sm San Marino
+compbrl .sn Senegal
+compbrl .so Somalia
+compbrl .sr Suriname
+compbrl .st Sao Tome And Principe
+compbrl .su U.S.S.R.
+compbrl .sv El Salvador
+compbrl .sy Syrian Arab Republic
+compbrl .sz Swaziland
+compbrl .tc Turks And Caicos Islands
+compbrl .td Chad
+compbrl .tf French Southern Territories
+compbrl .tg Togo
+compbrl .th Thailand
+compbrl .tj Tajikistan
+compbrl .tk Tokelau
+compbrl .tm Turkmenistan
+compbrl .tn Tunisia
+compbrl .to Tonga
+compbrl .tp East Timor
+compbrl .tr Turkey
+compbrl .tt Trinidad and Tobago
+compbrl .tv Tuvalu
+compbrl .tw Taiwan
+compbrl .tz Tanzania
+compbrl .ua Ukraine
+compbrl .ug Uganda
+compbrl .uk United Kingdom
+compbrl .um United States Minor Outlying Islands
+compbrl .us United States
+compbrl .uy Uruguay
+compbrl .uz Uzbekistan
+compbrl .va Holy See (Vatican City State)
+compbrl .vc St. Vincent and the Grenadines
+compbrl .ve Venezuela
+compbrl .vg Virgin Islands, British
+compbrl .vi Virgin Islands, U.S.
+compbrl .vn Vietnam
+compbrl .vu Vanuatu
+compbrl .wf Wallis and Futuna
+compbrl .ws Samoa
+compbrl .ye Yemen
+compbrl .yt Mayotte
+compbrl .yu Yugoslavia
+compbrl .za South Africa
+compbrl .zm Zambia
+compbrl .zw Zimbabwe
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti
new file mode 100644
index 0000000..de820db
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti
@@ -0,0 +1,231 @@
+#
+#  Copyright (C) 2011 by Bert Frees <bertfrees@gmail.com>
+#  Copyright (C) 2011 by Jan Halousek <merit@login.cz>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# ----------------------------------------------------------------------------------------------
+#
+#  Czech Braille
+#
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#                               Jan Halousek <merit@login.cz>
+#
+#     Based on the official Czech Braille Standard
+# ----------------------------------------------------------------------------------------------
+
+# ==============================================================================================
+# SINGLE-CELL
+# ==============================================================================================
+
+uplow       \x0041\x0061  1,1                 Aa                  LATIN CAPITAL LETTER A - LATIN SMALL LETTER A
+uplow       \x0042\x0062  12,12               Bb                  LATIN CAPITAL LETTER B - LATIN SMALL LETTER B
+uplow       \x0043\x0063  14,14               Cc                  LATIN CAPITAL LETTER C - LATIN SMALL LETTER C
+uplow       \x0044\x0064  145,145             Dd                  LATIN CAPITAL LETTER D - LATIN SMALL LETTER D
+uplow       \x0045\x0065  15,15               Ee                  LATIN CAPITAL LETTER E - LATIN SMALL LETTER E
+uplow       \x0046\x0066  124,124             Ff                  LATIN CAPITAL LETTER F - LATIN SMALL LETTER F
+uplow       \x0047\x0067  1245,1245           Gg                  LATIN CAPITAL LETTER G - LATIN SMALL LETTER G
+uplow       \x0048\x0068  125,125             Hh                  LATIN CAPITAL LETTER H - LATIN SMALL LETTER H
+uplow       \x0049\x0069  24,24               Ii                  LATIN CAPITAL LETTER I - LATIN SMALL LETTER I
+uplow       \x004A\x006A  245,245             Jj                  LATIN CAPITAL LETTER J - LATIN SMALL LETTER J
+uplow       \x004B\x006B  13,13               Kk                  LATIN CAPITAL LETTER K - LATIN SMALL LETTER K
+uplow       \x004C\x006C  123,123             Ll                  LATIN CAPITAL LETTER L - LATIN SMALL LETTER L
+uplow       \x004D\x006D  134,134             Mm                  LATIN CAPITAL LETTER M - LATIN SMALL LETTER M
+uplow       \x004E\x006E  1345,1345           Nn                  LATIN CAPITAL LETTER N - LATIN SMALL LETTER N
+uplow       \x004F\x006F  135,135             Oo                  LATIN CAPITAL LETTER O - LATIN SMALL LETTER O
+uplow       \x0050\x0070  1234,1234           Pp                  LATIN CAPITAL LETTER P - LATIN SMALL LETTER P
+uplow       \x0051\x0071  12345,12345         Qq                  LATIN CAPITAL LETTER Q - LATIN SMALL LETTER Q
+uplow       \x0052\x0072  1235,1235           Rr                  LATIN CAPITAL LETTER R - LATIN SMALL LETTER R
+uplow       \x0053\x0073  234,234             Ss                  LATIN CAPITAL LETTER S - LATIN SMALL LETTER S
+uplow       \x0054\x0074  2345,2345           Tt                  LATIN CAPITAL LETTER T - LATIN SMALL LETTER T
+uplow       \x0055\x0075  136,136             Uu                  LATIN CAPITAL LETTER U - LATIN SMALL LETTER U
+uplow       \x0056\x0076  1236,1236           Vv                  LATIN CAPITAL LETTER V - LATIN SMALL LETTER V
+uplow       \x0057\x0077  12356,12356         Ww                  LATIN CAPITAL LETTER W - LATIN SMALL LETTER W
+uplow       \x0058\x0078  1346,1346           Xx                  LATIN CAPITAL LETTER X - LATIN SMALL LETTER X
+uplow       \x0059\x0079  13456,13456         Yy                  LATIN CAPITAL LETTER Y - LATIN SMALL LETTER Y
+uplow       \x005A\x007A  1356,1356           Zz                  LATIN CAPITAL LETTER Z - LATIN SMALL LETTER Z
+
+uplow       \x00C1\x00E1  16,16               Áá                  LATIN CAPITAL LETTER A WITH ACUTE - LATIN SMALL LETTER A WITH ACUTE
+uplow       \x00C9\x00E9  345,345             Éé                  LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE
+uplow       \x00CD\x00ED  34,34               Íí                  LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE
+uplow       \x00D3\x00F3  246,246             Óó                  LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE
+uplow       \x00DA\x00FA  346,346             Úú                  LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE
+uplow       \x00DD\x00FD  12346,12346         Ýý                  LATIN CAPITAL LETTER Y WITH ACUTE - LATIN SMALL LETTER Y WITH ACUTE
+uplow       \x010C\x010D  146,146             Čč                  LATIN CAPITAL LETTER C WITH CARON - LATIN SMALL LETTER C WITH CARON
+uplow       \x010E\x010F  1456,1456           Ďď                  LATIN CAPITAL LETTER D WITH CARON - LATIN SMALL LETTER D WITH CARON
+uplow       \x011A\x011B  126,126             Ěě                  LATIN CAPITAL LETTER E WITH CARON - LATIN SMALL LETTER E WITH CARON
+uplow       \x013D\x013E  123456,123456       Ľľ                  LATIN CAPITAL LETTER L WITH CARON - LATIN SMALL LETTER L WITH CARON
+uplow       \x0147\x0148  1246,1246           Ňň                  LATIN CAPITAL LETTER N WITH CARON - LATIN SMALL LETTER N WITH CARON
+uplow       \x0158\x0159  2456,2456           Řř                  LATIN CAPITAL LETTER R WITH CARON - LATIN SMALL LETTER R WITH CARON
+uplow       \x0160\x0161  156,156             Šš                  LATIN CAPITAL LETTER S WITH CARON - LATIN SMALL LETTER S WITH CARON
+uplow       \x0164\x0165  1256,1256           Ťť                  LATIN CAPITAL LETTER T WITH CARON - LATIN SMALL LETTER T WITH CARON
+uplow       \x016E\x016F  23456,23456         Ůů                  LATIN CAPITAL LETTER U WITH RING ABOVE - LATIN SMALL LETTER U WITH RING ABOVE
+uplow       \x017D\x017E  2346,2346           Žž                  LATIN CAPITAL LETTER Z WITH CARON - LATIN SMALL LETTER Z WITH CARON
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+space       \x0009        9                                       <control> HORIZONTAL TABULATION
+space       \x000A        0                                       <control> LINE FEED
+space       \x000C        0                                       <control> FORM FEED
+space       \x000D        0                                       <control> CARRIAGE RETURN
+space       \x001B        1b                                      <control> ESCAPE
+space       \x0020        0                                       SPACE
+
+punctuation \x0021        235                 !                   EXCLAMATION MARK
+punctuation \x0022        2356                "                   QUOTATION MARK
+sign        \x0023        3456                #                   NUMBER SIGN
+punctuation \x0027        4                   '                   APOSTROPHE
+punctuation \x0028        236                 (                   LEFT PARENTHESIS
+punctuation \x0029        356                 )                   RIGHT PARENTHESIS
+sign        \x002A        35                  *                   ASTERISK
+math        \x002B        256                 +                   PLUS SIGN
+punctuation \x002C        2                   ,                   COMMA
+punctuation \x002D        36                  -                   HYPHEN-MINUS
+punctuation \x002E        3                   .                   FULL STOP
+math        \x002F        12456               /                   SOLIDUS
+include digits6Dots.uti
+punctuation \x003A        25                  :                   COLON
+punctuation \x003B        23                  ;                   SEMICOLON
+math        \x003C        126                 <                   LESS-THAN SIGN
+math        \x003D        2356                =                   EQUALS SIGN
+math        \x003E        345                 >                   GREATER-THAN SIGN
+punctuation \x003F        26                  ?                   QUESTION MARK
+punctuation \x0060        4                   `                   GRAVE ACCENT
+sign        \x007C        456                 |                   VERTICAL LINE
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+space       \x00A0        a                                       NO-BREAK SPACE
+punctuation \x00AD        36                  ­                   SOFT HYPHEN
+sign        \x00B4        4                   ´                   ACUTE ACCENT
+math        \x00D7        35                  ×                   MULTIPLICATION SIGN
+math        \x00F7        25                  ÷                   DIVISION SIGN
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2000..206F  General Punctuation
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x2010        36                  ‐                   HYPHEN
+punctuation \x2011        36                  ‑                   NON-BREAKING HYPHEN
+punctuation \x2012        36                  ‒                   FIGURE DASH
+punctuation \x2013        36                  –                   EN DASH
+punctuation \x2014        36                  —                   EM DASH
+punctuation \x2015        36                  ―                   HORIZONTAL BAR
+punctuation \x2018        4                   ‘                   LEFT SINGLE QUOTATION MARK
+punctuation \x2019        4                   ’                   RIGHT SINGLE QUOTATION MARK
+punctuation \x201A        4                   ‚                   SINGLE LOW-9 QUOTATION MARK
+punctuation \x201B        4                   ‛                   SINGLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation \x201C        2356                “                   LEFT DOUBLE QUOTATION MARK
+punctuation \x201D        2356                ”                   RIGHT DOUBLE QUOTATION MARK
+punctuation \x201E        2356                „                   DOUBLE LOW-9 QUOTATION MARK
+punctuation \x201F        2356                ‟                   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+
+
+# ==============================================================================================
+# MULTI-CELL
+# ==============================================================================================
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0024        3456-1246           $                   DOLLAR SIGN
+math        \x0025        3456-1234           %                   PERCENT SIGN
+sign        \x0026        3456-12346          &                   AMPERSAND
+sign        \x0040        3456-12456          @                   COMMERCIAL AT
+punctuation \x005B        6-236               [                   LEFT SQUARE BRACKET
+sign        \x005C        3456-1256           \                   REVERSE SOLIDUS
+punctuation \x005D        6-356               ]                   RIGHT SQUARE BRACKET
+sign        \x005E        6-45                ^                   CIRCUMFLEX ACCENT
+sign        \x005F        6-36                _                   LOW LINE
+math        \x007B        45-236              {                   LEFT CURLY BRACKET
+math        \x007D        45-356              }                   RIGHT CURLY BRACKET
+math        \x007E        6-5                 ~                   TILDE
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0080        15-136-1235-135     €                   <control> - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS
+sign        \x00B0        3456-234            °                   DEGREE SIGN
+sign        \x00B5        4-134               µ                   MICRO SIGN
+math        \x00B9        34-1                ¹                   SUPERSCRIPT ONE
+uplow       \x00C4\x00E4  1-15,1-15           Ää                  LATIN CAPITAL LETTER A WITH DIAERESIS - LATIN SMALL LETTER A WITH DIAERESIS
+uplow       \x00D6\x00F6  135-15,135-15       Öö                  LATIN CAPITAL LETTER O WITH DIAERESIS - LATIN SMALL LETTER O WITH DIAERESIS
+uplow       \x00DC\x00FC  136-15,136-15       Üü                  LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0370..03FF  Greek and Coptic
+# ----------------------------------------------------------------------------------------------
+
+letter      \x0391        46-1                Α                   GREEK CAPITAL LETTER ALPHA
+letter      \x0392        46-12               Β                   GREEK CAPITAL LETTER BETA
+letter      \x0393        46-1245             Γ                   GREEK CAPITAL LETTER GAMMA
+letter      \x0394        46-145              Δ                   GREEK CAPITAL LETTER DELTA
+letter      \x0395        46-15               Ε                   GREEK CAPITAL LETTER EPSILON
+letter      \x0398        46-1456             Θ                   GREEK CAPITAL LETTER THETA
+letter      \x0399        46-24               Ι                   GREEK CAPITAL LETTER IOTA
+letter      \x039A        46-13               Κ                   GREEK CAPITAL LETTER KAPPA
+letter      \x039B        46-123              Λ                   GREEK CAPITAL LETTER LAMDA
+letter      \x039C        46-134              Μ                   GREEK CAPITAL LETTER MU
+letter      \x039D        46-1345             Ν                   GREEK CAPITAL LETTER NU
+letter      \x039E        46-1346             Ξ                   GREEK CAPITAL LETTER XI
+letter      \x039F        46-135              Ο                   GREEK CAPITAL LETTER OMICRON
+letter      \x03A0        46-1234             Π                   GREEK CAPITAL LETTER PI
+letter      \x03A1        46-1235             Ρ                   GREEK CAPITAL LETTER RHO
+letter      \x03A3        46-234              Σ                   GREEK CAPITAL LETTER SIGMA
+letter      \x03A4        46-2345             Τ                   GREEK CAPITAL LETTER TAU
+letter      \x03A5        46-13456            Υ                   GREEK CAPITAL LETTER UPSILON
+letter      \x03A6        46-124              Φ                   GREEK CAPITAL LETTER PHI
+letter      \x03A7        46-125              Χ                   GREEK CAPITAL LETTER CHI
+letter      \x03A8        46-12346            Ψ                   GREEK CAPITAL LETTER PSI
+letter      \x03A9        46-2356             Ω                   GREEK CAPITAL LETTER OMEGA
+
+lowercase   \x03B1        4-1                 α                   GREEK SMALL LETTER ALPHA
+lowercase   \x03B2        4-12                β                   GREEK SMALL LETTER BETA
+lowercase   \x03B3        4-1245              γ                   GREEK SMALL LETTER GAMMA
+lowercase   \x03B4        4-145               δ                   GREEK SMALL LETTER DELTA
+lowercase   \x03B5        4-15                ε                   GREEK SMALL LETTER EPSILON
+lowercase   \x03B8        4-1456              θ                   GREEK SMALL LETTER THETA
+lowercase   \x03B9        4-24                ι                   GREEK SMALL LETTER IOTA
+lowercase   \x03BA        4-13                κ                   GREEK SMALL LETTER KAPPA
+lowercase   \x03BB        4-123               λ                   GREEK SMALL LETTER LAMDA
+lowercase   \x03BC        4-134               μ                   GREEK SMALL LETTER MU
+lowercase   \x03BD        4-1345              ν                   GREEK SMALL LETTER NU
+lowercase   \x03BE        4-1346              ξ                   GREEK SMALL LETTER XI
+lowercase   \x03BF        4-135               ο                   GREEK SMALL LETTER OMICRON
+lowercase   \x03C0        4-1234              π                   GREEK SMALL LETTER PI
+lowercase   \x03C1        4-1235              ρ                   GREEK SMALL LETTER RHO
+lowercase   \x03C3        4-234               σ                   GREEK SMALL LETTER SIGMA
+lowercase   \x03C4        4-2345              τ                   GREEK SMALL LETTER TAU
+lowercase   \x03C5        4-13456             υ                   GREEK SMALL LETTER UPSILON
+lowercase   \x03C6        4-124               φ                   GREEK SMALL LETTER PHI
+lowercase   \x03C7        4-125               χ                   GREEK SMALL LETTER CHI
+lowercase   \x03C8        4-12346             ψ                   GREEK SMALL LETTER PSI
+lowercase   \x03C9        4-2356              ω                   GREEK SMALL LETTER OMEGA
+
+
+# ----------------------------------------------------------------------------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb
new file mode 100644
index 0000000..e64e4e1
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb
@@ -0,0 +1,35 @@
+#
+#  Copyright (C) 2011 by Bert Frees <bertfrees@gmail.com>
+#  Copyright (C) 2011 by Jan Halousek <merit@login.cz>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#--------------------------------------------------------------------------------
+#
+#  Czech Braille
+#
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#                               Jan Halousek <merit@login.cz>
+#
+#     Based on the official Czech Braille Standard
+# -------------------------------------------------------------------------------
+
+include cs-chardefs.cti
+include braille-patterns.cti
+include cs-translation.ctb
+
+# -------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb
new file mode 100644
index 0000000..87eae42
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb
@@ -0,0 +1,72 @@
+#
+#  Copyright (C) 2011 by Bert Frees <bertfrees@gmail.com>
+#  Copyright (C) 2011 by Jan Halousek <merit@login.cz>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# ----------------------------------------------------------------------------------------------
+#
+#  Czech Braille
+#
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#                               Jan Halousek <merit@login.cz>
+#
+#     Based on the official Czech Braille Standard
+# ----------------------------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------------------------
+# Braille indicator opcodes
+# ----------------------------------------------------------------------------------------------
+
+numsign  3456
+capsign  6
+begcaps  56
+endcaps  5
+
+# ----------------------------------------------------------------------------------------------
+# Literary digits
+# ----------------------------------------------------------------------------------------------
+
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# ----------------------------------------------------------------------------------------------
+# Decimal points, hyphens
+# ----------------------------------------------------------------------------------------------
+
+decpoint  \x002C  2
+decpoint  \x002E  3
+hyphen    \x002D  36
+
+# ----------------------------------------------------------------------------------------------
+# Letter prefix in numbers
+# ----------------------------------------------------------------------------------------------
+
+class    digitletter                 abcdefghij
+context  $d[]%digitletter            @5
+context  $d"."[]%digitletter         @5
+context  $d","[]%digitletter         @5
+
+# ----------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb
new file mode 100644
index 0000000..49baad3
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb
@@ -0,0 +1,280 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Danish (iso-8859-1)
+
+# This is the table which comes closest to the Danish standard 1252 table. All
+# control characters are mapped as their corresponding capital letters with
+# dot-8 added. Most Danish braille users should use this table.
+
+# generated by ttbtest
+letter \x0000 8		NULL
+letter \x0001 178		START OF HEADING
+letter \x0002 1278		START OF TEXT
+letter \x0003 1478		END OF TEXT
+letter \x0004 14578		END OF TRANSMISSION
+letter \x0005 24568		ENQUIRY
+letter \x0006 12478		ACKNOWLEDGE
+letter \x0007 124578		BELL
+letter \x0008 12578		BACKSPACE
+space \t 2478		CHARACTER TABULATION
+space \n 678		LINE FEED (LF)
+space \v 1368		LINE TABULATION
+space \f 12378		FORM FEED (FF)
+space \r 257		CARRIAGE RETURN (CR)
+letter \x000e 134578		SHIFT OUT
+letter \x000f 12358		SHIFT IN
+letter \x0010 123478		DATA LINK ESCAPE
+letter \x0011 1234578		DEVICE CONTROL ONE
+letter \x0012 13568		DEVICE CONTROL TWO
+letter \x0013 4578		DEVICE CONTROL THREE
+letter \x0014 268		DEVICE CONTROL FOUR
+letter \x0015 13678		NEGATIVE ACKNOWLEDGE
+letter \x0016 278		SYNCHRONOUS IDLE
+letter \x0017 3578		END OF TRANSMISSION BLOCK
+letter \x0018 78		CANCEL
+letter \x0019 68		END OF MEDIUM
+letter \x001a 135678		SUBSTITUTE
+letter \x001b 2678		ESCAPE
+letter \x001c 45678		INFORMATION SEPARATOR FOUR
+letter \x001d 12368		INFORMATION SEPARATOR THREE
+letter \x001e 1234678		INFORMATION SEPARATOR TWO
+letter \x001f 235678		INFORMATION SEPARATOR ONE
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation # 34568		NUMBER SIGN
+punctuation $ 25678		DOLLAR SIGN
+punctuation % 24578		PERCENT SIGN
+punctuation & 123468		AMPERSAND
+punctuation ' 4		APOSTROPHE
+punctuation ( 2368		LEFT PARENTHESIS
+punctuation ) 3568		RIGHT PARENTHESIS
+punctuation * 35		ASTERISK
+punctuation + 2358		PLUS SIGN
+punctuation , 2		COMMA
+punctuation - 368		HYPHEN-MINUS
+punctuation . 3		FULL STOP
+punctuation / 34		SOLIDUS
+include digits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation < 358		LESS-THAN SIGN
+punctuation = 23568		EQUALS SIGN
+punctuation > 267		GREATER-THAN SIGN
+punctuation ? 26		QUESTION MARK
+punctuation @ 478		COMMERCIAL AT
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+punctuation [ 23678		LEFT SQUARE BRACKET
+punctuation \\ 347		REVERSE SOLIDUS
+punctuation ] 35678		RIGHT SQUARE BRACKET
+punctuation ^ 12348		CIRCUMFLEX ACCENT
+punctuation _ 3678		LOW LINE
+punctuation ` 5		GRAVE ACCENT
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation { 123678		LEFT CURLY BRACKET
+punctuation | 4568		VERTICAL LINE
+punctuation } 345678		RIGHT CURLY BRACKET
+punctuation ~ 467		TILDE
+letter \x007f 7		DELETE
+letter \x20AC 1578		EURO SIGN
+letter \x201A 457
+letter \x0192 58
+letter \x201E 2378
+letter \x2022 37
+letter \x2026 6
+letter \x0080 24568		<control-0080>
+letter \x0081 45		<control-0081>
+letter \x0082 457		BREAK PERMITTED HERE
+letter \x0083 5		NO BREAK HERE
+letter \x0084 2378		<control-0084>
+letter \x0085 6		NEXT LINE (NEL)
+letter \x0086 2357		START OF SELECTED AREA
+letter \x0087 23578		END OF SELECTED AREA
+letter \x0088 5678		CHARACTER TABULATION SET
+letter \x0089 3578		CHARACTER TABULATION WITH JUSTIFICATION
+letter \x008a 4578		LINE TABULATION SET
+letter \x008b 456		PARTIAL LINE FORWARD
+letter \x008c 12358		PARTIAL LINE BACKWARD
+letter \x008d 3567		REVERSE LINE FEED
+letter \x008e 3467		SINGLE SHIFT TWO
+letter \x008f 27		SINGLE SHIFT THREE
+letter \x0090 357		DEVICE CONTROL STRING
+letter \x0091 47		PRIVATE USE ONE
+letter \x0092 48		PRIVATE USE TWO
+letter \x0093 237		SET TRANSMIT STATE
+letter \x0094 568		CANCEL CHARACTER
+letter \x0095 37		MESSAGE WAITING
+letter \x0096 36		START OF GUARDED AREA
+letter \x0097 367		END OF GUARDED AREA
+letter \x0098 46		START OF STRING
+letter \x0099 268		<control-0099>
+letter \x009a 2348		SINGLE CHARACTER INTRODUCER
+letter \x009b 4567		CONTROL SEQUENCE INTRODUCER
+letter \x009c 1358		STRING TERMINATOR
+letter \x009d 23458		OPERATING SYSTEM COMMAND
+letter \x009e 346		PRIVACY MESSAGE
+letter \x009f 2345678		APPLICATION PROGRAM COMMAND
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a1 256		INVERTED EXCLAMATION MARK
+punctuation \x00a2 2578		CENT SIGN
+punctuation \x00a3 1238		POUND SIGN
+punctuation \x00a4 2367		CURRENCY SIGN
+punctuation \x00a5 67		YEN SIGN
+punctuation \x00a6 3478		BROKEN BAR
+punctuation \x00a7 578		SECTION SIGN
+punctuation \x00a8 56		DIAERESIS
+punctuation \x00a9 78		COPYRIGHT SIGN
+letter \x00aa 234678		FEMININE ORDINAL INDICATOR
+punctuation \x00ab 57		LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00ac 34567		NOT SIGN
+punctuation \x00ad 378		SOFT HYPHEN
+punctuation \x00ae 13568		REGISTERED SIGN
+punctuation \x00af 23567		MACRON
+punctuation \x00b0 356		DEGREE SIGN
+punctuation \x00b1 123458		PLUS-MINUS SIGN
+punctuation \x00b2 238		SUPERSCRIPT TWO
+punctuation \x00b3 258		SUPERSCRIPT THREE
+punctuation \x00b4 468		ACUTE ACCENT
+lowercase \x00b5 236		MICRO SIGN
+punctuation \x00b6 1234568		PILCROW SIGN
+punctuation \x00b7 38		MIDDLE DOT
+punctuation \x00b8 4678		CEDILLA
+punctuation \x00b9 28		SUPERSCRIPT ONE
+letter \x00ba 7		MASCULINE ORDINAL INDICATOR
+punctuation \x00bb 567		RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00bc 13458		VULGAR FRACTION ONE QUARTER
+punctuation \x00bd 458		VULGAR FRACTION ONE HALF
+punctuation \x00be 3456		VULGAR FRACTION THREE QUARTERS
+punctuation \x00bf 348		INVERTED QUESTION MARK
+uppercase \x00c0 123567		LATIN CAPITAL LETTER A WITH GRAVE
+uppercase \x00c1 1235678		LATIN CAPITAL LETTER A WITH ACUTE
+uppercase \x00c2 1678		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c3 14678		LATIN CAPITAL LETTER A WITH TILDE
+uppercase \x00c4 34578		LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase \x00c5 167		LATIN CAPITAL LETTER A WITH RING ABOVE
+uppercase \x00c6 3457		LATIN CAPITAL LETTER AE
+uppercase \x00c7 123467		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00c8 23467		LATIN CAPITAL LETTER E WITH GRAVE
+uppercase \x00c9 1234567		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00ca 1267		LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uppercase \x00cb 12467		LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase \x00cc 15678		LATIN CAPITAL LETTER I WITH GRAVE
+uppercase \x00cd 12678		LATIN CAPITAL LETTER I WITH ACUTE
+uppercase \x00ce 1467		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00cf 124567		LATIN CAPITAL LETTER I WITH DIAERESIS
+uppercase \x00d0 68		LATIN CAPITAL LETTER ETH
+uppercase \x00d1 1245678		LATIN CAPITAL LETTER N WITH TILDE
+uppercase \x00d2 124678		LATIN CAPITAL LETTER O WITH GRAVE
+uppercase \x00d3 34678		LATIN CAPITAL LETTER O WITH ACUTE
+uppercase \x00d4 14567		LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase \x00d5 145678		LATIN CAPITAL LETTER O WITH TILDE
+uppercase \x00d6 24678		LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation \x00d7 13468		MULTIPLICATION SIGN
+uppercase \x00d8 2467		LATIN CAPITAL LETTER O WITH STROKE
+uppercase \x00d9 234567		LATIN CAPITAL LETTER U WITH GRAVE
+uppercase \x00da 125678		LATIN CAPITAL LETTER U WITH ACUTE
+uppercase \x00db 1567		LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase \x00dc 12567		LATIN CAPITAL LETTER U WITH DIAERESIS
+uppercase \x00dd 257		LATIN CAPITAL LETTER Y WITH ACUTE
+uppercase \x00de 1368		LATIN CAPITAL LETTER THORN
+lowercase \x00df 23468		LATIN SMALL LETTER SHARP S
+lowercase \x00e0 12356		LATIN SMALL LETTER A WITH GRAVE
+lowercase \x00e1 123568		LATIN SMALL LETTER A WITH ACUTE
+lowercase \x00e2 168		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e3 1468		LATIN SMALL LETTER A WITH TILDE
+lowercase \x00e4 3458		LATIN SMALL LETTER A WITH DIAERESIS
+lowercase \x00e5 16		LATIN SMALL LETTER A WITH RING ABOVE
+lowercase \x00e6 345		LATIN SMALL LETTER AE
+lowercase \x00e7 12346		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00e8 2346		LATIN SMALL LETTER E WITH GRAVE
+lowercase \x00e9 123456		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00ea 126		LATIN SMALL LETTER E WITH CIRCUMFLEX
+lowercase \x00eb 1246		LATIN SMALL LETTER E WITH DIAERESIS
+lowercase \x00ec 1568		LATIN SMALL LETTER I WITH GRAVE
+lowercase \x00ed 1268		LATIN SMALL LETTER I WITH ACUTE
+lowercase \x00ee 146		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00ef 12456		LATIN SMALL LETTER I WITH DIAERESIS
+lowercase \x00f0 134568		LATIN SMALL LETTER ETH
+lowercase \x00f1 124568		LATIN SMALL LETTER N WITH TILDE
+lowercase \x00f2 12468		LATIN SMALL LETTER O WITH GRAVE
+lowercase \x00f3 3468		LATIN SMALL LETTER O WITH ACUTE
+lowercase \x00f4 1456		LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase \x00f5 14568		LATIN SMALL LETTER O WITH TILDE
+lowercase \x00f6 2468		LATIN SMALL LETTER O WITH DIAERESIS
+punctuation \x00f7 2568		DIVISION SIGN
+lowercase \x00f8 246		LATIN SMALL LETTER O WITH STROKE
+lowercase \x00f9 23456		LATIN SMALL LETTER U WITH GRAVE
+lowercase \x00fa 12568		LATIN SMALL LETTER U WITH ACUTE
+lowercase \x00fb 156		LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase \x00fc 1256		LATIN SMALL LETTER U WITH DIAERESIS
+lowercase \x00fd 1348		LATIN SMALL LETTER Y WITH ACUTE
+lowercase \x00fe 138		LATIN SMALL LETTER THORN
+lowercase \x00ff 234568		LATIN SMALL LETTER Y WITH DIAERESIS
+punctuation \x0192 58
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti
new file mode 100644
index 0000000..d62e1aa
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti
@@ -0,0 +1,63 @@
+# liblouis: Letters with accents (without ä ö ü)
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  Letters with accents (without ä ö ü) - Switzerland
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+uplow Àà 4-12356 \x00C0 &#192;  LATIN CAPITAL LETTER A WITH GRAVE
+#            Áá                     \x00C1 &#193;  LATIN CAPITAL LETTER A WITH ACUTE
+uplow Ââ 4-16 \x00C2 &#194;  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+#            Ãã                     \x00C3 &#195;  LATIN CAPITAL LETTER A WITH TILDE
+
+#            Åå                     \x00C5 &#197;  LATIN CAPITAL LETTER A WITH RING ABOVE
+#            Ææ                     \x00C6 &#198;  LATIN CAPITAL LETTER AE
+uplow Çç 4-12346 \x00C7 &#199;  LATIN CAPITAL LETTER C WITH CEDILLA
+uplow Èè 4-2346 \x00C8 &#200;  LATIN CAPITAL LETTER E WITH GRAVE
+uplow Éé 4-123456 \x00C9 &#201;  LATIN CAPITAL LETTER E WITH ACUTE
+uplow Êê 4-126 \x00CA &#202;  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uplow Ëë 4-1246 \x00CB &#203;  LATIN CAPITAL LETTER E WITH DIAERESIS
+uplow Ìì 4-34 \x00CC &#204;  LATIN CAPITAL LETTER I WITH GRAVE
+#            Íí                     \x00CD &#205;  LATIN CAPITAL LETTER I WITH ACUTE
+uplow Îî 4-146 \x00CE &#206;  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uplow Ïï 4-12456 \x00CF &#207;  LATIN CAPITAL LETTER I WITH DIAERESIS
+#            Ðð                     \x00D0 &#208;  LATIN CAPITAL LETTER ETH
+#            Ññ                     \x00D1 &#209;  LATIN CAPITAL LETTER N WITH TILDE
+uplow Òò 4-346 \x00D2 &#210;  LATIN CAPITAL LETTER O WITH GRAVE
+#            Óó                     \x00D3 &#211;  LATIN CAPITAL LETTER O WITH ACUTE
+uplow Ôô 4-1456 \x00D4 &#212;  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+#            Õõ                     \x00D5 &#213;  LATIN CAPITAL LETTER O WITH TILDE
+
+#            Øø                     \x00D8 &#216;  LATIN CAPITAL LETTER O WITH STROKE
+uplow Ùù 4-23456 \x00D9 &#217;  LATIN CAPITAL LETTER U WITH GRAVE
+#            Úú                     \x00DA &#218;  LATIN CAPITAL LETTER U WITH ACUTE
+uplow Ûû 4-156 \x00DB &#219;  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+
+#            Ýý                     \x00DD &#221;  LATIN CAPITAL LETTER Y WITH ACUTE
+#            Þþ                     \x00DE &#222;  LATIN CAPITAL LETTER THORN
+
+#            ÿ      134568          \x00FF &#255;  LATIN SMALL LETTER Y WITH DIAERESIS
+
+#            \x0152\x0153  OE              &#338;  LATIN CAPITAL LIGATURE OE
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb
new file mode 100644
index 0000000..0e32e50
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb
@@ -0,0 +1,35 @@
+# liblouis: Swiss German Grade 0 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE BASISSCHRIFT - German Grade 0 Braille - Switzerland
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-eurobrl6u.dis
+include de-chardefs6.cti
+include de-ch-accents.cti
+include de-de-accents.cti
+include de-g0-core.utb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb
new file mode 100644
index 0000000..04316c1
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb
@@ -0,0 +1,32 @@
+# liblouis: Swiss German Grade 1 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE VOLLSCHRIFT - German Grade 1 Braille - Switzerland
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-ch-g0.utb
+include de-g1-core.ctb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb
new file mode 100644
index 0000000..447056a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb
@@ -0,0 +1,33 @@
+# liblouis: Swiss German Grade 2 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE KURZSCHRIFT - German Grade 2 Braille - Switzerland
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-ch-g0.utb
+letsign 6
+include de-g2-core.ctb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti
new file mode 100644
index 0000000..5d96682
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti
@@ -0,0 +1,245 @@
+# liblouis: Character definitions for german tables
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  Character definitions for german tables
+#
+#  Version 2009-11-19
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+# ===== BASIC LATIN - 0000-007F ================================================
+
+space         \x0009 0               #9     [CHARACTER TABULATION]
+space         \x000A 0               #10    [LINE FEED (LF)]
+space         \x000C 0               #12    [FORM FEED (FF)]
+space         \x000D 0               #13    [CARRIAGE RETURN (CR)]
+
+space         \x0020 0               #32    SPACE
+punctuation   \x0021 5               #33    ! EXCLAMATION MARK
+punctuation   \x0022 4               #34    " QUOTATION MARK
+sign          \x0023 3456            #35    # NUMBER SIGN
+sign          \x0024 46              #36    $ DOLLAR SIGN
+sign          \x0025 123456          #37    % PERCENT SIGN
+sign          \x0026 12346           #38    & AMPERSAND
+punctuation   \x0027 6               #39    ' APOSTROPHE APOSTROPHE-QUOTE
+punctuation   \x0028 236             #40    ( LEFT PARENTHESIS
+punctuation   \x0029 356             #41    ) RIGHT PARENTHESIS
+sign          \x002A 35              #42    * ASTERISK
+math          \x002B 235             #43    + PLUS SIGN
+punctuation   \x002C 2               #44    , COMMA
+punctuation   \x002D 36              #45    - HYPHEN-MINUS
+punctuation   \x002E 3               #46    . FULL STOP PERIOD
+sign          \x002F 256             #47    / SOLIDUS SLASH
+include digits6DotsPlusDot6.uti
+punctuation   \x003A 25              #58    : COLON
+punctuation   \x003B 23              #59    ; SEMICOLON
+math          \x003C 56              #60    < LESS-THAN SIGN
+math          \x003D 2356            #61    = EQUALS SIGN
+math          \x003E 45              #62    > GREATER-THAN SIGN
+punctuation   \x003F 26              #63    ? QUESTION MARK
+
+include latinLetterDef6Dots.uti
+
+sign          \x0060 345             #96    `  GRAVE ACCENT
+punctuation   \x007B 12356           #123   {  LEFT CURLY BRACKET
+sign          \x007C 34              #124   |  VERTICAL LINE
+punctuation   \x007D 23456           #125   }  RIGHT CURLY BRACKET
+sign          \x007E 2346            #126   ~  TILDE
+sign          \x007F 456             #127   [DELETE]
+
+sign          \x0040 4-345           #64    @  COMMERCIAL AT
+punctuation   \x005B 6-2356          #91    [  LEFT SQUARE BRACKET
+sign          \x005C 4-34            #92    \  REVERSE SOLIDUS
+punctuation   \x005D 6-2356          #93    ]  RIGHT SQUARE BRACKET
+sign          \x005E 4-2346          #94    ^  CIRCUMFLEX ACCENT
+sign          \x005F 4-456           #95    _  LOW LINE
+
+# ===== LATIN-1 SUPPLEMENT: 0080-00FF ==========================================
+
+space         \x00A0 0               #160   NO-BREAK SPACE
+punctuation   \x00A1 0               #161   ¡ INVERTED EXCLAMATION MARK
+sign          \x00A2 4-14            #162   ¢ CENT SIGN
+sign          \x00A3 4-123           #163   £ POUND SIGN
+sign          \x00A4 0               #164   ¤ CURRENCY SIGN
+sign          \x00A5 4-13456         #165   ¥ YEN SIGN
+sign          \x00A6 0-456-123-0     #166   ¦ BROKEN BAR
+sign          \x00A7 4-346           #167   § SECTION SIGN
+sign          \x00A8 0               #168   ¨ DIAERESIS
+sign          \x00A9 2356-45-14-2356 #169   © COPYRIGHT SIGN
+lowercase     \x00AA 1               #170   ª FEMININE ORDINAL INDICATOR
+punctuation   \x00AB 236             #171   « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+sign          \x00AC 0               #172   ¬ NOT SIGN
+sign          \x00AD 0               #173   ­ SOFT HYPHEN
+sign          \x00AE 2356-45-1235-2356   #174 ® REGISTERED SIGN
+sign          \x00AF 0               #175   ¯ MACRON
+sign          \x00B0 4-356           #176   ° DEGREE SIGN
+math          \x00B1 235-36          #177   ± PLUS-MINUS SIGN
+sign          \x00B2 0               #178   ² SUPERSCRIPT TWO
+sign          \x00B3 0               #179   ³ SUPERSCRIPT THREE
+sign          \x00B4 0               #180   ´ ACUTE ACCENT
+sign          \x00B5 56-134          #181   µ MICRO SIGN
+sign          \x00B6 0               #182   ¶ PILCROW SIGN
+sign          \x00B7 0               #183   · MIDDLE DOT
+sign          \x00B8 0               #184   ¸ CEDILLA
+sign          \x00B9 0               #185   ¹ SUPERSCRIPT ONE
+lowercase     \x00BA 135             #186   º MASCULINE ORDINAL INDICATOR
+punctuation   \x00BB 356             #187   » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+math          \x00BC 3456-1-256      #188   ¼ VULGAR FRACTION ONE QUARTER
+math          \x00BD 3456-1-23       #189   ½ VULGAR FRACTION ONE HALF
+math          \x00BE 3456-14-256     #190   ¾ VULGAR FRACTION THREE QUARTERS
+punctuation   \x00BF 0               #191   ¿ INVERTED QUESTION MARK
+uplow         \x00C4\x00E4  345      #196 #228  Ää LATIN CAPITAL LETTER A WITH DIAERESIS
+uplow         \x00D6\x00F6  246      #214 #246  Öö LATIN CAPITAL LETTER O WITH DIAERESIS
+math          \x00D7 236             #215   × MULTIPLICATION SIGN
+uplow         \x00DC\x00FC  1256     #220 #252   Üü LATIN CAPITAL LETTER U WITH DIAERESIS
+lowercase     \x00DF 2346            #223   ß LATIN SMALL LETTER SHARP S
+math          \x00F7 0               #247   ÷ DIVISION SIGN
+
+# ===== GENERAL PUNCTUATION: 2000-206F =========================================
+
+punctuation   \x2013 6-36            #8211          EN DASH
+punctuation   \x2014 6-36            #8212          EM DASH
+punctuation   \x2018 6-236           #8216          LEFT SINGLE QUOTATION MARK
+punctuation   \x2019 6-356           #8217          RIGHT SINGLE QUOTATION MARK
+punctuation   \x201A 6-236           #8218          SINGLE LOW-9 QUOTATION MARK
+punctuation   \x201B 6-356           #8219          SINGLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation   \x201C 236             #8220          LEFT DOUBLE QUOTATION MARK
+punctuation   \x201D 356             #8221          RIGHT DOUBLE QUOTATION MARK
+punctuation   \x201E 236             #8222          DOUBLE LOW-9 QUOTATION MARK
+punctuation   \x201F 356             #8223          DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+sign          \x2030 3456-245-356-356      #8240    PER MILLE SIGN
+sign          \x2031 3456-245-356-356-356  #8241    PER TEN THOUSAND SIGN
+sign          \x2032 4-35            #8242          PRIME
+sign          \x2033 4-35-35         #8243          DOUBLE PRIME
+punctuation   \x2039 6-236                          SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+punctuation   \x203a 6-356                          SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+
+# ===== CURRENCY SYMBOLS: 20A0-20CF ============================================
+
+sign          \x20A0 4-15                           EURO-CURRENCY SIGN
+
+# ===== NUMBER FORMS: 2150-218F ================================================
+
+math          \x2153 3456-1-25               VULGAR FRACTION ONE THIRD
+math          \x2154 3456-12-23              VULGAR FRACTION TWO THIRDS
+math          \x2155 3456-1-26               VULGAR FRACTION ONE FIFTH
+math          \x2156 3456-12-26              VULGAR FRACTION TWO FIFTHS
+math          \x2157 3456-14-26              VULGAR FRACTION THREE FIFTHS
+math          \x2158 3456-145-26             VULGAR FRACTION FOUR FIFTHS
+math          \x2159 3456-1-235              VULGAR FRACTION ONE SIXTH
+math          \x215a 3456-15-235             VULGAR FRACTION FIVE SIXTHS
+math          \x215b 3456-1-236              VULGAR FRACTION ONE EIGHTH
+math          \x215c 3456-14-236             VULGAR FRACTION THREE EIGHTHS
+math          \x215d 3456-15-236             VULGAR FRACTION FIVE EIGHTHS
+math          \x215e 3456-1245-236           VULGAR FRACTION SEVEN EIGHTHS
+
+# ===== ARROWS: 2190-21FF ======================================================
+
+sign          \x2190 0-246-25-25-0           LEFTWARDS ARROW
+sign          \x2192 0-25-25-135-0           RIGHTWARDS ARROW
+sign          \x2194 0-246-25-25-135-0       LEFT RIGHT ARROW
+
+# ===== MATHEMATICAL OPERATORS: 2200-22FF ======================================
+
+math          \x2212 36              #8722   MINUS SIGN
+math          \x2215 25              #8725   DIVISION SLASH
+math          \x2217 35              #8727   ASTERISK OPERATOR
+math          \x223C 25-25           #8764   TILDE OPERATOR
+math          \x2245 26-26           #8773   APPROXIMATELY EQUAL TO
+math          \x2259 26              #8793   ESTIMATES
+math          \x2260 35-2356         #8800   NOT EQUAL TO
+math          \x2261 2356-2356       #8801   IDENTICAL TO
+math          \x2264 246-2356        #8804   LESS-THAN OR EQUAL TO
+math          \x2265 135-2356        #8805   GREATER-THAN OR EQUAL TO
+math          \x2266 246-2356        #8806   LESS-THAN OVER EQUAL TO
+math          \x2267 135-2356        #8807   GREATER-THAN OVER EQUAL TO
+math          \x22c5 3               #8901   DOT OPERATOR
+math          \x22c6 3               #8902   STAR OPERATOR
+
+# ===== BRAILLE PATTERNS: 2800-28FF ============================================
+
+space         \x2800 0               #10240  BRAILLE PATTERN BLANK
+sign          \x2801 1               #10241  BRAILLE PATTERN DOTS-1
+sign          \x2802 2               #10242  BRAILLE PATTERN DOTS-2
+sign          \x2803 12              #10243  BRAILLE PATTERN DOTS-12
+sign          \x2804 3               #10244  BRAILLE PATTERN DOTS-3
+sign          \x2805 13              #10245  BRAILLE PATTERN DOTS-13
+sign          \x2806 23              #10246  BRAILLE PATTERN DOTS-23
+sign          \x2807 123             #10247  BRAILLE PATTERN DOTS-123
+sign          \x2808 4               #10248  BRAILLE PATTERN DOTS-4
+sign          \x2809 14              #10249  BRAILLE PATTERN DOTS-14
+sign          \x280a 24              #10250  BRAILLE PATTERN DOTS-24
+sign          \x280b 124             #10251  BRAILLE PATTERN DOTS-124
+sign          \x280c 34              #10252  BRAILLE PATTERN DOTS-34
+sign          \x280d 134             #10253  BRAILLE PATTERN DOTS-134
+sign          \x280e 234             #10254  BRAILLE PATTERN DOTS-234
+sign          \x280f 1234            #10255  BRAILLE PATTERN DOTS-1234
+sign          \x2810 5               #10256  BRAILLE PATTERN DOTS-5
+sign          \x2811 15              #10257  BRAILLE PATTERN DOTS-15
+sign          \x2812 25              #10258  BRAILLE PATTERN DOTS-25
+sign          \x2813 125             #10259  BRAILLE PATTERN DOTS-125
+sign          \x2814 35              #10260  BRAILLE PATTERN DOTS-35
+sign          \x2815 135             #10261  BRAILLE PATTERN DOTS-135
+sign          \x2816 235             #10262  BRAILLE PATTERN DOTS-235
+sign          \x2817 1235            #10263  BRAILLE PATTERN DOTS-1235
+sign          \x2818 45              #10264  BRAILLE PATTERN DOTS-45
+sign          \x2819 145             #10265  BRAILLE PATTERN DOTS-145
+sign          \x281a 245             #10266  BRAILLE PATTERN DOTS-245
+sign          \x281b 1245            #10267  BRAILLE PATTERN DOTS-1245
+sign          \x281c 345             #10268  BRAILLE PATTERN DOTS-345
+sign          \x281d 1345            #10269  BRAILLE PATTERN DOTS-1345
+sign          \x281e 2345            #10270  BRAILLE PATTERN DOTS-2345
+sign          \x281f 12345           #10271  BRAILLE PATTERN DOTS-12345
+sign          \x2820 6               #10272  BRAILLE PATTERN DOTS-6
+sign          \x2821 16              #10273  BRAILLE PATTERN DOTS-16
+sign          \x2822 26              #10274  BRAILLE PATTERN DOTS-26
+sign          \x2823 126             #10275  BRAILLE PATTERN DOTS-126
+sign          \x2824 36              #10276  BRAILLE PATTERN DOTS-36
+sign          \x2825 136             #10277  BRAILLE PATTERN DOTS-136
+sign          \x2826 236             #10278  BRAILLE PATTERN DOTS-236
+sign          \x2827 1236            #10279  BRAILLE PATTERN DOTS-1236
+sign          \x2828 46              #10280  BRAILLE PATTERN DOTS-46
+sign          \x2829 146             #10281  BRAILLE PATTERN DOTS-146
+sign          \x282a 246             #10282  BRAILLE PATTERN DOTS-246
+sign          \x282b 1246            #10283  BRAILLE PATTERN DOTS-1246
+sign          \x282c 346             #10284  BRAILLE PATTERN DOTS-346
+sign          \x282d 1346            #10285  BRAILLE PATTERN DOTS-1346
+sign          \x282e 2346            #10286  BRAILLE PATTERN DOTS-2346
+sign          \x282f 12346           #10287  BRAILLE PATTERN DOTS-12346
+sign          \x2830 56              #10288  BRAILLE PATTERN DOTS-56
+sign          \x2831 156             #10289  BRAILLE PATTERN DOTS-156
+sign          \x2832 256             #10290  BRAILLE PATTERN DOTS-256
+sign          \x2833 1256            #10291  BRAILLE PATTERN DOTS-1256
+sign          \x2834 356             #10292  BRAILLE PATTERN DOTS-356
+sign          \x2835 1356            #10293  BRAILLE PATTERN DOTS-1356
+sign          \x2836 2356            #10294  BRAILLE PATTERN DOTS-2356
+sign          \x2837 12356           #10295  BRAILLE PATTERN DOTS-12356
+sign          \x2838 456             #10296  BRAILLE PATTERN DOTS-456
+sign          \x2839 1456            #10297  BRAILLE PATTERN DOTS-1456
+sign          \x283a 2456            #10298  BRAILLE PATTERN DOTS-2456
+sign          \x283b 12456           #10299  BRAILLE PATTERN DOTS-12456
+sign          \x283c 3456            #10300  BRAILLE PATTERN DOTS-3456
+sign          \x283d 13456           #10301  BRAILLE PATTERN DOTS-13456
+sign          \x283e 23456           #10302  BRAILLE PATTERN DOTS-23456
+sign          \x283f 123456          #10303  BRAILLE PATTERN DOTS-123456
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti
new file mode 100644
index 0000000..0cb9c11
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti
@@ -0,0 +1,63 @@
+# liblouis: Letters with accents (without ä ö ü) - Germany, Austria
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  Letters with accents (without ä ö ü) - Germany, Austria
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+uplow Àà 4-1 \x00C0 &#192;  LATIN LETTER A WITH GRAVE
+uplow Áá 4-1 \x00C1 &#193;  LATIN LETTER A WITH ACUTE
+uplow Ââ 4-1 \x00C2 &#194;  LATIN LETTER A WITH CIRCUMFLEX
+uplow Ãã 4-1 \x00C3 &#195;  LATIN LETTER A WITH TILDE
+
+uplow Åå 4-1 \x00C5 &#197;  LATIN LETTER A WITH RING ABOVE
+uplow Ææ 1-15 \x00C6 &#198;  LATIN LETTER AE
+uplow Çç 4-14 \x00C7 &#199;  LATIN LETTER C WITH CEDILLA
+uplow Èè 4-15 \x00C8 &#200;  LATIN LETTER E WITH GRAVE
+uplow Éé 4-15 \x00C9 &#201;  LATIN LETTER E WITH ACUTE
+uplow Êê 4-15 \x00CA &#202;  LATIN LETTER E WITH CIRCUMFLEX
+uplow Ëë 4-15 \x00CB &#203;  LATIN LETTER E WITH DIAERESIS
+uplow Ìì 4-24 \x00CC &#204;  LATIN LETTER I WITH GRAVE
+uplow Íí 4-24 \x00CD &#205;  LATIN LETTER I WITH ACUTE
+uplow Îî 4-24 \x00CE &#206;  LATIN LETTER I WITH CIRCUMFLEX
+uplow Ïï 4-24 \x00CF &#207;  LATIN LETTER I WITH DIAERESIS
+uplow Ðð 4-145 \x00D0 &#208;  LATIN LETTER ETH
+uplow Ññ 4-1345 \x00D1 &#209;  LATIN LETTER N WITH TILDE
+uplow Òò 4-135 \x00D2 &#210;  LATIN LETTER O WITH GRAVE
+uplow Óó 4-135 \x00D3 &#211;  LATIN LETTER O WITH ACUTE
+uplow Ôô 4-135 \x00D4 &#212;  LATIN LETTER O WITH CIRCUMFLEX
+uplow Õõ 4-135 \x00D5 &#213;  LATIN LETTER O WITH TILDE
+
+uplow Øø 4-135 \x00D8 &#216;  LATIN LETTER O WITH STROKE
+uplow Ùù 4-136 \x00D9 &#217;  LATIN LETTER U WITH GRAVE
+uplow Úú 4-136 \x00DA &#218;  LATIN LETTER U WITH ACUTE
+uplow Ûû 4-136 \x00DB &#219;  LATIN LETTER U WITH CIRCUMFLEX
+
+uplow Ýý 4-13456 \x00DD &#221;  LATIN LETTER Y WITH ACUTE
+uplow Þþ 4-2345 \x00DE &#222;  LATIN LETTER THORN
+
+lowercase ÿ 4-13456 \x00FF &#255;  LATIN SMALL LETTER Y WITH DIAERESIS
+
+uplow \x0152\x0153 135-15 &#338;  LATIN LIGATURE OE
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb
new file mode 100644
index 0000000..afa6107
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb
@@ -0,0 +1,461 @@
+#  Copyright (C) 2012 by Aliminator83@gmail.com.
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+include braille-patterns.cti
+
+sign \x0000 0
+sign \x0001 178
+sign \x0002 1278
+sign \x0003 1478
+sign \x0004 14578
+sign \x0005 1578
+sign \x0006 12478
+sign \x0007 124578
+sign \x0008 12578
+sign \x0009 2478
+sign \x000a 24578
+sign \x000b 1378
+sign \x000c 12378
+sign \x000d 13478
+sign \x000e 134578
+sign \x000f 13578
+sign \x0010 123478
+sign \x0011 1234578
+sign \x0012 123578
+sign \x0013 23478
+sign \x0014 234578
+sign \x0015 13678
+sign \x0016 123678
+sign \x0017 245678
+sign \x0018 134678
+sign \x0019 1345678
+sign \x001a 135678
+sign \x001b 1235678
+sign \x001c 3478
+sign \x001d 2345678
+sign \x001e 234678
+sign \x001f 45678
+sign \x0020 0
+sign \x0021 5
+sign \x0022 4
+sign \x0023 3456
+sign \x0024 46
+sign \x0025 123456
+sign \x0026 12346
+sign \x0027 6
+sign \x0028 236
+sign \x0029 356
+sign \x002a 35
+sign \x002b 235
+sign \x002c 2
+sign \x002d 36
+sign \x002e 3
+sign \x002f 256
+sign \x0030 346
+sign \x0031 16
+sign \x0032 126
+sign \x0033 146
+sign \x0034 1456
+sign \x0035 156
+sign \x0036 1246
+sign \x0037 12456
+sign \x0038 1256
+sign \x0039 246
+sign \x003a 25
+sign \x003b 23
+sign \x003c 56
+sign \x003d 2356
+sign \x003e 45
+sign \x003f 26
+sign \x0040 3457
+sign \x0041 17
+sign \x0042 127
+sign \x0043 147
+sign \x0044 1457
+sign \x0045 157
+sign \x0046 1247
+sign \x0047 12457
+sign \x0048 1257
+sign \x0049 247
+sign \x004a 2457
+sign \x004b 137
+sign \x004c 1237
+sign \x004d 1347
+sign \x004e 13457
+sign \x004f 1357
+sign \x0050 12347
+sign \x0051 123457
+sign \x0052 12357
+sign \x0053 2347
+sign \x0054 23457
+sign \x0055 1367
+sign \x0056 12367
+sign \x0057 24567
+sign \x0058 13467
+sign \x0059 134567
+sign \x005a 13567
+sign \x005b 123567
+sign \x005c 347
+sign \x005d 234567
+sign \x005e 23467
+sign \x005f 4567
+sign \x0060 345
+sign \x0061 1
+sign \x0062 12
+sign \x0063 14
+sign \x0064 145
+sign \x0065 15
+sign \x0066 124
+sign \x0067 1245
+sign \x0068 125
+sign \x0069 24
+sign \x006a 245
+sign \x006b 13
+sign \x006c 123
+sign \x006d 134
+sign \x006e 1345
+sign \x006f 135
+sign \x0070 1234
+sign \x0071 12345
+sign \x0072 1235
+sign \x0073 234
+sign \x0074 2345
+sign \x0075 136
+sign \x0076 1236
+sign \x0077 2456
+sign \x0078 1346
+sign \x0079 13456
+sign \x007a 1356
+sign \x007b 12356
+sign \x007c 34
+sign \x007d 23456
+sign \x007e 2346
+sign \x007f 456
+sign \x0080 457
+sign \x0081 8
+sign \x0082 3678
+sign \x0083 78
+sign \x0084 1268
+sign \x0085 238
+sign \x0086 1248
+sign \x0087 12458
+sign \x0088 378
+sign \x0089 248
+sign \x008a 678
+sign \x008b 27
+sign \x008c 237
+sign \x008d 257
+sign \x008e 12567
+sign \x008f 12467
+sign \x0090 124678
+sign \x0091 23567
+sign \x0092 2367
+sign \x0093 138
+sign \x0094 1238
+sign \x0095 278
+sign \x0096 2378
+sign \x0097 13568
+sign \x0098 2578
+sign \x0099 1245678
+sign \x009a 2678
+sign \x009b 123458
+sign \x009c 67
+sign \x009d 124567
+sign \x009e 235678
+sign \x009f 12345678
+sign \x00a0 7
+sign \x00a1 367
+sign \x00a2 58
+sign \x00a3 467
+sign \x00a4 4678
+sign \x00a5 468
+sign \x00a6 158
+sign \x00a7 357
+sign \x00a8 48
+sign \x00a9 123468
+sign \x00aa 1258
+sign \x00ab 5678
+sign \x00ac 25678
+sign \x00ad 368
+sign \x00ae 12358
+sign \x00af 458
+sign \x00b0 4568
+sign \x00b1 23578
+sign \x00b2 128
+sign \x00b3 148
+sign \x00b4 568
+sign \x00b5 1348
+sign \x00b6 1458
+sign \x00b7 37
+sign \x00b8 68
+sign \x00b9 18
+sign \x00ba 2458
+sign \x00bb 4578
+sign \x00bc 1368
+sign \x00bd 12368
+sign \x00be 13468
+sign \x00bf 38
+sign \x00c0 23678
+sign \x00c1 28
+sign \x00c2 167
+sign \x00c3 3467
+sign \x00c4 567
+sign \x00c5 34567
+sign \x00c6 47
+sign \x00c7 123467
+sign \x00c8 3578
+sign \x00c9 1234567
+sign \x00ca 1267
+sign \x00cb 2358
+sign \x00cc 57
+sign \x00cd 258
+sign \x00ce 1467
+sign \x00cf 23568
+sign \x00d0 3567
+sign \x00d1 2567
+sign \x00d2 578
+sign \x00d3 2568
+sign \x00d4 14567
+sign \x00d5 267
+sign \x00d6 358
+sign \x00d7 2348
+sign \x00d8 2467
+sign \x00d9 35678
+sign \x00da 268
+sign \x00db 1567
+sign \x00dc 2368
+sign \x00dd 3568
+sign \x00de 2357
+sign \x00df 34568
+sign \x00e0 123568
+sign \x00e1 168
+sign \x00e2 1678
+sign \x00e3 34678
+sign \x00e4 3458
+sign \x00e5 345678
+sign \x00e6 478
+sign \x00e7 1234678
+sign \x00e8 23468
+sign \x00e9 1234568
+sign \x00ea 12678
+sign \x00eb 12468
+sign \x00ec 348
+sign \x00ed 1468
+sign \x00ee 14678
+sign \x00ef 124568
+sign \x00f0 23458
+sign \x00f1 13458
+sign \x00f2 3468
+sign \x00f3 14568
+sign \x00f4 145678
+sign \x00f5 1358
+sign \x00f6 2468
+sign \x00f7 125678
+sign \x00f8 24678
+sign \x00f9 234568
+sign \x00fa 1568
+sign \x00fb 15678
+sign \x00fc 12568
+sign \x00fd 24568
+sign \x00fe 12348
+sign \x00ff 134568
+sign \x2022 35		# •
+sign \x2014 36		# —
+sign \x2013 36		# –
+sign \x201e 1268	# „
+sign \x201c 138		# “
+sign \x201a 3678	# ‚
+sign \x2018 2367	# ‘
+
+# those symbols should be ignored because there is no one character mapping in the actual braille table
+sign \x2192 0	# →
+sign \x2190 0	# ←
+sign \x25bc 0	# ▼
+
+sign \x8722 36
+sign \x2003 0
+sign \x2011 36
+sign \x2013 368
+sign \x2014 36
+sign \x2015 36
+sign \x2017 36
+sign \x2018 2367
+sign \x2019 47
+sign \x2029 1458
+sign \x201A 3678
+sign \x201C 138
+sign \x201D 1238
+sign \x201E 1268
+sign \x2020 1248
+sign \x2021 12458
+sign \x2022 35
+sign \x2026 238
+sign \x2030 248
+sign \x2039 27
+sign \x203a 123458
+sign \x207F 13467
+sign \x20AC 457
+sign \x20AF 145678
+sign \x2116 3456
+sign \x2122 1245678
+sign \x2219 48
+sign \x221A 1467
+sign \x221E 234678
+sign \x2229 578
+sign \x2248 3578
+sign \x2261 23568
+sign \x2264 568
+sign \x2265 458
+sign \x2310 14567
+sign \x2320 347
+sign \x2321 1567
+sign \x2500 67
+sign \x2502 237
+sign \x250C 257
+sign \x2510 278
+sign \x2514 378
+sign \x2518 678
+sign \x251C 2367
+sign \x2524 13568
+sign \x252C 138
+sign \x2534 27
+sign \x2550 2578
+sign \x2551 1234568
+sign \x2552 123468
+sign \x2553 1358
+sign \x2554 23567
+sign \x2555 148
+sign \x2556 368
+sign \x2557 12458
+sign \x2558 248
+sign \x2559 1238
+sign \x255A 2378
+sign \x255B 34678
+sign \x255C 4678
+sign \x255D 2678
+sign \x255E 68
+sign \x255F 257
+sign \x2560 1248
+sign \x2561 268
+sign \x2562 24568
+sign \x2563 123567
+sign \x2564 3467
+sign \x2565 28
+sign \x2566 123458
+sign \x2567 167
+sign \x2568 57
+sign \x2569 8
+sign \x256A 3567
+sign \x256B 12358
+sign \x256C 5678
+sign \x2584 1267
+sign \x2588 12345678
+sign \x2580 234567
+sign \x258C 23678
+sign \x2590 35678
+sign \x2591 78
+sign \x2592 3678
+sign \x2593 235678
+sign \x25A0 1234567
+sign \x25cf 35
+sign \x0100 1678
+sign \x0101 168
+sign \x0102 1235678
+sign \x0103 123568
+sign \x0104 134568
+sign \x0105 168
+sign \x0106 14678
+sign \x0107 1468
+sign \x0108 14678
+sign \x0109 1468
+sign \x010C 14678
+sign \x010D 1468
+sign \x0110 145678
+sign \x0111 14568
+sign \x0112 15678
+sign \x0113 1568
+sign \x0118 12678
+sign \x0119 1268
+sign \x011B 126
+sign \x011c 1245678
+sign \x011d 124568
+sign \x011e 124567
+sign \x011f 12456
+sign \x0122 1245678
+sign \x0123 124568
+sign \x0124 125678
+sign \x0125 12568
+sign \x012B 2468
+sign \x0130 3478
+sign \x0131 348
+sign \x0134 245678
+sign \x0135 24568
+sign \x0136 13678
+sign \x0137 1368
+sign \x013B 123678
+sign \x013C 12368
+sign \x0141 134568
+sign \x0142 1568
+sign \x0143 145678
+sign \x0144 14568
+sign \x0145 1345678
+sign \x0146 134568
+sign \x0150 1245678
+sign \x0151 124568
+sign \x0152 237
+sign \x0153 467
+sign \x0156 1235678
+sign \x0157 123568
+sign \x0159 2456
+sign \x015a 134568
+sign \x015b 134568
+sign \x015C 234678
+sign \x015D 23468
+sign \x015e 134568
+sign \x015F 123468
+sign \x0160 678
+sign \x0161 1568
+sign \x0162 24678
+sign \x0163 23458
+sign \x0164 125678
+sign \x0165 1256
+sign \x016a 34678
+sign \x016B 3468
+sign \x016C 34678
+sign \x016D 3468
+sign \x016f 23456
+sign \x0170 2345678
+sign \x0171 234568
+sign \x0178 12345678
+sign \x0179 134568
+sign \x017a 134568
+sign \x017b 134568
+sign \x017C 123468
+sign \x017D 12567
+sign \x017e 2346
+sign \x0192 78
+sign \x01a0 12367
+sign \x01a1 1236
+sign \x025C 13567
+sign \x02C6 378
+sign \x02c7 134568
+sign \x02d8 134568
+sign \x02d9 5
+sign \x02db 134568
+sign \x02DC 2578
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb
new file mode 100644
index 0000000..ac3d49f
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb
@@ -0,0 +1,34 @@
+# liblouis: German Grade 0 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE BASISSCHRIFT - German Grade 0 Braille - Germany, Austria
+#
+#  Version 11-18-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-eurobrl6.dis
+include de-chardefs6.cti
+include de-de-accents.cti
+include de-g0-core.utb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb
new file mode 100644
index 0000000..c3118fb
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb
@@ -0,0 +1,32 @@
+# liblouis: German Grade 1 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE VOLLSCHRIFT - German Grade 1 Braille - Germany, Austria
+#
+#  Version 2009-11-19
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-de-g0.utb
+include de-g1-core.ctb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb
new file mode 100644
index 0000000..65c06b7
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb
@@ -0,0 +1,70 @@
+# liblouis: German Grade 2 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE KURZSCHRIFT - German Grade 2 Braille - Germany, Austria
+#
+#  Version 2009-11-19
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+include de-de-g0.utb
+letsign 6
+
+# All exception rules which use the letter "ß" are added BEFORE
+# de-g2-core is included
+always raufuß 1235-16-124-136-6-2346
+always raufüß 1235-16-124-1256-6-2346
+always beruß 23-1235-136-6-2346
+always beiß 12-146-6-2346
+always beimaß 2-12-134-1-6-2346
+always demgemäß 2-12356-12346-134-345-6-2346
+word außerdem 16-6-2346-12456-2-12356
+midendword emaß 15-134-1-6-2346
+midendword emäßig 15-134-345-6-2346-45
+always mußestund 134-136-6-2346-15-23456-256-145
+always mußestünd 134-136-6-2346-15-23456-1256-1345-145
+always mädesüß 134-345-145-15-234-1256-6-2346
+begmidword außengeländ 16-6-2346-14-12346-123-345-1345-145
+always genieß 12346-1345-346-6-2346
+always genuß 12346-1345-136-6-2346
+always steingeiß 23456-1246-1245-146-6-2346
+always habergeiß 125-1-12-12456-1245-146-6-2346
+always herreiß 125-12456-1235-146-6-2346
+midendword ßion 6-2346-245
+midendword ßions 6-2346-245-234
+always müßig 134-1256-6-2346-45
+always ß 6-2346
+syllable stöß 23456-246-6-2346
+midendword sspaß 234-234-1234-1-6-2346
+midendword sstoß 234-23456-135-6-2346
+midendword sstraß 234-23456-1235-1-6-2346
+always jakobstraß 245-1-13-135-12-23456-1235-1-6-2346
+always einfallstraß 1246-124-12345-23456-1235-1-6-2346
+begmidword karlstraß 13-356-123-23456-1235-1-6-2346
+always fahrtstraß 2-1235-2345-23456-1235-1-6-2346
+always fahrtsträß 2-1235-2345-23456-1235-345-6-2346
+always begrüßungstrunk 23-1245-1235-1256-6-2346-136-234-2345-1235-256-13
+always beißt 12-146-6-2346-2345
+
+include de-g2-core.ctb
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis
new file mode 100644
index 0000000..ae573d1
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis
@@ -0,0 +1,96 @@
+# liblouis: German Eurobraille Display Table
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  EUROBRAILLE DISPLAY TABLE
+#
+#  This character mapping of 6-dot braille is widely being
+#  used in german speaking parts of europe.
+#
+#  Version 2009-11-19
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+display \s 0
+display a 1
+display b 12
+display c 14
+display d 145
+display e 15
+display f 124
+display g 1245
+display h 125
+display i 24
+display j 245
+display k 13
+display l 123
+display m 134
+display n 1345
+display o 135
+display p 1234
+display q 12345
+display r 1235
+display s 234
+display t 2345
+display u 136
+display v 1236
+display x 1346
+display y 13456
+display z 1356
+display & 12346
+display % 123456
+display { 12356
+display ~ 2346
+display } 23456
+display 1 16
+display 2 126
+display 3 146
+display 4 1456
+display 5 156
+display 6 1246
+display 7 12456
+display 8 1256
+display 9 246
+display W 2456
+display , 2
+display ; 23
+display : 25
+display / 256
+display ? 26
+display + 235
+display = 2356
+display ( 236
+display * 35
+display ) 356
+display . 3
+display - 36
+display | 34
+display 0 346
+display ` 345
+display # 3456
+display " 4
+display ! 5
+display > 45
+display $ 46
+display \x007F 456
+display < 56
+display ' 6
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis
new file mode 100644
index 0000000..0369841
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis
@@ -0,0 +1,96 @@
+# liblouis: "Upshifted" German Eurobraille Display Table
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  "Upshifted" Version of EUROBRAILLE
+#
+#  This "upshifted" version of de-eurobrl6.dis
+#  is (sometimes) being used in Switzerland.
+#
+#  Version 2009-11-19
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+display \s 0
+display A 1
+display B 12
+display C 14
+display D 145
+display E 15
+display F 124
+display G 1245
+display H 125
+display I 24
+display J 245
+display K 13
+display L 123
+display M 134
+display N 1345
+display O 135
+display P 1234
+display Q 12345
+display R 1235
+display S 234
+display T 2345
+display U 136
+display V 1236
+display X 1346
+display Y 13456
+display Z 1356
+display & 12346
+display % 123456
+display [ 12356
+display ^ 2346
+display ] 23456
+display 1 16
+display 2 126
+display 3 146
+display 4 1456
+display 5 156
+display 6 1246
+display 7 12456
+display 8 1256
+display 9 246
+display W 2456
+display , 2
+display ; 23
+display : 25
+display / 256
+display ? 26
+display + 235
+display = 2356
+display ( 236
+display * 35
+display ) 356
+display . 3
+display - 36
+display \\ 34
+display 0 346
+display @ 345
+display # 3456
+display " 4
+display ! 5
+display > 45
+display $ 46
+display _ 456
+display < 56
+display ' 6
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb
new file mode 100644
index 0000000..83643fb
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb
@@ -0,0 +1,323 @@
+# liblouis: German grade 0 braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE BASISSCHRIFT - German grade 0 braille
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+include countries.cti
+
+repeated \s 0
+
+# --- Braille indicator opcodes ------------------------------------------------
+
+# letsign 6
+
+# capsign 46
+begcaps 45
+endcaps 6
+
+numsign 3456
+
+# --- Emphasis opcodes ---------------------------------------------------------
+
+lastworditalbefore 456
+lastworditalafter 6-3
+lenitalphrase 1
+firstletterital 6-456
+lastletterital 6-3
+singleletterital 456
+
+lastwordboldbefore 456
+lastwordboldafter 6-3
+lenboldphrase 1
+firstletterbold 6-456
+lastletterbold 6-3
+singleletterbold 456
+
+lastwordunderbefore 456
+lastwordunderafter 6-3
+lenunderphrase 1
+firstletterunder 6-456
+lastletterunder 6-3
+singleletterunder 456
+
+begcomp 6-46
+# endcomp 6-3         # Omitted here (only to be used when longer than one word)
+
+# --- Special Symbol Opcodes ---------------------------------------------------
+
+hyphen - 36
+
+# --- Special Processing Opcodes -----------------------------------------------
+
+capsnocont
+
+# --- Translation opcodes ------------------------------------------------------
+
+# Mehrfach-Leerschläge eliminieren
+#repeated \t 346
+repeated \s 0
+
+midnum , 2 Komma
+endnum ; 6-23 Strichpunkt
+endnum : 6-25
+endnum ? 6-26 Fragezeichen
+endnum ! 6-235 Ausrufezeichen
+always ! 235
+midword ( 6-2356 Runde Klammer auf
+midnum ( 6-2356-3456
+endnum ( 6-2356
+always ( 2356
+midword ) 6-2356 Runde Klammer zu
+midnum ) 6-2356-3456
+endnum ) 6-2356
+always ) 2356
+prepunc " 236 Anführungszeichen am Anfang
+prepunc « 236
+prepunc » 236
+endnum " 6-356 Anführungszeichen am Ende
+postpunc " 356
+postpunc » 356
+postpunc « 356
+midnum . 3 Punkt
+always .\s.\s. 3-3-3
+midnum ' 3 Apostroph (Gliederung grosser Zahlen)
+
+always ** 6-35-35 Anmerkungssternchen
+always *** 6-35-35-35
+prepunc \x2039 6-236 Halbes Anführungszeichen am Anfang
+prepunc \x203a 6-236
+prepunc \x2018 6-236
+prepunc \x2019 6-236
+postpunc \x2039 6-356 Halbes Anführungszeichen am Ende
+postpunc \x203a 6-356
+postpunc \x2018 6-356
+postpunc \x2019 6-356
+
+always \x2192 0-25-25-135-0 Pfeil nach rechts
+always \x2190 0-246-25-25-0 Pfeil nach links
+always \x2194 0-246-25-25-135-0 Pfeil nach links und rechts
+always & 5-136 Et-Zeichen
+
+litdigit 0 245
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+
+midnum ' 3
+
+endnum a 6-1
+endnum b 6-12
+endnum c 6-14
+endnum d 6-145
+endnum e 6-15
+endnum f 6-124
+endnum g 6-1245
+endnum h 6-125
+endnum i 6-24
+endnum j 6-245
+
+always % 3456-245-356 Prozent
+always \s% 3456-245-356
+always \s\x2030 3456-245-356-356 Promille 0/00
+always \s\x2031 3456-245-356-356-356 0/000
+always \s° 4-356 Grad
+always \s\x2032 4-35 Winkelminute
+always \s\x2033 4-35-35 Winkelsekunde
+
+begnum § 346 Paragrafzeichen
+joinnum § 346
+
+endnum .-- 3-36-36
+endnum ,-- 2-36-36
+
+always \s-\s 6-36-0 Gedankenstrich
+always \s-- 6-36
+always -- 6-36 Streckenstrich
+always \s\x2013 6-36 EN DASH
+always \s\x2014 6-36 EM DASH
+
+always / 5-2 Schrägstrich
+always | 0-456-123-0 Senkrechter Strich
+
+joinnum £ 4-123 Pfund
+joinnum $ 4-234 Dollar
+always $ 4-234 Dollar
+joinnum ¢ 4-14 Cent
+joinnum ¥ 4-13456 Yen
+joinnum Fr. 124-1235-3 Franken    !!! TUT NICHT !!!
+joinnum Fr 124-1235
+joinnum F 124
+
+# Plus:
+midnum \s+\s 0-4-235-3456
+midnum \s+ 0-4-235-3456
+midnum + 0-4-235-3456
+always + 4-235
+# Minus:
+begnum \s- 0-4-36-3456
+always \s- 0-6-36
+midnum \s\x2212\s 0-4-36-3456
+midnum \s\x2212 0-4-36-3456
+midnum \x2212 0-4-36-3456
+always \x2212 4-36
+# Plus Minus:
+midnum \s±\s 0-4-235-36-3456
+midnum \s± 0-4-235-36-3456
+midnum ± 0-4-235-36-3456
+always ± 4-235-36
+# Gleich:
+midnum \s=\s 0-4-2356-3456
+midnum \s= 0-4-2356-3456
+midnum = 0-4-2356-3456
+always = 4-2356
+# Ungleich:
+midnum \s\x2260\s 0-4-35-2356-3456
+midnum \s\x2260 0-4-35-2356-3456
+midnum \x2260 0-4-35-2356-3456
+always \x2260 4-35-2356
+# Identisch gleich:
+midnum \s\x2261\s 0-4-2356-2356-3456
+midnum \s\x2261 0-4-2356-2356-3456
+midnum \x2261 0-4-2356-2356-3456
+always \x2261 4-2356-2356
+# Äquivalent:
+midnum \s\x2259\s 0-4-26-3456
+midnum \s\x2259 0-4-26-3456
+midnum \x2259 0-4-26-3456
+always \x2259 4-26
+# Ungefähr gleich:
+midnum \s\x2245\s 0-4-26-26-3456
+midnum \s\x2245 0-4-26-26-3456
+midnum \x2245 0-4-26-26-3456
+always \x2245 4-26-26
+# Mal(-Kreuz):
+midnum \s×\s 0-4-236-3456
+midnum \s× 0-4-236-3456
+midnum × 0-4-236-3456
+always × 4-236
+# Mal(-Stern):
+midnum \s\x2217\s 3-3456
+midnum \s\x2217 3-3456
+midnum \x2217 3-3456
+midnum \s*\s 3-3456
+midnum \s* 3-3456
+midnum * 3-3456
+# Anmerkungssternchen:
+always * 6-35
+# Mal(-Punkt):
+midnum \s\x22c5\s 3-3456
+midnum \s\x22c5 3-3456
+midnum \x22c5 3-3456
+# Mal(-Stern):
+midnum \s\x22c6\s 3-3456
+midnum \s\x22c6 3-3456
+midnum \x22c6 3-3456
+# Doppelpunkt (dividiert durch, verhält sich zu):
+midnum \s:\s 4-25-3456
+midnum \s: 4-25-3456
+midnum : 4-25-3456
+midnum \s÷\s 0-4-25-3456
+midnum \s÷ 0-4-25-3456
+midnum ÷ 0-4-25-3456
+always ÷ 4-25
+midnum \s\x2215\s 0-4-25-3456
+midnum \s\x2215 0-4-25-3456
+midnum \x2215 0-4-25-3456
+always \x2215 4-25
+# Proportional:
+midnum \s~\s 0-4-25-25-3456
+midnum \s~ 0-4-25-25-3456
+midnum ~ 0-4-25-25-3456
+always ~ 4-25-25
+midnum \s\x223C\s 0-4-25-25-3456
+midnum \s\x223C 0-4-25-25-3456
+midnum \x223C 0-4-25-25-3456
+always \x223C 4-25-25
+# Kleiner als:
+midnum \s<\s 0-4-246-3-3456
+midnum \s< 0-4-246-3-3456
+midnum < 0-4-246-3-3456
+always < 4-246-3
+# Kleiner oder gleich:
+midnum \s\x2264\s 0-4-246-2356-3456
+midnum \s\x2264 0-4-246-2356-3456
+midnum \x2264 0-4-246-2356-3456
+always \x2264 4-246-2356
+midnum \s\x2266\s 0-4-246-2356-3456
+midnum \s\x2266 0-4-246-2356-3456
+midnum \x2266 0-4-246-2356-3456
+always \x2266 4-246-2356
+# Grösser als:
+midnum \s>\s 0-4-135-2-3456
+midnum \s> 0-4-135-2-3456
+midnum > 0-4-135-2-3456
+always > 4-135-2
+# Grösser oder gleich:
+midnum \s\x2265\s 0-4-135-2356-3456
+midnum \s\x2265 0-4-135-2356-3456
+midnum \x2265 0-4-135-2356-3456
+always \x2265 4-135-2356
+midnum \s\x2267\s 0-4-135-2356-3456
+midnum \s\x2267 0-4-135-2356-3456
+midnum \x2267 0-4-135-2356-3456
+always \x2267 4-135-2356
+
+
+# special character sequences
+
+literal :// URLs
+literal www.
+literal @ Mail-address
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zip
+
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb
new file mode 100644
index 0000000..f9cc50e
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb
@@ -0,0 +1,1595 @@
+# liblouis: German grade 1 braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE VOLLSCHRIFT - German Grade 1 Braille
+#
+#  Version 11-17-09
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+class i i
+class u u
+
+# AU
+always au 16
+always kapernaum 13-1-1234-12456-1345-1-136-134
+always propaganda 1234-1235-135-1234-1-1245-1-1345-145-1
+always europa 126-1235-135-1234-1
+before u begmidword extra 15-1346-2345-1235-1
+always galauniform 1245-1-123-1-136-1345-24-124-135-1235-134
+before u begmidword intra 24-1345-2345-1235-1
+always kamera 13-1-134-15-1235-1
+always pharma 1234-125-1-1235-134-1
+
+# ÄU
+always äu 34
+always skarabäus 234-13-1-1235-1-12-345-136-234
+always thaddäus 2345-125-1-145-145-345-136-234
+midendword igäum 24-1245-345-136-134
+always apogäum 1-1234-135-1245-345-136-134
+always trochäus 2345-1235-135-1456-345-136-234
+always matthäus 134-1-2345-2345-125-345-136-234
+always jubiläum 245-136-12-24-123-345-136-134
+always ptolemäus 1234-2345-135-123-15-134-345-136-234
+always bartimäus 12-1-1235-2345-24-134-345-136-234
+always bartholomäus 12-1-1235-2345-125-135-123-135-134-345-136-234
+always borromäus 12-135-1235-1235-135-134-345-136-234
+always athenäum 1-2345-125-15-1345-345-136-134
+always piräus 1234-24-1235-345-136-234
+
+# CH
+always ch 1456
+
+# EI
+always ei 146
+midendword eideal 15-24-145-15-1-123
+midendword eidee 15-24-145-15-15
+begmidword getreidee 1245-15-2345-1235-146-145-15-15
+begmidword getreideein 1245-15-2345-1235-146-145-15-146-1345
+begmidword schneideein 156-1345-146-145-15-146-1345
+midendword eidentifi 15-24-145-15-1345-2345-24-124-24
+midendword eidentisch 15-24-145-15-1345-2345-24-156
+midendword eidentität 15-24-145-15-1345-2345-24-2345-345-2345
+midendword eideo 15-24-145-15-135
+midendword eidyll 15-24-145-13456-123-123
+midendword eignor 15-24-1245-1345-135-1235
+midword eikon 15-24-13-135-1345
+always reederei 1235-15-15-145-15-1235-146
+always fischerei 124-24-156-15-1235-146
+always molkerei 134-135-123-13-15-1235-146
+always datei 145-1-2345-146
+always polizei 1234-135-123-24-1356-146
+begmidword freikon 124-1235-146-13-135-1345
+begmidword parteikon 1234-1-1235-2345-146-13-135-1345
+midendword eille 15-24-123-123-15
+begmidword teillei 2345-146-123-123-146
+midword eilleus 15-24-123-123-126-234
+begmidword marseill 134-1-1235-234-15-24-123-123
+midendword eilloy 15-24-123-123-135-13456
+midendword eillu 15-24-123-123-136
+midendword eimag 15-24-134-1-1245
+always geheim 1245-15-125-146-134
+midendword eimbiss 15-24-134-12-24-234-234
+midendword eimit 15-24-134-24-2345
+always arzneimittel 1-1235-1356-1345-146-134-24-2345-2345-15-123
+always eimitgl 146-134-24-2345-1245-123
+always eimitt 146-134-24-2345-2345
+midendword eimker 15-24-134-13-15-1235
+midendword eimm 15-24-134-134
+always leim 123-146-134
+always heim 125-146-134
+midendword eimp 15-24-134-1234
+always keim 13-146-134
+always reimpaar 1235-146-134-1234-1-1-1235
+# MACHNOCH: von G2: alle "EIN" abgleichen
+midendword eindex 15-24-1345-145-15-1346
+midendword eindik 15-24-1345-145-24-13
+midendword eindio 15-24-1345-145-24-135
+midendword eindiz 15-24-1345-145-24-1356
+midendword einduk 15-24-1345-145-136-13
+midendword eindust 15-24-1345-145-136-23456
+midendword einduzier 15-24-1345-145-136-1356-346-1235
+midword eineff 15-24-1345-15-124-124
+midendword einfant 15-24-1345-124-1-1345-2345
+midword einfark 15-24-1345-124-1-1235-13
+midendword einfekt 15-24-1345-124-15-13-2345
+midendword einfektion 15-24-1345-124-15-13-2345-24-135-1345
+midword einfer 15-24-1345-124-15-1235
+midword einfilt 15-24-1345-124-24-123-2345
+midendword einfinit 15-24-1345-124-24-1345-24-2345
+midword einfiz 15-24-1345-124-24-1356
+midword einflat 15-24-1345-124-123-1-2345
+midendword einfo 15-24-1345-124-135
+always klein 13-123-146-1345
+always schein 156-146-1345
+always reinform 1235-146-1345-124-135-1235-134
+midendword einfusion 15-24-1345-124-136-234-24-135-1345
+midendword einhab 15-24-1345-125-1-12
+midendword einhala 15-24-1345-125-1-123-1
+midendword einhalier 15-24-1345-125-1-123-346-1235
+midendword einhär 15-24-1345-125-345-1235
+midendword einhomo 15-24-1345-125-135-134-135
+midendword einhuman 15-24-1345-125-136-134-1-1345
+midendword einit 15-24-1345-24-2345
+midendword einj 15-24-1345-245
+begmidword feinj 124-146-1345-245
+midendword einkarn 15-24-1345-13-1-1235-1345
+midendword einkasso 15-24-1345-13-1-234-234-135
+midendword einklu 15-24-1345-13-123-136
+midendword einkomp 15-24-1345-13-135-134-1234
+midendword einkon 15-24-1345-13-135-1345
+always wein 2456-146-1345
+midendword einkub 15-24-1345-13-136-12
+midendword einland 15-24-1345-123-1-1345-145
+always stein 23456-146-1345
+always rhein 1235-125-146-1345
+midendword einnen 15-24-1345-1345-15-1345
+midendword einner 15-24-1345-1345-15-1235
+begmidword beinnerv 12-146-1345-1345-15-1235-1236
+begmidword feinnerv 124-146-1345-1345-15-1235-1236
+midendword einnov 15-24-1345-1345-135-1236
+midendword einnung 15-24-1345-1345-136-1345-1245
+midendword einput 15-24-1345-1234-136-2345
+midendword einschrift 15-24-1345-156-1235-24-124-2345
+always latein 123-1-2345-146-1345
+always reinschrift 1235-146-1345-156-1235-24-124-2345
+midendword einsekt 15-24-1345-234-15-13-2345
+midendword einserat 15-24-1345-234-15-1235-1-2345
+midendword einserent 15-24-1345-234-15-1235-15-1345-2345
+midendword einserier 15-24-1345-234-15-1235-346-1235
+midendword einsert 15-24-1345-234-15-1235-2345
+midendword einsider 15-24-1345-234-24-145-15-1235
+midendword einsign 15-24-1345-234-24-1245-1345
+midendword einsist 15-24-1345-234-24-23456
+midendword einsolv 15-24-1345-234-135-123-1236
+midendword einspekt 15-24-1345-234-1234-15-13-2345
+midendword einspir 15-24-1345-234-1234-24-1235
+midendword einspiz 15-24-1345-234-1234-24-1356
+midendword einstabil 15-24-1345-23456-1-12-24-123
+midendword einstall 15-24-1345-23456-1-123-123
+midendword einstanz 15-24-1345-23456-1-1345-1356
+midendword einstinkt 15-24-1345-23456-24-1345-13-2345
+midendword einstit 15-24-1345-23456-24-2345
+midendword einstrument 15-24-1345-23456-1235-136-134-15-1345-2345
+always feinstrumpf 124-146-1345-23456-1235-136-134-1234-124
+midendword einsul 15-24-1345-234-136-123
+midendword einszen 15-24-1345-234-1356-15-1345
+midendword eintegr 15-24-1345-2345-15-1245-1235
+midendword eintell 15-24-1345-2345-15-123-123
+midendword eintend 15-24-1345-2345-15-1345-145
+always allgemein 1-123-123-1245-15-134-146-1345
+midendword eintens 15-24-1345-2345-15-1345-234
+midendword eintent 15-24-1345-2345-15-1345-2345
+midendword einter 15-24-1345-2345-15-1235
+always gemein 1245-15-134-146-1345
+always geeinter 1245-15-146-1345-2345-15-1235
+always vereinter 1236-15-1235-146-1345-2345-15-1235
+always vermeinter 1236-15-1235-134-146-1345-2345-15-1235
+always verneinter 1236-15-1235-1345-146-1345-2345-15-1235
+midendword eintol 15-24-1345-2345-135-123
+midendword eintra 15-24-1345-2345-1235-1
+always eintracht 146-1345-2345-1235-1-1456-2345
+always eintraf 146-1345-2345-1235-1-124
+always eintrag 146-1345-2345-1235-1-1245
+always eintrat 146-1345-2345-1235-1-2345
+always eintraust 146-1345-2345-1235-16-23456
+always eintraut 146-1345-2345-1235-16-2345
+midendword eintrig 15-24-1345-2345-1235-24-1245
+midendword eintro 15-24-1345-2345-1235-135
+always eintrock 146-1345-2345-1235-135-14-13
+always eintromm 146-1345-2345-1235-135-134-134
+always eintropf 146-1345-2345-1235-135-1234-124
+midendword eintui 15-24-1345-2345-136-24
+midendword einvalid 15-24-1345-1236-1-123-24-145
+midendword einvasion 15-24-1345-1236-1-234-24-135-1345
+midendword einvent 15-24-1345-1236-15-1345-2345
+midendword einvert 15-24-1345-1236-15-1235-2345
+always alleinver 1-123-123-146-1345-1236-15-1235
+always feinver 124-146-1345-1236-15-1235
+always scheinver 156-146-1345-1236-15-1235
+always rhein 1235-125-146-1345
+midendword einvest 15-24-1345-1236-15-23456
+midendword eion 15-24-135-1345
+midendword eirr 15-24-1235-1235
+midendword eisolat 15-24-234-135-123-1-2345
+midendword eisolier 15-24-234-135-123-346-1235
+midendword eiterier 15-24-2345-15-1235-346-1235
+midendword eiterat 15-24-2345-15-1235-1-2345
+always beijing 12-15-24-245-24-1345-1245
+begmidword beimpf 12-15-24-134-1234-124
+always beinhalt 12-15-24-1345-125-1-123-2345
+always beirr 12-15-24-1235-1235
+always deifikation 145-15-24-124-24-13-1-2345-24-135-1345
+always deindividuation 145-15-24-1345-145-24-1236-24-145-136-1-2345-24-135-1345
+always deist 145-15-24-23456
+always badeinsel 12-1-145-15-24-1345-234-15-123
+sufword fidei 124-24-145-15-24
+always codein 14-135-145-15-24-1345
+always kodein 13-135-145-15-24-1345
+midendword deist 145-15-24-23456
+midendword deistisch 145-15-24-23456-24-156
+always schnee 156-1345-15-15
+always seeigel 234-15-15-24-1245-15-123
+always sightseeing 234-24-1245-125-2345-234-15-15-24-1345-1245
+midendword eeinsel 15-15-24-1345-234-15-123
+midendword seeisch 234-15-15-24-156
+always coffein 14-135-124-124-15-24-1345
+always koffein 13-135-124-124-15-24-1345
+midendword geinhalt 1245-15-24-1345-125-1-123-2345
+begmidword geirr 1245-15-24-1235-1235
+begmidword geimpf 1245-15-24-134-1234-124
+always eheinstitut 15-125-15-24-1345-23456-24-2345-136-2345
+always prometheisch 1234-1235-135-134-15-2345-125-15-24-156
+always theismus 2345-125-15-24-234-134-136-234
+always theist 2345-125-15-24-23456
+before i begmidword kohle 13-135-125-123-15
+always leim 123-146-134
+always galilei 1245-1-123-24-123-15-24
+always nuklein 1345-136-13-123-15-24-1345
+always acrolein 1-14-1235-135-123-15-24-1345
+always akrolein 1-13-1235-135-123-15-24-1345
+before i begmidword wärme 2456-345-1235-134-15
+always schweineigel 156-2456-146-1345-15-24-1245-15-123
+always äneis 345-1345-15-24-234
+always aeneis 1-15-1345-15-24-234
+midendword aneität 1-1345-15-24-2345-345-2345
+sufword alineier 1-123-24-1345-15-346-1235
+always guineisch 1245-136-24-1345-15-24-156
+always boeing 12-135-15-24-1345-1245
+always nereide 1345-15-1235-15-24-145-15
+always kreier 13-1235-15-346-1235
+always pythagoreisch 1234-13456-2345-125-1-1245-135-1235-15-24-156
+always epikureisch 15-1234-24-13-136-1235-15-24-156
+always eritreisch 15-1235-24-2345-1235-15-24-156
+always kureismus 13-136-1235-15-24-234-134-136-234
+always diagnose 145-24-1-1245-1345-135-234-15
+always kasein 13-1-234-15-24-1345
+before i begmidword kälte 13-345-123-2345-15
+always protein 1234-1235-135-2345-15-24-1345
+always weight 2456-15-24-1245-125-2345
+
+# EU
+always eu 126
+midendword eunkosten 15-136-1345-13-135-23456-15-1345
+always beunruhig 12-15-136-1345-1235-136-125-24-1245
+always beurkund 12-15-136-1235-13-136-1345-145
+always beurlaub 12-15-136-1235-123-16-12
+always beurteil 12-15-136-1235-2345-146-123
+before u begmidword gewebe 1245-15-2456-15-12-15
+before u begmidword probe 1234-1235-135-12-15
+before u begmidword werbe 2456-15-1235-12-15
+always sterbeuhr 23456-15-1235-12-15-136-125-1235
+before u begmidword vice 1236-24-14-15
+before u begmidword lyce 123-13456-14-15
+always deus 145-15-136-234
+always amadeus 1-134-1-145-15-136-234
+before u begmidword bade 12-1-145-15
+before u begmidword bade 12-1-145-15
+before u begmidword lade 123-1-145-15
+before u begmidword parade 1234-1-1235-1-145-15
+always tedeum 2345-15-145-15-136-134
+before u begmidword code 14-135-145-15
+always gemeindeum 1245-15-134-146-1345-145-15-136-134
+always kundeunter 13-136-1345-145-15-136-1345-2345-15-1235
+always landeunter 123-1-1345-145-15-136-1345-2345-15-1235
+always spondeus 234-1234-135-1345-145-15-136-234
+always tedeum 2345-15-145-15-136-134
+always armeeun 1-1235-134-15-15-136-1345
+always peeun 1234-15-15-136-1345
+always seeufer 234-15-15-136-124-15-1235
+always seeum 234-15-15-136-134
+always seeun 234-15-15-136-1345
+always spreeufer 234-1234-1235-15-15-136-124-15-1235
+before u begmidword hilfe 125-24-123-124-15
+always ausgeufert 16-234-1245-15-136-124-15-1235-2345
+always folgeunter 124-135-123-1245-15-136-1345-2345-15-1235
+always geupdated 1245-15-136-1234-145-1-2345-15-145
+always geurteil 1245-15-136-1235-2345-146-123
+always sorgeunter 234-135-1235-1245-15-136-1345-2345-15-1235
+always rechercheur 1235-15-1456-15-1235-1456-126-1235
+before u begmidword recherche 1235-15-1456-15-1235-1456-15
+before u begmidword beinahe 12-146-1345-1-125-15
+before u begmidword leihe 123-146-125-15
+before u begmidword ruhe 1235-136-125-15
+before u begmidword stärke 23456-345-1235-13-15
+always makeup 134-1-13-15-136-1234
+always bakkalaure 12-1-13-13-1-123-16-1235-15
+always aleuten 1-123-15-136-2345-15-1345
+always aleutisch 1-123-15-136-2345-24-156
+always nucleus 1345-136-14-123-15-136-234
+before u begmidword kohle 13-135-125-123-15
+always ileus 24-123-15-136-234
+always nukleus 1345-136-13-123-15-136-234
+always oleum 135-123-15-136-134
+always linoleum 123-24-1345-135-123-15-136-134
+always mausoleum 134-16-234-135-123-15-136-134
+always petroleum 1234-15-2345-1235-135-123-15-136-134
+always herculaneum 125-15-1235-14-136-123-1-1345-15-136-134
+before u begmidword marine 134-1-1235-24-1345-15
+before u begmidword routine 1235-135-136-2345-24-1345-15
+always marneufer 134-1-1235-1345-15-136-124-15-1235
+always oeuvre 246-136-1236-1235-15
+always bakkalaure 12-1-13-13-1-123-16-1235-15
+before u begmidword ware 2456-1-1235-15
+before u begmidword reise 1235-146-234-15
+before u begmidword presse 1234-1235-15-2346-15
+always colosseum 14-135-123-135-234-234-15-136-134
+always kolosseum 13-135-123-135-234-234-15-136-134
+always presseun 1234-1235-15-234-234-15-136-1345
+before u begmidword gehäuse 1245-15-125-34-234-15
+always museum 134-136-234-15-136-134
+before u begmidword geräte 1245-15-1235-345-2345-15
+before u begmidword elite 15-123-24-2345-15
+always andrözeum 1-1345-145-1235-246-1356-15-136-134
+always lyzeum 123-13456-1356-15-136-134
+before u begmidword vize 1236-24-1356-15
+
+# IE
+midendword ie 346
+midendword iell 24-15-123-123
+always haie 125-1-24-15
+always schanghai 156-1-1345-1245-125-1-24
+always shanghai 234-125-1-1345-1245-125-1-24
+always lakaien 123-1-13-1-24-15-1345
+always tokaier 2345-135-13-1-24-15-1235
+always laie 123-1-24-15
+always malaie 134-1-123-1-24-15
+always maien 134-1-24-15-1345
+always maier 134-1-24-15-1235
+always monnaie 134-135-1345-1345-1-24-15
+word bien 12-24-15-1345
+begword bien 12-346-1345
+midendword bien 12-24-15-1345
+always bienn 12-24-15-1345-1345
+always skabies 234-13-1-12-24-15-234
+always honigbien 125-135-1345-24-1245-12-346-1345
+always mörtelbien 134-246-1235-2345-15-123-12-346-1345
+always kolumbier 13-135-123-136-134-12-24-15-1235
+always hosenbien 125-135-234-15-1345-12-346-1345
+always wespenbien 2456-15-234-1234-15-1345-12-346-1345
+always garderobier 1245-1-1235-145-15-1235-135-12-24-15-1235
+always adverbi 1-145-1236-15-1235-12-24
+always arbeiterbien 1-1235-12-146-2345-15-1235-12-346-1345
+always feuerbien 124-126-15-1235-12-346-1345
+always futterbien 124-136-2345-2345-15-1235-12-346-1345
+always mauerbien 134-16-15-1235-12-346-1345
+always trauerbien 2345-1235-16-15-1235-12-346-1345
+always arbeitsbien 1-1235-12-146-2345-234-12-346-1345
+always lesbier 123-15-234-12-24-15-1235
+always trachtbien 2345-1235-1-1456-2345-12-346-1345
+always nubier 1345-136-12-24-15-1235
+always holzbien 125-135-123-1356-12-346-1345
+always pelzbien 1234-15-123-1356-12-346-1345
+#                                      cie
+always ciego 14-24-15-1245-135
+always ancien 1-1345-14-24-15-1345
+always ancier 1-1345-14-24-15-1235
+always lancier 123-1-1345-14-346-1235
+always nuancier 1345-136-1-1345-14-346-1235
+always avancier 1-1236-1-1345-14-346-1235
+always rencier 1235-15-1345-14-24-15-1235
+always concierge 14-135-1345-14-24-15-1235-1245-15
+always societas 234-135-14-24-15-2345-1-234
+always society 234-135-14-24-15-2345-13456
+always science 234-14-24-15-1345-14-15
+always sciento 234-14-24-15-1345-2345-135
+always saucier 234-16-14-24-15-1235
+always diego 145-24-15-1245-135
+always dielektr 145-24-15-123-15-13-2345-1235
+word dien 145-346-1345
+midendword dien 145-24-15-1345
+always diene 145-346-1345-15
+always medien 134-15-145-24-15-1345
+always dienlich 145-346-1345-123-24-1456
+always dienst 145-346-1345-23456
+always dienstag 145-346-1345-234-2345-1-1245
+always dient 145-346-1345-2345
+#                                      dier
+word diet 145-24-15-2345
+always diethyl 145-24-15-2345-125-13456-123
+prfword dieu 145-24-126
+always adieu 1-145-24-126
+always barbadier 12-1-1235-12-1-145-24-15-1235
+always brigadier 12-1235-24-1245-1-145-24-15-1235
+always arkadier 1-1235-13-1-145-24-15-1235
+always kanadier 13-1-1345-1-145-24-15-1235
+always gradient 1245-1235-1-145-24-15-1345-2345
+always bedien 12-15-145-346-1345
+always gedient 1245-15-145-346-1345-2345
+always expedient 15-1346-1234-15-145-24-15-1345-2345
+always andien 1-1345-145-346-1345
+always burundier 12-136-1235-136-1345-145-24-15-1235
+always komödie 13-135-134-246-145-24-15
+always tragödie 2345-1235-1-1245-246-145-24-15
+always verdien 1236-15-1235-145-346-1345
+always kapverdier 13-1-1234-1236-15-1235-145-24-15-1235
+always studie 23456-136-145-24-15
+always studier 23456-136-145-346-1235
+always fierant 124-24-15-1235-1-1345-2345
+always fiesta 124-24-15-234-2345-1
+endword grafien 1245-1235-1-124-24-15-1345
+midendword schauffier 234-1456-16-124-124-346-1235
+always identifier 24-145-15-1345-2345-24-124-24-15-1235
+always profierfahr 1234-1235-135-124-24-15-1235-124-1-125-1235
+midendword gien 1245-24-15-1345
+always gieneutral 1245-346-1345-126-2345-1235-1-123
+always gieniveau 1245-346-1345-24-1236-15-16
+always magier 134-1-1245-24-15-1235
+always belgier 12-15-123-1245-24-15-1235
+always orgie 135-1235-1245-24-15
+always georgier 1245-15-135-1235-1245-24-15-1235
+always hierarch 125-24-15-1235-1-1235-1456
+always hierarchie 125-24-15-1235-1-1235-1456-346
+always hierarchien 125-24-15-1235-1-1235-1456-24-15-1345
+always hieroglyph 125-24-15-1235-135-1245-123-13456-1234-125
+always hieronymus 125-24-15-1235-135-1345-13456-134-136-234
+always chien 1456-24-15-1345
+always alighieri 1-123-24-1245-125-24-15-1235-24
+endword graphien 1245-1235-1-1234-125-24-15-1345
+prfword philosophien 1234-125-24-123-135-234-135-1234-125-24-15-1345
+#                                     thie
+always thierry 2345-125-24-15-1235-1235-13456
+always pathien 1234-1-2345-125-24-15-1345
+always forsythie 124-135-1235-234-13456-2345-125-24-15
+always kiellini 13-346-123-123-24-1345-24
+always kiew 13-24-15-2456
+always thrakien 2345-125-1235-1-13-24-15-1345
+always bankier 12-1-1345-13-24-15-1235
+sufword skier 234-13-24-15-1235
+always abfahrtsskier 1-12-124-1-125-1235-2345-234-234-13-24-15-1235
+always laufskier 123-16-124-234-13-24-15-1235
+always tourenskier 2345-135-136-1235-15-1345-234-13-24-15-1235
+always wasserskier 2456-1-234-234-15-1235-234-13-24-15-1235
+#                                      lier
+midendword lien 123-24-15-1345
+always lieutenant 123-24-126-2345-15-1345-1-1345-2345
+#                                     alie
+always zerealie 1356-15-1235-15-1-123-24-15
+always chemikalie 1456-15-134-24-13-1-123-24-15
+always somalier 234-135-134-1-123-24-15-1235
+always formalie 124-135-1235-134-1-123-24-15
+always marginalie 134-1-1235-1245-24-1345-1-123-24-15
+always lappalie 123-1-1234-1234-1-123-24-15
+always aralie 1-1235-1-123-24-15
+always salier 234-1-123-24-15-1235
+always nasalier 1345-1-234-1-123-346-1235
+always drangsalier 145-1235-1-1345-1245-234-1-123-346-1235
+always repressalie 1235-15-1234-1235-15-234-234-1-123-24-15
+always australier 16-23456-1235-1-123-24-15-1235
+always chevalier 1456-15-1236-1-123-24-15-1235
+always richelieu 1235-24-1456-15-123-24-126
+always kamelie 13-1-134-15-123-24-15
+always sommelier 234-135-134-134-15-123-24-15-1235
+always relief 1235-15-123-24-15-124
+always atelier 1-2345-15-123-24-15-1235
+always hotelier 125-135-2345-15-123-24-15-1235
+always dahlie 145-1-125-123-24-15
+always immobili 24-134-134-135-12-24-123-24
+always lilie 123-24-123-24-15
+always milieu 134-24-123-24-126
+always famili 124-1-134-24-123-24
+always emilie 15-134-24-123-24-15
+always leutemilieu 123-126-2345-15-134-24-123-24-126
+always petersilie 1234-15-2345-15-1235-234-24-123-24-15
+always ottilie 135-2345-2345-24-123-24-15
+always gallier 1245-1-123-123-24-15-1235
+always montpellier 134-135-1345-2345-1234-15-123-123-24-15-1235
+always collier 14-135-123-123-24-15-1235
+always kollier 13-135-123-123-24-15-1235
+always protokollier 1234-1235-135-2345-135-13-135-123-123-346-1235
+always gondolier 1245-135-1345-145-135-123-24-15-1235
+always folie 124-135-123-24-15
+always moliere 134-135-123-24-15-1235-15
+midendword emolier 15-134-135-123-346-1235
+always magnolie 134-1-1245-1345-135-123-24-15
+always voliere 1236-135-123-24-15-1235-15
+always julier 245-136-123-24-15-1235
+always juliet 245-136-123-24-15-2345
+always apulier 1-1234-136-123-24-15-1235
+midendword mien 134-24-15-1345
+always miene 134-346-1345-15
+always mienerkl 134-24-15-1345-15-1235-13-123
+always mesopotami 134-15-234-135-1234-135-2345-1-134-24
+always prämie 1234-1235-345-134-24-15
+always prämier 1234-1235-345-134-346-1235
+always premier 1234-1235-15-134-24-15-1235
+always krimieck 13-1235-24-134-24-15-14-13
+always mumie 134-136-134-24-15
+midendword nien 1345-24-15-1345
+#                                      nier
+always daniel 145-1-1345-24-15-123
+always jordanier 245-135-1235-145-1-1345-24-15-1235
+always tasmani 2345-1-234-134-1-1345-24
+always spaniel 234-1234-1-1345-24-15-123
+always spanier 234-1234-1-1345-24-15-1235
+always geranie 1245-15-1235-1-1345-24-15
+always akranier 1-13-1235-1-1345-24-15-1235
+always oranier 135-1235-1-1345-24-15-1235
+always turanier 2345-136-1235-1-1345-24-15-1235
+always tansanier 2345-1-1345-234-1-1345-24-15-1235
+always mauretanier 134-16-1235-15-2345-1-1345-24-15-1235
+always kastanie 13-1-23456-1-1345-24-15
+syllable ingenieur 24-1345-1245-15-1345-24-126-1235
+always armenier 1-1235-134-15-1345-24-15-1235
+always slowenier 234-123-135-2456-15-1345-24-15-1235
+always xenie 1346-15-1345-24-15
+always insignie 24-1345-234-24-1245-1345-24-15
+always carabinier 14-1-1235-1-12-24-1345-24-15-1235
+always robinie 1235-135-12-24-1345-24-15
+always jardinier 245-1-1235-145-24-1345-24-15-1235
+always sardinier 234-1-1235-145-24-1345-24-15-1235
+always linie 123-24-1345-24-15
+always linier 123-24-1345-346-1235
+always miniechs 134-24-1345-24-15-1456-234
+always minieisen 134-24-1345-24-146-234-15-1345
+always pinie 1234-24-1345-24-15
+always abessinier 1-12-15-234-234-24-1345-24-15-1235
+always grusinier 1245-1235-136-234-24-1345-24-15-1235
+always aktinie 1-13-2345-24-1345-24-15
+always argentinier 1-1235-1245-15-1345-2345-24-1345-24-15-1235
+prfword routinier 1235-135-136-2345-24-1345-24-15-1235
+always routiniers 1235-135-136-2345-24-1345-24-15-1235-234
+always gloxinie 1245-123-135-1346-24-1345-24-15
+always insomnien 24-1345-234-135-134-1345-24-15-1345
+always zinnie 1356-24-1345-1345-24-15
+always bonbonniere 12-135-1345-12-135-1345-1345-24-15-1235-15
+always saisonnier 234-1-24-234-135-1345-1345-24-15-1235
+always chansonnier 1456-1-1345-234-135-1345-1345-24-15-1235
+always kaledonier 13-1-123-15-145-135-1345-24-15-1235
+always makedonier 134-1-13-15-145-135-1345-24-15-1235
+always mazedonier 134-1-1356-15-145-135-1345-24-15-1235
+always begonie 12-15-1245-135-1345-24-15
+always aragonier 1-1235-1-1245-135-1345-24-15-1235
+always babylonier 12-1-12-13456-123-135-1345-24-15-1235
+always katalonier 13-1-2345-1-123-135-1345-24-15-1235
+always slawonier 234-123-1-2456-135-1345-24-15-1235
+always dernier 145-15-1235-1345-24-15-1235
+always kinderniere 13-24-1345-145-15-1235-1345-346-1235-15
+always rinderniere 1235-24-1345-145-15-1235-1345-346-1235-15
+always spenderniere 234-1234-15-1345-145-15-1235-1345-346-1235-15
+always wanderniere 2456-1-1345-145-15-1235-1345-346-1235-15
+prfword hernie 125-15-1235-1345-24-15
+always hernien 125-15-1235-1345-24-15-1345
+always kalifornier 13-1-123-24-124-135-1235-1345-24-15-1235
+always bosnier 12-135-234-1345-24-15-1235
+always punier 1234-136-1345-24-15-1235
+always harpunier 125-1-1235-1234-136-1345-346-1235
+always petunie 1234-15-2345-136-1345-24-15
+always bithynier 12-24-2345-125-13456-1345-24-15-1235
+#                                      pie
+word pie 1234-24-15
+word pies 1234-24-15-234
+always piemont 1234-24-15-134-135-1345-2345
+midendword pien 1234-24-15-1345
+always pieta 1234-24-15-2345-1
+always pietät 1234-24-15-2345-345-2345
+always pietismus 1234-24-15-2345-24-234-134-136-234
+always pietist 1234-24-15-2345-24-23456
+always piezo 1234-24-15-1356-135
+#                                      pier
+always pierre 1234-24-15-1235-1235-15
+always kopier 13-135-1234-346-1235
+always pierrot 1234-24-15-1235-1235-135-2345
+always pietro 1234-24-15-2345-1235-135
+always kneipier 13-1345-146-1234-24-15-1235
+always olympier 135-123-13456-134-1234-24-15-1235
+always äthiopier 345-2345-125-24-135-1234-24-15-1235
+always spiell 234-1234-346-123-123
+always rupie 1235-136-1234-24-15
+always croupier 14-1235-135-136-1234-24-15-1235
+sufword arie 1-1235-24-15
+always karies 13-1-1235-24-15-234
+always araukarie 1-1235-16-13-1-1235-24-15
+always opernarie 135-1234-15-1235-1345-1-1235-24-15
+always kanari 13-1-1345-1-1235-24
+always sopranarie 234-135-1234-1235-1-1345-1-1235-24-15
+always soloarie 234-135-123-135-1-1235-24-15
+always parietal 1234-1-1235-24-15-2345-1-123
+always tenorarie 2345-15-1345-135-1235-1-1235-24-15
+always bravourarie 12-1235-1-1236-135-136-1235-1-1235-24-15
+always bassarie 12-1-234-234-1-1235-24-15
+always altarie 1-123-2345-1-1235-24-15
+always balzarie 12-1-123-1356-1-1235-24-15
+always gabriel 1245-1-12-1235-24-15-123
+always materie 134-1-2345-15-1235-24-15
+always arterie 1-1235-2345-15-1235-24-15
+always bakterie 12-1-13-2345-15-1235-24-15
+always henriette 125-15-1345-1235-24-15-2345-2345-15
+always kyrie 13-13456-1235-24-15
+#                                     orie
+always zichorie 1356-24-1456-135-1235-24-15
+always glorie 1245-123-135-1235-24-15
+always akzessorietät 1-13-1356-15-234-234-135-1235-24-15-2345-345-2345
+always historie 125-24-23456-135-1235-24-15
+always propriet 1234-1235-135-1234-1235-24-15-2345
+midendword rien 1235-24-15-1345
+#                                      rier
+always agrarier 1-1245-1235-1-1235-24-15-1235
+sufword arier 1-1235-24-15-1235
+sufword ariern 1-1235-24-15-1235-1345
+sufword ariers 1-1235-24-15-1235-234
+always vegetarier 1236-15-1245-15-2345-1-1235-24-15-1235
+always proletarier 1234-1235-135-123-15-2345-1-1235-24-15-1235
+always nichtarier 1345-24-1456-2345-1-1235-24-15-1235
+always trinitarier 2345-1235-24-1345-24-2345-1-1235-24-15-1235
+always unitarier 136-1345-24-2345-1-1235-24-15-1235
+always parlamentarier 1234-1-1235-123-1-134-15-1345-2345-1-1235-24-15-1235
+always rotarier 1235-135-2345-1-1235-24-15-1235
+always variet 1236-1-1235-24-15-2345
+always algerier 1-123-1245-15-1235-24-15-1235
+always serie 234-15-1235-24-15
+always chinoiserie 1456-24-1345-135-24-234-15-1235-346
+prfword chinoiserien 1456-24-1345-135-24-234-15-1235-24-15-1345
+always onfiserie 135-1345-124-24-234-15-1235-346
+endword onfiserien 135-1345-124-24-234-15-1235-24-15-1345
+always inserier 24-1345-234-15-1235-346-1235
+always komparserie 13-135-134-1234-1-1235-234-15-1235-346
+prfword komparserien 13-135-134-1234-1-1235-234-15-1235-24-15-1345
+always asserier 1-234-234-15-1235-346-1235
+always brasserie 12-1235-1-234-234-15-1235-346
+always patisserie 1234-1-2345-24-234-234-15-1235-346
+prfword patisserien 1234-1-2345-24-234-234-15-1235-24-15-1345
+always tapisserie 2345-1-1234-24-234-234-15-1235-346
+prfword tapisserien 2345-1-1234-24-234-234-15-1235-24-15-1345
+always karosserie 13-1-1235-135-234-234-15-1235-346
+prfword karosserien 13-1-1235-135-234-234-15-1235-24-15-1345
+always interieur 24-1345-2345-15-1235-24-126-1235
+always grien 1245-1235-346-1345
+always sibirier 234-24-12-24-1235-24-15-1235
+always theorieneutral 2345-125-15-135-1235-346-1345-126-2345-1235-1-123
+always barriere 12-1-1235-1235-24-15-1235-15
+always harriet 125-1-1235-1235-24-15-2345
+always karriere 13-1-1235-1235-24-15-1235-15
+always karrierist 13-1-1235-1235-24-15-1235-24-23456
+always perrier 1234-15-1235-1235-24-15-1235
+always terrier 2345-15-1235-1235-24-15-1235
+always triest 2345-1235-24-15-23456
+always industrienation 24-1345-145-136-23456-1235-346-1345-1-2345-24-135-1345
+always industrienetz 24-1345-145-136-23456-1235-346-1345-15-2345-1356
+#                                     urie
+always furie 124-136-1235-24-15
+always furier 124-136-1235-346-1235
+always saurier 234-16-1235-24-15-1235
+begmidword thesaurier 2345-125-15-234-16-1235-346-1235
+always injurie 24-1345-245-136-1235-24-15
+always injurier 24-1345-245-136-1235-346-1235
+always dekurie 145-15-13-136-1235-24-15
+always kurie 13-136-1235-24-15
+always kurier 13-136-1235-346-1235
+always courier 14-135-136-1235-24-15-1235
+always zenturie 1356-15-1345-2345-136-1235-24-15
+always couturier 14-135-136-2345-136-1235-24-15-1235
+always illyrier 24-123-123-13456-1235-24-15-1235
+always syrier 234-13456-1235-24-15-1235
+always sien 234-24-15-1345
+#                                      sier
+always sierra 234-24-15-1235-1235-1
+midendword sierraum 234-346-1235-1235-16-134
+always dosier 145-135-234-346-1235
+always siesta 234-24-15-23456-1
+always kaukasier 13-16-13-1-234-24-15-1235
+always douglasie 145-135-136-1245-123-1-234-24-15
+always austrasier 16-23456-1235-1-234-24-15-1235
+always eurasier 126-1235-1-234-24-15-1235
+always antasienam 1-1345-2345-1-234-346-1345-1-134
+always rhodesier 1235-125-135-145-15-234-24-15-1235
+always freesie 124-1235-15-15-234-24-15
+always schlesier 156-123-15-234-24-15-1235
+always milesier 134-24-123-15-234-24-15-1235
+always melanesier 134-15-123-1-1345-15-234-24-15-1235
+always indonesier 24-1345-145-135-1345-15-234-24-15-1235
+always tunesier 2345-136-1345-15-234-24-15-1235
+always polynesier 1234-135-123-13456-1345-15-234-24-15-1235
+always fuchsie 124-136-1456-234-24-15
+always lavoisier 123-1-1236-135-24-234-24-15-1235
+always monsieur 134-135-1345-234-24-126-1235
+always monsieur 134-135-1345-234-24-126-1235
+always hortensie 125-135-1235-2345-15-1345-234-24-15
+always jurassier 245-136-1235-1-234-234-24-15-1235
+always messieurs 134-15-234-234-24-126-1235-234
+always patissier 1234-1-2345-24-234-234-24-15-1235
+always dossier 145-135-234-234-24-15-1235
+always dossierung 145-135-234-234-346-1235-136-1345-1245
+always indossier 24-1345-145-135-234-234-346-1235
+prfword haussier 125-16-234-234-24-15-1235
+prfword haussiers 125-16-234-234-24-15-1235-234
+always arkebusier 1-1235-13-15-12-136-234-24-15-1235
+always corbusier 14-135-1235-12-136-234-24-15-1235
+always andalusier 1-1345-145-1-123-136-234-24-15-1235
+always malaysier 134-1-123-1-13456-234-24-15-1235
+midendword tien 2345-24-15-1345
+#                                      tier
+midendword atien 1-2345-24-15-1345
+always chocolatier 1456-135-14-135-123-1-2345-24-15-1235
+always privatier 1234-1235-24-1236-1-2345-24-15-1235
+always cafetier 14-1-124-15-2345-24-15-1235
+always metier 134-15-2345-24-15-1235
+always helvetier 125-15-123-1236-15-2345-24-15-1235
+always pleitier 1234-123-146-2345-24-15-1235
+always aktie 1-13-2345-24-15
+always paktier 1234-1-13-2345-346-1235
+always traktier 2345-1235-1-13-2345-346-1235
+always taktier 2345-1-13-2345-346-1235
+always multie 134-136-123-2345-24-15
+always antiessen 1-1345-2345-24-15-234-234-15-1345
+always antieuropäisch 1-1345-2345-24-126-1235-135-1234-345-24-156
+always tantieme 2345-1-1345-2345-24-15-134-15
+always cartier 14-1-1235-2345-24-15-1235
+always portier 1234-135-1235-2345-24-15-1235
+always portieren 1234-135-1235-2345-346-1235
+always portierbar 1234-135-1235-2345-346-1235-12-1-1235
+prfword portierst 1234-135-1235-2345-346-1235-23456
+always portierung 1234-135-1235-2345-346-1235-136-1345-1245
+always deportier 145-15-1234-135-1235-2345-346-1235
+always apportier 1-1234-1234-135-1235-2345-346-1235
+always exportier 15-1346-1234-135-1235-2345-346-1235
+always importier 24-134-1234-135-1235-2345-346-1235
+always kolportier 13-135-123-1234-135-1235-2345-346-1235
+always transportier 2345-1235-1-1345-234-1234-135-1235-2345-346-1235
+always stiellappen 23456-346-123-123-1-1234-1234-15-1345
+always stiellos 23456-346-123-123-135-234
+midendword stien 23456-24-15-1345
+always bestie 12-15-23456-24-15
+always bestiefel 12-15-23456-346-124-15-123
+always bestieg 12-15-23456-346-1245
+always bestiehl 12-15-23456-346-125-123
+always bestieß 12-15-23456-346-2346
+always hostie 125-135-23456-24-15
+always bustier 12-136-23456-24-15-1235
+always büfettier 12-1256-124-15-2345-2345-24-15-1235
+always spaghettiess 234-1234-1-1245-125-15-2345-2345-24-15-234-234
+always gautier 1245-16-2345-24-15-1235
+always bijoutier 12-24-245-135-136-2345-24-15-1235
+#                                     quie
+always quietismus 12345-136-24-15-2345-24-234-134-136-234
+always quietistisch 12345-136-24-15-2345-24-23456-24-156
+always requiem 1235-15-12345-136-24-15-134
+always reliquie 1235-15-123-24-12345-136-24-15
+always kolloquie 13-135-123-123-135-12345-136-24-15
+always montesquieu 134-135-1345-2345-15-234-12345-136-24-126
+always vielleicht 1236-346-123-123-146-1456-2345
+#                                      vier
+always viet 1236-24-15-2345
+always view 1236-24-15-2456
+always skandinavi 234-13-1-1345-145-24-1345-1-1236-24
+always endivi 15-1345-145-24-1236-24
+always bolivi 12-135-123-24-1236-24
+always riviera 1235-24-1236-24-15-1235-1
+always moldawi 134-135-123-145-1-2456-24
+always jugoslawi 245-136-1245-135-234-123-1-2456-24
+always galaxien 1245-1-123-1-1346-24-15-1345
+always sexier 234-15-1346-24-15-1235
+always sexiest 234-15-1346-24-15-23456
+always paradoxien 1234-1-1235-1-145-135-1346-24-15-1345
+always harpyie 125-1-1235-1234-13456-24-15
+always zielland 1356-346-123-123-1-1345-145
+always ziellini 1356-346-123-123-24-1345-24
+always zielloch 1356-346-123-123-135-1456
+always ziellos 1356-346-123-123-135-234
+#                                      zie
+midendword zien 1356-24-15-1345
+always akazie 1-13-1-1356-24-15
+always grazie 1245-1235-1-1356-24-15
+always pistazie 1234-24-23456-1-1356-24-15
+always allochezie 1-123-123-135-1456-15-1356-24-15
+always spezies 234-1234-15-1356-24-15-234
+always alopezie 1-123-135-1234-15-1356-24-15
+prfword finanzier 124-24-1345-1-1345-1356-24-15-1235
+prfword finanziers 124-24-1345-1-1345-1356-24-15-1235-234
+always phönizier 1234-125-246-1345-24-1356-24-15-1235
+always patrizier 1234-1-2345-1235-24-1356-24-15-1235
+always antikoagulanzie 1-1345-2345-24-13-135-1-1245-136-123-1-1345-1356-24-15
+always alkylanzie 1-123-13-13456-123-1-1345-1356-24-15
+always soziet 234-135-1356-24-15-2345
+
+# SCH
+always sch 156
+always auscheck 16-234-1456-15-14-13
+always auscheckig 16-156-15-14-13-24-1245
+always bisschen 12-24-234-234-1456-15-1345
+always bläschen 12-123-345-234-1456-15-1345
+always blüschen 12-123-1256-234-1456-15-1345
+always brieschen 12-1235-346-234-1456-15-1345
+always döschen 145-246-234-1456-15-1345
+always eschatolog 15-234-1456-1-2345-135-123-135-1245
+always fässchen 124-345-234-234-1456-15-1345
+always flüsschen 124-123-1256-234-234-1456-15-1345
+always gänschen 1245-345-1345-234-1456-15-1345
+always gässchen 1245-345-234-234-1456-15-1345
+always gläschen 1245-123-345-234-1456-15-1345
+always häschen 125-345-234-1456-15-1345
+always hälschen 125-345-123-234-1456-15-1345
+always hänschen 125-345-1345-234-1456-15-1345
+always häuschen 125-34-234-1456-15-1345
+always heitscheck 125-146-2345-234-1456-15-14-13
+always höschen 125-246-234-1456-15-1345
+always hülschen 125-1256-123-234-1456-15-1345
+always ischämie 24-234-1456-345-134-346
+always ischämien 24-234-1456-345-134-24-15-1345
+always ischia 24-234-1456-24-1
+always kabäuschen 13-1-12-34-234-1456-15-1345
+always käschen 13-345-234-1456-15-1345
+always klösschen 13-123-246-234-234-1456-15-1345
+always küsschen 13-1256-234-234-1456-15-1345
+always läuschen 123-34-234-1456-15-1345
+always lieblingschat 123-346-12-123-24-1345-1245-234-1456-1-2345
+always lieschen 123-346-234-1456-15-1345
+always maischip 134-1-24-234-1456-24-1234
+always mäuschen 134-34-234-1456-15-1345
+always möpschen 134-246-1234-234-1456-15-1345
+always maraschino 134-1-1235-1-234-1456-24-1345-135
+always mischief 134-24-234-1456-346-124
+always näschen 1345-345-234-1456-15-1345
+always nüsschen 1345-1256-234-234-1456-15-1345
+always engelschor 15-1345-1245-15-123-234-1456-135-1235
+always engelschör 15-1345-1245-15-123-234-1456-246-1235
+midendword enschor 15-1345-234-1456-135-1235
+midendword enschör 15-1345-234-1456-246-1235
+midendword ngschor 1345-1245-234-1456-135-1235
+midendword ngschör 1345-1245-234-1456-246-1235
+always prischen 1234-1235-24-234-1456-15-1345
+always radieschen 1235-1-145-346-234-1456-15-1345
+always reischen 1235-146-234-1456-15-1345
+always kreischen 13-1235-146-156-15-1345
+always röschen 1235-246-234-1456-15-1345
+always fröschen 124-1235-246-156-15-1345
+midendword schance 234-1456-1-1345-14-15
+midendword schao 234-1456-1-135
+midendword scharakter 234-1456-1-1235-1-13-2345-15-1235
+midendword schef 234-1456-15-124
+always scheffel 156-15-124-124-15-123
+always scheffle 156-15-124-124-123-15
+always wäsche 2456-345-156-15
+always tusche 2345-136-156-15
+always retuscheur 1235-15-2345-136-156-126-1235
+midendword schemie 234-1456-15-134-346
+midendword schemiker 234-1456-15-134-24-13-15-1235
+midendword schemikalie 234-1456-15-134-24-13-1-123-24-15
+always scherzo 234-1456-15-1235-1356-135
+always scherzando 234-1456-15-1235-1356-1-1345-145-135
+always schlösschen 156-123-246-234-234-1456-15-1345
+midendword schirurg 234-1456-24-1235-136-1235-1245
+always schnäpschen 156-1345-345-1234-234-1456-15-1345
+always school 234-1456-135-135-123
+midendword schromat 234-1456-1235-135-134-1-2345
+midendword schromo 234-1456-1235-135-134-135
+midendword schronik 234-1456-1235-135-1345-24-13
+midendword schüechli 234-1456-1256-15-1456-123-24
+midendword üchschen 1256-1456-234-1456-15-1345
+always tässchen 2345-345-234-234-1456-15-1345
+always väschen 1236-345-234-1456-15-1345
+always wieschen 2456-346-234-1456-15-1345
+
+# ST
+always st 23456
+syllable abgas 1-12-1245-1-234
+always abschiedstrunk 1-12-156-346-145-234-2345-1235-136-1345-13
+always abschlussteil 1-12-156-123-136-234-234-2345-146-123
+always abseitstor 1-12-234-146-2345-234-2345-135-1235
+always adressteil 1-145-1235-15-234-234-2345-146-123
+always aesthet 1-15-234-2345-125-15-2345
+always aidstest 1-24-145-234-2345-15-23456
+always aktionstrupp 1-13-2345-24-135-1345-234-2345-1235-136-1234-1234
+syllable alltags 1-123-123-2345-1-1245-234
+always amtston 1-134-2345-234-2345-135-1345
+always anfangsteil 1-1345-124-1-1345-1245-234-2345-146-123
+always angsträum 1-1345-1245-23456-1235-34-134
+always anschlussteil 1-1345-156-123-136-234-234-2345-146-123
+always anschriftsteil 1-1345-156-1235-24-124-2345-234-2345-146-123
+always anästh 1-1345-345-234-2345-125
+begmidword arbeitst 1-1235-12-146-2345-234-2345
+word asst 1-234-234-2345
+always gasstrom 1245-1-234-23456-1235-135-134
+always augiasstall 16-1245-24-1-234-23456-1-123-123
+always ästhesie 345-234-2345-125-15-234-346
+always ästhet 345-234-2345-125-15-2345
+always asthma 1-234-2345-125-134-1
+always asthmo 1-234-2345-125-134-135
+always ausdruckstanz 16-234-145-1235-136-14-13-234-2345-1-1345-1356
+always ausgleichstor 16-234-1245-123-146-1456-234-2345-135-1235
+always aussichtsturm 16-234-234-24-1456-2345-234-2345-136-1235-134
+always austast 16-234-2345-1-23456
+always austeil 16-234-2345-146-123
+always austobe 16-234-2345-135-12-15
+always austobst 16-234-2345-135-12-23456
+always austobt 16-234-2345-135-12-2345
+always austollen 16-234-2345-135-123-123-15-1345
+always abbaustollen 1-12-12-16-23456-135-123-123-15-1345
+always austonn 16-234-2345-135-1345-1345
+always austrampel 16-234-2345-1235-1-134-1234-15-123
+always austrample 16-234-2345-1235-1-134-1234-123-15
+always austrat 16-234-2345-1235-1-2345
+always austrick 16-234-2345-1235-24-14-13
+always austritt 16-234-2345-1235-24-2345-2345
+always austrock 16-234-2345-1235-135-14-13
+always austun 16-234-2345-136-1345
+always austupf 16-234-2345-136-1234-124
+always austusch 16-234-2345-136-156
+always auswärtstor 16-234-2456-345-1235-2345-234-2345-135-1235
+always basst 12-1-234-234-2345
+syllable befehls 12-15-124-15-125-123-234
+always befehlsteil 12-15-124-15-125-123-234-2345-146-123
+always befleisst 12-15-124-123-146-234-234-2345
+always begrüßungstrunk 12-15-1245-1235-1256-2346-136-1345-1245-234-2345-1235-136-1345-13
+always beisst 12-146-234-234-2345
+always besasst 12-15-234-1-234-234-2345
+always betriebsteil 12-15-2345-1235-346-12-234-2345-146-123
+always betriebstreu 12-15-2345-1235-346-12-234-2345-1235-126
+always beweisteil 12-15-2456-146-234-2345-146-123
+always bezirkstier 12-15-1356-24-1235-13-234-2345-346-1235
+midendword blasst 12-123-1-234-234-2345
+always blutstrunk 12-123-136-2345-234-2345-1235-136-1345-13
+always blösst 12-123-246-234-234-2345
+always brandungstor 12-1235-1-1345-145-136-1345-1245-234-2345-135-1235
+always bundestrupp 12-136-1345-145-15-234-2345-1235-136-1234-1234
+always bündnistreu 12-1256-1345-145-1345-24-234-2345-1235-126
+always büsst 12-1256-234-234-2345
+always dasasst 145-1-234-1-234-234-2345
+always distorsion 145-24-234-2345-135-1235-234-24-135-1345
+always durchbruchstal 145-136-1235-1456-12-1235-136-1456-234-2345-1-123
+always dystonie 145-13456-234-2345-135-1345-346
+always einbruchstal 146-1345-12-1235-136-1456-234-2345-1-123
+always einesteils 146-1345-15-234-2345-146-123-234
+always eingangstor 146-1345-1245-1-1345-1245-234-2345-135-1235
+always eistanz 146-234-2345-1-1345-1356
+always eistorte 146-234-2345-135-1235-2345-15
+always eistört 146-234-2345-246-1235-2345
+always elvistoll 15-123-1236-24-234-2345-135-123-123
+always empfangsteil 15-134-1234-124-1-1345-1245-234-2345-146-123
+always esther 15-234-2345-125-15-1235
+always pestherd 1234-15-23456-125-15-1235-145
+always fallstor 124-1-123-123-234-2345-135-1235
+syllable fasst 124-1-234-234-2345
+always flusstal 124-123-136-234-234-2345-1-123
+always flösst 124-123-246-234-234-2345
+always flüchtlingstreck 124-123-1256-1456-2345-123-24-1345-1245-234-2345-1235-15-14-13
+always formationstanz 124-135-1235-134-1-2345-24-135-1345-234-2345-1-1345-1356
+always frasst 124-1235-1-234-234-2345
+always friedenstaube 124-1235-346-145-15-1345-234-2345-16-12-15
+always friedenstrupp 124-1235-346-145-15-1345-234-2345-1235-136-1234-1234
+always frästisch 124-1235-345-234-2345-24-156
+always frühstücksteller 124-1235-1256-125-23456-1256-14-13-234-2345-15-123-123-15-1235
+always frühstückstisch 124-1235-1256-125-23456-1256-14-13-234-2345-24-156
+always fusst 124-136-234-234-2345
+always führungstor 124-1256-125-1235-136-1345-1245-234-2345-135-1235
+always führungstrupp 124-1256-125-1235-136-1345-1245-234-2345-1235-136-1234-1234
+always gangsteil 1245-1-1345-1245-234-2345-146-123
+always gangston 1245-1-1345-1245-234-2345-135-1345
+always gastank 1245-1-234-2345-1-1345-13
+always gasturm 1245-1-234-2345-136-1235-134
+always gebietsteil 1245-15-12-346-2345-234-2345-146-123
+always gebirgstrupp 1245-15-12-24-1235-1245-234-2345-1235-136-1234-1234
+always geburtstaub 1245-15-12-136-1235-2345-234-2345-16-12
+always gefechtsturm 1245-15-124-15-1456-2345-234-2345-136-1235-134
+syllable geheimnis 1245-15-125-146-134-1345-24-234
+always geschlechtsteil 1245-15-156-123-15-1456-2345-234-2345-146-123
+always geschäftsteil 1245-15-156-345-124-2345-234-2345-146-123
+always gesellschaftstanz 1245-15-234-15-123-123-156-1-124-2345-234-2345-1-1345-1356
+always gesetzestreu 1245-15-234-15-2345-1356-15-234-2345-1235-126
+syllable gesichts 1245-15-234-24-1456-2345-234
+always gespasst 1245-15-234-1234-1-234-234-2345
+always gesprächsteil 1245-15-234-1234-1235-345-1456-234-2345-146-123
+always gesüsst 1245-15-234-1256-234-234-2345
+always gewohnheitstier 1245-15-2456-135-125-1345-125-146-2345-234-2345-346-1235
+always glasteil 1245-123-1-234-2345-146-123
+always glastisch 1245-123-1-234-2345-24-156
+always glasturm 1245-123-1-234-2345-136-1235-134
+always glückstor 1245-123-1256-14-13-234-2345-135-1235
+always gottestreu 1245-135-2345-2345-15-234-2345-1235-126
+always grosst 1245-1235-135-234-234-2345
+always grösst 1245-1235-246-234-234-2345
+always grüsst 1245-1235-1256-234-234-2345
+always gussteil 1245-136-234-234-2345-146-123
+always hadrianstor 125-1-145-1235-24-1-1345-234-2345-135-1235
+always handelsteil 125-1-1345-145-15-123-234-2345-146-123
+syllable hasst 125-1-234-234-2345
+always haustaube 125-16-234-2345-16-12-15
+always haustempel 125-16-234-2345-15-134-1234-15-123
+always haustier 125-16-234-2345-346-1235
+always haustor 125-16-234-2345-135-1235
+always haustrunk 125-16-234-2345-1235-136-1345-13
+always hausturm 125-16-234-2345-136-1235-134
+always heeresteil 125-15-15-1235-15-234-2345-146-123
+always heisst 125-146-234-234-2345
+always heitstick 125-146-2345-234-2345-24-14-13
+midendword heitstrunk 125-146-2345-234-2345-1235-136-1345-13
+always hephaistostempel 125-15-1234-125-1-24-23456-135-234-2345-15-134-1234-15-123
+always hilfstaucher 125-24-123-124-234-2345-16-1456-15-1235
+always hilfstrupp 125-24-123-124-234-2345-1235-136-1234-1234
+always himmelstanz 125-24-134-134-15-123-234-2345-1-1345-1356
+always himmelstempel 125-24-134-134-15-123-234-2345-15-134-1234-15-123
+always himmelstor 125-24-134-134-15-123-234-2345-135-1235
+always hisst 125-24-234-234-2345
+always hofstor 125-135-124-234-2345-135-1235
+always hundsteuer 125-136-1345-145-234-2345-126-15-1235
+always iesst 346-234-234-2345
+always vliesst 1236-123-346-234-23456
+always invasionstrupp 24-1345-1236-1-234-24-135-1345-234-2345-1235-136-1234-1234
+always ionsteil 24-135-1345-234-2345-146-123
+always ionstisch 24-135-1345-234-2345-24-156
+midendword ionstreu 24-135-1345-234-2345-1235-126
+always irrsinnstat 24-1235-1235-234-24-1345-1345-234-2345-1-2345
+word isst 24-234-234-2345
+begmidword isthm 24-234-2345-125-134
+midendword itätstreu 24-2345-345-2345-234-2345-1235-126
+always juliusturm 245-136-123-24-136-234-2345-136-1235-134
+always kabinettstisch 13-1-12-24-1345-15-2345-2345-234-2345-24-156
+always kaffeehaustisch 13-1-124-124-15-15-125-16-234-2345-24-156
+always kapitänstisch 13-1-1234-24-2345-345-1345-234-2345-24-156
+always karnevalstrubel 13-1-1235-1345-15-1236-1-123-234-2345-1235-136-12-15-123
+midendword kaufstresen 13-16-124-234-2345-1235-15-234-15-1345
+midendword kaufstrick 13-16-124-234-2345-1235-24-14-13
+midendword kaufstrip 13-16-124-234-2345-1235-24-1234
+always keitsteil 13-146-2345-234-2345-146-123
+midendword keitstreu 13-146-2345-234-2345-1235-126
+always kindstaufe 13-24-1345-145-234-2345-16-124-15
+always kindstäuf 13-24-1345-145-234-2345-34-124
+always kirmestanz 13-24-1235-134-15-234-2345-1-1345-1356
+always kondenstopf 13-135-1345-145-15-1345-234-2345-135-1234-124
+always konfuziustempel 13-135-1345-124-136-1356-24-136-234-2345-15-134-1234-15-123
+always kongressteil 13-135-1345-1245-1235-15-234-234-2345-146-123
+always krebstier 13-1235-15-12-234-2345-346-1235
+always kreisteil 13-1235-146-234-2345-146-123
+always kriegstalk 13-1235-346-1245-234-2345-1-123-13
+always kriegstanz 13-1235-346-1245-234-2345-1-1345-1356
+always kriegsteil 13-1235-346-1245-234-2345-146-123
+always kriegsto 13-1235-346-1245-234-2345-135
+midendword kunftstrick 13-136-1345-124-2345-234-2345-1235-24-14-13
+always kursteil 13-136-1235-234-2345-146-123
+always kursusteil 13-136-1235-234-136-234-2345-146-123
+always königstiger 13-246-1345-24-1245-234-2345-24-1245-15-1235
+always königstreu 13-246-1345-24-1245-234-2345-1235-126
+always küsst 13-1256-234-234-2345
+always landesteil 123-1-1345-145-15-234-2345-146-123
+syllable lasst 123-1-234-234-2345
+syllable glasst 1245-123-1-234-23456
+always legionstrupp 123-15-1245-24-135-1345-234-2345-1235-136-1234-1234
+always liebestat 123-346-12-15-234-2345-1-2345
+always liebestoll 123-346-12-15-234-2345-135-123-123
+always liebestrunk 123-346-12-15-234-2345-1235-136-1345-13
+always lieblingst 123-346-12-123-24-1345-1245-234-2345
+always lostrab 123-135-234-2345-1235-1-12
+always längstal 123-345-1345-1245-234-2345-1-123
+always machtsteil 134-1-1456-2345-234-2345-146-123
+begmidword maisst 134-1-24-234-23456
+always mannstoll 134-1-1345-1345-234-2345-135-123-123
+always masst 134-1-234-234-2345
+always thomasst 2345-125-135-134-1-234-23456
+always meerestier 134-15-15-1235-15-234-2345-346-1235
+always mittagstrunk 134-24-2345-2345-1-1245-234-2345-1235-136-1345-13
+always moostier 134-135-135-234-2345-346-1235
+always mordsteuer 134-135-1235-145-234-2345-126-15-1235
+always mordsteure 134-135-1235-145-234-2345-126-1235-15
+always moschustier 134-135-156-136-234-2345-346-1235
+always musst 134-136-234-234-2345
+always mönchstum 134-246-1345-1456-234-2345-136-134
+always mündungstrichter 134-1256-1345-145-136-1345-1245-234-2345-1235-24-1456-2345-15-1235
+always müsst 134-1256-234-234-2345
+always namensteil 1345-1-134-15-1345-234-2345-146-123
+midendword ngstresen 1345-1245-234-2345-1235-15-234-15-1345
+always nichtstuer 1345-24-1456-2345-234-2345-136-15-1235
+always nichtstun 1345-24-1456-2345-234-2345-136-1345
+always ortsteil 135-1235-2345-234-2345-146-123
+syllable passt 1234-1-234-234-2345
+syllable prasst 1234-1235-1-234-234-2345
+word psssst 1234-234-234-234-234-2345
+word pssst 1234-234-234-234-2345
+word psst 1234-234-234-2345
+word pst 1234-234-2345
+always ratstisch 1235-1-2345-234-2345-24-156
+always reichsteil 1235-146-1456-234-2345-146-123
+always reichstrupp 1235-146-1456-234-2345-1235-136-1234-1234
+always reisst 1235-146-234-234-2345
+always reisstroh 1235-146-234-23456-1235-135-125
+begmidword kreisst 13-1235-146-234-23456
+always preisst 1234-1235-146-234-23456
+always reisteig 1235-146-234-2345-146-1245
+always reistopf 1235-146-234-2345-135-1234-124
+always revolutionstrupp 1235-15-1236-135-123-136-2345-24-135-1345-234-2345-1235-136-1234-1234
+always rezitationston 1235-15-1356-24-2345-1-2345-24-135-1345-234-2345-135-1345
+syllable rhythmus 1235-125-13456-2345-125-134-136-234
+always ruhmestat 1235-136-125-134-15-234-2345-1-2345
+always sanitätstrupp 234-1-1345-24-2345-345-2345-234-2345-1235-136-1234-1234
+always sasst 234-1-234-234-2345
+always schaftsteil 156-1-124-2345-234-2345-146-123
+midendword schaftstreu 156-1-124-2345-234-2345-1235-126
+syllable schasst 156-1-234-234-2345
+always scheisst 156-146-234-234-2345
+always schiffstaufe 156-24-124-124-234-2345-16-124-15
+always schiffstonnage 156-24-124-124-234-2345-135-1345-1345-1-1245-15
+always schiffstäuf 156-24-124-124-234-2345-34-124
+always schleisst 156-123-146-234-234-2345
+always schleisst 156-123-146-234-234-2345
+always schlussteil 156-123-136-234-234-2345-146-123
+always schmeisst 156-134-146-234-234-2345
+always schosstier 156-135-234-234-2345-346-1235
+always schreckenstat 156-1235-15-14-13-15-1345-234-2345-1-2345
+always sechsteil 234-15-1456-234-2345-146-123
+always sicherheitstrupp 234-24-1456-15-1235-125-146-2345-234-2345-1235-136-1234-1234
+always siegestrunk 234-346-1245-15-234-2345-1235-136-1345-13
+always spannungston 234-1234-1-1345-1345-136-1345-1245-234-2345-135-1345
+always spasst 234-1234-1-234-234-2345
+always spleisst 234-1234-123-146-234-234-2345
+always asst 1-234-234-2345
+begmidword grasst 1245-1235-1-234-23456
+always ässt 345-234-234-2345
+always lässt 123-345-234-234-2345
+always nässt 1345-345-234-234-2345
+always esst 15-234-234-2345
+begmidword grabesst 1245-1235-1-12-15-234-23456
+begmidword liebesst 123-346-12-15-234-23456
+begmidword todesst 2345-135-145-15-234-23456
+begmidword siegesst 234-346-1245-15-234-23456
+begmidword leibesst 123-146-12-15-234-23456
+begmidword eidesst 146-145-15-234-23456
+begmidword landesst 123-1-1345-145-15-234-23456
+begmidword kindesst 13-24-1345-145-15-234-23456
+begmidword bundesst 12-136-1345-145-15-234-23456
+begmidword tagesst 2345-1-1245-15-234-23456
+begmidword mannesst 134-1-1345-1345-15-234-23456
+begmidword sinnesst 234-24-1345-1345-15-234-23456
+begmidword heeresst 125-15-15-1235-15-234-23456
+begmidword meeresst 134-15-15-1235-15-234-23456
+midword stesst 23456-15-234-23456
+begmidword gottesst 1245-135-2345-2345-15-234-23456
+always isst 24-234-234-2345
+midword nisst 1345-24-234-23456
+always relais 1235-15-123-1-24-234
+always basis 12-1-234-24-234
+always basisch 12-1-234-24-156
+always praxis 1234-1235-1-1346-24-234
+always osst 135-234-234-2345
+begmidword losst 123-135-234-23456
+always schloss 156-123-135-234-234
+always usst 136-234-234-2345
+begmidword busst 12-136-234-23456
+begmidword tonusst 2345-135-1345-136-234-23456
+always luxus 123-136-1346-136-234
+midendword ssst 234-234-23456
+always sstell 234-23456-15-123-123
+word st 234-2345
+always st 23456
+word sta 234-2345-1
+midendword stabelle 234-2345-1-12-15-123-123-15
+midendword stablett 234-2345-1-12-123-15-2345-2345
+midendword stabu 234-2345-1-12-136
+midendword stafel 234-2345-1-124-15-123
+midendword stag 234-2345-1-1245
+midendword stagstisch 234-2345-1-1245-234-2345-24-156
+always adjustage 1-145-245-136-23456-1-1245-15
+always backstage 12-1-14-13-23456-1-1245-15
+always fockstag 124-135-14-13-23456-1-1245
+always gestagen 1245-15-23456-1-1245-15-1345
+always dienstagent 145-346-1345-23456-1-1245-15-1345-2345
+always kastagnet 13-1-23456-1-1245-1345-15-2345
+always nystagmus 1345-13456-23456-1-1245-134-136-234
+always ostagent 135-23456-1-1245-15-1345-2345
+always pastagericht 1234-1-23456-1-1245-15-1235-24-1456-2345
+always pastagrinsen 1234-1-23456-1-1245-1235-24-1345-234-15-1345
+always stagnation 23456-1-1245-1345-1-2345-24-135-1345
+always stagnier 23456-1-1245-1345-346-1235
+always stagsegel 23456-1-1245-234-15-1245-15-123
+midendword stakt 234-2345-1-13-2345
+always herbstakt 125-15-1235-12-23456-1-13-2345
+always gestakt 1245-15-23456-1-13-2345
+always festakt 124-15-23456-1-13-2345
+always testakt 2345-15-23456-1-13-2345
+midendword stalar 234-2345-1-123-1-1235
+midendword stalent 234-2345-1-123-15-1345-2345
+midendword staler 234-2345-1-123-15-1235
+midendword stalg 234-2345-1-123-1245
+always nostalg 1345-135-23456-1-123-1245
+always standstanz 23456-1-1345-145-234-2345-1-1345-1356
+midendword stangente 234-2345-1-1345-1245-15-1345-2345-15
+midendword stanne 234-2345-1-1345-1345-15
+midendword stapezier 234-2345-1-1234-15-1356-346-1235
+midendword starier 234-2345-1-1235-346-1235
+midendword starif 234-2345-1-1235-24-124
+midendword stasche 234-2345-1-156-15
+midendword stasse 234-2345-1-234-234-15
+begmidword forstasse 124-135-1235-23456-1-234-234-15
+midendword staste 234-2345-1-23456-15
+midendword statbestand 234-2345-1-2345-12-15-23456-1-1345-145
+midendword statbeständ 234-2345-1-2345-12-15-23456-345-1345-145
+midendword stätig 234-2345-345-2345-24-1245
+always bestätig 12-15-23456-345-2345-24-1245
+midendword stauglich 234-2345-16-1245-123-24-1456
+midendword staumel 234-2345-16-134-15-123
+midendword stausch 234-2345-16-156
+midendword stausend 234-2345-16-234-15-1345-145
+midendword staxe 234-2345-1-1346-15
+word ste 234-2345-15
+midendword steam 234-2345-15-1-134
+begword steam 23456-15-1-134
+always steamen 23456-15-1-134-15-1345
+always steamer 23456-15-1-134-15-1235
+always steamt 23456-15-1-134-2345
+midendword stechnik 234-2345-15-1456-1345-24-13
+midendword stechnisch 234-2345-15-1456-1345-24-156
+midendword stechnolog 234-2345-15-1456-1345-135-123-135-1245
+endword stechnologien 234-2345-15-1456-1345-135-123-135-1245-24-15-1345
+midendword stee 234-2345-15-15
+always gästeelf 1245-345-23456-15-15-123-124
+always steelband 23456-15-15-123-12-1-1345-145
+always westempore 2456-15-23456-15-134-1234-135-1235-15
+always gersteein 1245-15-1235-23456-15-146-1345
+always trustee 2345-1235-136-23456-15-15
+midendword steich 234-2345-146-1456
+midendword steils 234-2345-146-123-234
+always steilst 23456-146-123-23456
+midendword steilzeit 234-2345-146-123-1356-146-2345
+midendword stelefon 234-2345-15-123-15-124-135-1345
+midendword stelegraf 234-2345-15-123-15-1245-1235-1-124
+midendword stelegramm 234-2345-15-123-15-1245-1235-1-134-134
+midendword stemperatur 234-2345-15-134-1234-15-1235-1-2345-136-1235
+midendword stempo 234-2345-15-134-1234-135
+midendword stendenz 234-2345-15-1345-145-15-1345-1356
+midendword stensor 234-2345-15-1345-234-135-1235
+midendword steppich 234-2345-15-1234-1234-24-1456
+midendword sterm 234-2345-15-1235-134
+begmidword lästerm 123-345-23456-15-1235-134
+always pflaster 1234-124-123-1-23456-15-1235
+always mastermind 134-1-23456-15-1235-134-24-1345-145
+always raster 1235-1-23456-15-1235
+always selbst 234-15-123-12-23456
+always orchester 135-1235-1456-15-23456-15-1235
+always schwester 156-2456-15-23456-15-1235
+always gangster 1245-1-1345-1245-23456-15-1235
+always meister 134-146-23456-15-1235
+always minister 134-24-1345-24-23456-15-1235
+always ministerien 134-24-1345-24-23456-15-1235-24-15-1345
+always geschwister 1245-15-156-2456-24-23456-15-1235
+always polster 1234-135-123-23456-15-1235
+always fenster 124-15-1345-23456-15-1235
+begmidword osterm 135-23456-15-1235-134
+always klostermuseum 13-123-135-23456-15-1235-134-136-234-15-136-134
+always schuster 156-136-23456-15-1235
+always muster 134-136-23456-15-1235
+midendword sterrass 234-2345-15-1235-1235-1-234-234
+midendword sterrine 234-2345-15-1235-1235-24-1345-15
+midendword sterritori 234-2345-15-1235-1235-24-2345-135-1235-24
+midendword stest 234-2345-15-23456
+always leastest 123-15-1-23456-15-23456
+always fastest 124-1-23456-15-23456
+always vergastest 1236-15-1235-1245-1-23456-15-23456
+always hastest 125-1-23456-15-23456
+always lastest 123-1-23456-15-23456
+always mästest 134-345-23456-15-23456
+always toastest 2345-135-1-23456-15-23456
+always rastest 1235-1-23456-15-23456
+always tastest 2345-1-23456-15-23456
+always schubstest 156-136-12-23456-15-23456
+always festest 124-15-23456-15-23456
+always pestest 1234-15-23456-15-23456
+always niestest 1345-346-23456-15-23456
+always testest 2345-15-23456-15-23456
+always westest 2456-15-23456-15-23456
+always waistest 2456-1-24-23456-15-23456
+always eistest 146-23456-15-23456
+always listest 123-24-23456-15-23456
+always mistest 134-24-23456-15-23456
+word nistest 1345-24-23456-15-23456
+always einnistest 146-1345-1345-24-23456-15-23456
+always fristest 124-1235-24-23456-15-23456
+always tristest 2345-1235-24-23456-15-23456
+always reistest 1235-146-23456-15-23456
+always speistest 234-1234-146-23456-15-23456
+always halstest 125-1-123-23456-15-23456
+always bremstest 12-1235-15-134-23456-15-23456
+always heimstest 125-146-134-23456-15-23456
+always bumstest 12-136-134-23456-15-23456
+always grinstest 1245-1235-24-1345-23456-15-23456
+always zinstest 1356-24-1345-23456-15-23456
+always ernstest 15-1235-1345-23456-15-23456
+always dunstest 145-136-1345-23456-15-23456
+always kostest 13-135-23456-15-23456
+always lostest 123-135-23456-15-23456
+always mostest 134-135-23456-15-23456
+always postest 1234-135-23456-15-23456
+always rostest 1235-135-23456-15-23456
+midendword östest 246-23456-15-23456
+always wüstest 2456-1256-23456-15-23456
+always tapstest 2345-1-1234-23456-15-23456
+always knipstest 13-1345-24-1234-23456-15-23456
+always beschwipstest 12-15-156-2456-24-1234-23456-15-23456
+always rülpstest 1235-1256-123-1234-23456-15-23456
+always hopstest 125-135-1234-23456-15-23456
+always stupstest 23456-136-1234-23456-15-23456
+always berstest 12-15-1235-23456-15-23456
+always forstest 124-135-1235-23456-15-23456
+always bürstest 12-1256-1235-23456-15-23456
+always durstest 145-136-1235-23456-15-23456
+always dürstest 145-1256-1235-23456-15-23456
+always wurstest 2456-136-1235-23456-15-23456
+always haustest 125-16-23456-15-23456
+always laustest 123-16-23456-15-23456
+always maustest 134-16-23456-15-23456
+always paustest 1234-16-23456-15-23456
+always raustest 1235-16-23456-15-23456
+always saustest 234-16-23456-15-23456
+always robustest 1235-135-12-136-23456-15-23456
+always schleustest 156-123-126-23456-15-23456
+always hustest 125-136-23456-15-23456
+always schmustest 156-134-136-23456-15-23456
+always pustest 1234-136-23456-15-23456
+always krustest 13-1235-136-23456-15-23456
+always rüstest 1235-1256-23456-15-23456
+always wüstest 2456-1256-23456-15-23456
+#         ... macht zu viele Fehler ...
+#midendword steuerung 234-2345-126-15-1235-136-1345-1245
+#always grundsteuerung 1245-1235-136-1345-145-23456-126-15-1235-136-1345-1245
+#always besteuerung 12-15-23456-126-15-1235-136-1345-1245
+#always legesteuerung 123-15-1245-15-23456-126-15-1235-136-1345-1245
+#always logsteuerung 123-135-1245-23456-126-15-1235-136-1345-1245
+#always knopfsteuerung 13-1345-135-1234-124-23456-126-15-1235-136-1345-1245
+#always laufsteuerung 123-16-124-23456-126-15-1235-136-1345-1245
+#always zeugsteuerung 1356-126-1245-23456-126-15-1235-136-1345-1245
+#always gabensteuerung 1245-1-12-15-1345-23456-126-15-1235-136-1345-1245
+#always lagensteuerung 123-1-1245-15-1345-23456-126-15-1235-136-1345-1245
+#always globalsteuerung 1245-123-135-12-1-123-23456-126-15-1235-136-1345-1245
+#always digitalsteuerung 145-24-1245-24-2345-1-123-23456-126-15-1235-136-1345-1245
+#always nadelsteuerung 1345-1-145-15-123-23456-126-15-1235-136-1345-1245
+#always ampelsteuerung 1-134-1234-15-123-23456-126-15-1235-136-1345-1245
+#always doppelsteuerung 145-135-1234-1234-15-123-23456-126-15-1235-136-1345-1245
+#always einzelsteuerung 146-1345-1356-15-123-23456-126-15-1235-136-1345-1245
+#always fehlsteuerung 124-15-125-123-23456-126-15-1235-136-1345-1245
+#always ansteuerung 1-1345-23456-126-15-1235-136-1345-1245
+#midendword itätensteuerung 24-2345-345-2345-15-1345-23456-126-15-1235-136-1345-1245
+#always einsteuerung 146-1345-23456-126-15-1235-136-1345-1245
+#always fernsteuerung 124-15-1235-1345-23456-126-15-1235-136-1345-1245
+#always autosteuerung 16-2345-135-23456-126-15-1235-136-1345-1245
+#always legersteuerung 123-15-1245-15-1235-23456-126-15-1235-136-1345-1245
+#always baggersteuerung 12-1-1245-1245-15-1235-23456-126-15-1235-136-1345-1245
+#always betoniersteuerung 12-15-2345-135-1345-346-1235-23456-126-15-1235-136-1345-1245
+#always computersteuerung 14-135-134-1234-136-2345-15-1235-23456-126-15-1235-136-1345-1245
+#always cursorsteuerung 14-136-1235-234-135-1235-23456-126-15-1235-136-1345-1245
+#midendword ssteuerung 234-23456-126-15-1235-136-1345-1245
+#always tragsst 2345-1235-1-1245-234-23456
+#always tragsstudie 2345-1235-1-1245-234-23456-136-145-24-15
+#always aussteuerung 16-234-23456-126-15-1235-136-1345-1245
+#always bitsteuerung 12-24-2345-23456-126-15-1235-136-1345-1245
+#always bausteuerung 12-16-23456-126-15-1235-136-1345-1245
+midendword steufel 234-2345-126-124-15-123
+midendword stext 234-2345-15-1346-2345
+always mannsthal 134-1-1345-1345-234-2345-125-1-123
+midendword stheat 234-2345-125-15-1-2345
+midendword sthema 234-2345-125-15-134-1
+midendword sthemen 234-2345-125-15-134-15-1345
+midword stheni 234-2345-125-15-1345-24
+endword sthenie 234-2345-125-15-1345-346
+midword stheno 234-2345-125-15-1345-135
+midendword stheo 234-2345-125-15-135
+midendword stherap 234-2345-125-15-1235-1-1234
+endword stherapien 234-2345-125-15-1235-1-1234-24-15-1345
+midendword stherm 234-2345-125-15-1235-134
+midendword sthese 234-2345-125-15-234-15
+midendword sthron 234-2345-125-1235-135-1345
+midendword sticket 234-2345-24-14-13-15-2345
+midendword stief 234-2345-346-124
+always stief 23456-346-124
+always stiefel 23456-346-124-15-123
+always eucharistiefeier 126-1456-1-1235-24-23456-346-124-146-15-1235
+always stiefbruder 23456-346-124-12-1235-136-145-15-1235
+always stiefbrüder 23456-346-124-12-1235-1256-145-15-1235
+always stiefgeschwister 23456-346-124-1245-15-156-2456-24-23456-15-1235
+always stiefkind 23456-346-124-13-24-1345-145
+always stiefmutter 23456-346-124-134-136-2345-2345-15-1235
+always stiefmütter 23456-346-124-134-1256-2345-2345-15-1235
+always stiefschwester 23456-346-124-156-2456-15-23456-15-1235
+always stiefsohn 23456-346-124-234-135-125-1345
+always stiefsöhne 23456-346-124-234-246-125-1345-15
+always stieftochter 23456-346-124-2345-135-1456-2345-15-1235
+always stieftöchter 23456-346-124-2345-246-1456-2345-15-1235
+always stiefvater 23456-346-124-1236-1-2345-15-1235
+always stiefväter 23456-346-124-1236-345-2345-15-1235
+midendword stilgen 234-2345-24-123-1245-15-1345
+midendword stilgung 234-2345-24-123-1245-136-1345-1245
+midendword stinte 234-2345-24-1345-2345-15
+begmidword tastinter 2345-1-23456-24-1345-2345-15-1235
+begmidword hostinter 125-135-23456-24-1345-2345-15-1235
+always höchst 125-246-1456-23456
+always kunst 13-136-1345-23456
+begmidword ostintegr 135-23456-24-1345-2345-15-1245-1235
+begmidword westintegr 2456-15-23456-24-1345-2345-15-1245-1235
+midendword stip 234-2345-24-1234
+always stipendi 23456-24-1234-15-1345-145-24
+always einstipp 146-1345-23456-24-1234-1234
+always gestippt 1245-15-23456-24-1234-1234-2345
+always obstipation 135-12-23456-24-1234-1-2345-24-135-1345
+always speckstippe 234-1234-15-14-13-23456-24-1234-1234-15
+always stippbesuch 23456-24-1234-1234-12-15-234-136-1456
+always stippchen 23456-24-1234-1234-1456-15-1345
+always stippe 23456-24-1234-1234-15
+always stippmilch 23456-24-1234-1234-134-24-123-1456
+always stippvisite 23456-24-1234-1234-1236-24-234-24-2345-15
+always stipulation 23456-24-1234-136-123-1-2345-24-135-1345
+always stipulier 23456-24-1234-136-123-346-1235
+midendword stitel 234-2345-24-2345-15-123
+midendword stiter 234-2345-24-2345-15-1235
+midendword stoast 234-2345-135-1-23456
+midendword stochter 234-2345-135-1456-2345-15-1235
+midendword stod 234-2345-135-145
+always kustode 13-136-23456-135-145-15
+midendword stoleran 234-2345-135-123-15-1235-1-1345
+midendword stool 234-2345-135-135-123
+midendword stopo 234-2345-135-1234-135
+midendword storkel 234-2345-135-1235-13-15-123
+midendword storte 234-2345-135-1235-2345-15
+always stosst 23456-135-234-234-2345
+midendword stour 234-2345-135-136-1235
+midendword stracht 234-2345-1235-1-1456-2345
+midendword stradition 234-2345-1235-1-145-24-2345-24-135-1345
+midendword strag 234-2345-1235-1-1245
+always estragon 15-23456-1235-1-1245-135-1345
+always stragödie 234-2345-1235-1-1245-246-145-24-15
+midendword strain 234-2345-1235-1-24-1345
+midendword strakt 234-2345-1235-1-13-2345
+always abstrakt 1-12-23456-1235-1-13-2345
+midendword stranch 234-2345-1235-1-1345-1456
+midendword strank 234-2345-1235-1-1345-13
+midendword strans 234-2345-1235-1-1345-234
+midendword strauer 234-2345-1235-16-15-1235
+midendword straum 234-2345-1235-16-134
+always gastraum 1245-1-23456-1235-16-134
+always lastraum 123-1-23456-1235-16-134
+always testraum 2345-15-23456-1235-16-134
+always ostraum 135-23456-1235-16-134
+midendword straurig 234-2345-1235-16-1235-24-1245
+midendword strauung 234-2345-1235-16-136-1345-1245
+midendword streff 234-2345-1235-15-124-124
+midendword streib 234-2345-1235-146-12
+midendword strend 234-2345-1235-15-1345-145
+midendword strendite 23456-1235-15-1345-145-24-2345-15
+midendword strenn 234-2345-1235-15-1345-1345
+begmidword testrenn 2345-15-23456-1235-15-1345-1345
+midendword streppe 234-2345-1235-15-1234-1234-15
+midendword strete 234-2345-1235-15-2345-15
+midendword stribun 234-2345-1235-24-12-136-1345
+midendword strieb 234-2345-1235-346-12
+always industrie 24-1345-145-136-23456-1235-346
+prfword industrien 24-1345-145-136-23456-1235-24-15-1345
+always industriell 24-1345-145-136-23456-1235-24-15-123-123
+midendword striller 234-2345-1235-24-123-123-15-1235
+midendword strink 234-2345-1235-24-1345-13
+midendword strog 234-2345-1235-135-1245
+always astrog 1-23456-1235-135-1245
+always östrogen 246-23456-1235-135-1245-15-1345
+midendword strommel 234-2345-1235-135-134-134-15-123
+midendword strompete 234-2345-1235-135-134-1234-15-2345-15
+midendword stropf 234-2345-1235-135-1234-124
+midendword strophäe 234-2345-1235-135-1234-125-345-15
+midendword stross 234-2345-1235-135-234-234
+midendword strost 234-2345-1235-135-23456
+midendword strott 234-2345-1235-135-2345-2345
+midendword strug 234-2345-1235-136-1245
+midendword struthahn 234-2345-1235-136-2345-125-1-125-1345
+midendword strächtig 234-2345-1235-345-1456-2345-24-1245
+midendword sträg 234-2345-1235-345-1245
+midendword sträne 234-2345-1235-345-1345-15
+midendword sträume 234-2345-1235-34-134-15
+midendword strög 234-2345-1235-246-1245
+midendword ströpf 234-2345-1235-246-1234-124
+midendword strüb 234-2345-1235-1256-12
+midendword strümmer 234-2345-1235-1256-134-134-15-1235
+midendword stuberkul 234-2345-136-12-15-1235-13-136-123
+midendword stuch 234-2345-136-1456
+midendword stumor 234-2345-136-134-135-1235
+midendword stür 234-2345-1256-1235
+always stürm 23456-1256-1235-134
+always glastürm 1245-123-1-234-2345-1256-1235-134
+always gastürm 1245-1-234-2345-1256-1235-134
+always aussichtstürm 16-234-234-24-1456-2345-234-2345-1256-1235-134
+always beobachtungstürm 12-15-135-12-1-1456-2345-136-1345-1245-234-2345-1256-1235-134
+always zwillingstürm 1356-2456-24-123-123-24-1345-1245-234-2345-1256-1235-134
+always stürz 23456-1256-1235-1356
+always erstürb 15-1235-23456-1256-1235-12
+midendword sturbine 234-2345-136-1235-12-24-1345-15
+midendword sturbo 234-2345-136-1235-12-135
+midendword sturbul 234-2345-136-1235-12-136-123
+midendword sturn 234-2345-136-1235-1345
+midendword styp 234-2345-13456-1234
+midendword styrann 234-2345-13456-1235-1-1345-1345
+midendword stäfel 234-2345-345-124-15-123
+midendword stäfeln 234-2345-345-124-15-123-1345
+midendword stägig 234-2345-345-1245-24-1245
+midendword stäglich 234-2345-345-1245-123-24-1456
+midendword stäler 234-2345-345-123-15-1235
+midendword stänz 234-2345-345-1345-1356
+midendword stäter 234-2345-345-2345-15-1235
+midendword stäusch 234-2345-34-156
+midendword stöchter 234-2345-246-1456-2345-15-1235
+midendword stöchter 234-2345-246-1456-2345-15-1235
+midendword stöne 234-2345-246-1345-15
+always störungstrupp 23456-246-1235-136-1345-1245-234-2345-1235-136-1234-1234
+always stösst 23456-246-234-234-2345
+midendword stöter 234-2345-246-2345-15-1235
+midendword stötung 234-2345-246-2345-136-1345-1245
+midendword stüch 234-2345-1256-1456
+always stücksteil 23456-1256-14-13-234-2345-146-123
+midendword stüft 234-2345-1256-124-2345
+midendword stülle 234-2345-1256-123-123-15
+midendword stümelei 234-2345-1256-134-15-123-146
+midendword stümlich 234-2345-1256-134-123-24-1456
+always gestüte 1245-15-23456-1256-2345-15
+always eistüte 146-234-2345-1256-2345-15
+always kaufstüte 13-16-124-234-2345-1256-2345-15
+always süsst 234-1256-234-234-2345
+always süsst 234-1256-234-234-2345
+always tagesteller 2345-1-1245-15-234-2345-15-123-123-15-1235
+always tagsteller 2345-1-1245-234-2345-15-123-123-15-1235
+always tagstisch 2345-1-1245-234-2345-24-156
+syllable talkshow 2345-1-123-13-234-125-135-2456
+syllable thorax 2345-125-135-1235-1-1346
+always tischtennistisch 2345-24-156-2345-15-1345-1345-24-234-2345-24-156
+syllable trainings 2345-1235-1-24-1345-24-1345-1245-234
+always überasst 1256-12-15-1235-1-234-234-2345
+always ungstank 136-1345-1245-234-2345-1-1345-13
+always ungstat 136-1345-1245-234-2345-1-2345
+always ungsteil 136-1345-1245-234-2345-146-123
+always ungstisch 136-1345-1245-234-2345-24-156
+midendword ungstreu 136-1345-1245-234-2345-1235-126
+always ungstrick 136-1345-1245-234-2345-1235-24-14-13
+always ungstrupp 136-1345-1245-234-2345-1235-136-1234-1234
+always ungsturm 136-1345-1245-234-2345-136-1235-134
+always unionstrupp 136-1345-24-135-1345-234-2345-1235-136-1234-1234
+always unternehmensteil 136-1345-2345-15-1235-1345-15-125-134-15-1345-234-2345-146-123
+always veitstanz 1236-146-2345-234-2345-1-1345-1356
+always verbandstisch 1236-15-1235-12-1-1345-145-234-2345-24-156
+always vergasst 1236-15-1235-1245-1-234-234-2345
+always vergisst 1236-15-1235-1245-24-234-234-2345
+always verkaufstisch 1236-15-1235-13-16-124-234-2345-24-156
+always verkehrsteil 1236-15-1235-13-15-125-1235-234-2345-146-123
+always verkehrsto 1236-15-1235-13-15-125-1235-234-2345-135
+always vermasst 1236-15-1235-134-1-234-234-2345
+always vermögensteil 1236-15-1235-134-246-1245-15-1345-234-2345-146-123
+always verrusst 1236-15-1235-1235-136-234-234-2345
+always verspasst 1236-15-1235-234-1234-1-234-234-2345
+always versuchstier 1236-15-1235-234-136-1456-234-2345-346-1235
+always versöhnungstrunk 1236-15-1235-234-246-125-1345-136-1345-1245-234-2345-1235-136-1345-13
+always vertragsteil 1236-15-1235-2345-1235-1-1245-234-2345-146-123
+always vertragstreu 1236-15-1235-2345-1235-1-1245-234-2345-1235-126
+always volkstanz 1236-135-123-13-234-2345-1-1345-1356
+always volkstum 1236-135-123-13-234-2345-136-134
+always voraustrupp 1236-135-1235-16-234-2345-1235-136-1234-1234
+always wachstum 2456-1-1456-234-2345-136-134
+always wahnsinnstat 2456-1-125-1345-234-24-1345-1345-234-2345-1-2345
+always weihnachtsteller 2456-146-125-1345-1-1456-2345-234-2345-15-123-123-15-1235
+always weihnachtstisch 2456-146-125-1345-1-1456-2345-234-2345-24-156
+always weisst 2456-146-234-234-2345
+always beweis 12-15-2456-146-234
+prfword beweist 12-15-2456-146-23456
+always wettbewerbsteil 2456-15-2345-2345-12-15-2456-15-1235-12-234-2345-146-123
+always willkommenstrunk 2456-24-123-123-13-135-134-134-15-1345-234-2345-1235-136-1345-13
+always wirtshaustisch 2456-24-1235-2345-234-125-16-234-2345-24-156
+always wirtstier 2456-24-1235-2345-234-2345-346-1235
+always wissenstempel 2456-24-234-234-15-1345-234-2345-15-134-1234-15-123
+word wisst 2456-24-234-234-2345
+always wusst 2456-136-234-234-2345
+always wüsst 2456-1256-234-234-2345
+always zeitungstisch 1356-146-2345-136-1345-1245-234-2345-24-156
+always zirkustier 1356-24-1235-13-136-234-2345-346-1235
+always zugsteil 1356-136-1245-234-2345-146-123
+always zwangstaufe 1356-2456-1-1345-1245-234-2345-16-124-15
+always zwangstäuf 1356-2456-1-1345-1245-234-2345-34-124
+always zwillingsturm 1356-2456-24-123-123-24-1345-1245-234-2345-136-1235-134
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb
new file mode 100644
index 0000000..26d5c5e
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb
@@ -0,0 +1,10247 @@
+#  liblouis: German Grade 2 Braille
+#
+#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+#-------------------------------------------------------------------------------
+#
+#  DEUTSCHE KURZSCHRIFT - German Grade 2 Braille
+#
+#  Version 2009-12-04
+#  christian.waldvogel@sbszh.ch
+#
+#-------------------------------------------------------------------------------
+
+
+#
+#   Einschränkungen
+#   ---------------
+#
+#   - Optimiert für Neue Rechtschreibung
+#   - Schweizer ss-Schreibung nicht berücksichtigt
+#
+#
+#   Bekannte Probleme
+#   -----------------
+#
+#   - Gross-/Kleinschreibung: caps begcaps endcaps ist nicht genug ...
+#     es braucht Auszeichnung im Text.
+#
+#   - Wortersatzzstrich am Ende:
+#     - Bis jetzt nur die Lautgruppen vor -\s und -,\s.
+#     - Ausformulierte Ausnahmen müssen damit nachgerüstet werden.
+#
+#   Abzuklären
+#   ----------
+#
+#   - "contraction" für Masseinheiten missbrauchen, erfordert eingeschaltetes
+#     lettersign!
+#
+
+
+
+
+# class definitions
+class a a
+class b b
+class c c
+class d d
+class e e
+class er er
+class f f
+class h h
+class g g
+class i i
+class j j
+class k k
+class l l
+class m m
+class n n
+class r r
+class s s
+class t t
+class u u
+class z z
+class kpvw kpvw
+class konsonant bcdfghjklmnpqrstvwxyz
+
+
+
+# (4.1 Lautgruppenkürzungen)
+
+# Doppelvokale
+always frisbee 124-1235-24-234-12-15-15
+always kaffee 13-1-124-124-15-15
+always coffee 6-14-135-124-124-15-15
+always toffee 2345-135-124-124-15-15
+always dragee 145-1235-1-1245-15-15
+always bungee 12-256-1245-15-15
+always dorothee 145-26-135-2345-125-15-15
+always cheese 1456-15-15-234-15
+always pappmaschee 1234-1-1234-1234-134-1-156-15-15
+always klischee 13-123-24-156-15-15
+always yankee 6-13456-235-13-15-15
+always gelee 1245-13456-15-15
+always soufflee 234-135-136-124-124-123-15-15
+always defilee 145-15-124-24-123-15-15
+always klee 13-123-15-15
+always renommee 1235-14-135-1346-15-15
+always armee 356-134-15-15
+always resümee 1235-123456-1256-134-15-15
+always schnee 156-1345-15-15
+always trainee 2345-1235-1-24-1345-15-15
+always pralinee 1234-1235-1-123-35-15-15
+always portmonee 1234-26-2345-134-135-1345-15-15
+always kanapee 13-235-1-1234-15-15
+always portepee 1234-26-236-1234-15-15
+always separee 234-15-1234-356-15-15
+always referee 1235-15-124-12456-15-15
+always schikoree 156-24-13-26-15-15
+always spree 234-1234-1235-15-15
+always karree 13-356-1235-15-15
+always porree 1234-26-1235-15-15
+always püree 1234-1256-1235-15-15
+always frikassee 124-1235-24-13-1-2346-15-15
+always plissee 1234-123-24-2346-15-15
+always varietee 1236-356-24-15-2345-15-15
+always komitee 13-135-134-24-2345-15-15
+always trustee 2345-1235-136-23456-15-15
+always frottee 124-1235-135-2345-2345-15-15
+always queen 6-12345-136-15-15-1345
+always halloween 125-1-12345-135-2456-15-15-1345
+
+always hawaii 125-1-2456-1-24-24
+always ascii 1-234-6-14-24-24
+
+always boom 12-135-135-134
+always voodoo 1236-135-135-145-135-135
+always yahoo 6-13456-1-125-135-135
+always waterloo 2456-1-2345-12456-123-135-135
+always shampoo 234-125-1-134-1234-135-135
+always tattoo 2345-1-2345-2345-135-135
+always daewoo 145-1-15-2456-135-135
+always zoo 1356-135-135
+
+# ABER (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word aber 1
+always aber 2-1
+always aberdeen 1-12-12456-145-15-15-1345
+midword aberech 1-23-1235-15-1456
+midendword abereich 1-23-1235-146-1456
+midendword abericht 1-23-2-3456
+begmidword aberkann 1-12-12456-13-235-1345
+always aberkenn 1-12-12456-13-14-1345
+begmidword abernt 1-12-12456-1345-2345
+prfword abernte 1-12-12456-1345-236
+prfword aberntest 1-12-12456-1345-236-23456
+prfword aberntet 1-12-12456-1345-236-2345
+prfword aberntete 1-12-12456-1345-236-236
+prfword abernteten 1-12-12456-1345-236-2345-14
+prfword aberntetest 1-12-12456-1345-236-236-23456
+prfword aberntetet 1-12-12456-1345-236-236-2345
+always aberrans 1-12-12456-1235-235-234
+always aberratio 1-12-12456-1235-1-2345-24-135
+always aberration 1-12-12456-1235-5-1345
+always aberrier 1-12-12456-1235-346-1235
+always aberzieh 1-12-12456-1356-346-125
+always aaberg 1-1-12-12456-1245
+always cabernet 6-14-1-12-12456-1345-15-2345
+sufword faber 124-1-12-12456
+midword gaber 1245-1-23-1235
+always gaberecht 1245-1-23-1235-2345
+sufword haber 125-1-12-12456
+always schaber 156-1-12-12456
+always makaber 134-1-13-1-12-12456
+always kandelaber 13-235-145-13456-1-12-12456
+always laber 123-1-12-12456
+always annaberg 235-1345-1-12-12456-1245
+always araber 356-1-12-12456
+always graber 1245-1235-1-12-12456
+always traber 2345-1235-1-12-12456
+begmidword tabern 2345-1-12-12456-1345
+always waber 2456-1-12-12456
+
+# ACH (4.1 Lautgruppenkürzungen)
+midendword ach 56
+endword achip 1-1456-24-1234
+endword achips 1-1456-24-1234-234
+begword aach 1-1-1456
+prfword bachelor 12-1-1456-13456-135-1235
+begmidword bachelor 12-1-1456-13456-26
+always cach 6-14-1-1456
+prfword each 15-1-1456
+always beach 12-15-1-1456
+always beacht 23-56-2345
+prfword beachte 23-56-236
+always beachtest 23-56-236-23456
+always beachtet 23-56-236-2345
+prfword beachtete 23-56-236-236
+always teacher 2345-15-1-1456-12456
+always teaching 2345-15-1-1456-35-1245
+begmidword megach 134-15-1245-1-1456
+always diachron 145-24-1-1456-1235-135-1345
+always machia 134-1-1456-24-1
+always machin 134-1-1456-35
+always machis 134-1-1456-24-234
+always nikomachisch 1345-24-13-135-134-56-24-156
+always macho 134-1-1456-135
+begmidword anachron 235-1-1456-1235-135-1345
+always coach 6-14-135-1-1456
+begword tetrach 2345-15-2345-1235-1-1456
+midword tetrach 236-2345-1235-1-1456
+always attach 1-2345-2345-1-1456
+always blattachsel 12-123-1-2345-2345-56-234-13456
+always detach 145-15-2345-1-1456
+begmidword metach 134-15-2345-1-1456
+begmidword gouach 1245-135-136-1-1456
+
+# ÄHNLICH (4.4 Zweiformige Kürzungen)
+always ähnlich 345-456
+
+# AL  (4.1 Lautgruppenkürzungen)
+begmidword al 25
+always al-\s 25-36-0
+always al-,\s 25-36-2-0
+always aal 1-1-123
+begmidword chinaalk 1456-35-1-25-13
+always dalag 145-1-123-1-1245
+begmidword daläg 145-1-123-345-1245
+prfword daläge 145-1-123-345-12346
+always dalieg 145-1-123-346-1245
+prfword daliege 145-1-123-346-12346
+sufword deal 145-15-1-123
+always dealer 145-15-1-123-12456
+always idealer 24-145-15-25-12456
+always health 125-15-1-123-2345-125
+begmidword sofalehn 234-135-124-1-123-2356-1345
+begmidword yogalehr 6-13456-135-1245-1-123-2356-1235
+begmidword medialeit 134-15-145-24-1-123-146-2345
+before l begmidword mafia 134-1-124-24-1
+begmidword asialad 1-234-24-1-123-1-145
+begmidword asialäd 1-234-24-1-123-345-145
+begmidword asialink 1-234-24-1-123-35-13
+midword vinzial 1236-35-1356-24-25
+begmidword sojalezi 234-135-245-1-123-15-1356-24
+before l begmidword zodiakal 1356-135-145-24-1-13-25
+before l begmidword wodka 2456-135-145-13-1
+begmidword biotikal 12-24-135-2345-24-13-1-123
+before l begmidword mokka 134-135-13-13-1
+before l begmidword vokal 1236-135-13-25
+always tombola 2345-135-134-12-135-123-1
+begmidword kanal 13-235-25
+before l begmidword sauna 234-16-1345-1
+before l begmidword pharma 1234-125-356-134-1
+begmidword europalet 126-1235-135-1234-25-15-2345
+begmidword europalig 126-1235-135-1234-1-123-45
+always nappaleder 1345-1-1234-1234-1-123-15-145-12456
+before l begmidword kamera 13-1-134-12456-1
+always kameralia 13-1-134-12456-25-24-1
+always kameralist 13-1-134-12456-25-24-23456
+always kameralistisch 13-1-134-12456-25-5-156
+begmidword paraling 1234-356-1-123-35-1245
+begmidword paralymp 1234-356-1-123-6-13456-134-1234
+before l begmidword tundra 2345-256-145-1235-1
+begmidword supraleit 234-136-1234-1235-1-123-146-2345
+before l begmidword ultra 136-123-2345-1235-1
+before l begword extra 1346-2345-1235-1
+before l midword extra 15-6-1346-2345-1235-1
+before l begword prosa 12345-234-1
+before l midword prosa 1234-1235-135-234-1
+begmidword metaling 134-15-2345-1-123-35-1245
+begmidword metalog 134-15-2345-1-123-135-1245
+always rastalock 1235-1-23456-1-123-135-46
+begmidword lavalamp 123-1-1236-1-123-1-134-1234
+begmidword lavalämp 123-1-1236-1-123-345-134-1234
+before l begmidword maya 134-1-6-13456-1
+before l begmidword pizza 1234-24-1356-1356-1
+
+# ALL (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+always all 1-12345
+sufword alle 1-15
+always alledem 1-15-2-12356
+always allee 1-12345-15-15
+# HOMONYM
+always alleen 1-12345-15-14
+sufword allein 1-1246
+endword allein 1-1246
+endword alleine 1-1246-15
+sufword allel 1-12345-13456
+sufword allen 1-14
+sufword allend 1-12345-14-145
+sufword allem 1-12356
+sufword allemal 1-15-134
+always allemand 1-12345-12356-235-145
+sufword aller 1-12456
+sufword alleraller 1-12456-1-12456
+sufword alleralleraller 1-12456-1-12456-1-12456
+sufword zualler 2-1356-1-12456
+sufword zualleraller 2-1356-1-12456-1-12456
+begmidword herzaller 125-12456-1356-1-12456
+sufword alles 1-123456
+word allesamt 1-15-234-1-134-2345
+always alleg 1-12345-15-1245
+prfword allergen 1-12345-12456-1245-14
+prfword allergene 1-12345-12456-1245-14-15
+prfword allergenen 1-12345-12456-1245-14-14
+prfword allergens 1-12345-12456-1245-14-234
+always allergie 1-12345-12456-1245-346
+always allergien 1-12345-12456-1245-24-14
+always allergiker 1-12345-12456-1245-24-13-12456
+always allergisch 1-12345-12456-1245-24-156
+always allergolo 1-12345-12456-1245-135-123-135
+always alley 1-12345-15-6-13456
+# Alte Rechtschreibung
+always balleben 12-25-123-12-14
+# Alte Rechtschreibung
+always ballehr 12-25-123-2356-1235
+# Alte Rechtschreibung
+always ballizenz 12-25-123-24-1356-14-1356
+begmidword modal 134-135-145-25
+begmidword ideal 24-145-15-25
+begmidword real 1235-15-25
+begmidword regal 1235-15-1245-25
+# Alte Rechtschreibung
+sufword schalloch 156-25-123-135-1456
+# Alte Rechtschreibung
+sufword schallöch 156-25-123-246-1456
+begmidword labial 123-1-12-24-25
+begmidword radial 1235-1-145-24-25
+begmidword kollegial 13-135-12345-15-1245-24-25
+begmidword filial 124-24-123-24-25
+begmidword kolonial 13-135-123-135-1345-24-25
+begmidword gymnasial 1245-6-13456-134-1345-1-234-24-25
+begmidword trivial 2345-1235-24-1236-24-25
+begmidword axial 1-6-1346-24-25
+begmidword glazial 1245-123-1-1356-24-25
+begmidword spezial 234-1234-15-1356-24-25
+begmidword fokal 124-135-13-25
+begmidword formal 124-26-134-25
+begmidword maximal 134-1-6-1346-24-134-25
+begmidword minimal 134-35-24-134-25
+begmidword normal 1345-26-134-25
+begmidword final 124-35-25
+begmidword kriminal 13-1235-24-134-35-25
+begmidword kantonal 13-235-2345-135-1345-25
+begmidword kommunal 13-1346-256-25
+begmidword nominal 1345-135-134-35-25
+begmidword original 26-45-35-25
+begmidword personal 1234-1345-25
+begmidword regional 1235-15-1245-24-135-1345-25
+begmidword national 1345-5-1345-25
+begmidword spinal 234-1234-35-25
+begmidword terminal 2345-12456-134-35-25
+begmidword astral 1-23456-1235-25
+begmidword general 1245-14-12456-25
+begmidword lateral 123-1-2345-12456-25
+begmidword natural 1345-2345-25
+begmidword spektral 234-1234-15-13-2345-1235-25
+begmidword spiral 234-1234-24-1235-25
+begmidword oral 26-25
+midword orallür 26-1-12345-1256-1235
+always korall 13-26-1-12345
+begmidword moral 134-26-25
+begmidword zentral 1356-14-2345-1235-25
+begmidword zerebral 1356-12456-15-12-1235-25
+begmidword integral 35-236-1245-1235-25
+begmidword guttural 1245-136-2345-2345-136-1235-25
+begmidword salleist 234-25-123-146-23456
+begmidword dorsal 145-26-234-25
+begmidword nasal 1345-1-234-25
+begmidword universal 256-24-1236-12456-234-25
+begmidword palatal 1234-25-1-2345-25
+# Alte Rechtschreibung
+always metalleiter 134-15-2345-25-123-146-2345-12456
+begmidword dental 145-14-2345-25
+begmidword frontal 124-1235-135-1345-2345-25
+begmidword horizontal 125-26-24-1356-135-1345-2345-25
+begmidword okzipital 135-13-1356-24-1234-24-2345-25
+begmidword dual 145-136-25
+begmidword lingual 123-35-1245-136-25
+begmidword sexual 234-15-6-1346-136-25
+begmidword festival 124-15-23456-24-1236-25
+# Alte Rechtschreibung
+begmidword schallehr 156-25-123-2356-1235
+# Alte Rechtschreibung
+begmidword schalleit 156-25-123-146-2345
+begmidword vokalläng 1236-135-13-25-5-123-1245
+begmidword schmallipp 156-134-25-123-24-1234-1234
+# alte Rechtschreibung
+begmidword kristalleuch 13-1235-24-23456-25-123-126-1456
+# alte Rechtschreibung
+begmidword kristallüst 13-1235-24-23456-25-123-1256-23456
+begmidword wallaus 2456-25-123-16-234
+
+# ALS   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word als 146
+
+# ALSO (4.4 Zweiformige Kürzungen)
+always also 1-135
+always realsozial 1235-15-25-234-123
+begmidword spezial 234-1234-15-1356-24-25
+begmidword vokalsol 1236-135-13-25-234-135-123
+begmidword kanalsohl 13-235-25-234-135-125-123
+begmidword national 1345-5-1345-25
+begmidword zentral 1356-14-2345-1235-25
+begmidword kontinental 13-135-1345-2345-35-14-2345-25
+begmidword talsohl 2345-25-234-135-125-123
+begmidword orbital 26-12-24-2345-25
+begmidword instrumental 35-23456-1235-136-134-14-2345-25
+
+# AN  (4.1 Lautgruppenkürzungen)
+word an 235
+begmidword an 235
+always an-\s 235-36-0
+always an-,\s 235-36-2-0
+always anistisch 235-5-156
+always anation 1-1345-5-1345
+always afrikaans 1-124-1235-24-13-1-1-1345-234
+always saanen 234-1-1-1345-14
+always emanation 12356-235-5-1345
+always trepanation 2345-1235-15-1234-235-5-1345
+always andromedanebel 235-145-1235-135-134-15-145-1-1345-15-12-13456
+always daneben 145-1-1345-12
+always danieden 145-1-1345-346-145-14
+always danieder 145-1-1345-346-145-12456
+always lambda 123-1-134-12-145-1
+prfword bean 12-15-1-1345
+prfword beans 12-15-1-1345-234
+always clean 6-14-123-15-1-1345
+always orleans 26-123-15-1-1345-234
+always jean 245-15-1-1345
+always peanut 1234-15-1-1345-136-2345
+begmidword liganeu 123-45-1-1345-126
+always liganiveau 123-45-1-1345-24-1236-15-16
+begmidword alphanum 25-1234-125-1-1345-136-134
+always olympia 135-123-6-13456-134-1234-24-1
+always arekanuss 356-15-13-1-1345-136-2346
+begmidword arekanüss 356-15-13-1-1345-1256-2346
+begmidword amerikan 1-134-12456-24-13-235
+always kolanuss 13-135-123-1-1345-136-2346
+begmidword kolanüss 13-135-123-1-1345-1256-2346
+begmidword supranation 234-136-1234-1235-1-1345-5-1345
+begmidword supranatur 234-136-1234-1235-1-1345-2345
+always intranet 35-2345-1235-1-1345-15-2345
+always paranuss 1234-356-1-1345-136-2346
+begmidword paranüss 1234-356-1-1345-1256-2346
+
+# ANDER ÄNDER (4.3.6 Kommakürzungen)
+always ander 2-12456
+always anders 2-12456-234
+always änder 5-12456
+always anderlecht 235-145-12456-123-15-1456-2345
+sufword andersen 235-145-12456-234-14
+always mäander 134-345-235-145-12456
+always banderill 12-235-145-12456-24-12345
+begmidword banderol 12-235-145-12456-135-123
+always bänder 12-345-1345-145-12456
+always abänder 1-12-5-12456
+always erbänderung 12456-12-5-12456-136
+always pfänder 1234-124-345-1345-145-12456
+sufword leander 123-15-235-145-12456
+always oleander 135-123-15-235-145-12456
+begmidword neandert 1345-15-235-145-12456-2345
+always ugander 136-1245-235-145-12456
+always schänder 156-345-1345-145-12456
+always koriander 13-26-24-235-145-12456
+always kander 13-235-145-12456
+prfword lander 123-235-145-12456
+always landerdbeer 123-235-145-12456-145-12-15-15-1235
+always landerecht 123-235-145-15-1235-2345
+always salander 234-25-235-145-12456
+always flandern 124-123-235-145-12456-1345
+midendword llander 12345-235-145-12456
+always länder 123-345-1345-145-12456
+always geländer 12346-123-345-1345-145-12456
+midendword lländer 12345-345-1345-145-12456
+always landerwerb 123-235-145-12456-2456-12456-12
+begmidword landerzieh 123-235-145-12456-1356-346-125
+sufword olander 135-123-235-145-12456
+always neulander 1345-126-123-235-145-12456
+always manderscheid 134-235-145-12456-156-146-145
+always salamander 234-25-1-134-235-145-12456
+always anaximander 235-1-6-1346-24-134-235-145-12456
+always commander 6-14-135-1346-235-145-12456
+sufword expander 1346-1234-235-145-12456
+midendword expander 15-6-1346-1234-235-145-12456
+always ränder 1235-345-1345-145-12456
+always temperatur 2345-12356-1234-12456-1-2345-136-1235
+begmidword randerhol 1235-235-145-12456-125-135-123
+begmidword randerschein 1235-235-145-12456-156-1246
+always brander 12-1235-235-145-12456
+begmidword branderreg 12-1235-235-145-12456-1235-15-1245
+always palisander 1234-25-24-234-235-145-12456
+sufword sander 234-235-145-12456
+always cuandero 6-14-136-235-145-12456-135
+always ruander 1235-136-235-145-12456
+always vander 1236-235-145-12456
+always wander 2456-235-145-12456
+always gewänder 12346-2456-345-1345-145-12456
+always alexander 25-15-6-1346-235-145-12456
+always zander 1356-235-145-12456
+
+# AR  (4.1 Lautgruppenkürzungen)
+begmidword ar 356
+always ar-\s 356-36-0
+always ar-,\s 356-36-2-0
+before r begmidword kuba 13-136-12-1
+always amerika 1-134-12456-24-13-1
+before r always afrika 1-124-1235-24-13-1
+always granola 1245-1235-235-135-123-1
+always panama 1234-235-1-134-1
+always komma 13-1346-1
+begmidword kommand 13-1346-235-145
+always klima 13-123-24-134-1
+always aroma 356-135-134-1
+always china 1456-35-1
+before r always henna 125-14-1345-1
+always europa 126-1235-135-1234-1
+sufword extra 1346-2345-1235-1
+midendword extra 15-6-1346-2345-1235-1
+always kamera 13-1-134-12456-1
+always kassandra 13-1-2346-235-145-1235-1
+sufword areligiös 1-1235-13456-45-24-246-234
+midword areligiös 1-1235-13456-45-24-246-234
+midendword areport 1-1235-15-1234-26-2345
+midword arezep 1-1235-15-1356-15-1234
+begword arhythm 1-1235-125-6-13456-2345-125-134
+midword arhythm 1-1235-125-6-13456-2345-125-134
+always aar 1-1-1235
+always teneriffa 2345-14-12456-24-124-124-1
+midword aarithmet 1-356-24-2345-125-134-15-2345
+prfword aarmee 1-356-134-15-15
+always aarmeen 1-356-134-15-14
+begmidword barbaross 12-356-12-1-1235-135-2346
+always learn 123-15-1-1235-1345
+always clear 6-14-123-15-1-1235
+always hearing 125-15-1-1235-35-1245
+always pearl 1234-15-1-1235-123
+begmidword shakespear 234-125-1-13-123456-1234-15-1-1235
+always search 234-15-1-1235-1456
+sufword sears 234-15-1-1235-234
+always tearoom 2345-15-1-1235-135-135-134
+always wear 2456-15-1-1235
+before r begmidword sofa 234-135-124-1
+always ligarund 123-45-1-1235-256-145
+always diarahm 145-24-1-1235-1-125-134
+begmidword diarähm 145-24-1-1235-345-125-134
+begmidword mafiaroll 134-1-124-24-1-1235-135-12345
+always inkareich 35-13-1-1235-146-1456
+always board 12-135-1-1235-145
+always roaring 1235-135-1-1235-35-1245
+always infrarot 35-124-1235-1-1235-135-2345
+prfword infrarote 35-124-1235-1-1235-135-236
+begmidword toraroll 2345-26-1-1235-135-12345
+begmidword thoraroll 2345-125-26-1-1235-135-12345
+always hurraruf 125-136-1235-1235-1-1235-136-124
+always ultrarot 136-123-2345-1235-1-1235-135-2345
+prfword ultrarote 136-123-2345-1235-1-1235-135-236
+always rosarot 1235-135-234-1-1235-135-2345
+prfword rosarote 1235-135-234-1-1235-135-236
+always metareflex 134-15-2345-1-1235-15-124-123-15-6-1346
+before r begmidword manta 134-235-2345-1
+before r begmidword magenta 134-1-1245-14-2345-1
+begmidword costaric 6-14-135-23456-1-1235-24-6-14
+
+# ARBEIT (4.4 Zweiformige Kürzungen)
+always arbeit 356-12
+syllable beitrag 2-12-2345-1245
+syllable beiträg 2-12-5-2345-1245
+
+# -ATION (4.2.2 b) Nachsilbenkürzungen)
+midendword ation 5-1345
+
+# -ATIV  (4.2.2 b) Nachsilbenkürzungen)
+midendword ativ 5-1236
+
+# AU  (4.1 Lautgruppenkürzungen)
+word au 6-16
+always au 16
+always kapernaum 13-1-1234-12456-1345-1-136-134
+always europa 126-1235-135-1234-1
+before u begword extra 1346-2345-1235-1
+before u midword extra 15-6-1346-2345-1235-1
+always galauniform 1245-25-1-256-24-124-26-134
+always intrauterin 35-2345-1235-1-136-2345-12456-35
+always kamera 13-1-134-12456-1
+always pharma 1234-125-356-134-1
+
+# ÄU  (4.1 Lautgruppenkürzungen)
+always äu 34
+always skarabäus 234-13-356-1-12-345-136-234
+always thaddäus 2345-125-1-145-145-345-136-234
+always zebedäus 1356-15-23-145-345-136-234
+midendword igäum 24-1245-345-136-134
+always apogäum 1-1234-135-1245-345-136-134
+always matthäus 134-1-2345-2345-125-345-136-234
+always trochäus 2345-1235-135-1456-345-136-234
+always jubiläum 245-136-12-24-123-345-136-134
+always ptolemäus 1234-2345-135-123-12356-345-136-234
+always bartimäus 12-356-2345-24-134-345-136-234
+always bartholomäus 12-356-2345-125-135-123-135-134-345-136-234
+always borromäus 12-26-1235-135-134-345-136-234
+always athenäum 1-2345-125-14-345-136-134
+always piräus 1234-24-1235-345-136-234
+
+# AUCH  (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word auch 34
+
+# AUF (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word auf 16
+always auf-\s 2-16-36-0
+always auf 2-16
+sufword bau 12-16
+always baum 12-16-134
+always baumaschin 12-16-134-156
+always baumaterial 12-16-134-123
+always abbau 1-12-12-16
+always ackerbau 1-46-12456-12-16
+always neubau 1345-126-12-16
+syllable aufbau 2-16-12-16
+always aufberei 2-16-23-1235-146
+always kaufberei 13-16-124-23-1235-146
+always laufberei 123-16-124-23-1235-146
+always durchlauf 2-1456-123-16-124
+prfword signal 234-45-1345-1-123
+begmidword signal 234-45-1345-25
+syllable aufbesser 2-16-234-234
+syllable aufbewahr 2-16-23-2456-125
+always aufgebot 2-16-12346-12-135-2345
+prfword aufgebote 2-16-12346-12-135-236
+syllable aufheb 2-16-125-15-12
+syllable aufhäng 2-16-125-345-1345-1245
+syllable aufhänge 2-16-125-345-1345-12346
+syllable aufhängen 2-16-125-345-1345-1245-14
+syllable aufhängenas 2-16-125-345-1345-12346-1345-1-234
+syllable aufhänger 2-16-125-345-1345-1245-12456
+syllable aufklär 2-16-13-123-345-1235
+syllable aufkomm 2-16-13-1346
+syllable auflauf 2-16-123-16-124
+syllable aufläuf 2-16-123-34-124
+syllable aufmach 2-16-134-56
+syllable aufruf 2-16-1235-136-124
+syllable aufruhr 2-16-1235-136-125-1235
+syllable aufschrei 2-16-156-1235-146
+syllable aufschreib 2-16-156-12
+syllable daraufschreib 2-16-156-12
+syllable umlaufschreiben 136-134-123-16-124-156-12-14
+syllable aufschwung 2-16-156-2456-256-1245
+syllable aufschwün 2-16-156-2456-1256-1345
+syllable aufstieg 2-16-23456-346-1245
+prfword aufstiege 2-16-23456-346-12346
+syllable auftrag 2-16-2345-1245
+syllable aufträg 2-16-5-2345-1245
+syllable auftrags 2-16-2345-1245-234
+syllable auftrieb 2-16-2345-1235-346-12
+syllable anbau 235-12-16
+always ärmel 345-1235-134-13456
+begmidword wärmel 2456-345-1235-134-15-123
+begword ausbau 34-12-16
+midendword ausbau 16-234-12-16
+always baufach 12-16-124-56
+always baufähig 12-16-124-345-125-45
+always baufällig 12-16-5-124-12345-45
+always baufehler 12-16-124-2356-123-12456
+always baufertig 12-16-124-45
+always baufest 12-16-124-15-23456
+begmidword baufinanzier 12-16-124-35-235-1356-346-1235
+prfword baufinanzier 12-16-124-35-235-1356-24-12456
+prfword baufinanziers 12-16-124-35-235-1356-24-12456-234
+begmidword baufirm 12-16-124-24-1235-134
+begmidword baufläch 12-16-124-123-345-1456
+always bauflucht 12-16-124-123-136-1456-2345
+begmidword bauförder 12-16-124-246-1235-145-12456
+always bauform 12-16-124-26-134
+begmidword bauforsch 12-16-124-26-156
+begmidword baufort 12-16-124-26-2345
+always baufrei 12-16-124-1235-146
+begmidword bauführ 12-16-124-125
+always beaufort 12-15-16-124-26-2345
+always niveau 1345-24-1236-15-16
+begmidword blaufarb 12-123-16-124-356-12
+begmidword blaufärb 12-123-16-124-345-1235-12
+begmidword blaufäul 12-123-16-124-34-123
+begmidword blaufelch 12-123-16-124-13456-1456
+begmidword blaufich 12-123-16-124-3456
+always blaufilter 12-123-16-124-24-123-2345-12456
+begmidword chauff 1456-16-124-124
+syllable fuchs 124-136-1456-234
+syllable füchs 124-1256-1456-234
+always gaufürst 1245-16-124-1256-1235-23456
+begmidword graufäul 1245-1235-16-124-34-123
+always graufisch 1245-1235-16-124-24-156
+always hauf 125-16-124
+always nahauf 1345-1-125-2-16
+always frühauf 124-1235-1256-125-2-16
+begmidword stehauf 23456-2356-2-16
+begmidword viehauf 1236-346-125-2-16
+always kabeljau 13-1-12-13456-245-16
+always kauf 13-16-124
+always hypothek 125-6-13456-1234-135-2345-125-15-13
+always klinik 13-123-35-24-13
+always logistik 123-135-1245-24-23456-24-13
+always mathematik 134-1-2345-125-12356-1-2345-24-13
+always physik 1234-125-6-13456-234-24-13
+begmidword grafikauf 1245-1235-1-124-24-13-2-16
+begmidword graphikauf 1245-1235-1-1234-125-24-13-2-16
+begmidword bankauf 12-235-13-2-16
+begmidword schwenkauf 156-2456-14-13-2-16
+begmidword denkaufga 145-14-13-2-16-1245-1
+begmidword lenkauf 123-14-13-2-16
+begmidword funkauf 124-256-13-2-16
+begmidword parkauf 1234-356-13-2-16
+begmidword werkauf 2456-12456-13-2-16
+always knauf 13-1345-16-124
+always lauf 123-16-124
+always eilauftrag 146-123-2-16-2345-1245
+always eilaufträg 146-123-2-16-5-2345-1245
+always monopol 134-135-1345-135-1234-135-123
+always stuhlauf 23456-136-125-123-2-16
+always teilauf 2345-146-123-2-16
+always umlauf 136-134-123-16-124
+always schulauf 156-136-123-2-16
+midendword laufbau 123-2-16-12-16
+midendword laufnehm 123-2-16-1345-125
+midendword laufnahm 123-2-16-1345-134
+midendword laufbereitung 123-2-16-23-1235-146-2345-136
+midendword laufklär 123-2-16-13-123-345-1235
+always schallaufnehm 156-1-12345-2-16-1345-125
+always plateauform 1234-123-1-2345-15-16-124-26-134
+begmidword plateauförm 1234-123-1-2345-15-16-124-246-1235-134
+begmidword schauf 156-16-124
+begmidword geschauf 12346-156-16-124
+always mischauf 134-24-156-2-16
+always tischauf 2345-24-156-2-16
+always frischauf 124-1235-24-156-2-16
+always arschauf 356-156-2-16
+always schnauf 156-1345-16-124
+always geschnauf 12346-156-1345-16-124
+# HOMONYM
+always rauf 1235-2-16
+always raufaser 1235-16-124-1-234-12456
+always raufbold 1235-16-124-12-135-123-145
+prfword raufe 1235-16-124-15
+prfword raufen 1235-16-124-14
+always raufend 1235-16-124-14-145
+prfword raufer 1235-16-124-12456
+always rauferei 1235-16-124-12456-146
+always raufhandel 1235-16-124-125-145-13456
+always raufhändel 1235-16-124-5-125-145-13456
+midendword rauflieger 1235-2-16-123-346-1245-12456
+always rauflust 1235-16-124-123-136-23456
+always raufrost 1235-16-124-1235-135-23456
+prfword raufst 1235-16-124-23456
+always rauft 1235-16-124-2345
+always drauf 145-1235-2-16
+after r midendword auftrag 2-16-2345-1245
+after r midendword aufträg 2-16-5-2345-1245
+always lackier 123-1-46-346-1235
+always grammier 1245-1235-1-1346-346-1235
+always reparatur 1235-15-1234-356-1-2345-136-1235
+always gebühr 12346-12-1256-125-1235
+always lehrauf 123-2356-1235-2-16
+prfword raufte 1235-16-124-236
+prfword rauftest 1235-16-124-236-23456
+prfword rauftet 1235-16-124-236-2345
+always raufutter 1235-16-124-136-2345-2345-12456
+always raufuß 1235-16-124-136-2346
+always raufüß 1235-16-124-1256-2346
+begmidword wiederauf 346-145-2-16
+always trauf 2345-1235-16-124
+always sauf 234-16-124
+always glasauf 1245-123-1-234-2-16
+always standsauf 2-23456-234-2-16
+always fondsauf 124-135-1345-145-234-2-16
+always tagsauf 2345-1-1245-234-2-16
+midword ungsauf 136-234-2-16
+always reichsauf 1235-146-1456-234-2-16
+always bereichsauf 23-1235-146-1456-234-2-16
+midword ationsauf 5-1345-234-2-16
+always stücksauf 23456-1256-46-234-2-16
+always flussauf 124-123-136-2346-2-16
+always budgetsauf 12-136-145-12346-2345-234-2-16
+midword schaftsauf 156-234-2-16
+always hausauf 125-16-234-2-16
+always tauf 2345-16-124
+always spätauf 234-1234-345-2345-2-16
+always porträtauf 1234-26-2345-1235-345-2345-2-16
+always etatauf 15-2345-1-2345-2-16
+always privatauf 1234-1235-24-1236-1-2345-2-16
+always stadtauf 23456-1-145-2345-2-16
+always mietauf 134-346-2345-2-16
+always magnetauf 134-1-1245-1345-15-2345-2-16
+always budgetauf 12-136-145-12346-2345-2-16
+always internetauf 35-2345-12456-1345-15-2345-2-16
+always luftauf 123-136-124-2345-2-16
+always machtauf 134-56-2345-2-16
+always nachtauf 1345-56-2345-2-16
+always schichtauf 156-3456-2345-2-16
+always frachtauf 124-1235-56-2345-2-16
+always dichtauf 145-3456-2345-2-16
+begword lichtauf 123-3456-2345-2-16
+midword lichtauf 456-2345-2-16
+always portraitauf 1234-26-2345-1235-1-24-2345-2-16
+always kreditauf 13-1235-15-145-24-2345-2-16
+always aktauf 1-13-2345-2-16
+always nacktauf 1345-1-46-2345-2-16
+midword jektauf 245-15-13-2345-2-16
+always direktauf 145-24-1235-15-13-2345-2-16
+always marktauf 134-356-13-2345-2-16
+always schaltauf 156-25-2345-2-16
+always weltauf 2456-13456-2345-2-16
+always momentauf 134-135-134-14-2345-2-16
+always notauf 1345-135-2345-2-16
+always brotauf 12-1235-135-2345-2-16
+always startauf 23456-356-2345-2-16
+always wertauf 2456-12456-2345-2-16
+always fahrtauf 2-1235-2345-2-16
+always portauf 1234-26-2345-2-16
+always wortauf 2456-26-2345-2-16
+always bettauf 23-2345-2345-2-16
+always mattauf 134-1-2345-2345-2-16
+always ballettauf 12-1-12345-15-2345-2345-2-16
+syllable aufbau 2-16-12-16
+syllable aufsicht 2-16-234-3456-2345
+begmidword stauf 23456-16-124
+midword staufbr 23456-2-16-12-1235
+midword stauflös 23456-2-16-123-246-234
+midendword staufseher 23456-2-16-234-2356-12456
+midendword stauftrag 23456-2-16-2345-1245
+midword staufträg 23456-2-16-5-2345-1245
+begmidword gastauf 1245-1-23456-2-16
+begmidword knastauf 13-1345-1-23456-2-16
+begmidword kindstauf 13-35-145-234-2345-16-124
+begmidword postauf 1234-135-23456-2-16
+begmidword erstauf 12456-23456-2-16
+begmidword wurstauf 2456-136-1235-23456-2-16
+begmidword blutauf 12-123-136-2345-2-16
+begword textauf 2345-15-6-1346-2345-2-16
+midword textauf 236-6-1346-2345-2-16
+
+# AUS- (4.2.1 Vorsilbenkürzungen)
+begword aus 34
+word aus-\s 34-36-0
+always auschwitz 16-156-2456-24-2345-1356
+begmidword auspizi 16-234-1234-24-1356-24
+sufword austen 16-23456-14
+always auster 16-23456-12456
+sufword austin 16-23456-35
+begmidword austral 16-23456-1235-25
+begmidword australi 16-23456-1235-25-24
+always austria 16-23456-1235-24-1
+always austrones 16-23456-1235-135-1345-123456
+
+# BE  (4.1 Lautgruppenkürzungen)
+word be 12-15
+begmidword be 23
+always be-\s 23-36-0
+always be-,\s 23-36-2-0
+sufword beagl 12-15-1-1245-123
+always beamen 12-15-1-134-14
+always beamer 12-15-1-134-12456
+prfword gebeamt 12346-12-15-1-134-2345
+always beatband 12-15-1-2345-12-235-145
+always beatm 23-1-2345-134
+always beatmusik 12-15-1-2345-134-13
+begmidword beatri 23-1-2345-1235-24
+before konsonant begmidword beat 12-15-1-2345
+always offbeat 135-124-124-12-15-1-2345
+midendword stoffbeatmung 23456-135-124-124-23-1-2345-134-136
+always off-beat 135-124-124-36-12-15-1-2345
+always computerbeat 6-14-135-134-1234-136-2345-12456-12-15-1-2345
+prfword beau 12-15-16
+always beaujolais 12-15-16-245-135-123-1-24-234
+always beaulieu 12-15-16-123-24-126
+prfword beaus 12-15-16-234
+always beautiful 12-15-16-2345-24-124-136-123
+always beauty 12-15-16-2345-6-13456
+always farbecht 124-356-12-15-1456-2345
+prfword farbechte 124-356-12-15-1456-236
+always halbedel 125-25-12-15-145-13456
+prfword bee 12-15-15
+prfword beede 12-15-15-145-15
+prfword beeden 12-15-15-145-14
+always beef 12-15-15-124
+always beelz 12-15-15-123-1356
+always beep 12-15-15-1234
+prfword beer 12-15-15-1235
+prfword beere 12-15-15-1235-15
+prfword beeren 12-15-15-1235-14
+prfword beers 12-15-15-1235-234
+prfword bees 12-15-15-234
+always beet 12-15-15-2345
+prfword beete 12-15-15-236
+always beug 12-126-1245
+always halbesel 125-25-12-123456-13456
+prfword beuge 12-126-12346
+always beugebeweg 12-126-12346-23-2456-1245
+before h begmidword beuge 12-126-12346
+before m begmidword beuge 12-126-12346
+before s begmidword beuge 12-126-12346
+always beul 12-126-123
+always beuren 12-126-1235-14
+begmidword beurr 12-126-1235-1235
+always beute 12-126-236
+always beutel 12-126-2345-13456
+always beuten 12-126-2345-14
+always beuter 12-126-2345-12456
+always beutl 12-126-2345-123
+always beutn 12-126-2345-1345
+always beutung 12-126-2345-136
+always beuschel 12-126-156-13456
+always beuys 12-126-6-13456-234
+always abbey 1-12-12-15-6-13456
+always ribeyesteak 1235-24-12-15-6-13456-15-23456-15-1-13
+midword bex 12-15-6-1346
+always abebb 1-12-15-12-12
+sufword abel 1-12-13456
+always frisbee 124-1235-24-234-12-15-15
+# BEh
+always behennuss 12-2356-14-1345-136-2346
+always behennüss 12-2356-14-1345-1256-2346
+always behmlot 12-2356-134-123-135-2345
+always behr 12-2356-1235
+prfword gabbeh 1245-1-12-12-15-125
+begmidword gabbeh 1245-1-12-12-2356
+# BEl
+prfword bel 12-13456
+word bela 12-13456-1
+always belami 12-13456-1-134-24
+always belarus 12-13456-1-1235-136-234
+always belarussisch 12-13456-1-1235-136-2346-24-156
+always belcanto 12-13456-6-14-235-2345-135
+always belchen 12-13456-1456-14
+always belemnit 12-13456-12356-1345-24-2345
+always belesprit 12-13456-123456-1234-1235-24-2345
+always belfast 12-13456-124-1-23456
+always belfer 12-13456-124-12456
+begmidword belgi 12-13456-1245-24
+always belgrad 12-13456-1245-1235-1-145
+prfword belial 12-13456-24-1-123
+begmidword belial 12-13456-24-25
+prfword beliar 12-13456-24-1-1235
+begmidword beliar 12-13456-24-356
+begmidword belind 12-13456-35-145
+begmidword beliz 12-13456-24-1356
+always belkanto 12-13456-13-235-2345-135
+midendword belloch 12-13456-123-135-1456
+sufword belm 12-13456-134
+endword beln 12-13456-1345
+always belorussisch 12-13456-135-1235-136-2346-24-156
+prfword belsazar 12-13456-234-1-1356-1-1235
+begmidword belsazar 12-13456-234-1-1356-356
+sufword belt 12-13456-2345
+always beluga 12-13456-136-1245-1
+always belutsch 12-13456-136-2345-156
+begmidword belved 12-13456-1236-15-145
+always belz 12-13456-1356
+word abel 1-12-13456
+midendword derabel 145-12456-1-12-13456
+always miserabel 134-24-234-12456-1-12-13456
+always babel 12-1-12-13456
+midendword dabel 145-1-12-13456
+always permeabel 1234-12456-134-15-1-12-13456
+always fabel 124-1-12-13456
+always gabel 1245-1-12-13456
+before l begmidword eingabe 1246-1245-1-23
+before l begmidword wiedergabe 346-145-1245-1-23
+before l begword ausgabe 34-1245-1-23
+before l midword ausgabe 16-234-1245-1-23
+always variabel 1236-356-24-1-12-13456
+always justiziabel 245-136-23456-24-1356-24-1-12-13456
+always kabel 13-1-12-13456
+always label 123-1-12-13456
+begmidword flabellin 124-123-1-23-12345-35
+midendword llabel 12345-1-12-13456
+always blamabel 12-123-1-134-1-12-13456
+always nabel 1345-1-12-13456
+always inkunabel 35-13-256-1-12-13456
+always annabell 235-1345-1-23-12345
+always schnabel 156-1345-1-12-13456
+always schnäbel 156-1345-345-12-13456
+always palpabel 1234-25-1234-1-12-13456
+always rabel 1235-1-12-13456
+always parabel 1234-356-1-12-13456
+always parabellum 1234-356-1-23-12345-136-134
+always sabel 234-1-12-13456
+always isabell 24-234-1-23-12345
+always rosabell 1235-135-234-1-23-12345
+always säbel 234-345-12-13456
+always tabel 2345-1-12-13456
+always tabell 2345-1-23-12345
+always schwäbel 156-2456-345-12-13456
+always babbel 12-1-12-12-13456
+always kabbel 13-1-12-12-13456
+always quabbel 6-12345-136-1-12-12-13456
+always brabbel 12-1235-1-12-12-13456
+always grabbel 1245-1235-1-12-12-13456
+always schräbbel 156-1235-345-12-12-13456
+always krabbel 13-1235-1-12-12-13456
+always sabbel 234-1-12-12-13456
+always wabbel 2456-1-12-12-13456
+midendword ibbel 24-12-12-13456
+always goebbels 1245-135-15-12-12-13456-234
+midendword ubbel 136-12-12-13456
+always bebel 23-12-13456
+begword probebelast 12345-23-23-123-1-23456
+always hebel 125-15-12-13456
+always hebelist 125-15-23-123-24-23456
+always giebel 1245-346-12-13456
+always liebel 123-346-12-13456
+always zwiebel 1356-2456-346-12-13456
+always nebel 1345-15-12-13456
+always feldwebel 124-13456-145-2456-15-12-13456
+always bibel 12-24-12-13456
+always deibel 145-146-12-13456
+always weibel 2456-146-12-13456
+always fibel 124-24-12-13456
+always erigibel 12456-45-24-12-13456
+always reagibel 1235-15-1-1245-24-12-13456
+always fallibel 124-1-12345-24-12-13456
+always disponibel 145-24-234-1234-135-1345-24-12-13456
+always penibel 1234-14-24-12-13456
+always sibel 234-24-12-13456
+midendword tibel 2345-24-12-13456
+always flexibel 124-123-15-6-1346-24-12-13456
+always dezibel 145-15-1356-24-12-13456
+always zibel 1356-24-12-13456
+always falbel 124-25-12-13456
+always praeambel 1234-1235-1-15-1-134-12-13456
+always präambel 1234-1235-345-1-134-12-13456
+always pschyrembel 1234-156-6-13456-1235-12356-12-13456
+always zimbel 1356-24-134-12-13456
+always obelisk 135-12-13456-24-234-13
+always obelix 135-12-13456-24-6-1346
+always gobelin 1245-135-12-13456-35
+always hobel 125-135-12-13456
+always kobel 13-135-12-13456
+always möbel 134-246-12-13456
+always nobel 1345-135-12-13456
+always knobel 13-1345-135-12-13456
+always pöbel 1234-246-12-13456
+always zobel 1356-135-12-13456
+always bärbel 12-345-1235-12-13456
+always scherbel 156-12456-12-13456
+always kerbel 13-12456-12-13456
+always hyperbel 125-6-13456-1234-12456-12-13456
+before l begmidword werbe 2456-12456-23
+always schwerbeladen 156-2456-12456-23-123-1-145-14
+always wirbel 2456-24-1235-12-13456
+always zirbel 1356-24-1235-12-13456
+always kurbel 13-136-1235-12-13456
+always übel 1256-12-13456
+always menübeleg 134-14-1256-23-123-15-1245
+prfword menübelege 134-14-1256-23-123-15-12346
+always hugendubel 125-136-1245-14-145-136-12-13456
+always deubel 145-126-12-13456
+always doubel 145-135-136-12-13456
+always hubel 125-136-12-13456
+always jubel 245-136-12-13456
+always rubel 1235-136-12-13456
+always rubella 1235-136-23-12345-1
+# BEm
+endword bem 12-12356
+always bemm 23-1346
+always bemann 23-134-1345
+always bemänn 23-5-134-1345
+midendword bemaschin 23-134-156
+midendword bematerial 23-134-123
+always bemittel 23-134-2345
+midendword bemöglich 23-134-456
+midendword bemusik 23-134-13
+midendword bemuss 23-134-2346
+always bembel 12-12356-12-13456
+midendword bemail 12-12356-1-24-123
+midword bemaill 12-12356-1-24-12345
+midword bemanz 12-12356-235-1356
+midword bemball 12-12356-12-1-12345
+midword bembarg 12-12356-12-356-1245
+midendword bemblem 12-12356-12-123-12356
+midendword bembryo 12-12356-12-1235-6-13456-135
+midendword bement 12-12356-14-2345
+midendword bemerit 12-12356-12456-24-2345
+midword bemigr 12-12356-45-1245-1235
+midendword beminent 12-12356-35-14-2345
+endword beminente 12-12356-35-14-236
+midendword bemission 12-12356-24-2346-245
+midendword bemotion 12-12356-135-2345-245
+midword bempath 12-12356-1234-1-2345-125
+midendword bempfang 12-12356-1234-124-235-1245
+midword bempfäng 12-12356-1234-124-345-1345-1245
+midendword bempfehl 12-12356-1234-124-2356-123
+midendword bempfind 12-12356-1234-124-35-145
+midendword bempfund 12-12356-1234-124-256-145
+midword bemphat 12-12356-1234-125-1-2345
+endword bempor 12-12356-1234-135-1235
+midword bempor 12-12356-1234-26
+midendword bempör 12-12356-1234-246-1235
+midendword bemsig 12-12356-234-45
+midword bemul 12-12356-136-123
+# BEn
+always ben 12-14
+always benach 23-1345-56
+always benag 23-1345-1-1245
+always benahm 23-1345-134
+always benäh 23-1345-345-125
+always benähm 23-5-1345-134
+midendword benähnlich 12-14-345-456
+always benam 23-1345-1-134
+always benann 23-1345-235-1345
+always benarb 23-1345-356-12
+sufword probenarbeit 12345-12-14-356-12
+begmidword probenarbeit 1234-1235-135-12-14-356-12
+always grubenarbeit 1245-1235-136-12-14-356-12
+always benäss 23-1345-345-2346
+always benebel 23-1345-15-12-13456
+always benebel 23-1345-15-12-13456
+always benebl 23-1345-15-12-123
+always benehm 23-1345-125
+always beneid 23-1345-146-145
+always benenn 23-1345-14-1345
+always benetz 23-1345-15-2345-1356
+always benies 23-1345-346-234
+always benimm 23-1345-24-1346
+always benommen 23-1345-1346
+always benot 23-1345-135-2345
+always grubenotter 1245-1235-136-12-14-135-2345-2345-12456
+always benöt 23-1345-246-2345
+prfword benote 23-1345-135-236
+always benotest 23-1345-135-236-23456
+always benotet 23-1345-135-236-2345
+prfword benotete 23-1345-135-236-236
+prfword benotetet 23-1345-135-236-236-2345
+always benotetest 23-1345-135-236-236-23456
+midendword benötig 23-1345-246-2345-45
+midendword benummer 23-1345-136-1346-12456
+always benutz 23-1345-1356
+always benütz 23-5-1345-1356
+# BEr
+always ber 12-12456
+always berand 23-1235-235-145
+always berank 23-1235-235-13
+always berann 23-1235-235-1345
+always berapp 23-1235-1-1234-1234
+always berat 23-1235-1-2345
+always fieber 124-346-12-12456
+always beration 12-12456-5-1345
+always berät 23-1235-345-2345
+prfword berate 23-1235-1-236
+always beratet 23-1235-1-236-2345
+always beratest 23-1235-1-236-23456
+always beraub 23-1235-16-12
+always beräuch 23-1235-34-1456
+always beraum 23-1235-16-134
+always beräum 23-1235-34-134
+always berausch 23-1235-16-156
+always berech 23-1235-15-1456
+always berecht 23-1235-2345
+always schwebereck 156-2456-15-23-1235-15-46
+always bered 23-1235-15-145
+always bereed 23-1235-15-15-145
+always bereg 23-1235-15-1245
+endword berei 12-12456-146
+always berei 23-1235-146
+always berein 23-1235-1246
+endword bereien 12-12456-146-14
+always alberei 25-12-12456-146
+midendword albereich 25-23-1235-146-1456
+always reiberei 1235-146-12-12456-146
+always zauberei 1356-16-12-12456-146
+always berenn 23-1235-14-1345
+always berent 23-1235-14-1345-2345
+endword berente 23-1235-14-1345-236
+always berentet 23-1235-14-1345-236-2345
+always berentest 23-1235-14-1345-236-23456
+always bereu 23-1235-126
+always sperber 234-1234-12456-12-12456
+always bericht 23-2-3456
+always beriech 23-1235-346-1456
+always berieb 23-1235-346-12
+always berief 23-1235-346-124
+always beries 23-1235-346-234
+always beriet 23-1235-346-2345
+prfword beriete 23-1235-346-236
+prfword berietest 23-1235-346-236-23456
+prfword berietet 23-1235-346-236-2345
+always bering 23-1235-35-1245
+always oberingenieur 135-12-12456-35-1245-14-24-126-1235
+always beringmeer 12-12456-35-1245-134-15-15-1235
+always beringsee 12-12456-35-1245-234-15-15
+always beringstr 12-12456-35-1245-23456-1235
+always beritt 23-1235-24-2345-2345
+always berüch 23-1235-1256-1456
+always berück 23-1235-46
+always berüsch 23-1235-1256-156
+always beruf 23-1235-136-124
+always beruh 23-1235-136-125
+always berühm 23-1235-1256-125-134
+always berühr 23-1235-1256-125-1235
+always beruß 23-1235-136-2346
+# BEs
+prfword bes 12-123456
+always besch 23-156
+always beschlag 23-156-1245
+always beschläg 23-5-156-1245
+always beschließ 23-156-2346
+always beschleich 23-156-123-146-1456
+always beschreib 23-156-12
+always beschrieb 23-2-156
+always beschrift 23-156-2345
+always besetz 23-2-15
+always besitz 23-2-24
+always besoll 23-2-234
+always best 23-23456
+always bestimmung 23-23456-24-1346-136
+always bestand 23-2-23456
+always bestands 23-2-23456-234
+always beständ 23-5-23456
+always bestell 23-2-13456
+sufword bestrich 23-23456-1235-3456
+prfword besan 12-123456-1-1345
+always besan 12-123456-235
+always besang 23-234-235-1245
+always besandung 23-234-235-145-136
+always besann 23-234-235-1345
+always besen 12-123456-14
+midendword besendung 23-234-14-145-136
+always beseng 23-234-14-1245
+always besenginster 12-123456-14-1245-35-23456-12456
+word besenge 23-234-14-12346
+always beserl 12-123456-12456-123
+always beskiden 12-123456-13-24-145-14
+always bessarabi 23-2346-356-1-12-24
+always bessemer 23-2346-12356-12456
+always bessrung 23-2346-1235-136
+always arabesk 356-1-12-123456-13
+always arabesqu 356-1-12-123456-6-12345-136
+always grabes 1245-1235-1-12-123456
+always stabes 23456-1-12-123456
+always diebes 145-346-12-123456
+always liebes 123-346-12-123456
+always siebes 234-346-12-123456
+prfword triebes 2345-1235-346-12-123456
+before s midword triebe 2345-1235-346-23
+always leibes 123-146-12-123456
+always weibes 2456-146-12-123456
+always lobes 123-135-12-123456
+always silo 234-24-123-135
+word lobesam 123-135-23-2346
+always lobest 123-135-23-23456
+always klobesuch 13-123-135-23-234-136-1456
+begmidword robespierr 1235-135-12-123456-1234-24-12456-1235
+before s begmidword werbe 2456-12456-23
+prfword werbes 2456-12456-12-123456
+always raubes 1235-16-12-123456
+always graubeschlag 1245-1235-16-23-156-1245
+always staubes 23456-16-12-123456
+
+# BEI (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word bei 12
+always bei-\s 2-12-36-0
+always bei 2-12
+always beich 12-146-1456
+always beier 12-146-12456
+prfword beige 12-146-12346
+always beigebraun 12-146-12346-12-1235-16-1345
+always beigefarb 12-146-12346-124-356-12
+prfword beigem 12-146-1245-12356
+always beigen 12-146-1245-14
+prfword beiger 12-146-1245-12456
+prfword beiges 12-146-1245-123456
+always beigt 12-146-1245-2345
+always beigte 12-146-1245-236
+always beigten 12-146-1245-2345-14
+always beignet 12-146-1245-1345-15-2345
+always beijing 23-24-245-35-1245
+prfword beil 12-146-123
+prfword beile 12-146-123-15
+always beilen 12-146-123-14
+always beiles 12-146-123-123456
+before konsonant begmidword beil 12-146-123
+always bein 12-1246
+always beinah 2-12-1345-1-125
+always beinam 2-12-1345-1-134
+begmidword beinamput 12-1246-1-134-1234-136-2345
+always beinhal 23-35-125-25
+always beirr 23-24-1235-1235
+always beirut 12-146-1235-136-2345
+always beisel 12-146-234-13456
+always treibeis 2345-1235-146-12-146-234
+always stabeisen 23456-1-12-146-234-14
+syllable beitrag 2-12-2345-1245
+syllable beiträg 2-12-5-2345-1245
+always beiß 12-146-2346
+always beisl 12-146-234-123
+always beitel 12-146-2345-13456
+always beiz 12-146-1356
+always beizu 2-12-2-1356
+always herbei 125-12456-2-12
+always reiherbeiz 1235-146-125-12456-12-146-1356
+always beizahl 2-12-1356-123
+always beizähl 2-12-5-1356-123
+always beizäum 2-12-1356-34-134
+always beizeit 2-12-1356-2345
+always beizieh 2-12-1356-346-125
+always beizu 2-12-2-1356
+always beizung 12-146-1356-136
+always schabeisen 156-1-12-146-234-14
+always reibeisen 1235-146-12-146-234-14
+always salbei 234-25-12-146
+before i begmidword werbe 2456-12456-23
+
+# BEID (4.4 Zweiformige Kürzungen)
+always beid 12-145
+always beidräng 2-12-145-1235-345-1345-1245
+endword beidränge 2-12-145-1235-345-1345-12346
+always beidruck 2-12-145-46
+always beidrück 2-12-5-145-46
+always beidreh 2-12-145-1235-2356
+always beidürf 2-12-2-145
+
+# BEIM (4.4 Zweiformige Kürzungen)
+always beim 12-134
+always beimann 2-12-134-1345
+begmidword beimänn 2-12-5-134-1345
+always beimaß 2-12-134-1-2346
+always beimeng 2-12-134-14-1245
+always beimenge 2-12-134-14-12346
+always beimengen 2-12-134-14-1245-14
+begmidword beimess 2-12-134-15-2346
+always beimisch 2-12-134-24-156
+begmidword beimiss 2-12-134-24-2346
+always beimittel 2-12-134-2345
+begmidword beimpf 23-24-134-1234-124
+always farbeimer 124-356-12-146-134-12456
+always vorbei 2-26-2-12
+
+# BESONDER (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+word besonder 23-234-135-1345-145-12456
+always besonder 23
+begmidword werbesonder 2456-12456-23-234-135-1345-145-12456
+
+# BESSER (4.4 Zweiformige Kürzungen)
+always besser 234-234
+
+# BIS (4.4 Zweiformige Kürzungen)
+always bis 12-234
+always bisam 12-24-234-1-134
+always biscaya 12-24-234-6-14-1-6-13456-1
+always bisch 12-24-156
+always bise 12-24-234-15
+always bisen 12-24-234-14
+always bishop 12-24-234-125-135-1234
+always bisimulation 12-24-234-24-134-136-123-5-1345
+always bisk 12-24-234-13
+always bism 12-24-234-134
+midendword bismus 12-5-24
+always bison 12-24-234-135-1345
+always bisquit 12-24-234-6-12345-136-24-2345
+always biss 12-24-2346
+always biswind 12-24-234-2456-35-145
+prfword abis 1-12-24-234
+always abisolier 1-12-24-234-135-123-346-1235
+always arabisier 356-1-12-24-234-346-1235
+always cannabis 6-14-235-1345-1-12-24-234
+always chabis 1456-1-12-24-234
+always kabis 13-1-12-24-234
+always nabisco 1345-1-12-24-234-6-14-135
+always kohlrabis 13-135-125-123-1235-1-12-24-234
+always trabis 2345-1235-1-12-24-234
+always rabbis 1235-1-12-12-24-234
+prfword ibis 24-12-24-234
+always ibiss 24-12-24-2346
+always alibis 25-24-12-24-234
+always albis 25-12-24-234
+always bambis 12-1-134-12-24-234
+always kombi 13-135-134-12-24
+always kombin 13-135-134-12-35
+always nobis 1345-135-12-24-234
+always snobismus 234-1345-135-12-5-24
+always nairobis 1345-1-24-1235-135-12-24-234
+word verbis 1236-12456-12-24-234
+word corbis 6-14-26-12-24-234
+word vorbis 1236-26-12-24-234
+always kürbis 13-1256-1235-12-24-234
+always kürbisse 13-1256-1235-12-24-2346-15
+always kürbissen 13-1256-1235-12-24-2346-14
+always kürbisses 13-1256-1235-12-24-2346-123456
+always bubis 12-136-12-24-234
+always kubisch 13-136-12-24-156
+always kubismus 13-136-12-5-24
+always anubis 235-136-12-24-234
+always räbisch 1235-345-12-24-156
+always azubis 1-1356-136-12-24-234
+
+# BIST (4.4 Zweiformige Kürzungen)
+always bist 12-23456
+midendword bistisch 12-5-156
+always bistro 12-24-23456-1235-135
+always bistum 12-234-2345-136-134
+always bistüm 12-234-2345-1256-134
+always arabist 356-1-12-24-23456
+always snobistisch 234-1345-135-12-5-156
+always kubist 13-136-12-24-23456
+always kubistisch 13-136-12-5-156
+
+# BLEIB (4.4 Zweiformige Kürzungen)
+always bleib 12-12
+always bleibad 12-123-146-12-1-145
+always bleibäd 12-123-146-12-345-145
+always bleibelast 12-123-146-23-123-1-23456
+always bleibenzin 12-123-146-12-14-1356-35
+always bleiberecht 12-12-15-1235-2345
+always bleibeschwer 12-123-146-23-156-2456-12456
+always bleibüchs 12-123-146-12-1256-1456-234
+
+# BLIND (4.4 Zweiformige Kürzungen)
+always blind 12-123
+always halblind 125-25-12-123-35-145
+
+# BRAUCH BRÄUCH (4.3.6 Kommakürzungen)
+always brauch 2-34
+always bräuch 5-34
+
+# BRIEF (4.4 Zweiformige Kürzungen)
+always brief 12-124
+always briefing 12-1235-346-124-35-1245
+prfword abrief 1-12-1235-346-124
+prfword abriefen 1-12-1235-346-124-14
+prfword abriefst 1-12-1235-346-124-23456
+always schemabrief 156-12356-1-12-124
+
+# BRING (4.4 Zweiformige Kürzungen)
+always bring 12-1245
+begword abring 1-12-1235-35-1245
+prfword abringe 1-12-1235-35-12346
+always schraubring 156-1235-16-12-1235-35-1245
+prfword schraubringe 156-1235-16-12-1235-35-12346
+
+# C   (4.1 Lautgruppenkürzungen)
+word c 6-14
+always c 6-14
+# Grossgeschriebene Wortanfänge erhalten sonst keinen Pt.6!
+context ["C"]$u @6-14
+
+# CH  (4.1 Lautgruppenkürzungen)
+word ch 6-1456
+always ch 1456
+
+# CHARAKTER (4.4 Zweiformige Kürzungen)
+syllable charakter 1456-13
+
+# CK  (4.1 Lautgruppenkürzungen)
+word ck 6-14-13
+midendword ck 46
+
+# DABEI (4.4 Zweiformige Kürzungen)
+always dabei 145-12
+
+# DADURCH (4.4 Zweiformige Kürzungen)
+always dadurch 145-145
+
+# DAFÜR (4.4 Zweiformige Kürzungen)
+always dafür 145-124
+
+# DAGEGEN (4.4 Zweiformige Kürzungen)
+always dagegen 145-1245
+
+# DAHER (4.4 Zweiformige Kürzungen)
+always daher 145-125
+
+# DAMIT (4.4 Zweiformige Kürzungen)
+always damit 145-134
+always adamit 1-145-1-134-24-2345
+sufword propaganda 12345-1234-1-1245-235-145-1
+midendword propaganda 1234-1235-135-1234-1-1245-235-145-1
+
+# DANK (4.4 Zweiformige Kürzungen)
+always dank 145-13
+always dankauf 145-235-13-16-124
+always dankäuf 145-235-13-34-124
+begmidword jordank 245-26-145-235-13
+begmidword mordankl 134-26-145-235-13-123
+
+# DAS   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word das 145
+
+# DASS  (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word dass 2346
+# Alte Rechtschreibung
+word daß 2346
+
+# DARAUF (4.4 Zweiformige Kürzungen)
+always darauf 145-16
+
+# DARÜBER (4.4 Zweiformige Kürzungen)
+always darüber 145-1256
+always radarüber 1235-1-145-356-2-1256
+
+# DAVON (4.4 Zweiformige Kürzungen)
+always davon 145-1236
+
+# DAZU (4.4 Zweiformige Kürzungen)
+always dazu 145-1356
+begmidword dazubehal 145-1-2-1356-23-125-25
+always dazubleib 145-1-2-1356-12-12
+always dazuhab 145-1-2-1356-2-125
+begmidword dazuhal 145-1-2-1356-125-25
+begmidword dazulass 145-1-2-1356-2-123
+# HOMONYM
+begmidword dazulieg 145-1-2-1356-123-346-1245
+word dazumal 145-1-2-1356-134
+# HOMONYM
+begmidword dazusitz 145-1-2-1356-2-24
+# HOMONYM?
+always dazustehen 145-1-2-1356-23456-2356-14
+always pandazucht 1234-235-145-1-1356-136-1456-2345
+
+# DEM (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word dem 12356
+word dem's 12356-6-234
+always dementgegen 2-12356-14-2345-2-1245
+always dementsprechend 2-12356-14-2345-2-2346-14-145
+always demgegenüber 2-12356-1245-1256
+always demgemäß 2-12356-12346-134-345-2346
+always demjenig 2-12356-245-14-45
+always demnach 2-12356-1345-56
+always demnächst 2-12356-1345-23456
+always demselb 2-12356-234-13456-12
+always demzufolge 2-12356-2-1356-124-1245-15
+word ehedem 15-125-15-2-12356
+word alldem 1-12345-2-12356
+word seitdem 234-146-2345-2-12356
+word indem 35-2-12356
+word außerdem 16-2346-12456-2-12356
+word vordem 2-26-2-12356
+word zudem 2-1356-2-12356
+word trotzdem 2345-1356-2-12356
+
+# DEMOKRAT (4.4 Zweiformige Kürzungen)
+always demokrat 145-2345
+
+# DEN   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word den 15
+word den's 15-6-234
+
+# DENEN (4.4 Zweiformige Kürzungen)
+word denen 15-14
+
+# DENN (4.4 Zweiformige Kürzungen)
+word denn 145-1345
+word dennschon 145-1345-156-135-1345
+
+# DER   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word der 1235
+word der's 1235-6-234
+
+# DES   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word des 3
+always des-dur 145-123456-36-145-136-1235
+
+# DESSEN (4.4 Zweiformige Kürzungen)
+always dessen 145-2346
+always abendessen 1-12-14-145-15-2346-14
+always landessend 123-235-145-123456-234-14-145
+always stewardessen 23456-15-2456-356-145-15-2346-14
+
+# DEUTSCH (4.4 Zweiformige Kürzungen)
+always deutsch 145-156
+
+# DIE   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word die 346
+word die's 346-6-234
+
+# DIES (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+word dies 145-346-234
+sufword dies 346
+always diesig 145-346-234-45
+always diesseitig 145-346-234-234-146-2345-45
+always diesseits 145-346-234-234-146-2345-234
+always diesbezüglich 145-346-234-23-1356-1256-1245-456
+always diesel 145-346-234-13456
+always diesjährig 145-346-234-5-245-1235-45
+# Diese Schreibweise scheint's auch zu geben ...
+always diestelfink 145-346-23456-13456-124-35-13
+always diesterweg 145-346-23456-12456-2456-15-1245
+
+# DIR (4.4 Zweiformige Kürzungen)
+word dir 145-1235
+word dir's 145-1235-6-234
+
+# DOCH (4.4 Zweiformige Kürzungen)
+word doch 145-1456
+
+# DRUCK DRÜCK (4.4 Zweiformige Kürzungen)
+always druck 145-46
+always drück 5-145-46
+begmidword bildrück 12-24-123-145-1235-46
+begmidword goldrück 1245-135-123-145-1235-46
+begmidword landrück 123-235-145-1235-46
+begmidword handrück 125-145-1235-46
+always rundrücken 1235-256-145-1235-46-14
+midword zidrück 1356-24-145-1235-46
+
+# DURCH (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word durch 1456
+always durch-\s 2-1456-36-0
+word durch's 1456-6-234
+always durch 2-1456
+
+# DÜRF (4.3.6 Kommakürzungen)
+always dürf 2-145
+
+# EBENSO (4.4 Zweiformige Kürzungen)
+always ebenso 15-135
+always ebensolch 15-12-14-234-1456
+word eo 6-15-135
+begmidword lebensord 123-12-14-234-26-145
+begmidword nebensonn 1345-12-234-135-1345-1345
+
+# EH  (4.1 Lautgruppenkürzungen)
+midword eh 2356
+endword eh'n 2356-6-1345
+endword eh's 2356-6-234
+endword eh-\s 2356-36-0
+endword eh-,\s 2356-36-2-0
+midendword ehaar 15-125-1-1-1235
+midendword ehafen 15-125-1-124-14
+midendword ehäfen 15-125-345-124-14
+midendword ehalber 15-125-25-12-12456
+midendword ehalter 15-125-25-2345-12456
+midendword ehaltig 15-125-25-2345-45
+midendword ehaltung 15-125-25-2345-136
+midendword ehammer 15-125-1-1346-12456
+midendword ehämmer 15-125-345-1346-12456
+midendword ehand 15-125-145
+midword ehänd 15-5-125-145
+midendword ehaut 15-125-16-2345
+midword ehäut 15-125-34-2345
+endword ehäute 15-125-34-236
+midword ehebamm 15-125-15-12-1-1346
+midendword eheft 15-125-15-124-2345
+endword ehefte 15-125-15-124-236
+midword ehelf 15-125-13456-124
+midword ehemm 15-125-15-1346
+midendword eherd 15-125-12456-145
+midword steherdrüs 23456-2356-12456-145-1235-1256-234
+midword eherstell 15-125-12456-2-13456
+midendword ehilf 15-125-24-123-124
+midendword ehirt 15-125-24-1235-2345
+endword ehirte 15-125-24-1235-236
+midendword ehobel 15-125-135-12-13456
+midendword ehoch 15-125-135-1456
+midendword ehohl 15-125-135-125-123
+midendword ehöhl 15-125-246-125-123
+midendword eholz 15-125-135-123-1356
+midendword ehölz 15-125-246-123-1356
+midword ehospit 15-125-135-234-1234-24-2345
+midendword ehospiz 15-125-135-234-1234-24-1356
+midendword ehotel 15-125-135-2345-13456
+midendword ehund 15-125-256-145
+midendword ehunger 15-125-256-1245-12456
+midendword ehyd 15-125-6-13456-145
+midendword ehöchst 15-125-246-1456-23456
+endword ehöhe 15-125-246-125-15
+midendword ehöhen 15-125-246-125-14
+midword ehünd 15-125-1256-1345-145
+midword ehüt 15-125-1256-2345
+endword ehüte 15-125-1256-236
+before h begmidword bronce 12-1235-135-1345-6-14-15
+midendword dehaus 145-15-125-16-234
+always dehors 145-15-125-26-234
+midword dehäus 145-15-125-34-234
+before h begmidword gerade 12346-1235-1-145-15
+always radehack 1235-1-145-15-125-1-46
+before h begmidword bade 12-1-145-15
+before h begmidword lade 123-1-145-15
+before h begmidword jade 245-1-145-15
+before h begmidword schmiede 156-134-346-145-15
+before h begmidword siede 234-346-145-15
+always wiedehopf 2456-346-145-15-125-135-1234-124
+before h begmidword getreide 12346-2345-1235-146-145-15
+always tidehub 2345-24-145-15-125-136-12
+before h begmidword gemälde 12346-134-345-123-145-15
+before h begmidword stände 5-23456-15
+before h begmidword wende 2456-14-145-15
+before h always gemeinde 12346-134-1246-145-15
+before h begmidword gesinde 12346-234-145-15
+before h begmidword hunde 125-256-145-15
+before h begmidword freunde 124-145-15
+before h begmidword mode 134-135-145-15
+always rodehack 1235-135-145-15-125-1-46
+before h begmidword pferde 1234-124-12456-145-15
+begmidword sheeh 234-125-15-15-125
+always seehahn 234-15-15-125-1-125-1345
+begmidword seehähn 234-15-15-125-345-125-1345
+begmidword seehall 234-15-15-125-1-12345
+begmidword seehas 234-15-15-125-1-234
+always seehecht 234-15-15-125-15-1456-2345
+prfword seehechte 234-15-15-125-15-1456-236
+always seehei 234-15-15-125-146
+always seeheld 234-15-15-125-13456-145
+always seeherr 234-15-15-1235-1235
+always seeherrschaft 234-15-15-1235-1235-156-1-124-2345
+always seehimmel 234-15-15-125-24-1346-13456
+always seehügel 234-15-15-125-1256-1245-13456
+always teehaub 2345-15-15-125-16-12
+always teehaus 2345-15-15-125-16-234
+begmidword teehäus 2345-15-15-125-34-234
+before h begmidword trage 2345-1245-15
+before h begmidword wache 2456-56-15
+before h begmidword asche 1-156-15
+before h begword ehe 15-125-15
+before h begmidword mathe 134-1-2345-125-15
+before h begmidword goethe 1245-135-15-2345-125-15
+before h begmidword single 234-35-1245-123-15
+before h begmidword kohle 13-135-125-123-15
+before h begmidword vanille 1236-235-24-12345-15
+before h begmidword reklame 1235-15-13-123-1-134-15
+before h begmidword wärme 2456-345-1235-134-15
+before h begmidword sahne 234-1-125-1345-15
+before h begmidword schweine 156-2456-1246-15
+before h begmidword katrine 13-1-2345-1235-35-15
+before h begmidword inne 35-1345-15
+always hinnehm 125-35-1345-125
+prfword stonehenge 23456-135-1345-15-125-14-12346
+always stoneheng 23456-135-1345-15-125-14-1245
+always vorneher 2-26-1345-15-125-12456
+before h begmidword aloe 25-135-15
+always benzoeharz 12-14-1356-135-15-125-356-1356
+always rehaklinik 1235-15-125-1-13-123-35-24-13
+begmidword rehazentr 1235-15-125-1-1356-14-2345-1235
+always sharehold 234-125-356-15-125-135-123-145
+always warehaus 2456-356-15-125-16-234
+begmidword warehäus 2456-356-15-125-34-234
+before h begmidword säure 234-34-1235-15
+before h begmidword käse 13-345-234-15
+always nasehorn 1345-1-234-15-125-26-1345
+always nasehörn 1345-1-234-15-125-246-1235-1345
+before h begmidword speise 234-1234-146-234-15
+before h begmidword gänse 1245-345-1345-234-15
+before h begmidword löse 123-246-234-15
+before h begmidword messe 134-15-2346-15
+begmidword lausehark 123-16-234-15-125-356-13
+before h begmidword gemüse 12346-134-1256-234-15
+before h begmidword watte 2456-1-2345-236
+before h begmidword gewichte 12346-2456-3456-236
+before h begmidword brave 12-1235-1-1236-15
+before h begmidword bronze 12-1235-135-1345-1356-15
+begword itzeho 24-2345-1356-15-125-135
+
+# EI  (4.1 Lautgruppenkürzungen)
+word ei 6-146
+always ei 146
+midendword eideal 15-24-145-15-1-123
+midendword eidee 15-24-145-15-15
+begmidword schneideein 156-1345-146-145-15-1246
+midendword eidentifi 15-24-145-14-2345-24-124-24
+midendword eidentisch 15-24-145-14-2345-24-156
+midendword eidentität 15-24-145-14-2345-5-345
+midendword eideo 15-24-145-15-135
+midendword eidyll 15-24-145-6-13456-12345
+midword eignor 15-45-1345-26
+midword eikon 15-24-13-135-1345
+always reederei 1235-15-15-145-12456-146
+always fischerei 124-24-156-12456-146
+always molkerei 134-135-123-13-12456-146
+always polizei 1234-135-123-24-1356-146
+begmidword freikon 124-1235-146-13-135-1345
+midword eille 15-24-12345-15
+midword eilleus 15-24-12345-126-234
+begmidword marseill 134-356-234-15-24-12345
+midword eilloy 15-24-12345-135-6-13456
+midword eillu 15-24-12345-136
+midword eimag 15-24-134-1-1245
+midendword eimbiss 15-24-134-12-24-2346
+midword eimit 15-24-134-24-2345
+always arzneimittel 356-1356-1345-146-134-2345
+midword eimitgl 146-2-2345-1245-123
+midword eimitt 146-134-24-2345-2345
+midendword eimker 15-24-134-13-12456
+midendword eimm 15-24-1346
+midendword eimp 15-24-134-1234
+always reimpaar 1235-146-134-1234-1-1-1235
+midendword eion 15-24-135-1345
+midendword eirr 15-24-1235-1235
+before s begmidword eis 146-234
+midword eisolat 15-24-234-135-123-1-2345
+midendword eisolier 15-24-234-135-123-346-1235
+midendword eiteration 15-24-2345-12456-1-2345-245
+midendword eiterier 15-24-2345-12456-346-1235
+always beinhalt 23-35-125-25-2345
+prfword beinhalte 23-35-125-25-236
+prfword beinhaltest 23-35-125-25-236-23456
+prfword beinhaltet 23-35-125-25-236-2345
+prfword beinhaltete 23-35-125-25-236-236
+prfword beinhaltetem 23-35-125-25-236-2345-12356
+prfword beinhalteten 23-35-125-25-236-2345-14
+prfword beinhaltetes 23-35-125-25-236-2345-123456
+prfword beinhalteter 23-35-125-25-236-2345-12456
+prfword beinhaltetet 23-35-125-25-236-236-2345
+prfword beinhaltetest 23-35-125-25-236-236-23456
+word dei 145-15-24
+always deifikation 145-15-24-124-24-13-5-1345
+always deindividuation 145-15-35-145-24-1236-24-145-136-5-1345
+always deismus 145-15-5-24
+always deist 145-15-24-23456
+always deistisch 145-15-5-156
+always badeinsel 12-1-145-15-35-234-13456
+sufword fidei 124-24-145-15-24
+always codein 6-14-135-145-15-35
+always kodein 13-135-145-15-35
+midendword eeinsel 15-15-35-234-13456
+always seeigel 234-15-15-45-13456
+midendword seeisch 234-15-15-24-156
+always sightseeing 234-24-1245-125-2345-234-15-15-35-1245
+always coffein 6-14-135-124-124-15-35
+always koffein 13-135-124-124-15-35
+midendword geinhalt 12346-35-125-25-2345
+endword geinhalte 12346-35-125-25-236
+always diagnose 145-24-1-1245-1345-135-234-15
+always diagnosen 145-24-1-1245-1345-135-234-14
+always heim 125-146-134
+begword eheinstitu 15-125-15-35-23456-24-2345-136
+midword eheinstitu 2356-15-35-23456-24-2345-136
+always geheim 12346-125-146-134
+always theismus 2345-125-15-5-24
+always theist 2345-125-15-24-23456
+always theistisch 2345-125-15-5-156
+always prometheisch 1234-1235-135-134-15-2345-125-15-24-156
+always keim 13-146-134
+before i begmidword kohle 13-135-125-123-15
+always leim 123-146-134
+always galilei 1245-25-24-123-15-24
+always nuklein 1345-136-13-123-15-35
+always acrolein 1-6-14-1235-135-123-15-24-1345
+always akrolein 1-13-1235-135-123-15-35
+before i begmidword wärme 2456-345-1235-134-15
+midendword aneität 235-15-5-345
+always äneis 345-1345-15-24-234
+always aeneis 1-15-1345-15-24-234
+sufword alineier 25-35-15-346-1235
+always guineisch 1245-136-35-15-24-156
+always boeing 12-135-15-35-1245
+always nereid 1345-12456-15-24-145
+always barriereinsel 12-356-1235-24-12456-15-35-234-13456
+always kreier 13-1235-15-346-1235
+always pythagoreisch 1234-6-13456-2345-125-1-1245-26-15-24-156
+always epikureisch 15-1234-24-13-136-1235-15-24-156
+always eritreisch 12456-24-2345-1235-15-24-156
+always kureismus 13-136-1235-15-5-24
+always kasein 13-1-234-15-35
+before i begmidword kälte 13-345-123-236
+sufword protein 12345-236-35
+midendword protein 1234-1235-135-236-35
+always weight 2456-15-24-1245-125-2345
+always schweineigel 156-2456-1246-15-45-13456
+
+# EIN (4.1 Lautgruppenkürzungen)
+always ein 1246
+midendword eindex 15-35-145-15-6-1346
+midword eindik 15-35-145-24-13
+midendword eindio 15-35-145-24-135
+midendword eindiz 15-35-145-24-1356
+midword einduk 15-35-145-136-13
+midword eindust 15-35-145-136-23456
+midendword einduzier 15-35-145-136-1356-346-1235
+midword eineff 15-35-15-124-124
+midendword einfant 15-35-124-235-2345
+midword einfark 15-35-124-356-13
+midendword einfekt 15-35-124-15-13-2345
+midendword einfektion 15-35-124-15-13-2345-245
+midword einfer 15-35-124-12456
+midword einfilt 15-35-124-24-123-2345
+midendword einfinit 15-35-124-35-24-2345
+midword einfiz 15-35-124-24-1356
+midword einflat 15-35-124-123-1-2345
+midendword einfo 15-35-124-135
+midword einform 15-35-124-26-134
+midendword einfusion 15-35-124-136-234-245
+midendword eingenieur 15-35-1245-14-24-126-1235
+midword einhab 15-35-2-125
+midword einhala 15-35-125-25-1
+midendword einhalier 15-35-125-25-123-346-1235
+midword einhomo 15-35-125-135-134-135
+endword einhuman 15-35-125-136-134-1-1345
+midword einhuman 15-35-125-136-134-235
+midword einhär 15-35-125-345-1235
+midword einit 15-35-24-2345
+midword einj 15-35-245
+begmidword feinj 124-1246-245
+midword einkarn 15-35-13-356-1345
+midendword einkasso 15-35-13-1-2346-135
+midword einklu 15-35-13-123-136
+midword einkomp 15-35-13-135-134-1234
+midword einkon 15-35-13-135-1345
+midword einkonnt 1246-13-2345
+midword einkub 15-35-13-136-12
+midendword einland 15-35-123-235-145
+midendword einnen 15-35-1345-14
+midendword einner 15-35-1345-12456
+begmidword feinnerv 124-1246-1345-12456-1236
+midword einnov 15-35-1345-135-1236
+midendword einnung 15-35-1345-136
+midendword einput 15-35-1234-136-2345
+midendword einschrift 15-35-156-2345
+midendword einsekt 15-35-234-15-13-2345
+midendword einserat 15-35-234-12456-1-2345
+midendword einserent 15-35-234-12456-14-2345
+midendword einserier 15-35-234-12456-346-1235
+midendword einsert 15-35-234-12456-2345
+midendword einsider 15-35-234-24-145-12456
+midword einsign 15-35-234-45-1345
+midword einsist 15-35-234-24-23456
+midword einsolv 15-35-234-135-123-1236
+midword einspekt 15-35-234-1234-15-13-2345
+midword einspir 15-35-234-1234-24-1235
+midword einspiz 15-35-234-1234-24-1356
+midendword einstabil 15-35-23456-1-12-24-123
+midendword einstall 15-35-23456-1-12345
+midendword einstanz 15-35-23456-235-1356
+midendword einstinkt 15-35-23456-35-13-2345
+midword einstit 15-35-23456-24-2345
+midword einstrum 15-35-23456-1235-136-134
+always feinstrumpf 124-1246-23456-1235-136-134-1234-124
+midword einsul 15-35-234-136-123
+midword einszen 15-35-234-1356-14
+midword eintegr 15-35-236-1245-1235
+midword eintell 15-35-236-12345
+midword eintend 15-35-2345-14-145
+midword eintens 15-35-2345-14-234
+midword eintent 15-35-2345-14-2345
+midendword einter 15-35-2345-12456
+word vereinter 36-1246-2345-12456
+endword vereinter 1236-12456-1246-2345-12456
+word vermeinter 36-134-1246-2345-12456
+endword vermeinter 1236-12456-134-1246-2345-12456
+word verneinter 36-1345-1246-2345-12456
+endword verneinter 1236-12456-1345-1246-2345-12456
+midendword einteress 15-2-35
+midword eintol 15-35-2345-135-123
+midword eintra 15-35-2345-1235-1
+endword eintraust 1246-2345-1235-16-23456
+endword eintraute 1246-2345-1235-16-236
+midendword eintraut 1246-2345-1235-16-2345
+always eintracht 1246-2345-1235-56-2345
+always eintraf 1246-2345-1235-1-124
+always eintrag 1246-2345-1245
+always eintrat 1246-2345-1235-1-2345
+always eintratest 1246-2345-1235-1-236-23456
+always eintratet 1246-2345-1235-1-236-2345
+midword eintrig 15-35-2345-1235-45
+midendword eintro 15-35-2345-1235-135
+always eintrock 1246-2345-1235-135-46
+always eintromm 1246-2345-1235-135-1346
+always eintropf 1246-2345-1235-135-1234-124
+midword eintui 15-35-2345-136-24
+midendword einvalid 15-35-1236-25-24-145
+midendword einvasion 15-35-1236-1-234-245
+midendword einvent 15-35-1236-14-2345
+midendword einvert 15-35-1236-12456-2345
+midendword einvest 15-35-1236-15-23456
+always geeinter 12346-1246-2345-12456
+always feinver 124-1246-1236-12456
+always schein 156-1246
+always rhein 1235-125-1246
+always scheinver 156-1246-1236-12456
+always klein 13-123-1246
+always alleinver 1-1246-1236-12456
+always allgemein 1-12345-12346-134-1246
+always gemein 12346-134-1246
+always khomeini 13-125-135-134-15-35-24
+midendword vermein 1236-12456-134-1246
+midendword vernein 1236-12456-1345-1246
+always speinuss 234-1234-146-1345-136-2346
+begmidword speinüss 234-1234-146-1345-1256-2346
+always reinform 1235-1246-124-26-134
+always reinschrift 1235-1246-156-2345
+always freinahm 124-1235-146-1345-134
+always freinehm 124-1235-146-1345-125
+midendword vereinter 1236-12456-1246-2345-12456
+always datein 145-1-2345-146-1345
+always latein 123-1-2345-1246
+before i begmidword geräte 12346-1235-345-236
+always geräteinheit 12346-1235-345-2345-1246-125
+always partei 1234-356-2345-146
+always stein 23456-1246
+always wein 2456-1246
+
+# EINANDER (4.3.6 Kommakürzungen)
+always einander 2-1246
+
+# EL  (4.1 Lautgruppenkürzungen)
+word el 15-123
+always el 13456
+word elen 15-123-14
+always eel 15-15-123
+midendword eeland 15-15-123-235-145
+midendword eeländ 15-15-123-345-1345-145
+begmidword seelebewes 234-15-15-123-12-15-2456-123456
+always eelili 15-15-123-24-123-24
+always eelini 15-15-123-35-24
+always ell 15-12345
+# Alte Rechtschreibung
+begmidword helleuch 125-13456-123-126-1456
+always eell 15-15-12345
+always abaelard 1-12-1-15-123-356-145
+before l begmidword lebe 123-12-15
+always spacelab 234-1234-1-6-14-15-123-1-12
+always graceland 1245-1235-1-6-14-15-123-235-145
+always facelift 124-1-6-14-15-123-24-124-2345
+before l begmidword service 234-12456-1236-24-6-14-15
+before l begmidword bade 12-1-145-15
+always erbadel 12456-12-1-145-13456
+always stachel 23456-56-13456
+always speichel 234-1234-146-1456-13456
+always geradeleg 12346-1235-1-145-15-123-15-1245
+endword delokal 145-15-123-135-13-1-123
+begmidword delokal 145-15-123-135-13-25
+before l begmidword rede 1235-15-145-15
+before l begmidword schneide 156-1345-146-145-15
+before l begmidword glasschneide 1245-123-1-234-156-1345-146-145-15
+before l begmidword kreide 13-1235-146-145-15
+before l begmidword melde 134-13456-145-15
+before l always lande 123-235-145-15
+before l begmidword gelände 12346-123-345-1345-145-15
+before l always gemeinde 12346-134-1246-145-15
+before l always hunde 125-256-145-15
+always nadel 1345-1-145-13456
+always badelaken 12-1-145-15-123-1-13-14
+always badelatschen 12-1-145-15-123-1-2345-156-14
+begmidword brigadeleit 12-1235-45-1-145-15-123-146-2345
+always schädel 156-345-145-13456
+begmidword ladelini 123-1-145-15-123-35-24
+begmidword ladelist 123-1-145-15-123-24-23456
+before l begmidword tadel 2345-1-145-13456
+always zitadell 1356-24-2345-1-145-15-12345
+always mortadell 134-26-2345-1-145-15-12345
+always ladeluft 123-1-145-15-123-136-124-2345
+always ladeluk 123-1-145-15-123-136-13
+always schmiedelehr 156-134-346-145-15-123-2356-1235
+prfword edelleute 15-145-13456-123-126-236
+always edelleuten 15-145-13456-123-126-2345-14
+begmidword edellupin 15-145-13456-123-136-1234-35
+always heideland 125-146-145-15-123-235-145
+begmidword heidelerch 125-146-145-15-123-12456-1456
+begmidword heidelind 125-146-145-15-123-35-145
+before l begmidword scheide 156-146-145-15
+begmidword schneideleist 156-1345-146-145-15-123-146-23456
+begmidword schneideline 156-1345-146-145-15-123-35-15
+begmidword schneidelini 156-1345-146-145-15-123-35-24
+always treidell 2345-1235-146-145-13456-123
+before l begmidword getreide 12346-2345-1235-146-145-15
+always getreidelt 12346-2345-1235-146-145-13456-2345
+prfword getreidelte 12346-2345-1235-146-145-13456-236
+always weideland 2456-146-145-15-123-235-145
+always weideländ 2456-146-145-15-123-345-1345-145
+always kandelaber 13-235-145-15-13456-1-12-12456
+always pendel 1234-14-145-13456
+always abendelang 1-12-14-145-15-123-1245
+always jahrtausendelang 245-2345-15-123-1245
+begmidword sendeleist 234-14-145-15-123-146-23456
+begmidword sendeleit 234-14-145-15-123-146-2345
+begmidword sendeliz 234-14-145-15-123-24-1356
+always spindel 234-1234-35-145-13456
+always bindelader 12-35-145-15-123-1-145-12456
+always gewindelehr 12346-2456-35-145-15-123-2356-1235
+always gewindeloch 12346-2456-35-145-15-123-135-1456
+always gewindelöch 12346-2456-35-145-15-123-246-1456
+always hundeleb 125-256-145-15-123-12
+always hundelein 125-256-145-15-123-1246
+always kundelehrer 13-256-145-15-123-2356-1235-12456
+always grundeleg 1245-145-15-123-15-1245
+prfword grundelege 1245-145-15-123-15-12346
+always grundelieg 1245-145-15-123-346-1245
+prfword grundeliege 1245-145-15-123-346-12346
+always codelist 6-14-135-145-15-123-24-23456
+always jodel 245-135-145-13456
+always modeladen 134-135-145-15-123-1-145-14
+always modeläden 134-135-145-15-123-345-145-14
+begmidword modelaun 134-135-145-15-123-16-1345
+prfword modelinie 134-135-145-15-123-35-24-15
+always modelinien 134-135-145-15-123-35-24-14
+always rodeland 1235-135-145-15-123-235-145
+always trödel 2345-1235-246-145-13456
+always pferdeläng 1234-124-12456-145-15-5-123-1245
+always pferdeleib 1234-124-12456-145-15-123-146-12
+prfword pferdeleine 1234-124-12456-145-15-123-1246-15
+always pferdeleinen 1234-124-12456-145-15-123-1246-14
+always pferdelieb 1234-124-12456-145-15-123-346-12
+always pferdelotto 1234-124-12456-145-15-123-135-2345-2345-135
+before l begmidword förde 124-246-1235-145-15
+always bürdelast 12-1256-1235-145-15-123-1-23456
+always würdelos 1256-15-123-135-234
+before l begmidword nudel 1345-136-145-13456
+always strudel 23456-1235-136-145-13456
+always freudeleer 124-1235-126-145-15-123-15-15-1235
+always freudelos 124-1235-126-145-15-123-135-234
+begmidword gebäudeleit 12346-12-34-145-15-123-146-2345
+midendword eelicht 15-15-456-2345
+begmidword werbeelemen 2456-12456-23-13456-12356-14
+begmidword ladeelektr 123-1-145-15-13456-15-13-2345-1235
+begmidword codeelemen 6-14-135-145-15-13456-12356-14
+always hundeelend 125-256-145-15-13456-14-145
+begmidword kohleelektr 13-135-125-123-15-13456-15-13-2345-1235
+begmidword masseelektr 134-1-2346-15-13456-15-13-2345-1235
+begmidword werteelektr 2456-12456-236-13456-15-13-2345-1235
+always tafelland 2345-1-124-13456-123-235-145
+always tafelleim 2345-1-124-13456-123-146-134
+always tafelleinen 2345-1-124-13456-123-1246-14
+begmidword tafelleuch 2345-1-124-13456-123-126-1456
+begmidword tafelländ 2345-1-124-13456-123-345-1345-145
+always schwefel 156-2456-15-124-13456
+always stiefel 23456-346-124-13456
+always staffel 23456-1-124-124-13456
+always trüffel 2345-1235-1256-124-124-13456
+always zweifellos 1356-2456-146-124-13456-123-135-234
+begmidword hilfelehr 125-24-123-124-15-123-2356-1235
+begmidword hilfeleist 125-24-123-124-15-123-146-23456
+begmidword hilfeliefer 125-24-123-124-15-123-346-124-12456
+always gipfel 1245-24-1234-124-13456
+always schaufel 156-16-124-13456
+always hufeland 125-136-124-15-123-235-145
+always hufeländ 125-136-124-15-123-345-1345-145
+always legeleist 123-15-12346-123-146-23456
+before l begmidword vorlege 2-26-123-15-12346
+before l begmidword wege 2456-1245-15
+before l begmidword steige 23456-146-12346
+begmidword naheleg 1345-1-125-15-123-15-1245
+prfword nahelege 1345-1-125-15-123-15-12346
+begmidword nahelieg 1345-1-125-15-123-346-1245
+prfword naheliege 1345-1-125-15-123-346-12346
+always rachelust 1235-56-15-123-136-23456
+begmidword rachelüst 1235-56-15-123-1256-23456
+always knöchel 13-1345-246-1456-13456
+always aschelump 1-156-15-123-136-134-1234
+always schellack 156-13456-123-1-46
+begmidword wäschelein 2456-345-156-15-123-1246
+sufword eheleb 15-125-15-123-12
+midword eheleb 2356-15-123-12
+sufword eheleiblich 15-125-15-123-146-12-456
+midendword eheleiblich 2356-15-123-146-12-456
+word eheleute 15-125-15-123-126-236
+midendword eheleute 2356-15-123-126-236
+word eheleuten 15-125-15-123-126-2345-14
+midendword eheleuten 2356-15-123-126-2345-14
+sufword ehelich 15-125-15-456
+midendword ehelich 2356-15-456
+sufword ehelos 15-125-15-123-135-234
+midendword ehelos 2356-15-123-135-234
+always weihelied 2456-146-125-15-123-346-145
+always hohelied 125-135-125-15-123-346-145
+begmidword mathelehr 134-1-2345-125-15-123-2356-1235
+before l begmidword goethe 1245-135-15-2345-125-15
+always mühelos 134-1256-125-15-123-135-234
+before l begmidword ruhe 1235-136-125-15
+always jelieber 245-15-123-346-12-12456
+always jelänger 245-15-5-123-1245-12456
+before l begmidword lake 123-1-13-15
+always makellos 134-1-13-13456-123-135-234
+always fackel 124-1-46-13456
+always sockel 234-135-46-13456
+always spikeloch 234-1234-24-13-15-123-135-1456
+always spikelöch 234-1234-24-13-15-123-246-1456
+begmidword getränkelad 12346-2345-1235-345-1345-13-15-123-1-145
+always bänkellied 12-345-1345-13-13456-123-346-145
+before l begmidword geschenke 12346-156-14-13-15
+always schenkel 156-14-13-13456
+always dunkel 145-256-13-13456
+always schnörkel 156-1345-246-1235-13-13456
+always muskel 134-136-234-13-13456
+always pökel 1234-246-13-13456
+begmidword ensembleleist 14-234-12356-12-123-15-123-146-23456
+always candlelight 6-14-235-145-123-15-123-24-1245-125-2345
+before l begmidword kohle 13-135-125-123-15
+always teilelager 2345-146-123-15-123-1-1245-12456
+begmidword teilelist 2345-146-123-15-123-24-23456
+always emaillelack 12356-1-24-12345-15-123-1-46
+before l begmidword koschenille 13-135-156-14-24-12345-15
+before l begmidword reklame 1235-15-13-123-1-134-15
+always memelland 134-12356-13456-123-235-145
+always memelländ 134-12356-13456-123-345-1345-145
+always nahmelager 1345-134-15-123-1-1245-12456
+always nahmelamp 1345-134-15-123-1-134-1234
+always nahmeland 1345-134-15-123-235-145
+always nahmelauf 1345-134-15-123-16-124
+always nahmeleit 1345-134-15-123-146-2345
+always nahmelicht 1345-134-15-456-2345
+always nahmelini 1345-134-15-123-35-24
+always nahmelist 1345-134-15-123-24-23456
+always nahmeländ 1345-134-15-123-345-1345-145
+always nahmeläuf 1345-134-15-123-34-124
+always sammel 234-1-1346-13456
+always homeland 125-135-134-15-123-235-145
+always armeleute 356-134-15-123-126-236
+before l begmidword ärmel 345-1235-134-13456
+begmidword wärmelehr 2456-345-1235-134-15-123-2356-1235
+begmidword wärmeleist 2456-345-1235-134-15-123-146-23456
+begmidword wärmeleit 2456-345-1235-134-15-123-146-2345
+before l begmidword quarantäne 6-12345-136-356-235-2345-345-1345-15
+before l begmidword szene 234-1356-14-15
+before l begmidword sahne 234-1-125-1345-15
+before l begmidword saigne 234-1-24-1245-1345-15
+always schweinelend 156-2456-1246-15-123-14-145
+before l begmidword marine 134-356-35-15
+always annelies 235-1345-15-123-346-234
+begmidword annelieschen 235-1345-15-123-346-234-1456-14
+always minnelied 134-35-1345-15-123-346-145
+always tunnel 2345-256-1345-13456
+begmidword hannelor 125-235-1345-15-123-26
+begmidword marnelini 134-356-1345-15-123-35-24
+always stapel 23456-1-1234-13456
+begmidword pipelin 1234-24-1234-15-123-35
+always ampel 1-134-1234-13456
+always doppel 145-135-1234-1234-13456
+always stoppel 23456-135-1234-1234-13456
+always skrupel 234-13-1235-136-1234-13456
+before l begmidword software 234-135-124-2345-2456-356-15
+before l begmidword timbre 2345-24-134-12-1235-15
+before l begmidword karriere 13-356-1235-24-12456-15
+always schwerelos 156-2456-12456-15-123-135-234
+always jahrelang 245-1235-15-123-1245
+always ireland 24-1235-15-123-235-145
+always wireless 2456-24-1235-15-123-15-2346
+begmidword irrelei 24-1235-1235-15-123-146
+begmidword säurelös 234-34-1235-15-123-246-234
+before l begmidword türe 2345-1256-1235-15
+before l begmidword venture 1236-14-2345-136-1235-15
+before l begmidword basel 12-1-234-13456
+before l begmidword striptease 23456-1235-24-1234-2345-15-1-234-15
+always faseleber 124-1-234-13456-15-12-12456
+always naselang 1345-1-234-15-123-1245
+begmidword naseläng 1345-1-234-15-5-123-1245
+always leselamp 123-123456-15-123-1-134-1234
+always leselist 123-123456-15-123-24-23456
+always diesellok 145-346-234-13456-123-135-13
+always kiesel 13-346-234-13456
+begmidword leselup 123-123456-15-123-136-1234
+always leselämp 123-123456-15-123-345-134-1234
+before l begmidword wechsel 2456-15-1456-234-13456
+always chaiselong 1456-1-24-234-15-123-135-1345-1245
+before l begmidword speise 234-1234-146-234-15
+before l begmidword reise 1235-146-234-15
+before l begmidword gänse 1245-345-1345-234-15
+before l begmidword insel 35-234-13456
+before l begmidword narkose 1345-356-13-135-234-15
+always mosel 134-135-234-13456
+before l begmidword presse 1234-1235-15-2346-15
+begmidword masseleist 134-1-2346-15-123-146-23456
+always masselos 134-1-2346-15-123-135-234
+begmidword masseleit 134-1-2346-15-123-146-2345
+begmidword messeleit 134-15-2346-15-123-146-2345
+always rosselenker 1235-135-2346-15-123-14-13-12456
+before l begmidword fessel 124-15-2346-13456
+before l begmidword interesse 2-35-15
+before l begmidword sessel 234-15-2346-13456
+always rätsel 1235-345-2345-234-13456
+always brauselimo 12-1235-16-234-15-123-24-134-135
+always mauseloch 134-16-234-15-123-135-1456
+begmidword mauselöch 134-16-234-15-123-246-1456
+always kräusel 13-1235-34-234-13456
+always käselaib 13-345-234-15-123-1-24-12
+before l begmidword gemüse 12346-134-1256-234-15
+before l begmidword analyse 235-25-6-13456-234-15
+before l begmidword gäste 1245-345-23456-15
+begmidword gutelaun 1245-136-236-123-16-1345
+before l begmidword jahrhunderte 245-125-15
+before l begmidword pleuel 1234-123-126-13456
+always reuelos 1235-126-15-123-135-234
+always cleveland 6-14-123-15-1236-15-123-235-145
+always havelland 125-1-1236-13456-123-235-145
+begmidword havelländ 125-1-1236-13456-123-345-1345-145
+always shavelotion 234-125-1-1236-15-123-135-2345-245
+before l begmidword reserve 1235-123456-12456-1236-15
+always eyeliner 15-6-13456-15-123-35-12456
+before l begmidword einzel 1246-1356-13456
+always einzeller 1246-1356-15-12345-12456
+always einzellig 1246-1356-15-12345-45
+before l begmidword bronze 12-1235-135-1345-1356-15
+always herzeleid 125-12456-1356-15-123-146-145
+before l begmidword wurzel 2456-136-1235-1356-13456
+before l begmidword kürzel 5-13-1356-13456
+
+# EM  (4.1 Lautgruppenkürzungen)
+word em 15-134
+always em 12356
+always emm 15-1346
+after e midendword machen 134-56-14
+after e midendword macher 134-56-12456
+after e midendword mädchen 134-345-145-1456-14
+after e midendword magazin 134-1-1245-1-1356-35
+after e endword magnete 134-1-1245-1345-15-236
+after e midendword magnet 134-1-1245-1345-15-2345
+after e midword mähdresch 134-345-125-145-1235-15-156
+after e endword mähne 134-345-125-1345-15
+after e midendword mähnen 134-345-125-1345-14
+after e midendword manager 134-235-1-1245-12456
+after e midendword mangel 134-235-1245-13456
+after e midendword mängel 134-345-1345-1245-13456
+after e midendword manier 134-235-346-1235
+after e midword manipul 134-235-24-1234-136-123
+midendword emann 15-134-1345
+midendword emänn 15-5-134-1345
+after e midendword mantel 134-235-2345-13456
+after e midendword mäntel 134-345-1345-2345-13456
+after e midendword manöver 134-235-246-1236-12456
+after e endword mappe 134-1-1234-1234-15
+after e midendword mappen 134-1-1234-1234-14
+after e midendword marie 134-356-346
+after e midendword marien 134-356-24-14
+after e midendword mark 134-356-13
+after e midword märk 134-345-1235-13
+after e midendword marsch 134-356-156
+after e midword märsch 134-345-1235-156
+after e midword maschin 134-156
+after e midendword maserung 134-1-234-12456-136
+after e endword maske 134-1-234-13-15
+after e midendword masken 134-1-234-13-14
+after e midendword maskottchen 134-1-234-13-135-2345-2345-1456-14
+after e midendword maß 134-1-2346
+after e endword masse 134-1-2346-15
+after e midendword massen 134-1-2346-14
+after e midendword mäßig 134-345-2346-45
+after e midendword mast 134-1-23456
+after e midword mäst 134-345-23456
+after e midendword material 134-123
+after e midendword matrix 134-1-2345-1235-24-6-1346
+after e midendword matriz 134-1-2345-1235-24-1356
+after e endword matte 134-1-2345-236
+after e midendword matten 134-1-2345-2345-14
+after e midendword mauer 134-16-12456
+after e midendword mäuer 134-34-12456
+after e midendword mechanismen 134-15-1456-235-24-234-134-14
+after e midendword mechanismus 134-15-1456-235-5-24
+after e midword medaill 134-15-145-1-24-12345
+after e midendword medizin 134-15-145-24-1356-35
+after e midendword mehl 134-2356-123
+after e midendword meister 134-146-23456-12456
+after e midendword melder 134-13456-145-12456
+after e midendword meldung 134-13456-145-136
+after e midendword melken 134-13456-13-14
+after e midendword melker 134-13456-13-12456
+after e midendword melodie 134-13456-135-145-346
+after e midendword melodien 134-13456-135-145-24-14
+after e midendword merkmal 134-12456-13-134
+after e midendword messer 134-15-2346-12456
+after e midendword messung 134-15-2346-136
+after e midword method 134-15-2345-125-135-145
+after e endword metzg 134-15-2345-1356-1245
+after e midword metzg 134-15-2345-1356-1245
+after e midendword mikro 134-24-13-1235-135
+after e midendword minister 134-35-24-23456-12456
+after e endword minute 134-35-136-236
+after e midendword minuten 134-35-136-2345-14
+after e midendword mischung 134-24-156-136
+after e midendword mitarbeit 2-2345-356-12
+after e midendword mitteil 2-2345-2345-146-123
+after e midendword mittel 134-2345
+after e midendword modell 134-135-145-15-12345
+after e endword modi 134-135-145-24
+after e midword modifi 134-135-145-24-124-24
+after e midendword modul 134-135-145-136-123
+after e midendword modus 134-135-145-136-234
+after e midendword möglich 134-456
+after e midendword moment 134-135-134-14-2345
+after e endword momente 134-135-134-14-236
+after e midendword monat 134-135-1345-1-2345
+after e endword monate 134-135-1345-1-236
+after e midendword moor 134-135-135-1235
+after e endword mord 134-26-145
+after e midendword mords 134-26-145-234
+after e midendword mörder 134-246-1235-145-12456
+after e midendword mörtel 134-246-1235-2345-13456
+after e midendword motiv 134-135-2345-24-1236
+after e endword motor 134-135-2345-135-1235
+after e midword motor 134-135-2345-26
+after e endword motte 134-135-2345-236
+after e midendword motten 134-135-2345-2345-14
+after e midendword motto 134-135-2345-2345-135
+after e midendword müd 134-1256-145
+after e midendword muffel 134-136-124-124-13456
+after e midendword mühl 134-1256-125-123
+after e midendword mund 134-256-145
+after e midword münd 134-1256-1345-145
+after e endword münz 134-1256-1345-1356
+after e midword münz 134-1256-1345-1356
+after e midendword museen 134-136-234-15-14
+after e midendword museum 134-136-234-15-136-134
+after e midendword musik 134-13
+after e midendword muskel 134-136-234-13-13456
+after e midendword muster 134-136-23456-12456
+after e midendword mutter 134-136-2345-2345-12456
+after e midendword mütter 134-1256-2345-2345-12456
+after e endword mütze 134-1256-2345-1356-15
+after e midendword mützen 134-1256-2345-1356-14
+# In der Not ...
+midendword emachen 15-134-56-14
+midendword emacher 15-134-56-12456
+midendword emacht 15-134-56-2345
+endword emachte 15-134-56-236
+always emacho 15-134-1-1456-135
+always emaschin 15-134-156
+before m begmidword reggae 1235-15-1245-1245-1-15
+always anaemia 235-1-15-134-24-1
+before m begmidword werbe 2456-12456-23
+before m begmidword geschiebe 12346-156-346-23
+always lebemann 123-12-15-134-1345
+begmidword lebemänn 123-12-15-5-134-1345
+begmidword klebemod 13-123-15-23-134-135-145
+before m begmidword peace 1234-15-1-6-14-15
+always pacemaker 1234-1-6-14-15-134-1-13-12456
+before m begmidword service 234-12456-1236-24-6-14-15
+before m always renaissance 1235-14-1-24-2346-235-6-14-15
+before m begmidword schmiede 156-134-346-145-15
+before m begmidword rede 1235-15-145-15
+always redempt 1235-15-145-12356-1234-2345
+begmidword modemasch 134-135-145-15-134-1-156
+always modemensch 134-135-145-15-134-14-156
+before m begmidword streiche 23456-1235-146-1456-15
+prfword streichem 23456-1235-146-1456-12356
+sufword dematerial 145-15-134-123
+midword demoorganis 145-12356-135-26-1245-235-24-234
+before m begmidword bade 12-1-145-15
+before m begmidword jade 245-1-145-15
+before m always lade 123-1-145-15
+before m begmidword selfmade 234-13456-124-134-1-145-15
+begmidword rademach 1235-1-145-15-134-56
+before m begmidword parade 1234-356-1-145-15
+before m begmidword gerade 12346-1235-1-145-15
+prfword geradem 12346-1235-1-145-12356
+before m begmidword rede 1235-15-145-15
+always vademecum 1236-1-145-15-134-15-6-14-136-134
+endword demenge 145-15-134-14-12346
+midendword demengen 145-15-134-14-1245-14
+before m begmidword heide 125-146-145-15
+before m begmidword scheide 156-146-145-15
+before m begmidword schneide 156-1345-146-145-15
+before m begmidword kreide 13-1235-146-145-15
+before m begmidword getreide 12346-2345-1235-146-145-15
+before m begmidword weide 2456-146-145-15
+always tidemittel 2345-24-145-15-134-2345
+before m begmidword gilde 1245-24-123-145-15
+before m begmidword lande 123-235-145-15
+before m begmidword gelände 12346-123-345-1345-145-15
+before m begmidword sende 234-14-145-15
+prfword sendem 234-14-145-12356
+before m begmidword wende 2456-14-145-15
+before m begmidword binde 12-35-145-15
+before m begmidword gemeinde 12346-134-1246-145-15
+always hindemith 125-35-145-15-134-24-2345-125
+before m begmidword gesinde 12346-234-145-15
+before m begmidword hunde 125-256-145-15
+before m begmidword kunde 13-256-145-15
+always modemach 134-135-145-15-134-56
+always modemagazin 134-135-145-15-134-1-1245-1-1356-35
+always modemark 134-135-145-15-134-356-13
+always modemess 134-135-145-15-134-15-2346
+before m begmidword garde 1245-356-145-15
+before m begmidword pferde 1234-124-12456-145-15
+before m always gebäude 12346-12-34-145-15
+prfword freeman 124-1235-15-15-134-1-1345
+begmidword freeman 124-1235-15-15-134-235
+always reemtsma 1235-15-15-134-2345-234-134-1
+before m always see 234-15-15
+always freemail 124-1235-15-15-134-1-24-123
+always agreement 1-1245-1235-15-15-134-14-2345
+before m begmidword hilfe 125-24-123-124-15
+before m begmidword sage 234-1245-15
+before m begmidword wege 2456-1245-15
+before m begmidword sprache 234-1234-15
+always sprachempfind 234-1234-12356-1234-124-35-145
+before m begmidword epoche 15-1234-135-1456-15
+before m begmidword recherche 1235-15-1456-12456-1456-15
+before m begmidword wäsche 2456-345-156-15
+before m begmidword tusche 2345-136-156-15
+before m begmidword watsche 2456-1-2345-156-15
+before m begword ehe 15-125-15
+sufword ehemalig 15-125-15-134-45
+midendword ehemalig 2356-15-134-45
+sufword ehemals 15-125-15-134-234
+midendword ehemals 2356-15-134-234
+before m always anleihe 235-123-146-125-15
+before m always ruhe 1235-136-125-15
+begmidword tantiem 2345-235-2345-24-12356
+always jemals 245-15-134-234
+before m begmidword anke 235-13-15
+endword ankem 235-13-12356
+before m begmidword getränke 12346-2345-1235-345-1345-13-15
+before m always stärke 23456-345-1235-13-15
+before m always ensemble 14-234-12356-12-123-15
+always allemal 1-15-134
+before m begmidword gentle 1245-14-2345-123-15
+before m always spiele 2-346-15
+always telemedien 2345-13456-15-134-15-145-24-14
+always telemedium 2345-13456-15-134-15-145-24-136-134
+always telemeter 2345-13456-15-134-15-2345-12456
+always telemetrie 2345-13456-15-134-15-2345-1235-346
+always telemetrisch 2345-13456-15-134-15-2345-1235-24-156
+before m begmidword kohle 13-135-125-123-15
+before m begmidword fälle 5-124-12345-15
+always horlemann 125-26-123-15-134-235-1345
+endword memenge 134-15-134-14-12346
+midendword memengen 134-15-134-14-1245-14
+before m begmidword reklame 1235-15-13-123-1-134-15
+midendword nahmemensch 1345-134-15-134-14-156
+always fememord 124-12356-15-134-26-145
+always fememörder 124-12356-15-134-246-1235-145-12456
+before m begmidword filme 124-24-123-134-15
+begmidword filmempfind 124-24-123-134-12356-1234-124-35-145
+before m begmidword wärme 2456-345-1235-134-15
+always dänemark 145-345-1345-15-134-356-13
+before m begmidword hygiene 125-6-13456-1245-24-14-15
+prfword reinem 1235-1246-12356
+before m begmidword reine 1235-1246-15
+before m begmidword schweine 156-2456-1246-15
+before m begmidword gabardine 1245-1-12-356-145-35-15
+before m begmidword margarine 134-356-1245-356-35-15
+before m begmidword marine 134-356-35-15
+prfword marinem 134-356-35-12356
+before m begmidword sohne 234-135-125-1345-15
+before m begmidword söhne 234-246-125-1345-15
+before m begmidword popeline 1234-135-1234-13456-35-15
+before m begmidword online 135-1345-123-35-15
+before m begmidword routine 1235-135-136-2345-35-15
+before m begmidword sahne 234-1-125-1345-15
+before m begmidword sühne 234-1256-125-1345-15
+midword nemach 1345-15-134-56
+endword nemenge 1345-15-134-14-12346
+midendword nemengen 1345-15-134-14-1245-14
+always annemarie 235-1345-15-134-356-346
+before m begmidword wonne 2456-135-1345-1345-15
+always grönemeyer 1245-1235-246-1345-15-134-15-6-13456-12456
+always warnemünd 2456-356-1345-15-134-1256-1345-145
+always remagen 1235-15-134-1-1245-14
+always remake 1235-15-134-1-13-15
+always remakes 1235-15-134-1-13-123456
+always rematerial 1235-15-134-123
+always remark 1235-15-134-356-13
+before m begmidword hardware 125-356-145-2456-356-15
+before m begmidword karriere 13-356-1235-24-12456-15
+always genremaler 1245-14-1235-15-134-25-12456
+before m begmidword genre 1245-14-1235-15
+always entremet 14-2345-1235-15-134-15-2345
+always outremont 135-136-2345-1235-15-134-135-1345-2345
+before m begmidword ampere 1-134-1234-12456-15
+begmidword irremach 24-1235-1235-15-134-56
+before m begmidword säure 234-34-1235-15
+before m begmidword gebläse 12346-12-123-345-234-15
+begmidword kasemat 13-1-234-15-134-1-2345
+before m begmidword käse 13-345-234-15
+before m begmidword lese 123-123456-15
+before m begmidword geräusche 12346-1235-34-156-15
+begmidword geräuschempfind 12346-1235-34-156-12356-1234-124-35-145
+before m begmidword speise 234-1234-146-234-15
+before m begmidword reise 1235-146-234-15
+prfword greisem 1245-1235-146-234-12356
+before m begmidword gänse 1245-345-1345-234-15
+before m always narkose 1345-356-13-135-234-15
+before m begmidword löse 123-246-234-15
+prfword lösem 123-246-234-12356
+before m begword prognose 12345-1245-1345-135-234-15
+before m midword prognose 1234-1235-135-1245-1345-135-234-15
+begmidword rosemar 1235-135-234-15-134-356
+before m always baisse 12-1-24-2346-15
+before m always crosse 6-14-1235-135-2346-15
+before m always hausse 125-16-2346-15
+before m begmidword gehäuse 12346-125-34-234-15
+before m begmidword läuse 123-34-234-15
+always krauseminz 13-1235-16-234-15-134-35-1356
+before m begmidword gemüse 12346-134-1256-234-15
+before m begmidword schmuse 156-134-136-234-15
+before m begmidword analyse 235-25-6-13456-234-15
+always posemuckel 1234-135-234-15-134-136-46-13456
+endword temal 236-134
+always sitemap 234-24-236-134-1-1234
+before m begmidword geschäfte 1245-124-15
+before m begmidword kräfte 5-13-124-15
+before m begmidword gerüchte 12346-1235-1256-1456-236
+before m begword projekte 12345-245-15-13-236
+before m midword projekte 1234-1235-135-245-15-13-236
+before m always ernte 12456-1345-236
+prfword erntem 12456-1345-2345-12356
+always kerntem 13-12456-1345-2345-12356
+begmidword lerntemp 123-12456-1345-2345-12356-1234
+endword stemal 23456-15-134
+before m begmidword watte 2456-1-2345-236
+before m begmidword motte 134-135-2345-236
+before m begmidword bräute 12-1235-34-236
+before m begmidword leute 123-126-236
+begmidword travemünd 2345-1235-1-1236-15-134-1256-1345-145
+begmidword livemit 123-24-1236-15-2-2345
+before m begmidword parallaxe 1234-356-1-12345-1-6-1346-15
+before m begmidword vize 1236-24-1356-15
+before m begmidword bronze 12-1235-135-1345-1356-15
+before m begmidword katze 13-1-2345-1356-15
+before m begmidword witze 2456-24-2345-1356-15
+before m begmidword krätze 13-1235-345-2345-1356-15
+before m begmidword butze 12-136-2345-1356-15
+
+# EN  (4.1 Lautgruppenkürzungen)
+word en 15-1345
+always en 14
+begmidword werbenach 2456-12456-23-1345-56
+prfword gabename 1245-1-23-1345-1-134-15
+always gabenamen 1245-1-23-1345-1-134-14
+always beneath 23-1345-15-1-2345-125
+always gabeneigung 1245-1-23-1345-146-1245-136
+always werbeneuheit 2456-12456-23-1345-126-125
+always habenichts 2-125-15-1345-234
+sufword probenummer 12345-23-1345-136-1346-12456
+midendword probenummer 1234-1235-135-23-1345-136-1346-12456
+always werbenummer 2456-12456-23-1345-136-1346-12456
+always servicenetz 234-12456-1236-24-6-14-15-1345-15-2345-1356
+begmidword serviceniv 234-12456-1236-24-6-14-15-1345-24-1236
+always denatur 145-15-1345-2345
+always denazifiz 145-15-1345-1-1356-24-124-24-1356
+always sendenetz 234-14-145-15-1345-15-2345-1356
+always denerv 145-15-1345-12456-1236
+begmidword badenix 12-1-145-15-1345-24-6-1346
+always schmiedenagel 156-134-346-145-15-1345-1-1245-13456
+begmidword heidenelk 125-146-145-15-1345-13456-13
+begmidword weidenutz 2456-146-145-15-1345-1356
+always meldenam 134-13456-145-15-1345-1-134
+always meldenetz 134-13456-145-15-1345-15-2345-1356
+always meldenot 134-13456-145-15-1345-135-2345
+always hundenapf 125-256-145-15-1345-1-1234-124
+begmidword hundenam 125-256-145-15-1345-1-134
+always hundenarr 125-256-145-15-1345-356-1235
+begmidword hundenärr 125-256-145-15-1345-345-1235-1235
+begmidword hundenas 125-256-145-15-1345-1-234
+always gemeindeneu 12346-134-1246-145-15-1345-126
+always odenam 135-145-15-1345-1-134
+always modenarr 134-135-145-15-1345-356-1235
+always modenärr 134-135-145-15-1345-345-1235-1235
+begmidword pferdenas 1234-124-12456-145-15-1345-1-234
+always pferdenarr 1234-124-12456-145-15-1345-356-1235
+begmidword pferdenärr 1234-124-12456-145-15-1345-345-1235-1235
+always pferdenatur 1234-124-12456-145-15-1345-2345
+always pferdenüster 1234-124-12456-145-15-1345-1256-23456-12456
+always aberdeen 1-12-12456-145-15-15-1345
+sufword eileen 146-123-15-15-1345
+always spleen 234-1234-123-15-15-1345
+always screen 234-6-14-1235-15-15-1345
+always green 1245-1235-15-15-1345
+always seenadel 234-15-15-1345-1-145-13456
+always seeniveau 234-15-15-1345-24-1236-15-16
+always teenager 2345-15-15-1345-1-1245-12456
+prfword steen 23456-15-15-1345
+prfword steens 23456-15-15-1345-234
+always ideenarm 24-145-15-14-356-134
+always seenartig 234-15-14-356-2345-45
+begmidword ideenassozi 24-145-15-14-1-2346-135-1356-24
+always ideenaustausch 24-145-15-14-16-234-2345-16-156
+always colleen 6-14-135-12345-15-15-1345
+prfword armeen 356-134-15-14
+begmidword seenelk 234-15-15-1345-13456-13
+begmidword peenemünd 1234-15-15-1345-15-134-1256-1345-145
+always freenet 124-1235-15-15-1345-15-2345
+sufword maureen 134-16-1235-15-15-1345
+always seenot 234-15-15-1345-135-2345
+begmidword seenöt 234-15-15-1345-246-2345
+prfword seenöt 234-15-15-1345-246-236
+begmidword seenymph 234-15-15-1345-6-13456-134-1234-125
+always seenäh 234-15-15-1345-345-125
+begmidword seenäh 234-15-15-1345-345-125
+always teenie 2345-15-15-1345-346
+always teeny 2345-15-15-1345-6-13456
+begmidword hilfenahm 125-24-123-124-15-1345-134
+always hilfeniveau 125-24-123-124-15-1345-24-1236-15-16
+always zeigenadel 1356-146-12346-1345-1-145-13456
+prfword hängenase 125-345-1345-12346-1345-1-234-15
+always hängenasen 125-345-1345-12346-1345-1-234-14
+always spionagenetz 234-1234-24-135-1345-1-12346-1345-15-2345-1356
+always wegenetz 2456-1245-15-1345-15-2345-1356
+always taugenichts 2345-16-12346-1345-234
+always patschenass 1234-1-2345-156-15-1345-1-2346
+word ehename 15-125-15-1345-1-134-15
+endword ehename 2356-15-1345-1-134-15
+always ehenamen 2356-15-1345-1-134-14
+prfword mathenote 134-1-2345-125-15-1345-135-236
+always mathenoten 134-1-2345-125-15-1345-135-2345-14
+always leihenehmer 123-146-125-15-1345-125-12456
+sufword siena 234-24-14-1
+always sienesisch 234-24-14-123456-24-156
+prfword theorieneutral 2345-125-15-26-346-1345-126-2345-1235-1-123
+begmidword theorieneutral 2345-125-15-26-346-1345-126-2345-1235-25
+always spuckenass 234-1234-136-46-15-1345-1-2346
+always bottleneck 12-135-2345-2345-123-15-1345-15-46
+always villeneuv 1236-24-12345-15-1345-126-1236
+always telenovela 2345-13456-15-1345-135-1236-13456-1
+always teilenummer 2345-146-123-15-1345-136-1346-12456
+begmidword teilenam 2345-146-123-15-1345-1-134
+always nahmeneigung 1345-134-15-1345-146-1245-136
+always wärmenetz 2456-345-1235-134-15-1345-15-2345-1356
+always wärmenetz 2456-345-1235-134-15-1345-15-2345-1356
+begmidword schweinenier 156-2456-1246-15-1345-346-1235
+always aknen 1-13-1345-15-1345
+always phoenix 1234-125-135-15-1345-24-6-1346
+always aren't 1-1235-15-1345-6-2345
+before n begmidword hardware 125-356-145-2456-356-15
+always renatur 1235-15-1345-2345
+always schwerenot 156-2456-12456-15-1345-135-2345
+always chiffrenummer 1456-24-124-124-1235-15-1345-136-1346-12456
+before n begmidword softwarenutz 234-135-124-2345-2456-356-15-1345-1356
+always schwerenöter 156-2456-12456-15-1345-246-2345-12456
+begmidword kosenam 13-135-234-15-1345-1-134
+begmidword glucosenach 1245-123-136-6-14-135-234-15-1345-56
+begmidword morsenach 134-26-234-15-1345-56
+begmidword messeneu 134-15-2346-15-1345-126
+begmidword pressenach 1234-1235-15-2346-15-1345-56
+always pressenotiz 1234-1235-15-2346-15-1345-135-2345-24-1356
+before n always baisse 12-1-24-2346-15
+always mäusenest 134-34-234-15-1345-15-23456
+always usenet 136-234-15-1345-15-2345
+begmidword städtenam 23456-345-145-236-1345-1-134
+always kräftenach 5-13-124-15-1345-56
+always gutenacht 1245-136-236-1345-56-2345
+prfword haltenase 125-25-236-1345-1-234-15
+always haltenasen 125-25-236-1345-1-234-14
+always gütenorm 1245-1256-236-1345-26-134
+always bytenummer 12-6-13456-236-1345-136-1346-12456
+before n begmidword bronze 12-1235-135-1345-1356-15
+prfword bronzen 12-1235-135-1345-1356-14
+prfword bronzene 12-1235-135-1345-1356-14-15
+prfword bronzenem 12-1235-135-1345-1356-14-12356
+prfword bronzenen 12-1235-135-1345-1356-14-14
+prfword bronzener 12-1235-135-1345-1356-14-12456
+prfword bronzenes 12-1235-135-1345-1356-14-123456
+
+# ENT- (4.2.1 Vorsilbenkürzungen)
+begword ent 2346
+sufword entchen 14-2345-1456-14
+word ente 14-236
+always entelech 14-2345-13456-15-1456
+always enten 14-2345-14
+always hallentennis 125-1-12345-14-2345-14-1345-24-234
+always rasentennis 1235-1-234-14-2345-14-1345-24-234
+always frauentennis 124-1235-16-14-2345-14-1345-24-234
+always entente 14-2345-14-236
+always ententeil 14-2345-14-2345-146-123
+always ententeich 14-2345-14-2345-146-1456
+prfword enter 14-2345-12456
+always enterbeil 14-2345-12456-12-146-123
+always enterbrück 14-2345-12456-12-1235-1256-46
+always enter- 14-2345-12456-36
+always entere 14-2345-12456-15
+always enterem 14-2345-12456-12356
+always enteren 14-2345-12456-14
+always enterer 14-2345-12456-12456
+always enteres 14-2345-12456-123456
+always enterhak 14-2345-12456-125-1-13
+always enterich 14-2345-12456-3456
+always enteritis 14-2345-12456-24-2345-24-234
+always entermesser 14-2345-12456-134-15-2346-12456
+always entern 14-2345-12456-1345
+always entero 14-2345-12456-135
+always enterogen 14-2345-12456-135-1245-14
+always enterpris 14-2345-12456-1234-1235-24-234
+always enterst 14-2345-12456-23456
+always entert 14-2345-12456-2345
+always entertain 14-2345-12456-2345-1-24-1345
+always entertast 14-2345-12456-2345-1-23456
+prfword enterte 14-2345-12456-236
+prfword entertem 14-2345-12456-2345-12356
+prfword enterten 14-2345-12456-2345-14
+prfword enterter 14-2345-12456-2345-12456
+prfword entertes 14-2345-12456-2345-123456
+prfword entertest 14-2345-12456-236-23456
+prfword entertet 14-2345-12456-236-2345
+always enterung 14-2345-12456-136
+always enthusia 14-2345-125-136-234-24-1
+always enthymem 14-2345-125-6-13456-134-12356
+always entität 14-2345-5-345
+always entities 14-2345-24-2345-346-234
+always entity 14-2345-24-2345-6-13456
+always entlein 14-2345-123-1246
+always entoderm 14-2345-135-145-12456-134
+always entomo 14-2345-135-134-135
+midendword entomori 14-2345-135-134-26-24
+always entopisch 14-2345-135-1234-24-156
+always entoptisch 14-2345-135-1234-2345-24-156
+always entotisch 14-2345-135-2345-24-156
+prfword entourage 14-2345-135-136-1235-1-12346
+always entourag 14-2345-135-136-1235-1-1245
+always entrec 14-2345-1235-15-6-14
+always entrecht 2346-1235-2345
+always zentrech 1356-14-2345-1235-15-1456
+always entree 14-2345-1235-15-15
+always entremet 14-2345-1235-15-134-15-2345
+always entrepreneur 14-2345-1235-15-1234-1235-14-126-1235
+always entresol 14-2345-1235-15-234-135-123
+always entrevu 14-2345-1235-15-1236-136
+always entrop 14-2345-1235-135-1234
+
+# ER  (4.1 Lautgruppenkürzungen)
+always er 12456
+always aerobic 1-15-1235-135-12-24-6-14
+before er begword ausgabe 34-1245-1-23
+before er midword ausgabe 16-234-1245-1-23
+before er midword gewölbe 12346-2456-246-123-23
+before e begword probe 12345-23
+before e midword probe 1234-1235-135-23
+before er always gewebe 12346-2456-15-23
+before er always sterbe 23456-12456-23
+always sterberei 23456-12456-12-12456-146
+before er always werbe 2456-12456-23
+prfword werber 2456-12456-12-12456
+always bewerber 23-2456-12456-12-12456
+always erwerber 12456-2456-12456-12-12456
+prfword werberin 2456-12456-12-12456-35
+prfword werberinnen 2456-12456-12-12456-35-1345-14
+always werberisch 2456-12456-12-12456-24-156
+prfword werbern 2456-12456-12-12456-1345
+prfword werbers 2456-12456-12-12456-234
+prfword berundal 12-12456-256-145-1-123
+begmidword berundal 12-12456-256-145-25
+before e always bade 12-1-145-15
+before er begmidword jade 245-1-145-15
+before er always parade 1234-356-1-145-15
+before er begmidword kreide 13-1235-146-145-15
+before er midword ance 235-6-14-15
+prfword ancer 235-6-14-12456
+prfword ancera 235-6-14-12456-1
+prfword ancers 235-6-14-12456-234
+before er begmidword service 234-12456-1236-24-6-14-15
+begmidword deregul 145-15-1235-15-1245-136-123
+begmidword derangier 145-15-1235-235-1245-346-1235
+before er always getreide 12346-2345-1235-146-145-15
+before r always melde 134-13456-145-15
+prfword melder 134-13456-145-12456
+begmidword melderattrapp 134-13456-145-12456-1-2345-2345-1235-1-1234-1234
+prfword meldern 134-13456-145-12456-1345
+prfword melderin 134-13456-145-12456-35
+prfword melderinnen 134-13456-145-12456-35-1345-14
+prfword melders 134-13456-145-12456-234
+before er always gemälde 12346-134-345-123-145-15
+before e always lande 123-235-145-15
+before e always mode 134-135-145-15
+before er always gebäude 12346-12-34-145-15
+always beer 12-15-15-1235
+prfword beerbe 23-12456-12-15
+always beerben 23-12456-12-14
+always beerbst 23-12456-12-23456
+always beerbt 23-12456-12-2345
+prfword beerbte 23-12456-12-236
+always beerbtest 23-12456-12-236-23456
+always beerbung 23-12456-12-136
+always beerdig 23-12456-145-45
+always heferein 125-15-124-15-1235-1246
+before er always hilfe 125-24-123-124-15
+always beruferat 23-1235-136-124-15-1235-1-2345
+before er begmidword trage 2345-1245-15
+before er begmidword prestige 1234-1235-15-23456-45-15
+always heer 125-15-15-1235
+begmidword näheer 1345-345-125-15-12456
+always cheer 1456-15-15-1235
+before e always schwäche 156-2456-345-1456-15
+before e always recherche 1235-15-1456-12456-1456-15
+begmidword ascheroll 1-156-15-1235-135-12345
+begmidword ascheröll 1-156-15-1235-246-12345
+always wäscheraum 2456-345-156-15-1235-16-134
+begmidword wäscheräum 2456-345-156-15-1235-34-134
+always weheruf 2456-2356-15-1235-136-124
+before e always anleihe 235-123-146-125-15
+before er always mathe 134-1-2345-125-15
+always stärkereg 23456-345-1235-13-15-1235-15-1245
+always leer 123-15-15-1235
+always galeer 1245-25-15-15-1235
+always liebeleer 123-346-23-123-15-15-1235
+before er begmidword kohle 13-135-125-123-15
+prfword kohler 13-135-125-123-12456
+before e always klee 13-123-15-15
+before r begmidword koschenille 13-135-156-14-24-12345-15
+always meer 134-15-15-1235
+before er always nahme 1345-134-15
+before e always wärme 2456-345-1235-134-15
+always neer 1345-15-15-1235
+before e always sahne 234-1-125-1345-15
+always guineer 1245-136-35-15-12456
+always peer 1234-15-15-1235
+before e always grippe 1245-1235-24-1234-1234-15
+always speer 234-1234-15-15-1235
+begmidword haarerauf 125-1-1-1235-15-1235-16-124
+before e always software 234-135-124-2345-2456-356-15
+before er begmidword säure 234-34-1235-15
+before er always see 234-15-15
+before e always reise 1235-146-234-15
+before er always diagnose 145-24-1-1245-1345-135-234-15
+before e always presse 1234-1235-15-2346-15
+before er always analyse 235-25-6-13456-234-15
+before e always tee 2345-15-15
+always teer 2345-15-15-1235
+always haltering 125-25-236-1235-35-1245
+prfword halteringe 125-25-236-1235-35-12346
+always halteroll 125-25-236-1235-135-12345
+before e always kälte 13-345-123-236
+always kälteraum 13-345-123-236-1235-16-134
+begmidword kälteräum 13-345-123-236-1235-34-134
+before e always elite 13456-24-236
+before e always ernte 12456-1345-236
+before er begmidword getriebe 12346-2345-1235-346-23
+before er begmidword schiebe 156-346-23
+prfword schieber 156-346-12-12456
+before konsonant begmidword schieber 156-346-12-12456
+prfword schieberei 156-346-12-12456-146
+prfword schiebereien 156-346-12-12456-146-14
+before er begword probe 12345-23
+before er midword probe 1234-1235-135-23
+before er midword bleibe 12-12-15
+always bleiber 12-12-12456
+always bleibers 12-12-12456-234
+before er midword gabe 1245-1-23
+always haberecht 2-125-15-1235-2345
+begmidword heberoll 125-15-23-1235-135-12345
+begmidword kleberoll 13-123-15-23-1235-135-12345
+before er begmidword parforce 1234-356-124-26-6-14-15
+prfword laderampe 123-1-145-15-1235-1-134-1234-15
+always laderampen 123-1-145-15-1235-1-134-1234-14
+before er begmidword hunde 125-256-145-15
+always thunder 2345-125-256-145-12456
+always hundert 125-256-145-12456-2345
+prfword hunderte 125-256-145-12456-236
+before er begmidword gemeinde 12346-134-1246-145-15
+always ständerat 5-23456-15-1235-1-2345
+always ständerät 5-23456-15-1235-345-2345
+always ständeräte 5-23456-15-1235-345-236
+always heiderauch 125-146-145-15-1235-16-1456
+midendword deraum 145-15-1235-16-134
+midword deräum 145-15-1235-34-134
+always derealisation 145-15-1235-15-25-24-234-5-1345
+midendword derecht 145-15-1235-2345
+always ständerecht 5-23456-15-1235-2345
+midendword dereduktion 145-15-1235-15-145-136-13-2345-245
+midword dereduzier 145-15-1235-15-145-136-1356-346-1235
+midendword dereferenz 145-15-1235-15-124-12456-14-1356
+midendword dereform 145-15-1235-15-124-26-134
+after e midword regist 1235-15-1245-24-23456
+midendword deregulation 145-15-1235-15-1245-136-123-5-1345
+midendword deregulier 145-15-1235-15-1245-136-123-346-1235
+prfword badereise 12-1-145-15-1235-146-234-15
+always badereisen 12-1-145-15-1235-146-234-14
+prfword laderunge 123-1-145-15-1235-256-12346
+always laderungen 123-1-145-15-1235-256-1245-14
+always siederohr 234-346-145-15-1235-135-125-1235
+begmidword siederöhr 234-346-145-15-1235-246-125-1235
+begmidword heiderös 125-146-145-15-1235-246-234
+always weiderind 2456-146-145-15-1235-35-145
+always händeringen 5-125-145-15-1235-35-1245-14
+before er begmidword gelände 12346-123-345-1345-145-15
+prfword geländer 12346-123-345-1345-145-12456
+prfword geländern 12346-123-345-1345-145-12456-1345
+always geländers 12346-123-345-1345-145-12456-234
+begmidword geländerst 12346-123-345-1345-145-12456-23456
+prfword sendereihe 234-14-145-15-1235-146-125-15
+always sendereihen 234-14-145-15-1235-146-125-14
+begmidword senderöhr 234-14-145-15-1235-246-125-1235
+before er begmidword gewinde 12346-2456-35-145-15
+begmidword moderedakt 134-135-145-15-1235-15-145-1-13-2345
+begmidword modereis 134-135-145-15-1235-146-234
+always moderessort 134-135-145-15-1235-15-2346-26-2345
+always moderichtung 134-135-145-15-2-3456-136
+before er begmidword garde 1245-356-145-15
+prfword garderobe 1245-356-145-12456-135-12-15
+begmidword garderobe 1245-356-145-12456-135-23
+always garderoben 1245-356-145-12456-135-12-14
+before er begmidword pferde 1234-124-12456-145-15
+before er begmidword gebäude 12346-12-34-145-15
+always engineer 14-1245-35-15-15-1235
+always hilferuf 125-24-123-124-15-1235-136-124
+always schärferelation 156-345-1235-124-15-1235-13456-5-1345
+always spracherecht 234-1234-15-1235-2345
+always ascheregen 1-156-15-1235-15-1245-14
+begmidword wäscheroll 2456-345-156-15-1235-135-12345
+sufword eherecht 15-125-15-1235-2345
+midendword eherecht 2356-15-1235-2345
+sufword eheregister 15-125-15-1235-15-1245-24-23456-12456
+midendword eheregister 2356-15-1235-15-1245-24-23456-12456
+sufword ehering 15-125-15-1235-35-1245
+midendword ehering 2356-15-1235-35-1245
+word eheringe 15-125-15-1235-35-12346
+endword eheringe 2356-15-1235-35-12346
+word eheroman 15-125-15-1235-135-134-1-1345
+begword eheroman 15-125-15-1235-135-134-235
+midword eheroman 2356-15-1235-135-134-235
+endword eheroman 2356-15-1235-135-134-1-1345
+begword eheromän 15-125-15-1235-135-134-345-1345
+midword eheromän 2356-15-1235-135-134-345-1345
+prfword weiherede 2456-146-125-15-1235-15-145-15
+always weihereden 2456-146-125-15-1235-15-145-14
+before er always ruhe 1235-136-125-15
+prfword ruher 1235-136-125-12456
+prfword ruhern 1235-136-125-12456-1345
+prfword ruhers 1235-136-125-12456-234
+before er begmidword knie 13-1345-346
+always sacknier 234-1-46-1345-346-1235
+always schocknier 156-135-46-1345-346-1235
+always taljereep 2345-25-245-15-1235-15-15-1234
+before er begmidword getränke 12346-2345-1235-345-1345-13-15
+always stärkereaktion 23456-345-1235-13-15-1235-15-1-13-2345-245
+always stärkereich 23456-345-1235-13-15-1235-146-1456
+prfword primerate 1234-1235-24-134-15-1235-1-236
+always primerates 1234-1235-24-134-15-1235-1-2345-123456
+always nahmeregel 1345-134-15-1235-15-1245-13456
+always homerun 125-135-134-15-1235-256
+before er begmidword wärme 2456-345-1235-134-15
+prfword wärmer 2456-345-1235-134-12456
+prfword wärmere 2456-345-1235-134-12456-15
+prfword wärmerem 2456-345-1235-134-12456-12356
+prfword wärmeren 2456-345-1235-134-12456-14
+prfword wärmerer 2456-345-1235-134-12456-12456
+prfword wärmeres 2456-345-1235-134-12456-123456
+prfword wärmerin 2456-345-1235-134-12456-35
+# HOMONYM
+prfword wärmerinnen 2456-345-1235-134-12456-35-1345-14
+prfword wärmern 2456-345-1235-134-12456-1345
+prfword wärmers 2456-345-1235-134-12456-234
+always schwärmer 156-2456-345-1235-134-12456
+begmidword sahneroll 234-1-125-1345-15-1235-135-12345
+prfword sühneritual 234-1256-125-1345-15-1235-24-2345-136-1-123
+begmidword sühneritual 234-1256-125-1345-15-1235-24-2345-136-25
+begmidword routinerech 1235-135-136-2345-35-15-1235-15-1456
+before er begmidword schweine 156-2456-1246-15
+always schweinerei 156-2456-1246-12456-146
+before er begmidword sterne 23456-12456-1345-15
+sufword moers 134-135-15-1235-234
+always sparerib 234-1234-356-15-1235-24-12
+always wareries 2456-356-15-1235-346-234
+prfword wareroute 2456-356-15-1235-135-136-236
+begmidword warerout 2456-356-15-1235-135-136-2345
+always irrered 24-1235-1235-15-1235-15-145
+always oxidasereaktion 135-6-1346-24-145-1-234-15-1235-15-1-13-2345-245
+always käserest 13-345-234-15-1235-15-23456
+begmidword käserind 13-345-234-15-1235-35-145
+before er begmidword gebläse 12346-12-123-345-234-15
+begmidword naserümpf 1345-1-234-15-1235-1256-134-1234-124
+begmidword leseratt 123-123456-15-1235-1-2345-2345
+prfword leseratte 123-123456-15-1235-1-2345-236
+always leseraum 123-123456-15-1235-16-134
+always leseregister 123-123456-15-1235-15-1245-24-23456-12456
+prfword lesereise 123-123456-15-1235-146-234-15
+always lesereisen 123-123456-15-1235-146-234-14
+prfword leseringe 123-123456-15-1235-35-12346
+always lesering 123-123456-15-1235-35-1245
+begmidword leseräum 123-123456-15-1235-34-134
+before er begmidword speise 234-1234-146-234-15
+prfword speiser 234-1234-146-234-12456
+prfword speisern 234-1234-146-234-12456-1345
+prfword speisers 234-1234-146-234-12456-234
+begmidword reiserech 1235-146-234-15-1235-15-1456
+always reiseregel 1235-146-234-15-1235-15-1245-13456
+always reisereport 1235-146-234-15-1235-15-1234-26-2345
+prfword reiseroute 1235-146-234-15-1235-135-136-236
+begmidword reiserout 1235-146-234-15-1235-135-136-2345
+always reiseruf 1235-146-234-15-1235-136-124
+before er begword narkose 1345-356-13-135-234-15
+before er begword prognose 12345-1245-1345-135-234-15
+before er midword prognose 1234-1235-135-1245-1345-135-234-15
+always massereich 134-1-2346-15-1235-146-1456
+always rasserein 1235-1-2346-15-1235-1246
+always presserat 1234-1235-15-2346-15-1235-1-2345
+begmidword presserät 1234-1235-15-2346-15-1235-345-2345
+prfword presseräte 1234-1235-15-2346-15-1235-345-236
+always presserecht 1234-1235-15-2346-15-1235-2345
+begmidword presserefer 1234-1235-15-2346-15-1235-15-124-12456
+begmidword presserezen 1234-1235-15-2346-15-1235-15-1356-14
+always presserummel 1234-1235-15-2346-15-1235-136-1346-13456
+always presserundschau 1234-1235-15-2346-15-1235-256-145-156-16
+before er begmidword gehäuse 12346-125-34-234-15
+prfword gehäuser 12346-125-34-234-12456
+prfword gehäusern 12346-125-34-234-12456-1345
+before er begmidword analyse 235-25-6-13456-234-15
+prfword städtereise 23456-345-145-236-1235-146-234-15
+always städtereisen 23456-345-145-236-1235-146-234-14
+before er begmidword kräfte 5-13-124-15
+before er begmidword früchte 124-1235-1256-1456-236
+always halteriegel 125-25-236-1235-346-1245-13456
+always halteriemen 125-25-236-1235-346-134-14
+always haltering 125-25-236-1235-35-1245
+prfword halteringe 125-25-236-1235-35-12346
+always warteraum 2456-356-236-1235-16-134
+begmidword warteräum 2456-356-236-1235-34-134
+before er begmidword gäste 1245-345-23456-15
+always pusterohr 1234-136-23456-15-1235-135-125-1235
+begmidword pusteröhr 1234-136-23456-15-1235-246-125-1235
+begmidword räteregier 1235-345-236-1235-1245
+always räterepublik 1235-345-236-1235-13
+begmidword treuerabat 2345-1235-126-15-1235-1-12-1-2345
+before er always reserve 1235-123456-12456-1236-15
+before er begmidword vize 1236-24-1356-15
+before er begmidword hitze 125-24-2345-1356-15
+prfword hitzer 125-24-2345-1356-12456
+prfword hitzern 125-24-2345-1356-12456-1345
+prfword hitzers 125-24-2345-1356-12456-234
+before er begmidword grütze 1245-1235-1256-2345-1356-15
+
+# ES  (4.1 Lautgruppenkürzungen)
+always es 123456
+midword esammel 15-234-1-1346-13456
+midword esamml 15-234-1-1346-123
+always esch 15-156
+midendword eschrift 15-156-2345
+midendword eshire 15-234-125-24-1235-15
+midendword eshires 15-234-125-24-1235-123456
+midendword eshow 15-234-125-135-2456
+always ess 15-2346
+always essch 123456-156
+endword esschen 15-2346-1456-14
+endword esschens 15-2346-1456-14-234
+always est 15-23456
+midendword estell 15-2-13456
+midendword estund 15-23456-256-145
+prfword caesar 6-14-1-15-234-1-1235
+begmidword caesar 6-14-1-15-234-356
+before s always sterbe 23456-12456-23
+before s always service 234-12456-1236-24-6-14-15
+prfword services 234-12456-1236-24-6-14-123456
+before s always patience 1234-1-2345-24-14-6-14-15
+before s always renaissance 1235-14-1-24-2346-235-6-14-15
+begmidword desensibilis 145-15-234-14-234-24-12-24-123-24-234
+begmidword despektier 145-15-234-1234-15-13-2345-346-1235
+before s always bade 12-1-145-15
+prfword bades 12-1-145-123456
+prfword bades 12-1-145-123456
+prfword badest 12-1-145-15-23456
+always badestell 12-1-145-15-2-13456
+begmidword badest 12-1-145-15-23456
+before s begmidword jade 245-1-145-15
+prfword jades 245-1-145-123456
+before s always lade 123-1-145-15
+prfword blades 12-123-1-145-123456
+prfword glades 1245-123-1-145-123456
+before s always gerade 12346-1235-1-145-15
+always geradeswegs 12346-1235-1-145-123456-2456-1245-234
+prfword gerades 12346-1235-1-145-123456
+before s always parade 1234-356-1-145-15
+before s always schmiede 156-134-346-145-15
+prfword schmiedes 156-134-346-145-123456
+before s always rede 1235-15-145-15
+prfword redes 1235-15-145-123456
+before s always getreide 12346-2345-1235-146-145-15
+prfword getreides 12346-2345-1235-146-145-123456
+before s always eingeweide 1246-12346-2456-146-145-15
+before s always gemälde 12346-134-345-123-145-15
+prfword gemäldes 12346-134-345-123-145-123456
+before s always melde 134-13456-145-15
+before s begmidword gelände 12346-123-345-1345-145-15
+prfword geländes 12346-123-345-1345-145-123456
+before s always stände 5-23456-15
+before s always gemeinde 12346-134-1246-145-15
+before s always gewinde 12346-2456-35-145-15
+prfword gewindes 12346-2456-35-145-123456
+before s always hunde 125-256-145-15
+prfword hundes 125-256-145-123456
+before s always sende 234-14-145-15
+prfword sendes 234-14-145-123456
+always börsendesaster 12-246-1235-234-14-145-123456-1-23456-12456
+always rasend 1235-1-234-14-145
+always lösend 123-246-234-14-145
+before s always wende 2456-14-145-15
+before s always mode 134-135-145-15
+before s always garde 1245-356-145-15
+before s always pferde 1234-124-12456-145-15
+prfword pferdes 1234-124-12456-145-123456
+before s always gebäude 12346-12-34-145-15
+prfword gebäudes 12346-12-34-145-123456
+endword ees 15-15-234
+before s always lee 123-15-15
+before s always klee 13-123-15-15
+always meesenburg 134-15-15-234-14-12-136-1235-1245
+always reesa 1235-15-15-234-1
+before s always see 234-15-15
+prfword sees 234-15-15-234
+prfword gesees 12346-234-15-15-234
+before s always tee 2345-15-15
+before s always hilfe 125-24-123-124-15
+before s always reife 1235-146-124-15
+prfword reifes 1235-146-124-123456
+before s always schärfe 156-345-1235-124-15
+before s always lage 123-1-12346
+prfword lages 123-1-1245-123456
+before s always säge 5-234-1245-15
+before s always präge 1234-1235-345-12346
+always tragesack 2345-1245-15-234-1-46
+begmidword tragesäck 2345-1245-15-234-345-46
+always tragesitz 2345-1245-15-2-24
+before s begmidword prestige 1234-1235-15-23456-45-15
+prfword prestiges 1234-1235-15-23456-45-123456
+before s always rache 1235-56-15
+before s always wäsche 2456-345-156-15
+before s always weihe 2456-146-125-15
+before s always ruhe 1235-136-125-15
+before s always regie 1235-15-1245-346
+begmidword dankestele 145-13-123456-2345-13456-15
+before s always ränke 1235-345-1345-13-15
+prfword ränkes 1235-345-1345-13-123456
+begmidword stinkesock 23456-35-13-15-234-135-46
+before s always stärke 23456-345-1235-13-15
+always bubblesort 12-136-12-12-123-15-234-26-2345
+before s always ensemble 14-234-12356-12-123-15
+prfword ensembles 14-234-12356-12-123-123456
+before s always spiele 2-346-15
+prfword spieles 2-346-123456
+before s always tele 2345-13456-15
+prfword teles 2345-13456-123456
+before s always kohle 13-135-125-123-15
+before s always file 124-24-123-15
+prfword files 124-24-123-123456
+before s begmidword galle 1245-1-12345-15
+before s midword promille 1234-1235-135-134-24-12345-15
+before s sufword promille 12345-134-24-12345-15
+before s always vanille 1236-235-24-12345-15
+before s always emaille 12356-1-24-12345-15
+prfword emailles 12356-1-24-12345-123456
+always stillesein 23456-24-12345-15-234-1246
+before s always schule 156-136-123-15
+before s always puzzle 1234-136-1356-1356-123-15
+prfword puzzles 1234-136-1356-1356-123-123456
+before s always reklame 1235-15-13-123-1-134-15
+before s always creme 6-14-1235-12356-15
+prfword cremes 6-14-1235-12356-123456
+before s always wärme 2456-345-1235-134-15
+always ganesh 1245-235-15-234-125
+before s always hygiene 125-6-13456-1245-24-14-15
+before s always szene 234-1356-14-15
+before s always sahne 234-1-125-1345-15
+before s always schweine 156-2456-1246-15
+prfword schweines 156-2456-1246-123456
+before s always online 135-1345-123-35-15
+before s always marine 134-356-35-15
+prfword marines 134-356-35-123456
+before s always routine 1235-135-136-2345-35-15
+prfword routines 1235-135-136-2345-35-123456
+before s always wonne 2456-135-1345-1345-15
+before s always quarantäne 6-12345-136-356-235-2345-345-1345-15
+before s always pläne 1234-123-345-1345-15
+before s always apnoe 1-1234-1345-135-15
+before s always grippe 1245-1235-24-1234-1234-15
+before s always hardware 125-356-145-2456-356-15
+before s always software 234-135-124-2345-2456-356-15
+before s always schmiere 156-134-346-1235-15
+prfword schmieres 156-134-346-1235-123456
+before s always karriere 13-356-1235-24-12456-15
+prfword amperes 1-134-1234-12456-123456
+before s begmidword ampere 1-134-1234-12456-15
+before s always repertoire 1235-15-1234-12456-2345-135-24-1235-15
+prfword repertoires 1235-15-1234-12456-2345-135-24-1235-123456
+before s always satire 234-1-2345-24-1235-15
+before s begmidword genre 1245-14-1235-15
+prfword genres 1245-14-1235-123456
+before s always folklore 124-135-123-13-123-26-15
+before s always säure 234-34-1235-15
+before s always lektüre 123-15-13-2345-1256-1235-15
+before s always käse 13-345-234-15
+prfword käses 13-345-234-123456
+before s always lese 123-123456-15
+before s always reise 1235-146-234-15
+prfword reises 1235-146-234-123456
+before s always speise 234-1234-146-234-15
+before s always gänse 1245-345-1345-234-15
+before s always diagnose 145-24-1-1245-1345-135-234-15
+before s always narkose 1345-356-13-135-234-15
+before s always glukose 1245-123-136-13-135-234-15
+before s always hirse 125-24-1235-234-15
+before s always baisse 12-1-24-2346-15
+before s always hausse 125-16-2346-15
+before s always masse 134-1-2346-15
+before s always muße 134-136-2346-15
+before s always gehäuse 12346-125-34-234-15
+prfword gehäuses 12346-125-34-234-123456
+before s always gemüse 12346-134-1256-234-15
+prfword gemüses 12346-134-1256-234-123456
+before s always dialyse 145-24-25-6-13456-234-15
+before s always rate 1235-1-236
+prfword rates 1235-1-2345-123456
+before s always städte 23456-345-145-236
+before s always kräfte 5-13-124-15
+before s always mächte 134-345-1456-236
+before s always rendite 1235-14-145-24-236
+before s always punkte 1234-2345-15
+prfword punktes 1234-2345-123456
+before s always kälte 13-345-123-236
+before s always argumente 356-1245-136-134-14-236
+prfword argumentes 356-1245-136-134-14-2345-123456
+endword erntes 12456-1345-2345-123456
+before s always ernte 12456-1345-236
+before s always warte 2456-356-236
+prfword wartes 2456-356-2345-123456
+before s always werte 2456-12456-236
+prfword wertes 2456-12456-2345-123456
+before s always gäste 1245-345-23456-15
+before s always watte 2456-1-2345-236
+before s always jute 245-136-236
+before s always güte 1245-1256-236
+before s always reserve 1235-123456-12456-1236-15
+before s always gaze 1245-1-1356-15
+begmidword pilzesuch 1234-24-123-1356-15-234-136-1456
+begmidword sülzesala 234-1256-123-1356-15-234-25-1
+before s always bronze 12-1235-135-1345-1356-15
+before s always hitze 125-24-2345-1356-15
+midendword ession 15-2346-245
+always praesens 1234-1235-1-15-234-14-234
+begmidword spaceshutt 234-1234-1-6-14-15-234-125-136-2345-2345
+sufword desselb 145-123456-234-13456-12
+always desensibilisier 145-15-234-14-234-24-12-24-123-24-234-346-1235
+always arcadespiel 356-6-14-1-145-15-2-346
+always balladesänger 12-1-12345-1-145-15-234-345-1345-1245-12456
+always mädesüß 134-345-145-15-234-1256-2346
+always redesign 1235-15-145-123456-24-1245-1345
+always kleidespiegel 13-123-146-145-15-234-1234-346-1245-13456
+begmidword schneidescher 156-1345-146-145-15-156-12456
+begmidword scheidestund 156-146-145-15-23456-256-145
+begmidword scheidestünd 156-146-145-15-23456-1256-1345-145
+always waldes 2456-25-145-123456
+always landes 123-235-145-123456
+begmidword landesch 123-235-145-15-156
+always landeschef 123-235-145-123456-1456-15-124
+prfword landest 123-235-145-15-23456
+always landesteg 123-235-145-15-23456-15-1245
+begmidword landestell 123-235-145-15-2-13456
+always standes 2-23456-123456
+always standest 2-23456-15-23456
+always ständest 5-23456-15-23456
+always ständestaat 5-23456-15-23456-2345
+always wendest 2456-14-145-15-23456
+always kindes 13-35-145-123456
+always bundes 12-256-145-123456
+always codeschnipsel 6-14-135-145-15-156-1345-24-1234-234-13456
+always codestück 6-14-135-145-15-23456-1256-46
+always todes 2345-135-145-123456
+begmidword freudestrahl 124-1235-126-145-15-23456-1235-1-125-123
+prfword freesie 124-1235-15-15-234-24-15
+begmidword bungeespr 12-256-1245-15-15-234-1234-1235
+begmidword erdeess 12456-145-15-15-2346
+always heesters 125-15-15-23456-12456-234
+prfword hefesorte 125-15-124-15-234-26-236
+always hefesorten 125-15-124-15-234-26-2345-14
+prfword hefespore 125-15-124-15-234-1234-26-15
+always hefesporen 125-15-124-15-234-1234-26-14
+always hefestück 125-15-124-15-23456-1256-46
+always rufesatz 1235-136-124-15-234-1356
+always rufesätz 1235-136-124-15-5-234-1356
+always sieges 234-346-1245-123456
+always tages 2345-1-1245-123456
+always tageschau 2345-1-12346-156-16
+syllable geschädig 12346-156-345-145-45
+begmidword sageschreib 234-1245-15-156-12
+begmidword legesohl 123-15-12346-234-135-125-123
+always hagestolz 125-1-12346-23456-135-123-1356
+always wagestück 2456-1-12346-23456-1256-46
+always nahestand 1345-1-125-15-2-23456
+always cachespeicher 6-14-56-15-234-1234-146-1456-12456
+midendword ehesach 2356-15-234-56
+sufword ehesach 15-125-15-234-56
+midword ehesakramen 2356-15-234-1-13-1235-1-134-14
+begword ehesakramen 15-125-15-234-1-13-1235-1-134-14
+begword eheschließ 15-125-15-156-2346
+midword eheschließ 2356-15-156-2346
+sufword ehesegen 15-125-15-234-15-1245-14
+midendword ehesegen 2356-15-234-15-1245-14
+begword ehesemin 15-125-15-234-12356-35
+midword ehesemin 2356-15-234-12356-35
+sufword ehestand 15-125-15-2-23456
+midendword ehestand 2356-15-2-23456
+begword eheständ 15-125-15-5-23456
+midendword eheständ 2356-15-5-23456
+always leiheschein 123-146-125-15-156-1246
+always leiheschuld 123-146-125-15-156-136-123-145
+always mathestund 134-1-2345-125-15-23456-256-145
+always vlies 1236-123-346-234
+always geniestreich 1245-14-346-23456-1235-146-1456
+always spezies 234-1234-15-1356-24-123456
+always troubleshoot 2345-1235-135-136-12-123-15-234-125-135-135-2345
+always mühlespiel 134-1256-125-123-15-2-346
+always teileseit 2345-146-123-15-234-146-2345
+prfword teileseite 2345-146-123-15-234-146-236
+always chilesalpeter 1456-24-123-15-234-25-1234-15-2345-12456
+sufword achilles 1-1456-24-12345-123456
+midword achilles 56-24-12345-123456
+always güllesilo 1245-1256-12345-15-234-24-123-135
+always moleskin 134-135-123-15-234-13-35
+always solesalz 234-135-123-15-234-25-1356
+always herkules 125-12456-13-136-123-123456
+always stylesheet 23456-6-13456-123-15-234-125-15-15-2345
+always frameset 124-1235-1-134-15-234-15-2345
+always damespiel 145-1-134-15-2-346
+always damestein 145-1-134-15-23456-1246
+always ruhmes 1235-136-125-134-123456
+always timesharing 2345-24-134-15-234-125-356-35-1245
+always stammes 23456-1-1346-123456
+always stammessen 23456-1-1346-15-2346-14
+always messtechnik 134-15-2346-2345-13
+always messtechnisch 134-15-2346-2345-156
+always homespun 125-135-134-15-234-1234-256
+always armesünder 356-134-15-234-1256-1345-145-12456
+always möhnesee 134-246-125-1345-15-234-15-15
+begmidword inlineskat 35-123-35-15-234-13-1-2345
+always mannes 134-1345-123456
+always sinnes 234-35-1345-123456
+always wonnesam 2456-135-1345-1345-15-2346
+always minnesang 134-35-1345-15-234-235-1245
+begmidword juliennesupp 245-136-123-24-14-1345-15-234-136-1234-1234
+always minnesänger 134-35-1345-15-234-345-1345-1245-12456
+always lonesome 123-135-1345-15-234-135-134-15
+always onestep 135-1345-15-23456-15-1234
+always marneschlacht 134-356-1345-15-156-123-56-2345
+always coesfeld 6-14-135-15-234-124-13456-145
+always soest 234-135-15-23456
+begmidword benzoesäur 12-14-1356-135-15-234-34-1235
+always rippespeer 1235-24-1234-1234-15-234-1234-15-15-1235
+always herpes 125-12456-1234-123456
+always typesatz 2345-6-13456-1234-15-234-1356
+always typeset 2345-6-13456-1234-15-234-15-2345
+always typesetz 2345-6-13456-1234-15-2-15
+always research 1235-15-234-15-1-1235-1456
+prfword reset 1235-15-234-15-2345
+begword reset 1235-15-234-15-2345
+always resozial 1235-15-234-123
+begmidword crescend 6-14-1235-15-234-6-14-14-145
+always heeres 125-15-15-1235-123456
+always meeres 134-15-15-1235-123456
+always schweresinn 156-2456-12456-15-234-35-1345
+always unseresteils 256-234-12456-123456-2345-146-123-234
+always chiffreschrift 1456-24-124-124-1235-15-156-2345
+always kongress 13-135-1345-1245-1235-15-2346
+always jahres 245-1235-123456
+begmidword shiresauc 234-125-24-1235-15-234-16-6-14
+always empirestil 12356-1234-24-1235-15-23456-24-123
+always toresschluss 2345-26-123456-156-123-136-2346
+always preshave 1234-1235-15-234-125-1-1236-15
+always presse 1234-1235-15-2346-15
+prfword pressen 1234-1235-15-2346-14
+prfword pressens 1234-1235-15-2346-14-234
+always zypressen 1356-6-13456-1234-1235-15-2346-14
+always pressend 1234-1235-15-2346-14-145
+always pressengestell 1234-1235-15-2346-14-12346-2-13456
+prfword presser 1234-1235-15-2346-12456
+always erpresser 12456-1234-1235-15-2346-12456
+always presserei 1234-1235-15-2346-12456-146
+prfword pressern 1234-1235-15-2346-12456-1345
+prfword pressers 1234-1235-15-2346-12456-234
+endword presses 1234-1235-15-2346-123456
+prfword pressest 1234-1235-15-2346-15-23456
+always dürreschaden 145-1256-1235-1235-15-156-1-145-14
+always dürreschäden 145-1256-1235-1235-15-156-345-145-14
+always irresein 24-1235-1235-15-234-1246
+always entresol 14-2345-1235-15-234-135-123
+begmidword löseschalt 123-246-234-15-156-25-2345
+always verseschmied 1236-12456-234-15-156-134-346-145
+always sauseschritt 234-16-234-15-156-1235-24-2345-2345
+begmidword löseschwell 123-246-234-15-156-2456-15-12345
+before s begmidword messe 134-15-2346-15
+before s begmidword klasse 13-123-1-2346-15
+always reisessen 1235-146-234-15-2346-14
+always hansestadt 125-235-234-15-23456-1-145-2345
+begmidword hansestäd 125-235-234-15-23456-345-145
+begmidword lösesumm 123-246-234-15-234-136-1346
+always matestrauch 134-1-236-23456-1235-16-1456
+always matesträucher 134-1-236-23456-1235-34-1456-12456
+always diabetes 145-24-1-23-2345-123456
+begmidword whitespac 2456-125-24-236-234-1234-1-6-14
+prfword werteste 2456-12456-236-23456-15
+prfword wertestem 2456-12456-236-23456-12356
+prfword wertesten 2456-12456-236-23456-14
+prfword wertester 2456-12456-236-23456-12456
+prfword wertestes 2456-12456-236-23456-123456
+always geistes 1245-146-23456-123456
+always gottes 1245-135-2345-2345-123456
+always noisetteschoko 1345-135-24-234-15-2345-236-156-135-13-135
+always flötespiel 124-123-246-236-2-346
+always treueschwur 2345-1235-126-15-156-2456-136-1235
+always blues 12-123-136-15-234
+always lovestory 123-135-1236-15-23456-26-6-13456
+begmidword bayessch 12-1-6-13456-123456-156
+always rallyesport 1235-1-12345-6-13456-15-234-1234-26-2345
+sufword prozess 12345-1356-15-2346
+sufword prozession 12345-1356-15-2346-245
+midendword prozess 1234-1235-135-1356-15-2346
+midendword prozession 1234-1235-135-1356-15-2346-245
+always gesetzes 12346-2-15-123456
+before s begmidword lakritze 123-1-13-1235-24-2345-1356-15
+
+# ETWA (4.4 Zweiformige Kürzungen)
+always etwa 15-1
+always sweetwater 234-2456-15-15-2345-2456-1-2345-12456
+always mietwagen 134-346-2345-2456-1-1245-14
+begmidword paketwaa 1234-1-13-15-2345-2456-1-1
+always paketwagen 1234-1-13-15-2345-2456-1-1245-14
+begmidword netwar 1345-15-2345-2456-356
+begmidword wetwar 2456-15-2345-2456-356
+always internet 35-2345-12456-1345-15-2345
+
+# ETWAS (4.4 Zweiformige Kürzungen)
+always etwas 2345-2456
+
+# EU  (4.1 Lautgruppenkürzungen)
+word eu 15-136
+always eu 126
+midendword eunkosten 15-256-13-135-23456-14
+always timaeus 2345-24-134-1-15-136-234
+always glutaeus 1245-123-136-2345-1-15-136-234
+always sterbeuhr 23456-12456-23-136-125-1235
+before u begmidword werbe 2456-12456-23
+always beunruhig 23-256-1235-136-125-45
+always beurkund 23-136-1235-13-256-145
+always beurlaub 23-136-1235-123-16-12
+always beurteil 23-136-1235-2345-146-123
+before u begmidword gewebe 12346-2456-15-23
+before u begword probe 12345-23
+before u midword probe 1234-1235-135-23
+before u begmidword vice 1236-24-6-14-15
+before u begmidword lyce 123-6-13456-6-14-15
+always deus 145-15-136-234
+before u begmidword lade 123-1-145-15
+before u begmidword bade 12-1-145-15
+always amadeus 1-134-1-145-15-136-234
+before u begmidword parade 1234-356-1-145-15
+sufword tedeum 2345-15-145-15-136-134
+always tedeum 236-145-15-136-134
+before u begmidword lande 123-235-145-15
+before u begmidword ländeunter 123-345-1345-145-15
+before u begmidword gemeinde 12346-134-1246-145-15
+always gemeindeutsch 12346-134-1246-145-156
+always spondeus 234-1234-135-1345-145-15-136-234
+before u begmidword kunde 13-256-145-15
+always codeum 6-14-135-145-15-136-134
+always spreeufer 234-1234-1235-15-15-136-124-12456
+always seeufer 234-15-15-136-124-12456
+always seeum 234-15-15-136-134
+always seeun 234-15-15-256
+before u begmidword hilfe 125-24-123-124-15
+before u begmidword beinahe 2-12-1345-1-125-15
+always rechercheur 1235-15-1456-12456-1456-126-1235
+before u begmidword recherche 1235-15-1456-12456-1456-15
+before u begmidword ruhe 1235-136-125-15
+before u begmidword leihe 123-146-125-15
+always theurg 2345-125-15-136-1235-1245
+midendword theus 2345-125-15-136-234
+always makeup 134-1-13-15-136-1234
+always bakkalaure 12-1-13-13-25-16-1235-15
+before u begmidword stärke 23456-345-1235-13-15
+always aleuten 25-15-136-2345-14
+always aleutisch 25-15-136-2345-24-156
+always nucleus 1345-136-6-14-123-15-136-234
+before u begmidword kohle 13-135-125-123-15
+always ileus 24-123-15-136-234
+always nukleus 1345-136-13-123-15-136-234
+always oleum 135-123-15-136-134
+always linoleum 123-35-135-123-15-136-134
+always petroleum 1234-15-2345-1235-135-123-15-136-134
+always mausoleum 134-16-234-135-123-15-136-134
+always herculaneum 125-12456-6-14-136-123-235-15-136-134
+before u begmidword marine 134-356-35-15
+before u begmidword routine 1235-135-136-2345-35-15
+always marneufer 134-356-1345-15-136-124-12456
+always oeuvre 246-136-1236-1235-15
+before u begmidword ware 2456-356-15
+before u begmidword reise 1235-146-234-15
+always themseufer 2345-125-12356-234-15-136-124-12456
+before u begmidword presse 1234-1235-15-2346-15
+always colosseum 6-14-135-123-135-2346-15-136-134
+always kolosseum 13-135-123-135-2346-15-136-134
+always museum 134-136-234-15-136-134
+before u begmidword gehäuse 12346-125-34-234-15
+before u begmidword geräte 12346-1235-345-236
+before u begmidword elite 13456-24-236
+before u begmidword vize 1236-24-1356-15
+always andrözeum 235-145-1235-246-1356-15-136-134
+always lyzeum 123-6-13456-1356-15-136-134
+
+# EX-  (4.2.1 Vorsilbenkürzungen)
+word ex 15-6-1346
+begword ex 1346
+
+# FAHR FÄHR (4.3.6 Kommakürzungen)
+always fahr 2-1235
+always fähr 5-1235
+
+# FALL FÄLL (4.4 Zweiformige Kürzungen)
+always fall 124-12345
+always fäll 5-124-12345
+always fallib 124-1-12345-24-12
+
+# -FALLS 4.2.1 a) Nachsilbenkürzungen
+word falls 124-12345-234
+midendword falls 124
+always fallschirm 124-12345-156-24-1235-134
+always fallspezifisch 124-12345-234-1234-15-1356-24-124-24-156
+always fallstatist 124-12345-23456-1-2345-24-23456
+begmidword fallstr 124-12345-23456-1235
+begmidword fallstudi 124-12345-23456-136-145-24
+always fallsucht 124-12345-234-136-1456-2345
+always fallsüchtig 124-12345-234-1256-1456-2345-45
+always abfall 1-12-124-12345
+always randfall 1235-235-145-124-12345
+always mordfall 134-26-145-124-12345
+always befall 23-124-12345
+always schneefall 156-1345-15-15-124-12345
+always pflegefall 1234-124-123-15-12346-124-12345
+always garantiefall 1245-356-235-2345-346-124-12345
+always kniefall 13-1345-346-124-12345
+sufword ausnahmefall 34-1345-134-15-124-12345
+always ausnahmefall 16-234-1345-134-15-124-12345
+always härtefall 125-345-1235-236-124-12345
+always wegfall 2456-1245-124-12345
+always durchfall 2-1456-124-12345
+always beifall 2-12-124-12345
+always rückfall 1235-46-124-12345
+always idealfall 24-145-15-25-124-12345
+always spezialfall 234-1234-15-1356-24-25-124-12345
+always normalfall 1345-26-134-25-124-12345
+always kriminalfall 13-1235-24-134-35-25-124-12345
+always eventualfall 15-1236-14-2345-136-25-124-12345
+always regelfall 1235-15-1245-13456-124-12345
+always spielfall 2-346-124-12345
+always einzelfall 1246-1356-13456-124-12345
+sufword problemfall 12345-12-123-12356-124-12345
+always problemfall 1234-1235-135-12-123-12356-124-12345
+sufword extremfall 1346-2345-1235-12356-124-12345
+always extremfall 15-6-1346-2345-1235-12356-124-12345
+always heimfall 125-146-134-124-12345
+always anfall 235-124-12345
+always sündenfall 234-1256-1345-145-14-124-12345
+always regenfall 1235-15-1245-14-124-12345
+always zwischenfall 1356-2456-124-12345
+always krisenfall 13-1235-24-234-14-124-12345
+always einfall 1246-124-12345
+always rheinfall 1235-125-1246-124-12345
+always tonfall 2345-135-1345-124-12345
+always unfall 256-124-12345
+always überfall 2-1256-124-12345
+always sonderfall 234-135-1345-145-12456-124-12345
+always fehlerfall 124-2356-123-12456-124-12345
+always wasserfall 2456-1-2346-12456-124-12345
+always musterfall 134-136-23456-12456-124-12345
+always mauerfall 134-16-12456-124-12345
+always trauerfall 2345-1235-16-12456-124-12345
+sufword verfall 36-124-12345
+always verfall 1236-12456-124-12345
+always zerfall 1356-12456-124-12345
+always vorfall 2-26-124-12345
+always störfall 23456-246-1235-124-12345
+always krebsfall 13-1235-15-12-234-124-12345
+always todesfall 2345-135-145-123456-124-12345
+always bedarfsfall 23-145-356-124-234-124-12345
+always scheidungsfall 156-146-145-136-234-124-12345
+always anwendungsfall 235-2456-14-145-136-234-124-12345
+always wiederholungsfall 346-145-125-135-123-136-234-124-12345
+always berechnungsfall 23-1235-15-1456-1345-136-234-124-12345
+sufword versicherungsfall 36-234-3456-12456-136-234-124-12345
+always versicherungsfall 1236-12456-234-3456-12456-136-234-124-12345
+always sanierungsfall 234-235-346-1235-136-234-124-12345
+always glücksfall 1245-46-234-124-12345
+always unglücksfall 256-1245-46-234-124-12345
+always zweifelsfall 1356-2456-146-124-13456-234-124-12345
+always beispielsfall 2-12-2-346-234-124-12345
+always schadensfall 156-1-145-14-234-124-12345
+always rechtsfall 1235-2345-234-124-12345
+always gerichtsfall 12346-2-3456-234-124-12345
+always krankheitsfall 13-1235-235-13-125-234-124-12345
+sufword ausfall 34-124-12345
+always ausfall 16-234-124-12345
+word ausfallstor 34-124-12345-234-2345-135-1235
+begmidword ausfallstor 34-124-12345-234-2345-26
+midword ausfallstor 16-234-124-12345-234-2345-26
+endword ausfallstor 16-234-124-12345-234-2345-135-1235
+always fluchtfall 124-123-136-1456-2345-124-12345
+always kreditfall 13-1235-15-145-24-2345-124-12345
+always streitfall 23456-1235-146-2345-124-12345
+always konfliktfall 13-135-1345-124-123-24-13-2345-124-12345
+always notfall 1345-135-2345-124-12345
+prfword notfalls 1345-135-2345-124 ### Homonym
+always fortfall 124-26-2345-124-12345
+always höchstfall 125-246-1456-23456-124-12345
+sufword testfall 2345-15-23456-124-12345
+always testfall 236-23456-124-12345
+always ernstfall 12456-1345-23456-124-12345
+sufword verlustfall 36-123-136-23456-124-12345
+always verlustfall 1236-12456-123-136-23456-124-12345
+always zufall 2-1356-124-12345
+always präzedenzfall 1234-1235-345-1356-15-145-14-1356-124-12345
+always grenzfall 1245-1235-14-1356-124-12345
+
+# FERTIG (4.4 Zweiformige Kürzungen)
+always fertig 124-45
+always kupfertiger 13-136-1234-124-12456-2345-45-12456
+
+# FOLG (4.4 Zweiformige Kürzungen)
+always folg 124-1245
+always folge 124-1245-15
+always folgen 124-1245-14
+before r begmidword folge 124-1245-15
+prfword folger 124-1245-12456
+midword folgerfrag 124-1245-12456-124-1235
+midendword folgerklausel 124-1245-12456-13-123-16-234-13456
+prfword folgere 124-1245-12456-15
+always folgern 124-1245-12456-1345
+always folgerin 124-1245-12456-35
+midendword folgerpaar 124-1245-12456-1234-1-1-1235
+always folgers 124-1245-12456-234
+always folgerschaft 124-1245-12456-156
+prfword folgerserie 124-1245-12456-234-12456-24-15
+always folgerst 124-1245-12456-23456
+always folgert 124-1245-12456-2345
+prfword folgerte 124-1245-12456-236
+prfword folgertet 124-1245-12456-236-2345
+prfword folgertest 124-1245-12456-236-23456
+always folgerung 124-1245-12456-136
+always thronfolger 2345-125-1235-135-1345-124-1245-12456
+sufword verfolger 36-124-1245-12456
+prfword folges 124-1245-123456
+prfword folgest 124-1245-15-23456
+prfword folgst 124-1245-23456
+
+# FRAG (4.4 Zweiformige Kürzungen)
+always frag 124-1235
+always frage 124-1235-15
+always fragen 124-1235-14
+prfword frager 124-1235-12456
+always fragerei 124-1235-12456-146
+prfword fragern 124-1235-12456-1345
+prfword fragers 124-1235-12456-234
+always fragil 124-1235-1-1245-24-123
+begmidword fragmen 124-1235-1-1245-134-14
+begmidword suffraget 234-136-124-124-1235-1-12346-2345
+
+# FREUND (4.4 Zweiformige Kürzungen)
+always freund 124-145
+always freundes 124-145-123456
+prfword freundest 124-145-15-23456
+
+# FÜHR (4.4 Zweiformige Kürzungen)
+always führ 124-125
+
+# FÜR (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word für 124
+always für-\s 2-124-36-0
+word für's 124-6-234
+always für 2-124
+always fürchte 124-1256-1235-1456-236
+always fürchten 124-1256-1235-1456-2345-14
+always fürchter 124-1256-1235-1456-2345-12456
+always fürchtig 124-1256-1235-1456-2345-45
+always fürchtung 124-1256-1235-1456-2345-136
+always fürst 124-1256-1235-23456
+
+# GANZ (4.4 Zweiformige Kürzungen)
+always ganz 1245-1356
+always gänz 5-1245-1356
+begmidword analoganzei 235-25-135-1245-235-1356-146
+always arroganz 356-1235-135-1245-235-1356
+always eleganz 13456-15-1245-235-1356
+begmidword jogginganz 245-135-1245-1245-35-1245-235-1356
+always organza 26-1245-235-1356-1
+always vaganz 1236-1-1245-235-1356
+
+# GE  (4.1 Lautgruppenkürzungen)
+word ge 1245-15
+always ge 12346
+always bungee 12-256-1245-15-15
+always dragee 145-1235-1-1245-15-15
+always neglig 1345-15-1245-123-24-1245
+begmidword flugech 124-123-136-1245-15-1456
+begmidword fluger 124-123-136-1245-12456
+always geysir 1245-15-6-13456-234-24-1235
+before u begmidword folge 124-1245-15
+before u begmidword sorge 234-26-12346
+sufword vergeud 36-1245-126-145
+midendword vergeud 1236-12456-1245-126-145
+sufword ausgeufer 34-12346-136-124-12456
+always ausgeufer 16-234-12346-136-124-12456
+always geupdated 12346-136-1234-145-1-236-145
+endword geur 1245-126-1235
+always geurteil 12346-136-1235-2345-146-123
+endword geure 1245-126-1235-15
+endword geurs 1245-126-1235-234
+endword geuze 1245-126-1356-15
+midword gex 1245-15-6-1346
+
+# GEh
+prfword geh 1245-15-125
+midendword gehabend 1245-2356-1-12-14-145
+begmidword gehanz 1245-2356-235-1356
+always gehbahn 1245-2356-12-1-125-1345
+prfword gehbar 1245-2356-12-1-1235
+begmidword gehbar 1245-2356-12-356
+always gehbelag 1245-2356-23-123-1-1245
+begmidword gehbeläg 1245-2356-23-123-345-1245
+always gehbehind 1245-2356-23-125-35-145
+prfword gehe 1245-2356-15
+always gehen 1245-2356-14
+always gehenk 12346-125-14-13
+begmidword legehenn 123-15-12346-125-14-1345
+always geher 1245-2356-12456
+always geherrsch 12346-1235-1235-156
+always geherrschaft 12346-1235-1235-156-1-124-2345
+before konsonant begmidword geh 1245-2356
+always gehunfähig 1245-2356-256-124-345-125-45
+always gehuni 1245-2356-256-24
+always gehung 1245-2356-136
+# GEi
+always gei 1245-146
+begmidword geirr 12346-24-1235-1235
+begmidword geimpf 12346-24-134-1234-124
+begmidword folgeimpf 124-1245-15-24-134-1234-124
+# GEin
+always gein 1245-1246
+midword geinhal 12346-35-125-25
+midword geinit 12346-35-24-2345
+midword geinstit 12346-35-23456-24-2345
+midword geinstrum 12346-35-23456-1235-136-134
+midword geintens 12346-35-2345-14-234
+midword geintent 12346-35-2345-14-2345
+# GEl
+prfword gel 1245-13456
+before konsonant begword gel 1245-13456
+always gelatin 1245-13456-1-2345-35
+always geln 1245-13456-1345
+prfword gels 1245-13456-234
+always gelchen 1245-13456-1456-14
+always gelb 1245-13456-12
+prfword gelbe 1245-13456-12-15
+always geld 1245-13456-145
+always gelee 1245-13456-15-15
+prfword geleerte 12346-123-15-15-1235-236
+always geleert 12346-123-15-15-1235-2345
+after g midword elektr 13456-15-13-2345-1235
+midword gelektr 1245-13456-15-13-2345-1235
+syllable gelier 1245-13456-346-1235
+always gell 12346-12345
+always gelnhaus 1245-13456-1345-125-16-234
+always gels 1245-13456-234
+prfword gelst 1245-13456-23456
+always gelt 1245-13456-2345
+prfword gelte 1245-13456-236
+prfword geltet 1245-13456-236-2345
+always gelynch 12346-123-6-13456-1345-1456
+always gelz 1245-13456-1356
+before l midendword drainage 145-1235-1-24-1345-1-12346
+before l midendword dränage 145-1235-345-1345-1-12346
+always hagel 125-1-1245-13456
+always nagel 1345-1-1245-13456
+always nägel 1345-345-1245-13456
+always wägel 2456-345-1245-13456
+always zagel 1356-1-1245-13456
+always egel 15-1245-13456
+syllable gelübd 12346-123-1256-12-145
+always badegelegen 12-1-145-15-1245-1245
+always zugrundegeleg 2-1356-1245-145-15-12346-123-15-1245
+always zugrundegelegen 2-1356-1245-145-15-1245-1245
+always nahegeleg 1345-1-125-15-12346-123-15-1245
+always nahegelegen 1345-1-125-15-1245-1245
+always rachege 1235-56-15-12346
+always rachegeist 1235-56-15-1245-146-23456
+always treuege 2345-1235-126-15-12346
+always treuegeld 2345-1235-126-15-1245-13456-145
+begmidword messegeländ 134-15-2346-15-12346-123-345-1345-145
+always schniegel 156-1345-346-1245-13456
+always spiegel 234-1234-346-1245-13456
+always riegel 1235-346-1245-13456
+always siegel 234-346-1245-13456
+always tiegel 2345-346-1245-13456
+always wiegel 2456-346-1245-13456
+always ziegel 1356-346-1245-13456
+always kegel 13-15-1245-13456
+always flegel 124-123-15-1245-13456
+before l begmidword pflege 1234-124-123-15-12346
+always schlegel 156-123-15-1245-13456
+before l begmidword college 6-14-135-12345-15-12346
+always pegel 1234-15-1245-13456
+always regel 1235-15-1245-13456
+begmidword irrege 24-1235-1235-15-12346
+begmidword irregeh 24-1235-1235-15-1245-2356
+always segel 234-15-1245-13456
+always schmuggel 156-134-136-1245-1245-13456
+always duschgel 145-136-156-1245-13456
+always duschgelegenheit 145-136-156-1245-1245-125
+sufword igel 24-1245-13456
+midendword igel 45-13456
+always eigel 146-1245-13456
+always fejgel 124-15-245-1245-13456
+before l begmidword zeige 1356-146-12346
+before l begmidword freige 124-1235-146-12346
+always freigelegen 124-1235-146-1245-1245
+before l begmidword zweige 1356-2456-146-12346
+always seeigel 234-15-15-45-13456
+always angel 235-1245-13456
+begmidword angelach 235-12346-123-56
+begmidword angeläch 235-12346-123-345-1456
+always angelager 235-12346-123-1-1245-12456
+always angeland 235-12346-123-235-145
+always angelang 235-12346-123-1245
+always angelass 235-12346-2-123
+always angelast 235-12346-123-1-23456
+always angelatsch 235-12346-123-1-2345-156
+always angelauf 235-12346-123-16-124
+always angelautet 235-12346-123-16-236-2345
+prfword angelautete 235-12346-123-16-236-236
+always angeläutet 235-12346-123-34-236-2345
+prfword angeläutete 235-12346-123-34-236-236
+always angelegen 235-1245-1245
+always angelegt 235-12346-123-15-1245-2345
+prfword angelegte 235-12346-123-15-1245-236
+always angelegtest 235-12346-123-15-1245-236-23456
+begmidword angelehn 235-12346-123-2356-1345
+begmidword angeleier 235-12346-123-146-12456
+always angeleimt 235-12346-123-146-134-2345
+prfword angeleimte 235-12346-123-146-134-236
+always angeleint 235-12346-123-1246-2345
+prfword angeleinte 235-12346-123-1246-236
+always angeleitet 235-12346-123-146-236-2345
+prfword angeleitete 235-12346-123-146-236-236
+always angelenk 235-12346-123-14-13
+always angelernt 235-12346-123-12456-1345-2345
+prfword angelernte 235-12346-123-12456-1345-236
+always angelesen 235-12346-123-123456-14
+begmidword angeleuch 235-12346-123-126-1456
+always evangeli 15-1236-235-1245-13456-24
+always evangelistisch 15-1236-235-1245-13456-5-156
+always angeliefert 235-12346-123-346-124-12456-2345
+prfword angelieferte 235-12346-123-346-124-12456-236
+always angelob 235-12346-123-135-12
+always angelock 235-12346-123-135-46
+always angelog 235-12346-123-135-1245
+always angelötet 235-12346-123-246-236-2345
+prfword angelötete 235-12346-123-246-236-236
+always gängel 1245-345-1345-1245-13456
+always mangel 134-235-1245-13456
+always mängel 134-345-1345-1245-13456
+always drängel 145-1235-345-1345-1245-13456
+always stängel 23456-345-1345-1245-13456
+always engel 14-1245-13456
+always stuben 23456-136-12-14
+always kirchen 13-24-1235-1456-14
+always glocken 1245-123-135-46-14
+always trocken 2345-1235-135-46-14
+always offen 135-124-124-14
+always schellen 156-15-12345-14
+always rollen 1235-135-12345-14
+always tengel 2345-14-1245-13456
+begmidword totenge 2345-135-2345-14-12346
+begmidword wüstenge 2456-1256-23456-14-12346
+always kettengelenk 13-15-2345-2345-14-12346-123-14-13
+always spitzen 234-1234-24-2345-1356-14
+midword engelächt 14-12346-123-345-1456-2345
+midword engeländ 14-12346-123-345-1345-145
+always engelass 14-12346-2-123
+always engelaut 14-12346-123-16-2345
+prfword engelaute 14-12346-123-16-236
+midendword engeleit 14-12346-123-146-2345
+midendword engelenk 14-12346-123-14-13
+midword engelern 14-12346-123-12456-1345
+always bengel 12-14-1245-13456
+prfword gemengelage 12346-134-14-12346-123-1-12346
+prfword gemengelagen 12346-134-14-12346-123-1-1245-14
+begmidword außengeländ 16-2346-14-12346-123-345-1345-145
+always stengel 23456-14-1245-13456
+always ingelheim 35-1245-13456-125-146-134
+always schlingel 156-123-35-1245-13456
+always klingel 13-123-35-1245-13456
+always pingel 1234-35-1245-13456
+always ringel 1235-35-1245-13456
+always tingel 2345-35-1245-13456
+always zingel 1356-35-1245-13456
+always klüngel 13-123-1256-1345-1245-13456
+always züngel 1356-1256-1345-1245-13456
+always kogel 13-135-1245-13456
+always mogel 134-135-1245-13456
+always vogel 1236-135-1245-13456
+always vögel 1236-246-1245-13456
+always spargel 234-1234-356-1245-13456
+always mergel 134-12456-1245-13456
+always pergel 1234-12456-1245-13456
+always orgel 26-1245-13456
+before l midword fürsorge 2-124-234-26-12346
+before l midword vorsorge 2-26-234-26-12346
+always torgelegen 2345-26-1245-1245
+always nörgel 1345-246-1235-1245-13456
+always spörgel 234-1234-246-1235-1245-13456
+always gurgel 1245-136-1235-1245-13456
+always äugel 34-1245-13456
+always bügel 12-1256-1245-13456
+always hügel 125-1256-1245-13456
+always gugel 1245-136-1245-13456
+always kugel 13-136-1245-13456
+always kügel 13-1256-1245-13456
+always klügel 13-123-1256-1245-13456
+always flügel 124-123-1256-1245-13456
+always prügel 1234-1235-1256-1245-13456
+always zügel 1356-1256-1245-13456
+# GEm
+prfword gem 1245-12356
+always gement 1245-12356-14-2345
+always geminat 1245-12356-35-1-2345
+always gemination 1245-12356-35-5-1345
+always gemini 1245-12356-35-24
+always geminier 1245-12356-35-346-1235
+always trigeminus 2345-1235-24-1245-12356-35-136-234
+always hegemon 125-15-1245-12356-135-1345
+syllable gems 1245-12356-234
+# GEn
+always gen 1245-14
+always genabel 12346-1345-1-12-13456
+prfword genadelte 12346-1345-1-145-13456-236
+always genadelt 12346-1345-1-145-13456-2345
+begmidword genäch 12346-1345-345-1456
+begmidword genag 12346-1345-1-1245
+begmidword genagent 1245-14-1-1245-14-2345
+begmidword genäh 12346-1345-345-125
+midendword genähnlich 1245-14-345-456
+always genannt 12346-1345-235-1345-2345
+prfword genannte 12346-1345-235-1345-236
+always genanntest 12346-1345-235-1345-236-23456
+begmidword genarb 12346-1345-356-12
+midendword genarbeit 1245-14-356-12
+begmidword genarr 12346-1345-356-1235
+prfword genas 12346-1345-1-234
+always genäs 12346-1345-345-234
+always genäss 12346-1345-345-2346
+always genäschig 12346-1345-345-156-45
+always genascht 12346-1345-1-156-2345
+prfword genaschte 12346-1345-1-156-236
+prfword genasen 12346-1345-1-234-14
+always genasführ 12346-1345-1-234-124-125
+always genatur 12346-1345-2345
+always genatürlich 12346-1345-456
+always genau 12346-1345-16
+always garagen 1245-356-1-1245-14
+always lagenauf 123-1-1245-14-2-16
+always lagenaus 123-1-1245-14-16-234
+always magenauf 134-1-1245-14-2-16
+always magenaus 134-1-1245-14-16-234
+always regenauf 1235-15-1245-14-2-16
+always regenaus 1235-15-1245-14-16-234
+always eigenauf 146-1245-14-2-16
+always eigenaus 146-1245-14-16-234
+always felgenaus 124-13456-1245-14-16-234
+always stangenauf 23456-235-1245-14-2-16
+always stangenaus 23456-235-1245-14-16-234
+always mengenauf 134-14-1245-14-2-16
+always mengenaus 134-14-1245-14-16-234
+always zwergen 1356-2456-12456-1245-14
+always morgenauf 134-26-1245-14-2-16
+always morgenaus 134-26-1245-14-16-234
+always röntgen 1235-246-1345-2345-1245-14
+always augenauf 16-1245-14-2-16
+always augenaus 16-1245-14-16-234
+always zeugen 1356-126-1245-14
+always zeugeneid 1356-126-12346-1345-146-145
+always geneckt 12346-1345-15-46-2345
+prfword geneckte 12346-1345-15-46-236
+always genehm 12346-1345-125
+always geneidet 12346-1345-146-145-15-2345
+prfword geneidete 12346-1345-146-145-15-236
+always geneig 12346-1345-146-1245
+always geneppt 12346-1345-15-1234-1234-2345
+prfword geneppte 12346-1345-15-1234-1234-236
+always generv 12346-1345-12456-1236
+# HOMONYM
+sufword genes 1245-14-123456
+# HOMONYM
+prfword genesen 12346-1345-123456-14
+prfword genesene 12346-1345-123456-14-15
+prfword genesenem 12346-1345-123456-14-12356
+prfword genesenen 12346-1345-123456-14-14
+prfword genesener 12346-1345-123456-14-12456
+prfword genesenes 12346-1345-123456-14-123456
+always genesend 12346-1345-123456-14-145
+always genest 12346-1345-15-23456
+always genesung 12346-1345-123456-136
+always wiedergenes 346-145-12346-1345-123456
+always wiedergenest 346-145-12346-1345-15-23456
+always wiederzugenes 346-145-2-1356-12346-1345-123456
+always genesis 1245-14-123456-24-234
+always genesung 12346-1345-123456-136
+always genick 12346-1345-24-46
+word genien 1245-14-24-14
+always geniesel 12346-1345-346-234-13456
+prfword geniest 12346-1345-346-23456
+always genieß 12346-1345-346-2346
+always genietet 12346-1345-346-236-2345
+prfword genietete 12346-1345-346-236-236
+always genipp 12346-1345-24-1234-1234
+always genistet 12346-1345-24-23456-15-2345
+prfword genistete 12346-1345-24-23456-15-236
+always genöl 12346-1345-246-123
+always orangenöl 26-235-1245-14-246-123
+always genommen 12346-1345-1346
+always genopp 12346-1345-135-1234-1234
+always genörgel 12346-1345-246-1235-1245-13456
+always genordet 12346-1345-26-145-15-2345
+prfword genordete 12346-1345-26-145-15-236
+always genormt 12346-1345-26-134-2345
+prfword genormte 12346-1345-26-134-236
+always genötig 12346-1345-246-2345-45
+syllable genoss 12346-1345-135-2346
+syllable genöss 12346-1345-246-2346
+always genuckel 12346-1345-136-46-13456
+always genudel 12346-1345-136-145-13456
+always genug 12346-1345-136-1245
+always genüg 12346-1345-1256-1245
+always genüge 12346-1345-1256-12346
+always genügen 12346-1345-1256-1245-14
+always genüchter 12346-1345-1256-1456-2345-12456
+always genuschel 12346-1345-136-156-13456
+always genuss 12346-1345-136-2346
+# Alte Rechtschreibung
+always genuß 12346-1345-136-2346
+syllable genüss 12346-1345-1256-2346
+always genutz 12346-1345-1356
+always genütz 12346-5-1345-1356
+# GEr
+prfword ger 1245-12456
+after g midendword erlaubnis 12456-123-16-12-1346
+sufword gerd 1245-12456-145
+prfword gere 1245-12456-15
+prfword gerei 1245-12456-146
+prfword gereien 1245-12456-146-14
+prfword geren 1245-12456-14
+always gers 1245-12456-234
+always gersund 1245-12456-234-256-145
+sufword gert 1245-12456-2345
+word gerte 1245-12456-236
+always gern 1245-12456-1345
+midendword gerlich 1245-12456-456
+always gerald 1245-12456-25-145
+always gerani 1245-12456-235-24
+always gerant 1245-12456-235-2345
+always gerard 1245-12456-356-145
+always gerb 1245-12456-12
+midword gerbe 1245-12456-23
+midendword gerberg 1245-12456-12-12456-1245
+endword gerberge 1245-12456-12-12456-12346
+prfword gerben 1245-12456-12-14
+prfword gerber 1245-12456-12-12456
+always gerbera 1245-12456-12-12456-1
+always gerberei 1245-12456-12-12456-146
+always gerberin 1245-12456-12-12456-35
+prfword gerbern 1245-12456-12-12456-1345
+prfword gerbers 1245-12456-12-12456-234
+always gerbrück 1245-12456-12-1235-1256-46
+always gerecht 12346-1235-2345
+always folgerecht 124-1245-15-1235-2345
+syllable gerfalk 1245-12456-124-25-13
+midword gergeb 1245-12456-12346-12
+always gerh 1245-12456-125
+always prediger 1234-1235-15-145-45-12456
+always geria 1245-12456-24-1
+always niger 1345-45-12456
+prfword gerie 1245-12456-346
+prfword gerien 1245-12456-24-14
+sufword gerier 1245-12456-346-1235
+always suggerier 234-136-1245-1245-12456-346-1235
+always sengerig 234-14-1245-12456-45
+midendword ggerli 1245-1245-12456-123-24
+syllable gerlind 1245-12456-123-35-145
+always germ 1245-12456-134
+always angermund 235-1245-12456-134-256-145
+always igerm 45-12456-134
+always gern 1245-12456-1345
+word gero 1245-12456-135
+word geros 1245-12456-135-234
+always gerold 1245-12456-135-123-145
+always gerolf 1245-12456-135-123-124
+always geroni 1245-12456-135-1345-24
+always geront 1245-12456-135-1345-2345
+always gerr 1245-12456-1235
+always skagerak 234-13-1-1245-12456-1-13
+always skagerrak 234-13-1-1245-12456-1235-1-13
+begmidword seegerrin 234-15-15-1245-12456-1235-35
+always gershwin 1245-12456-234-125-2456-35
+always gerst 1245-12456-23456
+always gerstand 1245-12456-2-23456
+always gerständ 1245-12456-5-23456
+prfword gert 1245-12456-2345
+always gertrud 1245-12456-2345-1235-136-145
+prfword gerte 1245-12456-236
+prfword gertest 1245-12456-236-23456
+prfword gertet 1245-12456-236-2345
+always gertel 1245-12456-2345-13456
+endword gertem 1245-12456-2345-12356
+endword gerten 1245-12456-2345-14
+endword gerter 1245-12456-2345-12456
+endword gertes 1245-12456-2345-123456
+always gerten 1245-12456-2345-14
+prfword gerts 1245-12456-2345-234
+midendword gertrag 1245-12456-2345-1245
+midword gerträg 1245-12456-5-2345-1245
+syllable gerundi 1245-12456-256-145-24
+midendword gerung 1245-12456-136
+syllable gerusi 1245-12456-136-234-24
+syllable gervasi 1245-12456-1236-1-234-24
+syllable gerwig 1245-12456-2456-45
+syllable gerwin 1245-12456-2456-35
+always haager 125-1-1-1245-12456
+always hager 125-1-1245-12456
+always häger 125-345-1245-12456
+always jäger 245-345-1245-12456
+always lager 123-1-1245-12456
+always lagerichtig 123-1-12346-2-3456-45
+always lagereg 123-1-12346-1235-15-1245
+always läger 123-345-1245-12456
+always lageraum 123-1-12346-1235-16-134
+always lageräum 123-1-12346-1235-34-134
+before er begmidword anlage 235-123-1-12346
+prfword anlagern 235-123-1-1245-12456-1345
+always anlagert 235-123-1-1245-12456-2345
+always anlagerst 235-123-1-1245-12456-23456
+prfword anlagerte 235-123-1-1245-12456-236
+always anlagerung 235-123-1-1245-12456-136
+before er begmidword klage 13-123-1-12346
+prfword klager 13-123-1-1245-12456
+prfword klagern 13-123-1-1245-12456-1345
+prfword klagers 13-123-1-1245-12456-234
+always kläger 13-123-345-1245-12456
+always einlieger 1246-123-346-1245-12456
+always mager 134-1-1245-12456
+always klimagerät 13-123-24-134-1-12346-1235-345-2345
+prfword klimageräte 13-123-24-134-1-12346-1235-345-236
+begmidword spermage 234-1234-12456-134-1-12346
+always nager 1345-1-1245-12456
+always manager 134-235-1-1245-12456
+always drainagerohr 145-1235-1-24-1345-1-12346-1235-135-125-1235
+always spionagering 234-1234-24-135-1345-1-12346-1235-35-1245
+prfword spionageringe 234-1234-24-135-1345-1-12346-1235-35-12346
+always spionageroman 234-1234-24-135-1345-1-12346-1235-135-134-1-1345
+begmidword spionageroman 234-1234-24-135-1345-1-12346-1235-135-134-235
+always teenager 2345-15-15-1345-1-1245-12456
+always schräger 156-1235-345-1245-12456
+always prager 1234-1235-1-1245-12456
+always vager 1236-1-1245-12456
+always schwager 156-2456-1-1245-12456
+always schwäger 156-2456-345-1245-12456
+always voyager 1236-135-6-13456-1-1245-12456
+always cambridger 6-14-1-134-12-1235-24-145-1245-12456
+always ludger 123-136-145-1245-12456
+always feger 124-15-1245-12456
+always heger 125-15-1245-12456
+always hegereiter 125-15-12346-1235-146-2345-12456
+syllable gerüch 12346-1235-1256-1456
+always nahegerück 1345-1-125-15-12346-1235-46
+always bieger 12-346-1245-12456
+always flieger 124-123-346-1245-12456
+always auflieger 2-16-123-346-1245-12456
+always umlieger 136-134-123-346-1245-12456
+always anlieger 235-123-346-1245-12456
+always krieger 13-1235-346-1245-12456
+always sieger 234-346-1245-12456
+always schwieger 156-2456-346-1245-12456
+always wieger 2456-346-1245-12456
+always leger 123-15-1245-12456
+prfword ablegeregal 1-12-123-15-12346-1235-15-1245-1-123
+always ablegeregal 1-12-123-15-12346-1235-15-1245-25
+always legerohr 123-15-12346-1235-135-125-1235
+always legeröhr 123-15-12346-1235-246-125-1235
+always neger 1345-15-1245-12456
+always sühne 234-1256-125-1345-15
+prfword sühnel 234-1256-125-1345-13456
+always sühnen 234-1256-125-1345-14
+always reger 1235-15-1245-12456
+always integer 35-236-1245-12456
+before er begmidword wege 2456-1245-15
+prfword weger 2456-1245-12456
+prfword wegern 2456-1245-12456-1345
+prfword wegers 2456-1245-12456-234
+always wegerung 2456-1245-12456-136
+always norweger 1345-26-2456-15-1245-12456
+always wegerecht 2456-1245-15-1235-2345
+always bagger 12-1-1245-1245-12456
+always jagger 245-1-1245-1245-12456
+always egger 15-1245-1245-12456
+always digger 145-45-1245-12456
+always jigger 245-45-1245-12456
+always nigger 1345-45-1245-12456
+always trigger 2345-1235-45-1245-12456
+always jogger 245-135-1245-1245-12456
+always logger 123-135-1245-1245-12456
+always debugger 145-15-12-136-1245-1245-12456
+always fugger 124-136-1245-1245-12456
+always feiger 124-146-1245-12456
+always steiger 23456-146-1245-12456
+always geiger 1245-146-1245-12456
+always weiger 2456-146-1245-12456
+always schweigerecht 156-2456-146-12346-1235-2345
+always schwelger 156-2456-13456-1245-12456
+always schwelgeruch 156-2456-13456-12346-1235-136-1456
+always schwelgerüch 156-2456-13456-12346-1235-1256-1456
+always zeiger 1356-146-1245-12456
+always zeigeregister 1356-146-12346-1235-15-1245-24-23456-12456
+always pilger 1234-24-123-1245-12456
+always tilger 2345-24-123-1245-12456
+always holger 125-135-123-1245-12456
+begmidword mentholge 134-14-2345-125-135-123-12346
+prfword anger 235-1245-12456
+sufword angerdorf 235-1245-12456-145-26-124
+sufword angerdörfer 235-1245-12456-145-246-1235-124-12456
+prfword angern 235-1245-12456-1345
+prfword angern 235-1245-12456-234
+always fänger 124-345-1345-1245-12456
+always gänger 1245-345-1345-1245-12456
+always hanger 125-235-1245-12456
+always hänger 125-345-1345-1245-12456
+always hängereck 125-345-1345-12346-1235-15-46
+always hängereg 125-345-1345-12346-1235-15-1245
+always orangerie 26-235-1245-12456-346
+always orangerien 26-235-1245-12456-24-14
+always pranger 1234-1235-235-1245-12456
+always sänger 234-345-1345-1245-12456
+always tanger 2345-235-1245-12456
+always vanger 1236-235-1245-12456
+always wanger 2456-235-1245-12456
+prfword enger 14-1245-12456
+prfword engere 14-1245-12456-15
+prfword engerem 14-1245-12456-12356
+prfword engeren 14-1245-12456-14
+prfword engerer 14-1245-12456-12456
+prfword engeres 14-1245-12456-123456
+always engerling 14-1245-12456-123-35-1245
+prfword engerlinge 14-1245-12456-123-35-12346
+always inger 35-1245-12456
+midword ingerä 35-12346-1235-345
+midendword ingeruch 35-12346-1235-136-1456
+midword ingerüch 35-12346-1235-1256-1456
+always kerosin 13-12456-135-234-35
+always einge 1246-12346
+before r begmidword hinge 125-35-12346
+always vaihinger 1236-1-24-125-35-1245-12456
+prfword eingehe 1246-1245-2356-15
+always eingehen 1246-1245-2356-14
+always eingehst 1246-1245-2356-23456
+always eingeht 1246-1245-2356-2345
+always eingehung 1246-1245-2356-136
+always eingelb 1246-1245-13456-12
+always koffeingehalt 13-135-124-124-15-35-12346-125-25-2345
+always chemieingenieur 1456-12356-346-35-1245-14-24-126-1235
+always softwareingenieur 234-135-124-2345-2456-356-15-35-1245-14-24-126-1235
+always steingeiß 23456-1246-1245-146-2346
+always weingeist 2456-1246-1245-146-23456
+always termin 2345-12456-134-35
+always hongkonger 125-135-1345-1245-13-135-1345-1245-12456
+always hunger 125-256-1245-12456
+always junger 245-256-1245-12456
+always dünger 145-1256-1345-1245-12456
+always jünger 245-1256-1345-1245-12456
+always analoger 235-25-135-1245-12456
+always homologer 125-135-134-135-123-135-1245-12456
+always roger 1235-135-1245-12456
+always mikro 134-24-13-1235-135
+always elektro 13456-15-13-2345-1235-135
+always büro 12-1256-1235-135
+always dröger 145-1235-246-1245-12456
+always zöger 1356-246-1245-12456
+always arger 356-1245-12456
+begmidword polar 1234-135-123-356
+prfword nachbar 1345-56-12-1-1235
+begmidword nachbar 1345-56-12-356
+begmidword darge 145-356-12346
+prfword formular 124-26-134-136-123-1-1235
+begmidword formular 124-26-134-136-123-356
+begmidword disziplinar 145-24-234-1356-24-1234-123-35-356
+prfword sonar 234-135-1345-1-1235
+begmidword sonar 234-135-1345-356
+prfword altar 25-2345-1-1235
+begmidword altar 25-2345-356
+always faltarbeit 124-25-2345-356-12
+always ärger 345-1235-1245-12456
+always militär 134-24-123-24-2345-345-1235
+always berger 12-12456-1245-12456
+midendword bergeräusch 12-12456-12346-1235-34-156
+always silber 234-24-123-12-12456
+always oberge 135-12-12456-12346
+begmidword obergerman 135-12-12456-1245-12456-134-235
+always birger 12-24-1235-1245-12456
+always sorger 234-26-1245-12456
+always sorgerecht 234-26-12346-1235-2345
+always burger 12-136-1235-1245-12456
+always bürger 12-1256-1235-1245-12456
+always würger 2456-1256-1235-1245-12456
+always böttger 12-246-2345-2345-1245-12456
+always sauger 234-16-1245-12456
+always säuger 234-34-1245-12456
+always beuger 12-126-1245-12456
+always beugere 12-126-12346-1235-15
+always zeuger 1356-126-1245-12456
+always kluger 13-123-136-1245-12456
+always klüger 13-123-1256-1245-12456
+always pflüger 1234-124-123-1256-1245-12456
+always trüger 2345-1235-1256-1245-12456
+always krüger 13-1235-1256-1245-12456
+prfword zuger 1356-136-1245-12456
+always züger 1356-1256-1245-12456
+always metzger 134-15-2345-1356-1245-12456
+
+# GEs
+prfword ges 1245-123456
+always sagesatz 234-1245-15-234-1356
+always sagesätz 234-1245-15-5-234-1356
+always tages 2345-1-1245-123456
+always valuta 1236-25-136-2345-1
+always montage 134-135-1345-2345-1-12346
+prfword montagen 134-135-1345-2345-1-1245-14
+always sieges 234-346-1245-123456
+begword exeges 1346-15-1245-123456
+midword exeges 15-6-1346-15-1245-123456
+always ganges 1245-235-1245-123456
+prfword contergan 6-14-135-1345-2345-12456-1245-1-1345
+begmidword contergan 6-14-135-1345-2345-12456-1245-235
+always organgesellschaft 26-1245-235-1245-156
+always sanges 234-235-1245-123456
+always vogesen 1236-135-1245-123456-14
+always bergesh 12-12456-1245-123456-125
+always gess 12346-2346
+always gesag 12346-234-1245
+always gesäbel 12346-234-345-12-13456
+always gesäg 12346-5-234-1245
+always gesatz 12346-234-1356
+always gesätz 12346-5-234-1356
+always geschlag 12346-156-1245
+always geschläg 12346-5-156-1245
+always geschlängel 12346-156-123-345-1345-1245-13456
+always geschließ 12346-5-156-2346
+always geschnurr 12346-156-1345-136-1235-1235
+always geschreib 12346-156-12
+always geschrieb 12346-2-156
+always geschrift 12346-156-2345
+always geschunden 12346-156-256-145-14
+always gesetz 12346-2-15
+always algesie 25-1245-123456-346
+midendword gesima 1245-123456-24-134-1
+always gesind 12346-234-145
+always gesitz 12346-2-24
+always gesoll 12346-2-234
+always gest 12346-23456
+always gestaat 12346-23456-2345
+always gestand 12346-2-23456
+always geständ 12346-5-23456
+always gestion 12346-23456-245
+begmidword gestund 12346-23456-256-145
+always gesund 12346-234-256-145
+begmidword gesünd 12346-234-1256-1345-145
+word gesa 1245-123456-1
+word gesas 1245-123456-1-234
+word gese 1245-123456-15
+word geses 1245-123456-123456
+always gesozial 12346-234-123
+midword gesprach 12346-234-1234
+always gespräch 12346-5-234-1234
+midendword gesprung 12346-234-1234-1235-256-1245
+midword gesprüng 12346-234-1234-1235-1256-1345-1245
+endword gesprünge 12346-234-1234-1235-1256-1345-12346
+always gestell 12346-2-13456
+
+# GEGEN (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word gegen 1245
+always gegen-\s 2-1245-36-0
+always gegen 2-1245
+prfword gegend 12346-1245-14-145
+prfword gegenden 12346-1245-14-145-14
+midword gegenüg 12346-12346-1345-1256-1245
+
+# GEGENÜBER (4.4 Zweiformige Kürzungen)
+always gegenüber 1245-1256
+always gegenübertrag 2-1245-2-1256-2345-1245
+always gegenüberträg 2-1245-2-1256-5-2345-1245
+
+# GEGENWART GEGENWÄRT (4.4 Zweiformige Kürzungen)
+always gegenwart 1245-2456
+always gegenwärt 5-1245-2456
+
+# GELEGEN (4.4 Zweiformige Kürzungen)
+# HOMONYM
+always gelegen 1245-1245
+
+# GESCHÄFT (4.4 Zweiformige Kürzungen)
+always geschäft 1245-124
+
+# GESELLSCHAFT (4.4 Zweiformige Kürzungen)
+always gesellschaft 1245-156
+always gesellschafts 1245-156-234
+
+# GEWESEN (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word gewesen 12346
+always gewesen 2-12346
+always spionagewesen 234-1234-24-135-1345-1-12346-2456-123456-14
+
+# GEWORDEN (4.4 Zweiformige Kürzungen)
+always geworden 12346-2456
+
+# GIBT (4.4 Zweiformige Kürzungen)
+always gibt 1245-12
+word gibt's 1245-12-6-234
+
+# GLEICH (4.4 Zweiformige Kürzungen)
+always gleich 1245-1456
+
+# GLÜCK (4.4 Zweiformige Kürzungen)
+always glück 1245-46
+always unglück 256-1245-46
+
+# GROß GRÖß (4.4 Zweiformige Kürzungen)
+always groß 1245-2346
+always größ 5-1245-2346
+
+# GRUND GRÜND (4.4 Zweiformige Kürzungen)
+always grund 1245-145
+always gründ 5-1245-145
+word grundig 1245-1235-256-145-45
+always gründonnerstag 1245-1235-1256-1345-145-135-1345-1345-12456-234-2345-1-1245
+always gründüng 1245-1235-1256-1345-145-1256-1345-1245
+always joggingrund 245-135-1245-1245-35-1245-1235-256-145
+
+# HAB HÄB (4.3.6 Kommakürzungen)
+always hab 2-125
+always häb 5-125
+always habakuk 125-1-12-1-13-136-13
+always habanero 125-1-12-235-12456-135
+always habergeiß 125-1-12-12456-1245-146-2346
+sufword habermas 125-1-12-12456-134-1-234
+always habsburg 125-1-12-234-12-136-1235-1245
+sufword ahab 1-125-1-12
+sufword cahab 6-14-1-125-1-12
+sufword dhabi 145-125-1-12-24
+always viehab 1236-346-125-1-12
+always piranha 1234-24-1235-235-125-1
+always rohab 1235-135-125-1-12
+always alphabet 25-1234-125-1-23-2345
+prfword alphabete 25-1234-125-1-23-236
+always alphablock 25-1234-125-1-12-123-135-46
+always rhabarber 1235-125-1-12-356-12-12456
+always schuhab 156-136-125-1-12
+always frühab 124-1235-1256-125-1-12
+
+# HAFT HÄFT (4.4 Zweiformige Kürzungen)
+always haft 125-124
+always häft 5-125-124
+always behaft 23-125-124
+sufword shaft 234-125-1-124-2345
+
+# HAND HÄND (4.4 Zweiformige Kürzungen)
+always hand 125-145
+always händ 5-125-145
+word händels 125-345-1345-145-13456-234
+word handke 125-235-145-13-15
+word handkes 125-235-145-13-123456
+midendword ehand 15-125-145
+midword ehänd 15-5-125-145
+midendword tehand 236-125-145
+midword tehänd 236-5-125-145
+sufword luchterhand 123-136-1456-2345-12456-125-235-145
+
+# HAST (4.4 Zweiformige Kürzungen)
+always hast 125-23456
+always hastings 125-1-23456-35-1245-234
+always buddha 12-136-145-145-125-1
+always alphastrahl 25-1234-125-1-23456-1235-1-125-123
+
+# HAT (4.4 Zweiformige Kürzungen)
+always hat 125-2345
+begmidword aliphat 25-24-1234-125-1-2345
+prfword aliphate 25-24-1234-125-1-236
+begmidword alphat 25-1234-125-1-2345
+always daihatsu 145-1-24-125-1-2345-234-136
+sufword hatch 125-1-2345-1456
+always hatschi 125-1-2345-156-24
+always hatz 125-1-2345-1356
+always mahatma 134-1-125-1-2345-134-1
+prfword phatisch 1234-125-1-2345-24-156
+begmidword phatisch 1234-125-1-2345-24-156
+always phosphat 1234-125-135-234-1234-125-1-2345
+prfword phosphate 1234-125-135-234-1234-125-1-236
+always shatoo 234-125-1-2345-135-135
+sufword that 2345-125-1-2345
+always triumphat 2345-1235-24-136-134-1234-125-1-2345
+sufword verhatsch 36-125-1-2345-156
+midendword verhatsch 1236-12456-125-1-2345-156
+sufword what 2456-125-1-2345
+
+# HATT (4.3.4 Einformige Kürzungen, alleinstehend, mit Endungen oder in Wortverbindungen)
+always hatt 125
+always hattingen 125-1-2345-2345-35-1245-14
+always hattrick 125-1-2345-2345-1235-24-46
+begmidword trollhätt 2345-1235-135-12345-125-345-2345-2345
+prfword manhattan 134-235-125-1-2345-2345-1-1345
+begmidword manhattan 134-235-125-1-2345-2345-235
+always shatterhand 234-125-1-2345-2345-12456-125-235-145
+
+# HÄTT (4.3.4 Einformige Kürzungen, alleinstehend, mit Endungen oder in Wortverbindungen)
+always hätt 345
+
+# HAUPT HÄUPT (4.4 Zweiformige Kürzungen)
+always haupt 125-1234
+always häupt 5-125-1234
+
+# -HEIT  4.2.1 a) Nachsilbenkürzungen
+midendword heit 125
+midendword heits 125-234
+always heiter 125-146-2345-12456
+always hoheit 125-135-125-146-2345
+
+# HERR (4.4 Zweiformige Kürzungen)
+always herr 1235-1235
+always herrann 125-12456-1235-235-1345
+always herräum 125-12456-1235-34-134
+always herred 125-12456-1235-15-145
+always herreich 125-12456-1235-146-1456
+always herreis 125-12456-1235-146-234
+always herreist 125-12456-1235-146-23456
+always herreit 125-12456-1235-146-2345
+endword herreite 125-12456-1235-146-236
+always herreiß 125-12456-1235-146-2346
+always herrenn 125-12456-1235-14-1345
+always herricht 125-12456-2-3456
+always herrief 125-12456-1235-346-124
+always herrief 125-12456-1235-346-124
+always herrliberg 125-12456-1235-123-24-12-12456-1245
+always herroll 125-12456-1235-135-12345
+always herruf 125-12456-1235-136-124
+always herrück 125-12456-1235-46
+always herrühr 125-12456-1235-1256-125-1235
+always herrutsch 125-12456-1235-136-2345-156
+always daherr 145-125-1235
+always einherr 1246-125-12456-1235
+always höherr 125-246-125-12456-1235
+always sherry 234-125-12456-1235-6-13456
+always äther 345-2345-125-12456
+always luther 123-136-2345-125-12456
+
+# HIER (4.4 Zweiformige Kürzungen)
+always hier 125-1235
+always hierarch 125-24-12456-356-1456
+always hiero 125-24-12456-135
+always hierorts 125-1235-26-2345-234
+always cahier 6-14-1-125-24-12456
+midendword trahier 2345-1235-1-125-346-1235
+midendword strahier 23456-1235-1-125-346-1235
+sufword extrahier 1346-2345-1235-1-125-346-1235
+midendword extrahier 15-6-1346-2345-1235-1-125-346-1235
+always paraphier 1234-356-1-1234-125-346-1235
+always graphier 1245-1235-1-1234-125-346-1235
+always triumphier 2345-1235-24-136-134-1234-125-346-1235
+always trophier 2345-1235-135-1234-125-346-1235
+always strophier 23456-1235-135-1234-125-346-1235
+always morphierel 134-26-1234-125-346-1235-13456
+always thierr 2345-125-24-12456-1235
+
+# HOFF HÖFF (4.4 Zweiformige Kürzungen)
+always hoff 124-124
+always höff 5-124-124
+always hoffenster 125-135-124-124-14-23456-12456
+always hofflatter 125-135-124-124-123-1-2345-2345-12456
+always hofflimmer 125-135-124-124-123-24-1346-12456
+prfword hoffman 125-135-124-124-134-1-1345
+begmidword hoffman 125-135-124-124-134-235
+always hoffmann 125-135-124-124-134-235-1345
+always hoffrei 125-135-124-124-1235-146
+always hoffähig 125-135-124-124-345-125-45
+always kerckhoff 13-12456-46-125-135-124-124
+syllable öffnung 246-124-124-1345-136
+always steinhoff 23456-1246-125-135-124-124
+always drohoffesiv 145-1235-135-125-135-124-124-14-234-24-1236
+always hülshoff 125-1256-123-234-125-135-124-124
+
+# ICH (4.1 Lautgruppenkürzungen)
+word ich 3456
+midendword ich 3456
+word ich, 24-1456-2
+word ich; 24-1456-23
+word ich: 24-1456-25
+word ich? 24-1456-26
+word ich! 24-1456-235
+word ich) 24-1456-2356
+word ich" 24-1456-356
+word ich« 24-1456-356
+word ich» 24-1456-356
+prfword dichlor 145-24-1456-123-135-1235
+begmidword dichlor 145-24-1456-123-26
+before c begmidword anti 235-2345-24
+always lavichord 123-1-1236-24-1456-26-145
+always comic 6-14-135-134-24-6-14
+before c begmidword taxi 2345-1-6-1346-24
+
+# IE  (4.1 Lautgruppenkürzungen)
+midendword ie 346
+# IEll
+midendword iell 24-15-12345
+begmidword schiellies 156-346-123-123-346-234
+always ziellaser 1356-346-123-123-1-234-12456
+midendword ieuw 24-126-2456
+midendword ieux 24-126-6-1346
+always kiellini 13-346-123-123-35-24
+always spiell 2-346-123
+always stiell 23456-346-123-123
+always zielland 1356-346-123-123-235-145
+always zielländ 1356-346-123-123-345-1345-145
+always ziellini 1356-346-123-123-35-24
+always zielloch 1356-346-123-123-135-1456
+always ziellöch 1356-346-123-123-246-1456
+always ziellos 1356-346-123-123-135-234
+# aIE
+always ai 1-24
+always ainsel 1-35-234-13456
+always aismus 1-5-24
+always aistisch 1-5-156
+always aität 1-5-345
+always deltainsel 145-13456-2345-1-35-234-13456
+
+# bIE
+always amphibi 1-134-1234-125-24-12-24
+always adverbi 1-145-1236-12456-12-24
+# HOMONYM
+word bien 12-24-14
+sufword bien 12-346-1345
+begword bienfai 12-24-14-124-1-24
+midendword bien 12-24-14
+prfword bienchen 12-346-1345-1456-14
+prfword biene 12-346-1345-15
+prfword bienen 12-346-1345-14
+always bienn 12-24-14-1345
+always skabies 234-13-1-12-24-123456
+begmidword honigbien 125-135-1345-45-12-346-1345
+begmidword mörtelbien 134-246-1235-2345-13456-12-346-1345
+begmidword kolumbi 13-135-123-136-134-12-24
+always kolumbin 13-135-123-136-134-12-35
+begmidword wespenbien 2456-123456-1234-14-12-346-1345
+begmidword hosenbien 125-135-234-14-12-346-1345
+always snobiety 234-1345-135-12-24-15-2345-6-13456
+always anaerobier 235-1-12456-135-12-24-12456
+always garderobier 1245-356-145-12456-135-12-24-12456
+begmidword killerbien 13-24-12345-12456-12-346-1345
+begmidword mauerbien 134-16-12456-12-346-1345
+begmidword trauerbien 2345-1235-16-12456-12-346-1345
+begmidword feuerbien 124-126-12456-12-346-1345
+begmidword arbeiterbien 356-12-12456-12-346-1345
+begmidword futterbien 124-136-2345-2345-12456-12-346-1345
+begmidword arbeitsbien 356-12-234-12-346-1345
+always lesbier 123-123456-12-24-12456
+begmidword trachtbien 2345-1235-56-2345-12-346-1345
+begmidword nubi 1345-136-12-24
+begmidword pelzbien 1234-13456-1356-12-346-1345
+begmidword holzbien 125-135-123-1356-12-346-1345
+# cIE
+always ciego 6-14-24-15-1245-135
+always galici 1245-25-24-6-14-24
+begmidword sufficien 234-136-124-124-24-6-14-24-14
+always ancien 235-6-14-24-14
+always ancier 235-6-14-24-12456
+always lancier 123-235-6-14-346-1235
+always balancier 12-25-235-6-14-346-1235
+always nuancier 1345-136-235-6-14-346-1235
+always avancier 1-1236-235-6-14-346-1235
+always rencier 1235-14-6-14-24-12456
+always ferencier 124-12456-14-6-14-24-12456
+always concierge 6-14-135-1345-6-14-24-12456-12346
+always socie 234-135-6-14-24-15
+always scien 234-6-14-24-14
+always saucier 234-16-6-14-24-12456
+# dIE
+always diego 145-24-15-1245-135
+always dielektr 145-24-13456-15-13-2345-1235
+word dien 145-346-1345
+midendword dien 145-24-14
+prfword diene 145-346-1345-15
+always dienen 145-346-1345-14
+always diener 145-346-1345-12456
+always dienlich 145-346-1345-456
+always dienst 145-346-1345-23456
+always dienstag 145-346-1345-234-2345-1-1245
+prfword dienstage 145-346-1345-234-2345-1-12346
+always dient 145-346-1345-2345
+prfword diente 145-346-1345-236
+always dientest 145-346-1345-236-23456
+always dientet 145-346-1345-236-2345
+always medien 134-15-145-24-14
+word diet 145-24-15-2345
+always diethyl 145-24-15-2345-125-6-13456-123
+always barbadier 12-356-12-1-145-24-12456
+always brigadier 12-1235-45-1-145-24-12456
+always arkadier 356-13-1-145-24-12456
+always kanadier 13-235-1-145-24-12456
+always gradien 1245-1235-1-145-24-14
+always bedien 23-145-346-1345
+always gedient 12346-145-346-1345-2345
+prfword gediente 12346-145-346-1345-236
+begword expedien 1346-1234-15-145-24-14
+midword expedien 15-6-1346-1234-15-145-24-14
+always andien 235-145-346-1345
+begmidword indientin 35-145-24-14-2345-35
+always latifundi 123-1-2345-24-124-256-145-24
+always burundier 12-136-1235-256-145-24-12456
+always komödi 13-135-134-246-145-24
+always tragödi 2345-1245-246-145-24
+always tragödin 2345-1245-246-145-35
+sufword verdien 36-145-346-1345
+midendword verdien 1236-12456-145-346-1345
+always kapverdier 13-1-1234-1236-12456-145-24-12456
+prfword studie 23456-136-145-24-15
+always studien 23456-136-145-24-14
+always studier 23456-136-145-346-1235
+prfword dieu 145-24-126
+# eIE
+# fIE
+always fiesta 124-24-15-23456-1
+endword grafien 1245-1235-1-124-24-14
+always golfier 1245-135-123-124-24-12456
+sufword profierfahr 12345-124-24-12456-2-1235
+midword profierfahr 1234-1235-135-124-24-12456-2-1235
+endword graphien 1245-1235-1-1234-125-24-14
+# gIE
+midendword gien 1245-24-14
+endword gieneutral 1245-346-1345-126-2345-1235-1-123
+midword gieneutral 1245-346-1345-126-2345-1235-25
+midendword gienetz 1245-346-1345-15-2345-1356
+midendword gieniveau 1245-346-1345-24-1236-15-16
+midendword gienutz 1245-346-1345-1356
+midendword gienütz 1245-346-5-1345-1356
+always magier 134-1-1245-24-12456
+prfword orgie 26-1245-24-15
+always orgien 26-1245-24-14
+always georgi 12346-26-1245-24
+# hIE
+always hierarch 125-24-12456-356-1456
+always hierarchie 125-24-12456-356-1456-346
+always hierarchien 125-24-12456-356-1456-24-14
+always hieroglyph 125-24-12456-135-1245-123-6-13456-1234-125
+always hieronymus 125-24-12456-135-1345-6-13456-134-136-234
+always chien 1456-24-14
+always schien 156-346-1345
+always alighieri 25-45-125-24-12456-24
+endword graphien 1245-1235-1-1234-125-24-14
+always sophien 234-135-1234-125-24-14
+prfword philosophien 1234-125-24-14
+prfword thieu 2345-125-24-126
+always pathien 1234-1-2345-125-24-14
+begmidword forsythi 124-26-234-6-13456-2345-125-24
+# iIE
+# jIE
+# kIE
+always bankier 12-235-13-24-12456
+always kiew 13-24-15-2456
+sufword skier 234-13-24-12456
+always abfahrtsskier 1-12-2-1235-2345-234-234-13-24-12456
+always laufskier 123-16-124-234-13-24-12456
+always tourenskier 2345-135-136-1235-14-234-13-24-12456
+always wasserskier 2456-1-2346-12456-234-13-24-12456
+begmidword thraki 2345-125-1235-1-13-24
+# lIE
+midendword lien 123-24-14
+always lieutenant 123-24-126-2345-14-235-2345
+sufword alien 25-24-14
+endword alien 25-24-14
+always alienhand 25-24-14-125-145
+begword calien 6-14-25-24-14
+word alalie 25-25-24-15
+always regali 1235-15-1245-25-24
+always personalien 1234-1345-25-24-14
+always mineralien 134-35-12456-25-24-14
+always pastoralien 1234-1-23456-26-25-24-14
+always naturalien 1345-2345-25-24-14
+begmidword versali 1236-12456-234-25-24
+begmidword universalinstr 256-24-1236-12456-234-25-35-23456-1235
+always universalismus 256-24-1236-12456-234-25-5-24
+always universalistisch 256-24-1236-12456-234-25-5-156
+always universalität 256-24-1236-12456-234-25-5-345
+always realien 1235-15-25-24-14
+always materialien 134-123-24-14
+begmidword nationalien 1345-5-1345-25-24-14
+begmidword zereali 1356-12456-15-25-24
+always minerialien 134-35-12456-25-24-14
+begmidword chemikali 1456-12356-24-13-25-24
+begmidword somali 234-135-134-25-24
+begmidword formali 124-26-134-25-24
+always formalin 124-26-134-25-35
+always formalismus 124-26-134-25-5-24
+always formalistisch 124-26-134-25-5-156
+always formalität 124-26-134-25-5-345
+begmidword marginali 134-356-1245-35-25-24
+always marginalität 134-356-1245-35-25-5-345
+begmidword lappali 123-1-1234-1234-25-24
+begmidword arali 356-25-24
+always australi 16-23456-1235-25-24
+always salieri 234-25-24-12456-24
+always rosali 1235-135-234-25-24
+always rosalind 1235-135-234-25-35-145
+begmidword thessali 2345-125-15-2346-25-24
+begmidword repressali 1235-15-1234-1235-15-2346-25-24
+always italien 24-2345-25-24-14
+always viktuali 1236-24-13-2345-136-25-24
+always chevalier 1456-15-1236-25-24-12456
+always richelieu 1235-3456-13456-24-126
+prfword kamelie 13-1-134-13456-24-15
+always kamelien 13-1-134-13456-24-14
+always sommelier 234-135-1346-13456-24-12456
+always bromeli 12-1235-135-134-13456-24
+# HOMONYM
+always relief 1235-13456-24-15-124
+always atelier 1-2345-13456-24-12456
+always hotelier 125-135-2345-13456-24-12456
+always pellier 1234-15-12345-24-12456
+always interpellier 35-2345-12456-1234-15-12345-346-1235
+always appellier 1-1234-1234-15-12345-346-1235
+prfword dahlie 145-1-125-123-24-15
+always dahlien 145-1-125-123-24-14
+begmidword immobili 24-1346-135-12-24-123-24
+always immobilität 24-1346-135-12-24-123-5-345
+prfword lilie 123-24-123-24-15
+always lilien 123-24-123-24-14
+begmidword emili 12356-24-123-24
+begmidword famili 124-1-134-24-123-24
+always milieu 134-24-123-24-126
+begmidword petersili 1234-15-2345-12456-234-24-123-24
+begmidword ottili 135-2345-2345-24-123-24
+always galli 1245-1-12345-24
+always gallig 1245-1-12345-45
+always collier 6-14-135-12345-24-12456
+always kollier 13-135-12345-24-12456
+always tokollier 2345-135-13-135-12345-346-1235
+always banlieu 12-235-123-24-126
+always gondolier 1245-135-1345-145-135-123-24-12456
+prfword folie 124-135-123-24-15
+always folien 124-135-123-24-14
+begmidword magnoli 134-1-1245-1345-135-123-24
+always anatoli 235-1-2345-135-123-24
+always volier 1236-135-123-24-12456
+always juliet 245-136-123-24-15-2345
+begmidword apuli 1-1234-136-123-24
+# mIE
+midendword mien 134-24-14
+prfword miene 134-346-1345-15
+always mienen 134-346-1345-14
+always prämi 1234-1235-345-134-24
+always prämier 1234-1235-345-134-346-1235
+begmidword mesopotami 134-123456-135-1234-135-2345-1-134-24
+midendword emien 12356-24-14
+always akademien 1-13-1-145-12356-24-14
+always premier 1234-1235-12356-24-12456
+always krimieck 13-1235-24-134-24-15-46
+begmidword mumi 134-136-134-24
+# nIE
+midendword nien 1345-24-14
+prfword niente 1345-24-14-236
+prfword teniendo 2345-14-24-14-145-135
+prfword teniente 2345-14-24-14-236
+begmidword albani 25-12-235-24
+begmidword jordani 245-26-145-235-24
+always daniel 145-235-24-13456
+begmidword ozeani 135-1356-15-235-24
+always nathaniel 1345-1-2345-125-235-24-13456
+begmidword bethani 23-2345-125-235-24
+prfword manien 134-235-24-14
+always germanien 1245-12456-134-235-24-14
+always tasmani 2345-1-234-134-235-24
+prfword kompanien 13-135-134-1234-235-24-14
+begmidword spani 234-1234-235-24
+always spaniel 234-1234-235-24-13456
+always hispanismus 125-24-234-1234-235-5-24
+begmidword akrani 1-13-1235-235-24
+midendword akranich 1-13-1235-235-3456
+begmidword orani 26-235-24
+begmidword gerani 1245-12456-235-24
+begmidword turani 2345-136-1235-235-24
+begmidword tansani 2345-235-234-235-24
+begmidword mauretani 134-16-1235-15-2345-235-24
+begmidword aquitani 1-6-12345-136-24-2345-235-24
+begmidword kastani 13-1-23456-235-24
+begmidword silvani 234-24-123-1236-235-24
+always ingenieur 35-1245-14-24-126-1235
+always tschetscheni 2345-156-15-2345-156-14-24
+always tschetschenin 2345-156-15-2345-156-14-35
+always turkmeni 2345-136-1235-13-134-14-24
+always armeni 356-134-14-24
+always phrenien 1234-125-1235-14-24-14
+midendword venience 1236-14-24-14-6-14-15
+midendword venient 1236-14-24-14-2345
+midendword venienz 1236-14-24-14-1356
+always konvenier 13-135-1345-1236-14-346-1235
+begmidword sloweni 234-123-135-2456-14-24
+begmidword xeni 6-1346-14-24
+begmidword insigni 35-234-45-1345-24
+always carabinier 6-14-356-1-12-35-24-12456
+always robini 1235-135-12-35-24
+always jardinier 245-356-145-35-24-12456
+begmidword sardini 234-356-145-35-24
+begmidword finien 124-35-24-14
+begmidword lini 123-35-24
+begmidword pollini 1234-135-123-123-35-24
+always apollinisch 1-1234-135-12345-35-24-156
+word pollini 1234-135-12345-35-24
+word pollinis 1234-135-12345-35-24-234
+always linier 123-35-346-1235
+midendword linig 123-35-45
+always miniechs 134-35-24-15-1456-234
+always minieis 134-35-24-146-234
+prfword pinie 1234-35-24-15
+always pinien 1234-35-24-14
+begmidword abessini 1-23-2346-35-24
+begmidword grusini 1245-1235-136-234-35-24
+begmidword argentini 356-1245-14-2345-35-24
+begmidword aktini 1-13-2345-35-24
+always aktinin 1-13-2345-35-35
+prfword routinier 1235-135-136-2345-35-24-12456
+prfword routiniers 1235-135-136-2345-35-24-12456-234
+prfword zinie 1356-35-24-15
+always zinien 1356-35-24-14
+prfword zinnie 1356-35-1345-24-15
+always zinnien 1356-35-1345-24-14
+always insomnien 35-234-135-134-1345-24-14
+begmidword bonbonier 12-135-1345-12-135-1345-24-12456
+begmidword bonbonnier 12-135-1345-12-135-1345-1345-24-12456
+always saisonnier 234-1-24-234-135-1345-1345-24-12456
+always chansonnier 1456-235-234-135-1345-1345-24-12456
+begmidword kaledoni 13-25-15-145-135-1345-24
+begmidword makedoni 134-1-13-15-145-135-1345-24
+begmidword mazedoni 134-1-1356-15-145-135-1345-24
+always chiffonier 1456-24-124-124-135-1345-24-12456
+begmidword aragoni 356-1-1245-135-1345-24
+always begoni 23-1245-135-1345-24
+begmidword babyloni 12-1-12-6-13456-123-135-1345-24
+begmidword kataloni 13-1-2345-25-135-1345-24
+begmidword slawoni 234-123-1-2456-135-1345-24
+always dernier 145-12456-1345-24-12456
+begmidword indernier 35-145-12456-1345-346-1235
+begmidword spendernier 234-1234-14-145-12456-1345-346-1235
+begmidword wandernier 2456-235-145-12456-1345-346-1235
+prfword hernie 125-12456-1345-24-15
+always hernien 125-12456-1345-24-14
+begmidword kaliforni 13-25-24-124-26-1345-24
+always bosnien 12-135-234-1345-24-14
+always bosnier 12-135-234-1345-24-12456
+begmidword puni 1234-256-24
+always harpunier 125-356-1234-256-346-1235
+begmidword petuni 1234-15-2345-256-24
+begmidword bithyni 12-24-2345-125-6-13456-1345-24
+# oIE
+prfword boie 12-135-24-15
+always boien 12-135-24-14
+word foie 124-135-24-15
+always voien 1236-135-24-14
+# pIE
+word pie 1234-24-15
+sufword piedra 1234-24-15-145-1235-1
+always piemont 1234-24-15-134-135-1345-2345
+midendword pien 1234-24-14
+sufword piensa 1234-24-14-234-1
+sufword piero 1234-24-12456-135
+always pierre 1234-24-12456-1235-15
+always pierres 1234-24-12456-1235-123456
+always papier 1234-1-1234-346-1235
+always pierrot 1234-24-12456-1235-135-2345
+always kopier 13-135-1234-346-1235
+prfword pies 1234-24-15-234
+prfword hippies 125-24-1234-1234-346-234
+prfword yuppies 6-13456-136-1234-1234-346-234
+always pieta 1234-24-15-2345-1
+always pietismus 1234-24-15-2345-5-24
+always pietist 1234-24-15-2345-24-23456
+always pietistisch 1234-24-15-2345-5-156
+always pietro 1234-24-15-2345-1235-135
+always pietät 1234-24-15-2345-345-2345
+always piezo 1234-24-15-1356-135
+always kneipier 13-1345-146-1234-24-12456
+always olympier 135-123-6-13456-134-1234-24-12456
+begmidword äthiopi 345-2345-125-24-135-1234-24
+always croupier 6-14-1235-135-136-1234-24-12456
+prfword rupie 1235-136-1234-24-15
+always rupien 1235-136-1234-24-14
+# qIE
+# rIE
+word rien 1235-24-14
+midendword rien 1235-24-14
+prfword arie 356-24-15
+sufword ariel 356-24-13456
+prfword arielle 356-24-15-12345-15
+prfword arielles 356-24-15-12345-123456
+always marie 134-356-346
+prfword mariette 134-356-24-15-2345-236
+always mariett 134-356-24-15-2345-2345
+prfword parietal 1234-356-24-15-2345-1-123
+always parietal 1234-356-24-15-2345-25
+always havarie 125-1-1236-356-346
+always arien 356-24-14
+always marien 134-356-24-14
+always havarien 125-1-1236-356-24-14
+always arier 356-24-12456
+always karier 13-356-346-1235
+always karies 13-356-24-123456
+always klarier 13-123-356-346-1235
+always parier 1234-356-346-1235
+always tarier 2345-356-346-1235
+always ozetarier 135-1356-15-2345-356-24-12456
+always rotarier 1235-135-2345-356-24-12456
+always vegetarier 1236-15-12346-2345-356-24-12456
+midendword letarier 123-15-2345-356-24-12456
+always unitarier 256-24-2345-356-24-12456
+always trinitarier 2345-1235-35-24-2345-356-24-12456
+always parlamentarier 1234-356-123-1-134-14-2345-356-24-12456
+begmidword variet 1236-356-24-15-2345
+prfword variete 1236-356-24-15-236
+always gabriel 1245-1-12-1235-24-13456
+always erien 12456-24-14
+always iberien 24-12-12456-24-14
+always drogerien 145-1235-135-1245-12456-24-14
+prfword serie 234-12456-24-15
+always terien 2345-12456-24-14
+begmidword algeri 25-1245-12456-24
+prfword serie 234-12456-24-15
+midendword onfiserie 135-1345-124-24-234-12456-346
+prfword onfiserien 135-1345-124-24-234-12456-24-14
+always chinoiserie 1456-35-135-24-234-12456-346
+prfword chinoiserien 1456-35-135-24-234-12456-24-14
+always inserier 35-234-12456-346-1235
+always komparserie 13-135-134-1234-356-234-12456-346
+prfword komparserien 13-135-134-1234-356-234-12456-24-14
+always asserier 1-2346-12456-346-1235
+always brasserie 12-1235-1-2346-12456-346
+always tapisserie 2345-1-1234-24-2346-12456-346
+prfword tapisserien 2345-1-1234-24-2346-12456-24-14
+always patisserie 1234-1-2345-24-2346-12456-346
+prfword patisserien 1234-1-2345-24-2346-12456-24-14
+always karosserie 13-356-135-2346-12456-346
+prfword karosserien 13-356-135-2346-12456-24-14
+begmidword materi 134-1-2345-12456-24
+begmidword bakteri 12-1-13-2345-12456-24
+always interieur 35-2345-12456-24-126-1235
+before e begmidword arteri 356-2345-12456-24
+always grien 1245-1235-346-1345
+begmidword sangrien 234-235-1245-1235-24-14
+begmidword sibiri 234-24-12-24-1235-24
+begmidword henriett 125-14-1235-24-15-2345-2345
+prfword henriette 125-14-1235-24-15-2345-236
+endword orien 26-24-14
+always kategorien 13-1-236-1245-26-24-14
+always kalorien 13-25-26-24-14
+always theorie 2345-125-15-26-346
+always theorien 2345-125-15-26-24-14
+always orient 26-24-14-2345
+begmidword glori 1245-123-26-24
+always moriend 134-26-24-14-145
+begmidword akzessori 1-13-1356-15-2346-26-24
+begmidword histori 125-24-23456-26-24
+always historismus 125-24-23456-26-5-24
+begmidword zichori 1356-3456-26-24
+begmidword tutorien 2345-136-2345-26-24-14
+begword propriet 12345-1234-1235-24-15-2345
+always propriet 1234-1235-135-1234-1235-24-15-2345
+always carrier 6-14-356-1235-24-12456
+always barrier 12-356-1235-24-12456
+always harriet 125-356-1235-24-15-2345
+always karrier 13-356-1235-24-12456
+always perrier 1234-12456-1235-24-12456
+always terrier 2345-12456-1235-24-12456
+begmidword corrier 6-14-26-1235-24-12456
+always triest 2345-1235-24-15-23456
+always industrie 35-145-136-23456-1235-346
+always industriell 35-145-136-23456-1235-24-15-12345
+prfword industrien 35-145-136-23456-1235-24-14
+always saurier 234-16-1235-24-12456
+prfword furie 124-136-1235-24-15
+always furien 124-136-1235-24-14
+always furier 124-136-1235-346-1235
+prfword injurie 35-245-136-1235-24-15
+always injurien 35-245-136-1235-24-14
+always injurier 35-245-136-1235-346-1235
+prfword kurie 13-136-1235-24-15
+always kurien 13-136-1235-24-14
+always kurier 13-136-1235-346-1235
+always dekurie 145-15-13-136-1235-24-15
+prfword muriel 134-136-1235-24-13456
+prfword muriels 134-136-1235-24-13456-234
+always courier 6-14-135-136-1235-24-12456
+begmidword zenturi 1356-14-2345-136-1235-24
+always couturier 6-14-135-136-2345-136-1235-24-12456
+begmidword kyri 13-6-13456-1235-24
+always illyrier 24-12345-6-13456-1235-24-12456
+begmidword syri 234-6-13456-1235-24
+begmidword syrin 234-6-13456-1235-35
+begmidword assyri 1-2346-6-13456-1235-24
+# sIE
+midendword sien 234-24-14
+begword sierr 234-24-12456-1235
+always sierra 234-24-12456-1235-1
+always sterilisier 23456-12456-24-123-24-234-346-1235
+always siesta 234-24-15-23456-1
+midendword sieur 234-24-126-1235
+word messieurs 134-15-2346-24-126-1235-234
+begmidword kaukasi 13-16-13-1-234-24
+begmidword douglasi 145-135-136-1245-123-1-234-24
+begmidword austrasi 16-23456-1235-1-234-24
+begmidword eurasi 126-1235-1-234-24
+midendword antasie 235-2345-1-234-346
+endword antasien 235-2345-1-234-24-14
+endword esien 123456-24-14
+begmidword rhodesi 1235-125-135-145-123456-24
+begmidword freesi 124-1235-15-15-234-24
+begmidword schlesi 156-123-123456-24
+always milesier 134-24-123-123456-24-12456
+begmidword melanesi 134-13456-235-123456-24
+begmidword indonesi 35-145-135-1345-123456-24
+begmidword mikronesi 134-24-13-1235-135-1345-123456-24
+begmidword tunesi 2345-256-123456-24
+begmidword polynesi 1234-135-123-6-13456-1345-123456-24
+always theresien 2345-125-12456-123456-24-14
+begmidword fuchsi 124-136-1456-234-24
+always fuchsig 124-136-1456-234-45
+always chemisier 1456-12356-24-234-24-12456
+always lavoisier 123-1-1236-135-24-234-24-12456
+begmidword hortensi 125-26-2345-14-234-24
+midendword ssien 2346-24-14
+midendword messieur 134-15-2346-24-126-1235
+always jurassier 245-136-1235-1-2346-24-12456
+always patissier 1234-1-2345-24-2346-24-12456
+always dossier 145-135-2346-24-12456
+always dossierung 145-135-2346-346-1235-136
+prfword haussier 125-16-2346-24-12456
+prfword haussiers 125-16-2346-24-12456-234
+always arkebusier 356-13-15-12-136-234-24-12456
+always corbusier 6-14-26-12-136-234-24-12456
+begmidword andalusi 235-145-25-136-234-24
+always malaysier 134-25-1-6-13456-234-24-12456
+# tIE
+midendword tien 2345-24-14
+prfword tiende 2345-24-14-145-15
+prfword tiende 2345-24-14-145-15
+midendword atien 1-2345-24-14
+prfword tiens 2345-24-14-234
+prfword tient 2345-24-14-2345
+always poitiers 1234-135-24-2345-24-12456-234
+always chocolatier 1456-135-6-14-135-123-1-2345-24-12456
+prfword demokratien 145-2345-24-14
+always privatier 1234-1235-24-1236-1-2345-24-12456
+always cafetier 6-14-1-124-15-2345-24-12456
+always metier 134-15-2345-24-12456
+begmidword helveti 125-13456-1236-15-2345-24
+always helvetismus 125-13456-1236-15-2345-5-24
+always helvetismen 125-13456-1236-15-2345-24-234-134-14
+always pleitier 1234-123-146-2345-24-12456
+always poitiers 1234-135-24-2345-24-12456-234
+prfword aktie 1-13-2345-24-15
+always aktien 1-13-2345-24-14
+always paktier 1234-1-13-2345-346-1235
+always traktier 2345-1235-1-13-2345-346-1235
+always taktier 2345-1-13-2345-346-1235
+always multi 134-136-123-2345-24
+before e begmidword anti 235-2345-24
+prfword antie 235-2345-346
+always orkantief 26-13-235-2345-346-124
+always hantier 125-235-2345-346-1235
+always garantie 1245-356-235-2345-346
+always garantien 1245-356-235-2345-24-14
+sufword proviantier 12345-1236-24-235-2345-346-1235
+midendword proviantier 1234-1235-135-1236-24-235-2345-346-1235
+always kantier 13-235-2345-346-1235
+always plantier 1234-123-235-2345-346-1235
+always tantiem 2345-235-2345-24-12356
+always cartier 6-14-356-2345-24-12456
+# HOMONYM
+always portier 1234-26-2345-24-12456
+prfword portierbar 1234-26-2345-346-1235-12-1-1235
+begmidword portierbar 1234-26-2345-346-1235-12-356
+# HOMONYM
+prfword portiere 1234-26-2345-346-1235-15
+prfword portieren 1234-26-2345-346-1235-14
+always portierend 1234-26-2345-346-1235-14-145
+prfword portierst 1234-26-2345-346-1235-23456
+always portiert 1234-26-2345-346-1235-2345
+prfword portierte 1234-26-2345-346-1235-236
+prfword portiertest 1234-26-2345-346-1235-236-23456
+prfword portiertet 1234-26-2345-346-1235-236-2345
+always portierung 1234-26-2345-346-1235-136
+begmidword portierungsauf 1234-26-2345-346-1235-136-234-2-16
+always deportier 145-15-1234-26-2345-346-1235
+always kolportier 13-135-123-1234-26-2345-346-1235
+always importier 24-134-1234-26-2345-346-1235
+always apportier 1-1234-1234-26-2345-346-1235
+sufword exportier 1346-1234-26-2345-346-1235
+midendword exportier 15-6-1346-1234-26-2345-346-1235
+always transportier 2345-1235-235-234-1234-26-2345-346-1235
+midendword stien 23456-24-14
+midendword estien 15-23456-24-14
+prfword bestie 23-23456-24-15
+always bestien 23-23456-24-14
+begmidword hosti 125-135-23456-24
+always hosting 125-135-23456-35-1245
+always hostinter 125-135-23456-35-2345-12456
+always bustier 12-136-23456-24-12456
+always büfettier 12-1256-124-15-2345-2345-24-12456
+always spaghettiess 234-1234-1-1245-125-15-2345-2345-24-15-2346
+always gautier 1245-16-2345-24-12456
+always bijoutier 12-24-245-135-136-2345-24-12456
+always moutier 134-135-136-2345-24-12456
+# uIE
+always quietismus 6-12345-136-24-15-2345-5-24
+always quietistisch 6-12345-136-24-15-2345-5-156
+always quieu 6-12345-136-24-126
+always kolloqui 13-135-12345-135-6-12345-136-24
+always requi 1235-15-6-12345-136-24
+begmidword reliqui 1235-13456-24-6-12345-136-24
+# vIE
+begmidword vienn 1236-24-14-1345
+always viet 1236-24-15-2345
+always view 1236-24-15-2456
+always javier 245-1-1236-24-12456
+begmidword skandinavi 234-13-235-145-35-1-1236-24
+always xavier 6-1346-1-1236-24-12456
+begmidword endivi 14-145-24-1236-24
+begmidword bolivi 12-135-123-24-1236-24
+always riviera 1235-24-1236-24-12456-1
+always vivien 1236-24-1236-24-14
+# wIE
+always jugoslawi 245-136-1245-135-234-123-1-2456-24
+always jugoslawin 245-136-1245-135-234-123-1-2456-35
+always moldawi 134-135-123-145-1-2456-24
+# xIE
+always galaxien 1245-25-1-6-1346-24-14
+always sexier 234-15-6-1346-24-12456
+always sexiest 234-15-6-1346-24-15-23456
+always paradoxien 1234-356-1-145-135-6-1346-24-14
+begmidword gloxini 1245-123-135-6-1346-35-24
+# yIE
+begmidword harpyi 125-356-1234-6-13456-24
+# zIE
+midendword zien 1356-24-14
+begmidword akazi 1-13-1-1356-24
+begmidword grazi 1245-1235-1-1356-24
+begmidword pistazi 1234-24-23456-1-1356-24
+begmidword allochezi 1-12345-135-1456-15-1356-24
+begmidword alopezi 25-135-1234-15-1356-24
+always spezies 234-1234-15-1356-24-123456
+begmidword phönizi 1234-125-246-1345-24-1356-24
+always patrizier 1234-1-2345-1235-24-1356-24-12456
+begmidword alkylanzi 25-13-6-13456-123-235-1356-24
+begmidword koagulanzi 13-135-1-1245-136-123-235-1356-24
+prfword finanzier 124-35-235-1356-24-12456
+prfword finanziers 124-35-235-1356-24-12456-234
+always soziet 234-135-1356-24-15-2345
+
+# IG  (4.1 Lautgruppenkürzungen)
+midendword ig 45
+midendword igebiet 24-12346-12-346-2345
+endword igebiete 24-12346-12-346-236
+midword igebäud 24-12346-12-34-145
+midendword igegner 24-12346-1245-1345-12456
+midendword igehalt 24-12346-125-25-2345
+midendword igeist 24-1245-146-23456
+midword igeländ 24-12346-123-345-1345-145
+endword igenre 24-1245-14-1235-15
+endword igenres 24-1245-14-1235-123456
+midendword igeschoss 24-12346-156-135-2346
+midendword igeschäft 24-1245-124
+midword igess 45-15-2346
+midword igewerbe 24-12346-2456-12456-23
+endword igewerbe 24-12346-2456-12456-12-15
+midendword igewinn 24-12346-2456-35-1345
+midword ignor 24-1245-1345-26
+endword ignor 24-1245-1345-135-1235
+midendword igold 24-1245-135-123-145
+midendword igolf 24-1245-135-123-124
+midword igrupp 24-1245-1235-136-1234-1234
+midword igymn 24-1245-6-13456-134-1345
+always aig 1-24-1245
+always hai 125-1-24
+always kaigebühr 13-1-24-12346-12-1256-125-1235
+always sinai 234-35-1-24
+always bonsai 12-135-1345-234-1-24
+always alibi 25-24-12-24
+always kombi 13-135-134-12-24
+always digamma 145-24-1245-1-1346-1
+word digest 145-24-1245-15-23456
+always digestif 145-45-15-23456-24-124
+begmidword digitiz 145-24-1245-24-2345-24-1356
+always fight 124-24-1245-125-2345
+before g begword profi 12345-124-24
+before g midword profi 1234-1235-135-124-24
+always rigigrat 1235-24-1245-24-1245-1235-1-2345
+always high 125-24-1245-125
+always khaki 13-125-1-13-24
+always light 123-24-1245-125-2345
+always align 1-123-24-1245-1345
+always alignier 25-45-1345-346-1235
+always alkaliglasur 25-13-1-123-24-1245-123-1-234-136-1235
+always psaligraf 1234-234-25-24-1245-1235-1-124
+always psaligraph 1234-234-25-24-1245-1235-1-1234-125
+always negligee 1345-15-1245-123-24-1245-15-15
+always kalligraf 13-1-12345-24-1245-1235-1-124
+always kalligrafien 13-1-12345-24-1245-1235-1-124-24-14
+always kalligraph 13-1-12345-24-1245-1235-1-1234-125
+always milligramm 134-24-12345-24-1245-1235-1-1346
+always mignon 134-24-1245-1345-135-1345
+always talmiglanz 2345-25-134-24-1245-123-235-1356
+always night 1345-24-1245-125-2345
+always armani 356-134-235-24
+always organigramm 26-1245-235-24-1245-1235-1-1346
+always soignier 234-135-24-1245-1345-346-1235
+always epigraf 15-1234-24-1245-1235-1-124
+always epigramm 15-1234-24-1245-1235-1-1346
+always epigraph 15-1234-24-1245-1235-1-1234-125
+always champignon 1456-1-134-1234-24-1245-1345-135-1345
+always right 1235-24-1245-125-2345
+always rigips 1235-24-1245-24-1234-234
+always lollobrigida 123-135-12345-135-12-1235-24-1245-24-145-1
+always serigraf 234-12456-24-1245-1235-1-124
+always serigraph 234-12456-24-1245-1235-1-1234-125
+always aborigine 1-12-26-45-35-15
+always aborigines 1-12-26-45-35-123456
+always trigeminus 2345-1235-24-1245-12356-35-136-234
+always sight 234-24-1245-125-2345
+prfword sign 234-24-1245-1345
+prfword signs 234-24-1245-1345-234
+always design 145-123456-24-1245-1345
+always designation 145-123456-45-1345-5-1345
+always designat 145-123456-45-1345-1-2345
+always designier 145-123456-45-1345-346-1235
+always unsigned 256-234-24-1245-1345-15-145
+begmidword gassigeh 1245-1-2346-24-1245-2356
+always altigraf 25-2345-24-1245-1235-1-124
+always altigraph 25-2345-24-1245-1235-1-1234-125
+always antigen 235-2345-24-1245-14
+always kantigen 13-235-2345-45-14
+always grantigen 1245-1235-235-2345-45-14
+always antigestalt 235-2345-24-12346-23456-25-2345
+begmidword antiglob 235-2345-24-1245-123-135-12
+begmidword antigrav 235-2345-24-1245-1235-1-1236
+always zentigrad 1356-14-2345-24-1245-1235-1-145
+always zentigramm 1356-14-2345-24-1245-1235-1-1346
+always szintigraf 234-1356-35-2345-24-1245-1235-1-124
+always szintigramm 234-1356-35-2345-24-1245-1235-1-1346
+always szintigraph 234-1356-35-2345-24-1245-1235-1-1234-125
+begmidword spontigrupp 234-1234-135-1345-2345-24-1245-1235-136-1234-1234
+always antipasti 235-2345-24-1234-1-23456-24
+always luigi 123-136-24-1245-24
+prfword vignette 1236-24-1245-1345-15-2345-236
+always vignetten 1236-24-1245-1345-15-2345-2345-14
+always avignon 1-1236-24-1245-1345-135-1345
+always savigny 234-1-1236-24-1245-1345-6-13456
+always sauvignon 234-16-1236-24-1245-1345-135-1345
+always dwight 145-2456-24-1245-125-2345
+before g begmidword plexi 1234-123-15-6-1346-24
+always dezigramm 145-15-1356-24-1245-1235-1-1346
+
+# IHM   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word ihm 236
+
+# IHN (4.4 Zweiformige Kürzungen)
+word ihn 24-125
+word ihnen 24-125-14
+
+# IHR (4.3.3 Einformige Kürzungen, alleinstehend oder am Wortanfang)
+sufword ihr 24
+word ihr's 24-6-234
+
+# IM    (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word im 36
+
+# IMMER (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word immer 1346
+always immer 2-1346
+always immersion 24-1346-12456-234-245
+always dimmer 145-24-1346-12456
+always schimmer 156-24-1346-12456
+always limmer 123-24-1346-12456
+always nimmer 1345-24-1346-12456
+always trimmer 2345-1235-24-1346-12456
+always simmer 234-24-1346-12456
+always stimmer 23456-24-1346-12456
+always bestimmer 23-23456-24-1346-12456
+always wimmer 2456-24-1346-12456
+always zimmer 1356-24-1346-12456
+
+# IN  (4.1 Lautgruppenkürzungen)
+always in 35
+always cain 6-14-1-24-1345
+always novocain 1345-135-1236-135-6-14-1-35
+always bougain 12-135-136-1245-1-24-1345
+begmidword bermudain 12-12456-134-136-145-1-35
+always hain 125-1-24-1345
+always mokka 134-135-13-13-1
+always kain 13-1-24-1345
+always kokain 13-135-13-1-35
+always chamberlain 1456-1-134-12-12456-123-1-24-1345
+always plain 1234-123-1-24-1345
+always main 134-1-24-1345
+always pharma 1234-125-356-134-1
+always klima 13-123-24-134-1
+begmidword bahama 12-1-125-1-134-1
+always paint 1234-1-24-1345-2345
+always rain 1235-1-24-1345
+begmidword cholerain 1456-135-123-12456-1-35
+begmidword kamerain 13-1-134-12456-1-35
+begmidword ukrain 136-13-1235-1-35
+begmidword kontrain 13-135-1345-2345-1235-1-35
+always trainee 2345-1235-1-24-1345-15-15
+always trainer 2345-1235-1-24-1345-12456
+always rainier 1235-1-24-1345-24-12456
+always drainier 145-1235-1-24-1345-346-1235
+always trainier 2345-1235-1-24-1345-346-1235
+always training 2345-1235-1-24-1345-35-1245
+prfword saint 234-1-24-1345-2345
+prfword sainte 234-1-24-1345-236
+always tain 2345-1-24-1345
+always mountain 134-135-136-1345-2345-1-24-1345
+begmidword metain 134-15-2345-1-35
+always stainless 23456-1-24-1345-123-15-2346
+always twain 2345-2456-1-24-1345
+prfword binational 12-24-1345-5-1345-1-123
+always binational 12-24-1345-5-1345-25
+begmidword gumminier 1245-136-1346-24-1345-346-1235
+before n begmidword juli 245-136-123-24
+before n begmidword juni 245-256-24
+always cointreau 6-14-135-24-1345-2345-1235-15-16
+always joint 245-135-24-1345-2345
+always point 1234-135-24-1345-2345
+prfword pointe 1234-135-35-236
+always pointen 1234-135-35-2345-14
+always pointier 1234-135-35-2345-346-1235
+begmidword pointill 1234-135-35-2345-24-12345
+always antoin 235-2345-135-24-1345
+always allantoin 1-12345-235-2345-135-35
+always multination 134-136-123-2345-24-1345-5-1345
+always antinazi 235-2345-24-1345-1-1356-24
+begmidword antineuralg 235-2345-24-1345-126-1235-25-1245
+always antineutron 235-2345-24-1345-126-2345-1235-135-1345
+always antinomie 235-2345-24-1345-135-134-346
+always antinomien 235-2345-24-1345-135-134-24-14
+begmidword antinukle 235-2345-24-1345-136-13-123-15
+begmidword multinukle 134-136-123-2345-24-1345-136-13-123-15
+always aschantinuss 1-156-235-2345-24-1345-136-2346
+always aschantinüss 1-156-235-2345-24-1345-1256-2346
+always mannequin 134-235-1345-15-6-12345-136-35
+
+# INTERESS (4.3.6 Kommakürzungen)
+always interess 2-35
+always hinteressen 125-35-2345-12456-15-2346-14
+
+# -ION  (4.2.2 b) Nachsilbenkürzungen)
+midendword tion 2345-245
+midendword tions 2345-245-234
+word sion 234-24-135-1345
+midendword sion 234-245
+midendword sions 234-245-234
+midendword kursion 13-136-1235-234-245
+midendword ession 15-2346-245
+midendword essions 15-2346-245-234
+midendword estion 15-23456-245
+midendword estions 15-23456-245-234
+midendword ssion 2346-245
+midendword ssions 2346-245-234
+midendword ßion 2346-245
+midendword ßions 2346-245-234
+midendword stion 23456-245
+midendword stions 23456-245-234
+always punktion 1234-2345-245
+
+# IRGEND (4.4 Zweiformige Kürzungen)
+sufword irgend 24-1245
+always irgendwas 24-1245-2456-1-234
+
+# -ISMUS (4.2.2 b) Nachsilbenkürzungen)
+midendword ismus 5-24
+always gratismuster 1245-1235-1-2345-24-234-134-136-23456-12456
+always kürbismus 13-1256-1235-12-24-234-134-136-234
+
+# IST   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word ist 23456
+
+# -ISTISCH (4.2.2 b) Nachsilbenkürzungen)
+midendword istisch 5-156
+always tischtennistisch 2345-24-156-2345-14-1345-24-234-2345-24-156
+
+# -ITÄT  (4.2.2 b) Nachsilbenkürzungen)
+midendword ität 5-345
+midword itäts 5-345-234
+
+# JAHR JÄHR (4.4 Zweiformige Kürzungen)
+always jahr 245-1235
+always jähr 5-245-1235
+
+# JAHRHUNDERT (4.4 Zweiformige Kürzungen)
+always jahrhundert 245-125
+
+# JAHRTAUSEND (4.4 Zweiformige Kürzungen)
+always jahrtausend 245-2345
+
+# JAHRZEHNT (4.4 Zweiformige Kürzungen)
+always jahrzehnt 245-1356
+
+# JED (4.4 Zweiformige Kürzungen)
+begword jed 245-145
+sufword jedi 245-15-145-24
+
+# JEDOCH (4.4 Zweiformige Kürzungen)
+always jedoch 245-1456
+
+# JETZIG (4.4 Zweiformige Kürzungen)
+always jetzig 245-45
+
+# JETZT (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word jetzt 245
+always jetzt 2-245
+
+# KANN  (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word kann 13
+
+# KANNST (4.4 Zweiformige Kürzungen)
+always kannst 13-23456
+
+# KAPITAL KAPITÄL (4.4 Zweiformige Kürzungen)
+always kapital 13-1234
+always kapitalien 13-1234-24-14
+always kapitäl 5-13-1234
+
+# -KEIT  4.2.1 a) Nachsilbenkürzungen
+midendword keit 13
+midendword keits 13-234
+
+# KOMM KÖMM (4.4 Zweiformige Kürzungen)
+always komm 13-1346
+always kömm 5-13-1346
+
+# KÖNN (4.3.6 Kommakürzungen)
+always könn 2-13
+
+# KONNT (4.4 Zweiformige Kürzungen)
+always konnt 13-2345
+
+# KRAFT KRÄFT (4.4 Zweiformige Kürzungen)
+always kraft 13-124
+always kräft 5-13-124
+
+# KURZ KÜRZ (4.4 Zweiformige Kürzungen)
+always kurz 13-1356
+always kürz 5-13-1356
+always kurzeit 13-136-1235-1356-2345
+begmidword kurzentr 13-136-1235-1356-14-2345-1235
+
+# LANG LÄNG (4.4 Zweiformige Kürzungen)
+always lang 123-1245
+always läng 5-123-1245
+prfword langabe 123-235-1245-1-12-15
+prfword angabe 235-1245-1-12-15
+always langabe 123-235-1245-1-23
+always angabe 235-1245-1-23
+always langaben 123-235-1245-1-12-14
+always angaben 235-1245-1-12-14
+syllable angehörig 235-12346-125-246-1235-45
+always längelang 5-123-1245-15-123-1245
+syllable angelegenheit 235-1245-1245-125
+syllable angleich 235-1245-1456
+syllable angestell 235-12346-2-13456
+syllable angebot 235-12346-12-135-2345
+syllable angebote 235-12346-12-135-236
+syllable angebotes 235-12346-12-135-2345-123456
+syllable angeboten 235-12346-12-135-2345-14
+always langenberg 123-235-1245-14-12-12456-1245
+always langenfeld 123-235-1245-14-124-13456-145
+always langenscheidt 123-235-1245-14-156-146-145-2345
+always langerhans 123-235-1245-12456-125-235-234
+always langnes 123-235-1245-1345-123456
+always langobard 123-235-1245-135-12-356-145
+always languag 123-235-1245-136-1-1245
+prfword language 123-235-1245-136-1-12346
+always langue 123-235-1245-136-15
+always langues 123-235-1245-136-123456
+always langust 123-235-1245-136-23456
+always falange 124-25-235-12346
+always falangist 124-25-235-1245-24-23456
+always generalangriff 1245-14-12456-25-235-1245-1235-24-124-124
+midendword tralang 2345-1235-1-123-1245
+midendword traläng 2345-1235-1-5-123-1245
+always frontalangriff 124-1235-135-1345-2345-25-235-1245-1235-24-124-124
+always tagelang 2345-1-12346-123-1245
+always michelangelo 134-3456-13456-235-1245-13456-135
+always melang 134-13456-235-1245
+prfword melange 134-13456-235-12346
+always himmelangst 125-24-1346-13456-235-1245-23456
+always himmelängst 125-24-1346-13456-345-1345-1245-23456
+midendword telang 236-123-1245
+always titelanga 2345-24-2345-13456-235-1245-1
+midendword teläng 236-5-123-1245
+always schlang 156-123-235-1245
+prfword schlange 156-123-235-12346
+begmidword schlangesteh 156-123-235-12346-23456-2356
+always schläng 156-123-345-1345-1245
+prfword schlänge 156-123-345-1345-12346
+always eilangebo 146-123-235-12346-12-135
+always klang 13-123-235-1245
+always kläng 13-123-345-1345-1245
+prfword klänge 13-123-345-1345-12346
+always stinklang 23456-35-13-123-1245
+syllable knöchel 13-1345-246-1456-13456
+midendword tellang 2345-13456-123-1245
+midendword telläng 2345-13456-5-123-1245
+always stellangel 2-13456-235-1245-13456
+syllable porzell 1234-26-1356-15-12345
+sufword plang 1234-123-235-1245
+prfword plange 1234-123-235-12346
+syllable plangl 1234-123-235-1245-123
+sufword slang 234-123-235-1245
+always gebietsslang 12346-12-346-2345-234-234-123-235-1245
+always werbeslang 2456-12456-23-234-123-235-1245
+
+# LASS LÄSS (4.3.6 Kommakürzungen)
+always lass 2-123
+always läss 5-123
+# Alte Rechtschreibung
+always läß 5-123
+always lassist 123-1-2346-24-23456
+always rassistisch 1235-1-2346-5-156
+always lassa 123-1-2346-1
+always nachlass 1345-56-2-123
+always lasso 123-1-2346-135
+always thalasso 2345-125-25-1-2346-135
+always blass 12-123-1-2346
+# Alte Rechtschreibung
+always blaß 12-123-1-2346
+always bläss 12-123-345-2346
+# Alte Rechtschreibung
+always bläß 12-123-345-2346
+always ablass 1-12-2-123
+# Alte Rechtschreibung
+always ablaß 1-12-2-123
+always abläss 1-12-5-123
+# Alte Rechtschreibung
+always abläß 1-12-5-123
+# Homonym
+always erblasser 12456-12-2-123-12456
+always class 6-14-123-1-2346
+always melass 134-13456-1-2346
+always glassch 1245-123-1-234-156
+always glasseid 1245-123-1-234-234-146-145
+always glassp 1245-123-1-234-234-1234
+always glasspiel 1245-123-1-234-2-346
+always glasst 1245-123-1-234-23456
+always weglasst 2456-1245-2-123-2345
+always glasständ 1245-123-1-234-5-23456
+always glasscheib 1245-123-1-234-156-146-12
+always klasse 13-123-1-2346-15
+always klassement 13-123-1-2346-12356-14-2345
+always klassen 13-123-1-2346-14
+always klasser 13-123-1-2346-12456
+always klassig 13-123-1-2346-45
+always klassik 13-123-1-2346-24-13
+prfword klassier 13-123-1-2346-346-1235
+begmidword klassier 13-123-1-2346-346-1235
+always klassifikation 13-123-1-2346-24-124-24-13-5-1345
+begmidword klassifikat 13-123-1-2346-24-124-24-13-1-2345
+prfword klassifizier 13-123-1-2346-24-124-24-1356-346-1235
+always klassifizier 13-123-1-2346-24-124-24-1356-346-1235
+prfword klassisch 13-123-1-2346-24-156
+always klassisch 13-123-1-2346-24-156
+always klassiz 13-123-1-2346-24-1356
+always klassler 13-123-1-2346-123-12456
+always klässler 13-123-345-2346-123-12456
+always klässer 13-123-345-2346-12456
+always molass 134-135-123-1-2346
+always atlasses 1-2345-123-1-2346-123456
+
+# LÄSST (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word lässt 123
+# Alte Rechtschreibung
+word läßt 123
+
+# LEB (4.4 Zweiformige Kürzungen)
+always leb 123-12
+always lebens 123-12-14-234
+always leberecht 123-12-15-1235-2345
+always leberegel 123-12-12456-15-1245-13456
+always kalebass 13-25-15-12-1-2346
+always tangentialeben 2345-235-1245-14-2345-24-25-15-12-14
+always spinaleben 234-1234-35-25-15-12-14
+always terminaleben 2345-12456-134-35-25-15-12-14
+always transversaleben 2345-1235-235-234-1236-12456-234-25-15-12-14
+always frontaleben 124-1235-135-1345-2345-25-15-12-14
+always horizontaleben 125-26-24-1356-135-1345-2345-25-15-12-14
+always individualeben 35-145-24-1236-24-145-136-25-15-12-14
+always zieleben 1356-346-123-15-12-14
+always faseleber 124-1-234-13456-15-12-12456
+always telebank 2345-13456-15-12-235-13
+always telebild 2345-13456-15-12-24-123-145
+always telebox 2345-13456-15-12-135-6-1346
+always telebrief 2345-13456-15-12-124
+begmidword zelebr 1356-13456-15-12-1235
+begmidword kohleb 13-135-125-123-15-12
+begmidword kohlebe 13-135-125-123-15-23
+begmidword kohlebei 13-135-125-123-15-2-12
+always kohlebenzin 13-135-125-123-15-12-14-1356-35
+always kohleberg 13-135-125-123-15-12-12456-1245
+always phlebit 1234-125-123-15-12-24-2345
+always ventileben 1236-14-2345-24-123-15-12-14
+always stileben 23456-24-123-15-12-14
+always kleb 13-123-15-12
+begmidword klebe 13-123-15-23
+always kleben 13-123-15-12-14
+always kleber 13-123-15-12-12456
+always huckleberry 125-136-46-123-15-12-12456-1235-6-13456
+always solebad 234-135-123-15-12-1-145
+always solebäd 234-135-123-15-12-345-145
+always solebecken 234-135-123-15-23-46-14
+begmidword plebej 1234-123-15-23-245
+begmidword plebisz 1234-123-15-12-24-234-1356
+always plebs 1234-123-15-12-234
+before b begmidword triple 2345-1235-24-1234-123-15
+always gorleben 1245-26-123-15-12-14
+always fallersleben 124-1-12345-12456-234-123-15-12-14
+before b begmidword turtle 2345-136-1235-2345-123-15
+before b begmidword shuttle 234-125-136-2345-2345-123-15
+
+# LEICHT (4.4 Zweiformige Kürzungen)
+always leicht 123-1456
+always bleicht 12-123-146-1456-2345
+always bleichte 12-123-146-1456-236
+always bleichten 12-123-146-1456-2345-14
+always bleichtem 12-123-146-1456-2345-12356
+always bleichter 12-123-146-1456-2345-12456
+always bleichtes 12-123-146-1456-2345-123456
+always bleichtest 12-123-146-1456-236-23456
+always halbleicht 125-25-12-123-1456
+always schleicht 156-123-146-1456-2345
+
+# LETZT (4.4 Zweiformige Kürzungen)
+always letzt 123-2345
+always letztemal 123-2345-15-134
+always schletzt 156-123-15-2345-1356-2345
+prfword schletzte 156-123-15-2345-1356-236
+always schletzten 156-123-15-2345-1356-2345-14
+
+# LICH (4.1 Lautgruppenkürzungen)
+midendword lich 456
+
+# LL  (4.1 Lautgruppenkürzungen)
+midendword ll 12345
+# Alte Rechtschreibung
+always modellösung 134-135-145-13456-123-246-234-136
+always büffel 12-1256-124-124-13456
+always schlängel 156-123-345-1345-1245-13456
+always parallel 1234-356-1-12345-13456
+always artikel 356-2345-24-13-13456
+always henkelloch 125-14-13-13456-123-135-1456
+begmidword henkellöch 125-14-13-13456-123-246-1456
+always schunkel 156-256-13-13456
+always bummel 12-136-1346-13456
+always murmel 134-136-1235-134-13456
+always kessel 13-15-2346-13456
+always schüssel 156-1256-2346-13456
+always schlüssel 156-123-1256-2346-13456
+before l midword hl 125-123
+before l begmidword fehl 124-2356-123
+before l begmidword kehl 13-2356-123
+always emaillack 12356-1-24-123-123-1-46
+always krokodil 13-1235-135-13-135-145-24-123
+before l begmidword heil 125-146-123
+always seillinie 234-146-123-123-35-24-15
+always seillinien 234-146-123-123-35-24-14
+always seillitz 234-146-123-123-24-2345-1356
+before l begmidword teil 2345-146-123
+before l begmidword steil 23456-146-123
+always bouteill 12-135-136-2345-15-24-12345
+before l begword profil 12345-124-24-123
+before l midword profil 1234-1235-135-124-24-123
+always stilliegen 23456-24-123-123-346-1245-14
+always stillos 23456-24-123-123-135-234
+before l begmidword april 1-1234-1235-24-123
+always ventil 1236-14-2345-24-123
+before l begmidword zivil 1356-24-1236-24-123
+before l begword exil 1346-24-123
+before l midword exil 15-6-1346-24-123
+before l begmidword öl 246-123
+sufword böll 12-246-12345
+always böller 12-246-12345-12456
+always höll 125-246-12345
+before l begmidword rohöl 1235-135-125-246-123
+always schöllkraut 156-246-12345-13-1235-16-2345
+always kölln 13-246-12345-1345
+sufword möller 134-246-12345-12456
+always schmölln 156-134-246-12345-1345
+begword nöll 1345-246-12345
+always knöll 13-1345-246-12345
+always pollauf 1234-135-123-123-16-124
+always polläuf 1234-135-123-123-34-124
+always röll 1235-246-12345
+always söller 234-246-12345-12456
+always quöll 6-12345-136-246-12345
+always zöll 1356-246-12345
+before l begmidword symbol 234-6-13456-134-12-135-123
+always wollust 2456-135-123-123-136-23456
+begmidword wollüst 2456-135-123-123-1256-23456
+before l begmidword heul 125-126-123
+before l begmidword schul 156-136-123
+# Alte Rechtschreibung
+always nulleiter 1345-136-123-123-146-2345-12456
+always spüllappen 234-1234-1256-123-123-1-1234-1234-14
+
+# -MAL   4.2.1 a) Nachsilbenkürzungen
+midendword mal 134
+prfword malabar 134-25-1-12-1-1235
+always malabar 134-25-1-12-356
+always malabo 134-25-1-12-135
+always malachi 134-25-56-24
+always malad 134-25-1-145
+always malaga 134-25-1-1245-1
+always malai 134-25-1-24
+always malaria 134-25-356-24-1
+always malawi 134-25-1-2456-24
+always malaxi 134-25-1-6-1346-24
+always malay 134-25-1-6-13456
+always malbuch 134-25-12-136-1456
+always malbüch 134-25-12-1256-1456
+always malediv 134-25-15-145-24-1236
+always malefiz 134-25-15-124-24-1356
+always malend 134-25-14-145
+always maler 134-25-12456
+always malesch 134-25-15-156
+always malfarb 134-25-124-356-12
+always einmalfarb 1246-134-124-356-12
+always malfeld 134-25-124-13456-145
+begmidword malfläch 134-25-124-123-345-1456
+always malformation 134-25-124-26-134-5-1345
+always malgrund 134-25-1245-145
+always malheur 134-25-125-126-1235
+begmidword malhonet 134-25-125-135-1345-15-2345
+always mali 134-25-24
+always malig 134-45
+always malign 134-25-45-1345
+always malin 134-25-35
+always malinteress 134-25-2-35
+always maliziös 134-25-24-1356-24-246-234
+always malkarton 134-25-13-356-2345-135-1345
+always malkast 134-25-13-1-23456
+always malkunst 134-25-13-256-23456
+always malkäst 134-25-13-345-23456
+always malkünst 134-25-13-1256-1345-23456
+begword mall 134-1-12345
+prfword mall 134-1-12345
+prfword malls 134-1-12345-234
+prfword malm 134-25-134
+prfword malms 134-25-134-234
+always malmittel 134-25-134-2345
+always malocchi 134-25-135-6-14-1456-24
+always maloch 134-25-135-1456
+always maloja 134-25-135-245-1
+always malossol 134-25-135-2346-135-123
+always malpinsel 134-25-1234-35-234-13456
+always malposition 134-25-1234-135-234-24-2345-245
+always malprogramm 134-25-1234-1235-135-1245-1235-1-1346
+always malproper 134-25-1234-1235-135-1234-12456
+always malrotation 134-25-1235-135-2345-5-1345
+endword malst 134-25-23456
+always malst 134-25-23456
+begmidword malsäul 134-25-234-34-123
+always malta 134-25-2345-1
+prfword maltalente 134-25-2345-25-14-236
+always maltalent 134-25-2345-25-14-2345
+always einmaltarif 1246-134-2345-356-24-124
+always maltechnik 134-25-2345-13
+always maltechnisch 134-25-2345-156
+always malter 134-25-2345-12456
+always malteser 134-25-2345-123456-12456
+always maltesisch 134-25-2345-123456-24-156
+always malthus 134-25-2345-125-136-234
+always maltos 134-25-2345-135-234
+always malträtier 134-25-2345-1235-345-2345-346-1235
+always malus 134-25-136-234
+always malutensil 134-25-136-2345-14-234-24-123
+always malvasier 134-25-1236-1-234-346-1235
+always malve 134-25-1236-15
+always malven 134-25-1236-14
+always malverbot 134-25-1236-12456-12-135-2345
+always malvin 134-25-1236-35
+begmidword malwar 134-25-2456-356
+always malweis 134-25-2-146
+always neunmalweis 1345-126-1345-134-2-146
+always malwerk 134-25-2456-12456-13
+always malz 134-25-1356
+midendword malzahl 134-1356-123
+begmidword maläs 134-25-345-234
+always alamala 25-1-134-25-1
+always amalgam 1-134-25-1245-1-134
+begword abmal 1-12-134-25
+prfword bemal 23-134-1-123
+always bemal 23-134-25
+word gemal 1245-12356-1-123
+begmidword gemal 1245-12356-25
+prfword gemalt 12346-134-25-2345
+always gemalt 12346-134-25-2345
+prfword gemalte 12346-134-25-236
+prfword würgemal 2456-1256-1235-12346-134-1-123
+begmidword würgemal 2456-1256-1235-12346-134-25
+always atemalkohol 1-2345-12356-25-13-135-125-135-123
+begmidword guatemal 1245-136-1-2345-12356-25
+begword aufmal 2-16-134-25
+begmidword pragmalingu 1234-1235-1-1245-134-1-123-35-1245-136
+prfword saugmal 234-16-1245-134-1-123
+begmidword saugmal 234-16-1245-134-25
+begmidword nachmal 1345-56-134-25
+always nachmalig 1345-56-134-45
+word nachmals 1345-56-134-234
+prfword schmal 156-134-1-123
+always schmal 156-134-25
+always marshmallow 134-356-234-125-134-1-12345-135-2456
+always himalaja 125-24-134-25-1-245-1
+always himalaya 125-24-134-25-1-6-13456-1
+prfword animal 235-24-134-1-123
+always animal 235-24-134-25
+prfword minimal 134-35-24-134-1-123
+always minimal 134-35-24-134-25
+prfword sexagesimal 234-15-6-1346-1-1245-123456-24-134-1-123
+always sexagesimal 234-15-6-1346-1-1245-123456-24-134-25
+prfword infinitesimal 35-124-35-24-2345-123456-24-134-1-123
+always infinitesimal 35-124-35-24-2345-123456-24-134-25
+prfword optimal 135-1234-2345-24-134-1-123
+always optimal 135-1234-2345-24-134-25
+prfword maximal 134-1-6-1346-24-134-1-123
+always maximal 134-1-6-1346-24-134-25
+prfword dezimal 145-15-1356-24-134-1-123
+always dezimal 145-15-1356-24-134-25
+begmidword vollmal 2-12345-134-25
+sufword herummal 125-12456-136-134-134-25
+begmidword anmal 235-134-25
+sufword peitschenmal 1234-146-2345-156-14-134-25
+begmidword schriftenmal 156-2345-14-134-25
+always omalgie 135-134-25-1245-346
+prfword anomal 235-135-134-1-123
+always anomal 235-135-134-25
+always anomalien 235-135-134-25-24-14
+always chromalaun 1456-1235-135-134-25-16-1345
+always somali 234-135-134-25-24
+prfword autosomal 16-2345-135-234-135-134-1-123
+begmidword autosomal 16-2345-135-234-135-134-25
+begmidword pharmalab 1234-125-356-134-1-123-1-12
+# HOMONYM
+word dermal 145-12456-134-1-123
+# HOMONYM
+always dermal 145-12456-134-25
+word dermaleinst 145-12456-134-1246-23456
+# HOMONYM
+word dermalen 145-12456-134-14
+always dermalig 145-12456-134-45
+prfword übermal 2-1256-134-1-123
+always übermal 2-1256-134-25
+begmidword fingermal 124-35-1245-12456-134-25
+prfword thermal 2345-125-12456-134-1-123
+always thermal 2345-125-12456-134-25
+prfword untermal 2-256-134-1-123
+always untermal 2-256-134-25
+begmidword pflasermal 1234-124-123-1-23456-12456-134-25
+word vermal 36-134-1-123
+sufword vermal 36-134-25
+midword vermal 1236-12456-134-25
+always zermalm 1356-12456-134-25-134
+prfword formal 124-26-134-1-123
+always formal 124-26-134-25
+prfword normal 1345-26-134-1-123
+begmidword normal 1345-26-134-25
+prfword anormal 235-26-134-1-123
+begmidword anormal 235-26-134-25
+prfword paranormal 1234-356-1-1345-26-134-1-123
+begmidword paranormal 1234-356-1-1345-26-134-25
+begword ausmal 34-134-25
+midword ausmal 16-234-134-25
+always turmalin 2345-136-1235-134-25-35
+always small 234-134-1-12345
+begmidword wachsmal 2456-56-234-134-25
+begmidword lautmal 123-16-2345-134-25
+begmidword rumalber 1235-136-134-25-12-12456
+begmidword aufzumal 2-16-2-1356-134-25
+begword rumzumal 1235-136-134-2-1356-134-25
+begword herumzumal 125-12456-136-134-2-1356-134-25
+begmidword anzumal 235-2-1356-134-25
+begword auszumal 34-2-1356-134-25
+midword auszumal 16-234-2-1356-134-25
+always herumalber 125-12456-136-134-25-12-12456
+begmidword serumallerg 234-12456-136-134-1-12345-12456-1245
+begmidword schwarzmal 156-2456-356-1356-134-25
+
+# MAN   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word man 134
+
+# MANN MÄNN (4.4 Zweiformige Kürzungen)
+always mann 134-1345
+always männ 5-134-1345
+always manna 134-235-1345-1
+always mannequin 134-235-1345-15-6-12345-136-35
+always mannesmann 134-235-1345-123456-134-235-1345
+always mannheim 134-235-1345-125-146-134
+always mannit 134-235-1345-24-2345
+always mannomann 134-235-1345-135-134-235-1345
+always mannus 134-235-1345-136-234
+always hamann 125-1-134-235-1345
+always lindemann 123-35-145-15-134-235-1345
+always bangemann 12-235-12346-134-235-1345
+always thiemann 2345-125-346-134-235-1345
+always riemann 1235-346-134-235-1345
+always alemann 25-15-134-235-1345
+always telemann 2345-13456-15-134-235-1345
+always dörlemann 145-246-1235-123-15-134-235-1345
+always thienemann 2345-125-346-1345-15-134-235-1345
+always heinemann 125-1246-15-134-235-1345
+always hannemann 125-235-1345-15-134-235-1345
+always spannemann 234-1234-235-1345-15-134-235-1345
+always stresemann 23456-1235-123456-15-134-235-1345
+always hoffmann 125-135-124-124-134-235-1345
+always hofmannsthal 125-135-124-134-235-1345-234-2345-125-1-123
+always bachmann 12-56-134-235-1345
+always eichmann 146-1456-134-235-1345
+always fleischmann 124-123-146-156-134-235-1345
+always lehmann 123-2356-134-235-1345
+always lohmann 123-135-125-134-235-1345
+always luhmann 123-136-125-134-235-1345
+always beckmann 23-46-134-235-1345
+always bruckmann 12-1235-136-46-134-235-1345
+always henkelmann 125-14-13-13456-134-235-1345
+always brinkmann 12-1235-35-13-134-235-1345
+always volkmann 1236-135-123-13-134-235-1345
+always thälmann 2345-125-345-123-134-235-1345
+always engelmann 14-1245-13456-134-235-1345
+always fielmann 124-346-123-134-235-1345
+always nickelmann 1345-24-46-13456-134-235-1345
+always mümmelmann 134-1256-1346-13456-134-235-1345
+always bühlmann 12-1256-125-123-134-235-1345
+always ammann 1-134-134-1345
+always dobermann 145-135-12-12456-134-235-1345
+always hermann 125-12456-134-235-1345
+always heiermann 125-146-12456-134-235-1345
+# HOMONYM
+always ackermann 1-46-12456-134-235-1345
+always eckermann 15-46-12456-134-235-1345
+always neckermann 1345-15-46-12456-134-235-1345
+always ballermann 12-1-12345-12456-134-235-1345
+always mustermann 134-136-23456-12456-134-235-1345
+always scheuermann 156-126-12456-134-235-1345
+always drewermann 145-1235-15-2456-12456-134-235-1345
+always normann 1345-26-134-235-1345
+always schürmann 156-1256-1235-134-235-1345
+always bertelsmann 12-12456-2345-13456-234-134-235-1345
+always hartmann 125-356-2345-134-235-1345
+always mettmann 134-15-2345-2345-134-235-1345
+always naumann 1345-16-134-235-1345
+always neumann 1345-126-134-235-1345
+always schumann 156-136-134-235-1345
+always schwarzmann 156-2456-356-1356-134-235-1345
+
+# MASCHIN (4.4 Zweiformige Kürzungen)
+always maschin 134-156
+always parmaschinken 1234-356-134-1-156-35-13-14
+
+# MATERIAL (4.4 Zweiformige Kürzungen)
+always material 134-123
+
+# MATERIELL (4.4 Zweiformige Kürzungen)
+always materiell 134-12345
+
+# MEHR (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word mehr 2356
+always mehr-\s 2-2356-36-0
+always mehr 2-2356
+
+# MIR (4.4 Zweiformige Kürzungen)
+always mir 134-1235
+always mir's 134-1235-6-234
+always mira 134-24-1235-1
+always miranda 134-24-1235-235-145-1
+sufword mirek 134-24-1235-15-13
+always miriam 134-24-1235-24-1-134
+always mirjam 134-24-1235-245-1-134
+sufword mirka 134-24-1235-13-1
+sufword mirko 134-24-1235-13-135
+sufword miro 134-24-1235-135
+prfword mirror 134-24-1235-1235-135-1235
+begmidword mirror 134-24-1235-1235-26
+always mirza 134-24-1235-1356-1
+always pamir 1234-1-134-24-1235
+always ramirez 1235-1-134-24-1235-15-1356
+always samir 234-1-134-24-1235
+prfword admiral 1-145-134-24-1235-1-123
+begmidword admiral 1-145-134-24-1235-25
+always admiräl 1-145-134-24-1235-345-123
+always emir 12356-24-1235
+always schmirgel 156-134-24-1235-1245-13456
+begmidword schmirg 156-134-24-1235-1245
+always kaschmir 13-1-156-134-24-1235
+always vladimir 1236-123-1-145-24-134-24-1235
+always wladimir 2456-123-1-145-24-134-24-1235
+always kasimir 13-1-234-24-134-24-1235
+always krimireih 13-1235-24-134-24-1235-146-125
+always gummir 1245-136-1346-24-1235
+always jaromir 245-356-135-134-24-1235
+always dobromir 145-135-12-1235-135-134-24-1235
+always dormir 145-26-134-24-1235
+always smirno 234-134-24-1235-1345-135
+always herumirr 125-12456-136-134-24-1235-1235
+always taymir 2345-1-6-13456-134-24-1235
+always izmir 24-1356-134-24-1235
+
+# MIT (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word mit 2345
+always mit-\s 2-2345-36-0
+always mit 2-2345
+word mitch 134-24-2345-1456
+sufword mitchum 134-24-2345-1456-136-134
+sufword mitchell 134-24-2345-1456-15-12345
+begmidword mithr 134-24-2345-125-1235
+always mitil 134-24-2345-24-123
+always mitochond 134-24-2345-135-1456-135-1345-145
+always mitos 134-24-2345-135-234
+always mitra 134-24-2345-1235-1
+always mitraill 134-24-2345-1235-1-24-12345
+always mitrauch 2-2345-1235-16-1456
+begword mitrida 134-24-2345-1235-24-145-1
+always mitropa 134-24-2345-1235-135-1234-1
+always mitsubishi 134-24-2345-234-136-12-24-234-125-24
+always mitt 134-24-2345-2345
+always mittag 134-24-2345-2345-1-1245
+prfword mittage 134-24-2345-2345-1-12346
+always mittanz 2-2345-2345-235-1356
+always mittänz 2-2345-2345-345-1345-1356
+always mittäter 2-2345-2345-345-2345-12456
+prfword mitte 134-24-2345-236
+always mitteil 2-2345-2345-146-123
+always mitten 134-24-2345-2345-14
+always mitter 134-24-2345-2345-12456
+always mittet 134-24-2345-236-2345
+always mittler 134-24-2345-2345-123-12456
+always mittrag 2-2345-2345-1245
+always mittrauer 2-2345-2345-1235-16-12456
+always mittreu 2-2345-2345-1235-126
+always mittrink 2-2345-2345-1235-35-13
+always mittrug 2-2345-2345-1235-136-1245
+always mittun 2-2345-2345-256
+always mittäg 134-24-2345-2345-345-1245
+word mitzi 134-24-2345-1356-24
+word mitzis 134-24-2345-1356-24-234
+begmidword amitos 1-134-24-2345-135-234
+always amitotisch 1-134-24-2345-135-2345-24-156
+always adamit 1-145-1-134-24-2345
+always hamitisch 125-1-134-24-2345-24-156
+always kalamit 13-25-1-134-24-2345
+always kalamität 13-25-1-134-5-345
+always salamitaktik 234-25-1-134-24-2345-1-13-2345-24-13
+always salamitechnik 234-25-1-134-24-2345-13
+always islamit 24-234-123-1-134-24-2345
+always annamit 235-1345-1-134-24-2345
+always dynamit 145-6-13456-1345-1-134-24-2345
+always admittanz 1-145-134-24-2345-2345-235-1356
+begmidword emitt 12356-24-2345-2345
+always endemit 14-145-15-134-24-2345
+always hindemith 125-35-145-15-134-24-2345-125
+always remittend 1235-12356-24-2345-2345-14-145
+always remittent 1235-12356-24-2345-2345-14-2345
+always remittier 1235-12356-24-2345-2345-346-1235
+always eremit 12456-12356-24-2345
+sufword extremität 1346-2345-1235-12356-5-345
+always extremität 15-6-1346-2345-1235-12356-5-345
+endword semit 234-12356-24-2345
+always semiten 234-12356-24-2345-14
+always semitin 234-12356-24-2345-35
+always semitisch 234-12356-24-2345-24-156
+always semitismus 234-12356-24-2345-5-24
+always semitist 234-12356-24-2345-24-23456
+prfword philosemit 1234-125-24-123-135-234-12356-24-2345
+begmidword philosemit 1234-125-24-123-135-234-12356-24-2345
+always stalagmit 23456-25-1-1245-134-24-2345
+always schmitt 156-134-24-2345-2345
+prfword schmitte 156-134-24-2345-236
+always schmittel 156-134-2345
+always schmitz 156-134-24-2345-1356
+always imitat 24-134-24-2345-1-2345
+prfword imitate 24-134-24-2345-1-236
+always imitation 24-134-24-2345-5-1345
+always imitier 24-134-24-2345-346-1235
+begmidword dimitr 145-24-134-24-2345-1235
+always limit 123-24-134-24-2345
+begmidword limit 123-24-134-24-2345
+prfword limite 123-24-134-24-236
+always limits 123-24-134-24-2345-234
+always nimita 1345-24-134-24-2345-1
+always primitiv 1234-1235-24-134-24-2345-24-1236
+always legitimität 123-15-1245-24-2345-24-134-5-345
+begmidword antimitoti 235-2345-24-134-24-2345-135-2345-24
+always intimität 35-2345-24-134-5-345
+always gummi 1245-136-1346-24
+always gummier 1245-136-1346-346-1235
+always sodomit 234-135-145-135-134-24-2345
+always sodomitisch 234-135-145-135-134-24-2345-24-156
+always sodomitisch 234-135-145-135-134-24-2345-24-156
+always komitee 13-135-134-24-2345-15-15
+always dolomit 145-135-123-135-134-24-2345
+always bromit 12-1235-135-134-24-2345
+always kompromittier 13-135-134-1234-1235-135-134-24-2345-2345-346-1235
+always neurodermitis 1345-126-1235-135-145-12456-134-24-2345-24-234
+sufword kermit 13-12456-134-24-2345
+sufword permit 1234-12456-134-24-2345
+prfword termite 2345-12456-134-24-236
+always termiten 2345-12456-134-24-2345-14
+always intermittier 35-2345-12456-134-24-2345-2345-346-1235
+always dormitori 145-26-134-24-2345-26-24
+always deformität 145-15-124-26-134-5-345
+always uniformität 256-24-124-26-134-5-345
+always konformität 13-135-1345-124-26-134-5-345
+always abnormität 1-12-1345-26-134-5-345
+sufword smith 234-134-24-2345-125
+prfword smith 234-134-24-2345-125
+prfword smiths 234-134-24-2345-125-234
+sufword smitja 234-134-24-2345-245-1
+always transmit 2345-1235-235-234-134-24-2345
+always anonymität 235-135-1345-6-13456-134-5-345
+always zmittag 1356-134-24-2345-2345-1-1245
+always zmitzt 1356-134-24-2345-1356-2345
+
+# MITTEL (4.4 Zweiformige Kürzungen)
+always mittel 134-2345
+
+# MM  (4.1 Lautgruppenkürzungen)
+midendword mm 1346
+word mmh 134-134-125
+word mmm 134-134-134
+always mmmh 134-134-134-125
+always mmmmh 134-134-134-134-125
+before m always team 2345-15-1-134
+always schrämmaschin 156-1235-345-134-134-156
+always tandem 2345-235-145-12356
+sufword problem 12345-12-123-12356
+midendword problem 1234-1235-135-12-123-12356
+always einemmal 1246-12356-134
+before m always atem 1-2345-12356
+always system 234-6-13456-23456-12356
+before m always hm 125-134
+word hmm 125-134-134
+always hmmm 125-134-134-134
+always hmmmm 125-134-134-134-134
+before m midword ehm 2356-134
+before m begmidword intim 35-2345-24-134
+always immaterial 24-134-134-123
+always immateriell 24-134-134-12345
+before m begmidword heim 125-146-134
+before m begmidword leim 123-146-134
+before m begmidword lm 123-134
+before m begmidword alm 25-134
+before m begmidword elm 13456-134
+always diplom 145-24-1234-123-135-134
+always genommut 1245-14-135-134-134-136-2345
+before m begmidword strom 23456-1235-135-134
+before m begmidword atom 1-2345-135-134
+before m begmidword rm 1235-134
+before m begmidword arm 356-134
+before m begmidword orm 26-134
+before m begmidword aum 16-134
+before m begmidword äum 34-134
+before m begmidword ium 24-136-134
+begmidword ummagn 136-134-134-1-1245-1345
+always ummantel 136-134-134-235-2345-13456
+always ummauer 136-134-134-16-12456
+always ummeld 136-134-134-13456-145
+always ummobil 136-134-134-135-12-24-123
+begmidword ummöb 136-134-134-246-12
+always ummodel 136-134-134-135-145-13456
+always ummodell 136-134-134-135-145-15-12345
+begmidword ummodl 136-134-134-135-145-123
+always ummont 136-134-134-135-1345-2345
+always ummünz 136-134-134-1256-1345-1356
+before m begword rum 1235-136-134
+prfword rumm 1235-136-1346
+always rummel 1235-136-1346-13456
+always rumml 1235-136-1346-123
+prfword rumms 1235-136-1346-234
+always rummy 1235-136-1346-6-13456
+always krumm 13-1235-136-1346
+always krummesser 13-1235-136-134-134-15-2346-12456
+before m always herum 125-12456-136-134
+begmidword herummal 125-12456-136-134-134-25
+before m always konsum 13-135-1345-234-136-134
+always vakuum 1236-1-13-136-136-134
+always enzym 14-1356-6-13456-134
+
+# MÖCHT (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+word möcht 134-246-1456-2345
+always möcht's 134-246-1456-2345-6-234
+always möcht 1456
+
+# MÖG (4.3.6 Kommakürzungen)
+always mög 2-246
+
+# MÖGLICH (4.4 Zweiformige Kürzungen)
+always möglich 134-456
+
+# MUSIK (4.4 Zweiformige Kürzungen)
+always musik 134-13
+always musikalien 134-13-25-24-14
+
+# MUSS (4.4 Zweiformige Kürzungen)
+always muss 134-2346
+# Alte Rechtschreibung
+always muß 134-2346
+# Daher auch nötig:
+word muße 134-136-2346-15
+always musselin 134-136-2346-13456-35
+always mussolini 134-136-2346-135-123-35-24
+always rhythmus 1235-125-6-13456-2345-125-134-136-234
+always orgasmus 26-1245-1-234-134-136-234
+always rasmussen 1235-1-234-134-136-2346-14
+always humusschicht 125-136-134-136-234-156-3456-2345
+
+# MÜSS (4.3.6 Kommakürzungen)
+always müss 2-134
+# Alte Rechtschreibung
+always müß 2-134
+always müßig 134-1256-2346-45
+
+# NACHDEM (4.4 Zweiformige Kürzungen)
+always nachdem 1345-145
+
+# NÄCHST (4.4 Zweiformige Kürzungen)
+always nächst 1345-23456
+
+# NAHM (4.4 Zweiformige Kürzungen)
+always nahm 1345-134
+always nähm 5-1345-134
+always nähmaschin 1345-345-125-134-156
+always nahme 1345-134-15
+always nahmen 1345-134-14
+# Ausnahmen bei nahmen?
+
+# NATUR (4.4 Zweiformige Kürzungen)
+always natur 1345-2345
+begmidword natural 1345-2345-25
+always signatur 234-45-1345-1-2345-136-1235
+
+# NATÜRLICH (4.4 Zweiformige Kürzungen)
+always natürlich 1345-456
+
+# NEBEN (4.4 Zweiformige Kürzungen)
+always neben 1345-12
+always medianeben 134-15-145-24-235-15-12-14
+always beckeneben 23-46-14-15-12-14
+always bedieneben 23-145-346-1345-15-12-14
+always dateneben 145-1-2345-14-15-12-14
+always etageneben 15-2345-1-1245-14-15-12-14
+sufword experteneben 1346-1234-12456-2345-14-15-12-14
+midendword experteneben 15-6-1346-1234-12456-2345-14-15-12-14
+always kosteneben 13-135-23456-14-15-12-14
+always koordinateneben 13-135-26-145-35-1-2345-14-15-12-14
+always küsteneben 13-1256-23456-14-15-12-14
+always maschineneben 134-156-14-15-12-14
+always platineneben 1234-123-1-2345-35-14-15-12-14
+always zeicheneben 1356-146-1456-14-15-12-14
+always rheineben 1235-125-1246-15-12-14
+always brenneben 12-1235-14-1345-15-12-14
+always uneben 256-15-12-14
+
+# NEHM (4.4 Zweiformige Kürzungen)
+always nehm 1345-125
+
+# NICHT (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word nicht 1345
+always nicht-\s 2-1345-36-0
+always nicht 2-1345
+word nichte 1345-3456-236
+word nichten 1345-3456-2345-14
+endword ingsnichte 35-1245-234-1345-3456-236
+endword ingsnichten 35-1245-234-1345-3456-2345-14
+word großnichte 1245-2346-1345-3456-236
+word großnichten 1245-2346-1345-3456-2345-14
+
+# NICHTIG (4.4 Zweiformige Kürzungen)
+always nichtig 1345-45
+
+# NICHTS (4.4 Zweiformige Kürzungen)
+always nichts 1345-234
+always nichtschrumpf 2-1345-156-1235-136-134-1234-124
+always nichtschwimm 2-1345-156-2456-24-1346
+always nichtsein 2-1345-234-1246
+always nichtselb 2-1345-234-13456-12
+always nichtselbstständig 2-1345-234-23456-5-23456-45
+always nichtsehen 2-1345-234-2356-14
+always nichtsequentiell 2-1345-234-15-6-12345-136-14-2345-24-15-12345
+always nichtsequenziell 2-1345-234-15-6-12345-136-14-1356-24-15-12345
+always nichtsess 2-1345-234-15-2346
+always nichtspezialisier 2-1345-234-1234-15-1356-24-25-24-234-346-1235
+always nichtsportler 2-1345-234-1234-26-2345-123-12456
+always nichtsprach 2-1345-234-1234
+always nichtstaat 2-1345-23456-2345
+
+# -NIS   4.2.1 a) Nachsilbenkürzungen
+midendword nis 1346
+midendword nisation 1345-24-234-5-1345
+always nisch 1345-24-156
+begmidword minischlang 134-35-24-156-123-235-1245
+prfword minischlange 134-35-24-156-123-235-12346
+midendword nisier 1345-24-234-346-1235
+midendword nismen 1345-24-234-134-14
+always nist 1345-24-23456
+always ergebnis 12456-12346-12-1346
+midendword ängnis 345-1345-1245-1346
+midendword ächtnis 345-1456-2345-1346
+always kenntnis 13-14-1345-2345-1346
+midword nistheor 1346-2345-125-15-26
+always nistisch 1345-5-156
+always inistisch 35-5-156
+always anis 235-24-234
+begmidword vaniss 1236-235-24-2346
+begmidword pianissi 1234-24-235-24-2346-24
+always änis 345-1345-24-234
+always anisch 235-24-156
+always änisch 345-1345-24-156
+midendword anisier 235-24-234-346-1235
+midendword anismen 235-24-234-134-14
+midendword anismus 235-5-24
+always anist 235-24-23456
+begmidword organisat 26-1245-235-24-234-1-2345
+always organisation 26-1245-235-24-234-5-1345
+begmidword organisationsauf 26-1245-235-24-234-5-1345-234-2-16
+always organisier 26-1245-235-24-234-346-1235
+always mechanismus 134-15-1456-235-5-24
+midendword enisch 14-24-156
+midendword enismus 14-5-24
+midword enisol 14-24-234-135-123
+word benis 12-14-24-234
+always denise 145-14-24-234-15
+always denises 145-14-24-234-123456
+midendword genisier 1245-14-24-234-346-1235
+always hygienisch 125-6-13456-1245-24-14-24-156
+always hygienisier 125-6-13456-1245-24-14-24-234-346-1235
+always italienisch 24-2345-25-24-14-24-156
+always hellenisier 125-15-12345-14-24-234-346-1235
+always menisk 134-14-24-234-13
+always penis 1234-14-24-234
+endword enisch 14-24-156
+endword enische 14-24-156-15
+endword enischem 14-24-156-12356
+endword enischen 14-24-156-14
+endword enischer 14-24-156-12456
+endword enisches 14-24-156-123456
+always penisse 1234-14-24-2346-15
+always penissen 1234-14-24-2346-14
+always penisses 1234-14-24-2346-123456
+begmidword serenissim 234-12456-14-24-2346-24-134
+midendword inisch 35-24-156
+midendword inisier 35-24-234-346-1235
+midendword inismen 35-24-234-134-14
+midendword inismus 35-5-24
+midendword inist 35-24-23456
+always puccinis 1234-136-6-14-6-14-35-24-234
+always einisch 1246-24-156
+always lateinisch 123-1-2345-1246-24-156
+always steinisch 23456-1246-24-156
+always finis 124-35-24-234
+always bikinis 12-24-13-35-24-234
+always fellinis 124-15-12345-35-24-234
+always mussolinis 134-136-2346-135-123-35-24-234
+always minist 134-35-24-23456
+always reminiszenz 1235-12356-35-24-234-1356-14-1356
+always paganinis 1234-1-1245-235-35-24-234
+always abessinisch 1-23-2346-35-24-156
+always rossinis 1235-135-2346-35-24-234
+always martinis 134-356-2345-35-24-234
+always lemniska 123-12356-1345-24-234-13-1
+always annis 235-1345-24-234
+always annisch 235-1345-24-156
+always alemannisch 25-15-134-235-1345-24-156
+always normannisch 1345-26-134-235-1345-24-156
+always dennis 145-14-1345-24-234
+always tennis 2345-14-1345-24-234
+always ronnis 1235-135-1345-1345-24-234
+word draconis 145-1235-1-6-14-135-1345-24-234
+always berlusconis 12-12456-123-136-234-6-14-135-1345-24-234
+always onismus 135-1345-5-24
+always adonis 1-145-135-1345-24-234
+always adonisch 1-145-135-1345-24-156
+always mahagoni 134-1-125-1-1245-135-1345-24
+always diakoniss 145-24-1-13-135-1345-24-2346
+word monis 134-135-1345-24-234
+always simonis 234-24-134-135-1345-24-234
+prfword tonis 2345-135-1345-24-234
+always tönisvorst 2345-246-1345-24-234-1236-26-23456
+always garnison 1245-356-1345-24-234-135-1345
+always vernissa 1236-12456-1345-24-2346-1
+always modernismus 134-135-145-12456-1345-5-24
+always firnis 124-24-1235-1345-24-234
+always firnisse 124-24-1235-1345-24-2346-15
+always firnissen 124-24-1235-1345-24-2346-14
+always horniss 125-26-1345-24-2346
+always unis 256-24-234
+midendword unisch 256-24-156
+midendword unismus 256-5-24
+midendword unist 256-24-23456
+midendword unistisch 256-5-156
+always junis 245-256-24-234
+always immunisier 24-1346-256-24-234-346-1235
+always punisch 1234-256-24-156
+always zynismus 1356-6-13456-1345-5-24
+
+# NOCH (4.4 Zweiformige Kürzungen)
+always noch 1345-1456
+always adrenochrom 1-145-1235-14-135-1456-1235-135-134
+always knoch 13-1345-135-1456
+always monochemo 134-135-1345-135-1456-12356-135
+always monochrom 134-135-1345-135-1456-1235-135-134
+always hornochs 125-26-1345-135-1456-234
+
+# NOMMEN (4.4 Zweiformige Kürzungen)
+always nommen 1345-1346
+
+# NOTWENDIG (4.4 Zweiformige Kürzungen)
+always notwendig 1345-2456
+
+# NUR (4.4 Zweiformige Kürzungen)
+always nur 1345-1235
+sufword nurejew 1345-136-1235-15-245-15-2456
+sufword nurgon 1345-136-1235-1245-135-1345
+midendword nurheb 1345-136-1235-125-15-12
+midendword nurkund 1345-136-1235-13-256-145
+midendword nurlaub 1345-136-1235-123-16-12
+midendword nursach 1345-136-1235-234-56
+midendword nursäch 1345-1235-234-345-1456
+always nurse 1345-136-1235-234-15
+prfword nurse 1345-136-1235-234-123456
+midendword nursprung 1345-136-1235-234-1234-1235-256-1245
+midendword nursprüng 1345-136-1235-234-1234-1235-1256-1345-1245
+midendword nursäch 1345-136-1235-234-345-1456
+midendword nurteil 1345-136-1235-2345-146-123
+sufword nuruddin 1345-136-1235-136-145-145-35
+always anura 235-136-1235-1
+always anuren 235-136-1235-14
+always anurie 235-136-1235-346
+always anurien 235-136-1235-24-14
+begmidword kanuregat 13-235-136-1235-15-1245-1-2345
+begmidword kanurenn 13-235-136-1235-14-1345
+midendword enurheb 14-136-1235-125-15-12
+midendword enurkund 14-136-1235-13-256-145
+midendword enurlaub 14-136-1235-123-16-12
+midendword enursach 14-136-1235-234-56
+midendword enursprung 14-136-1235-234-1234-1235-256-1245
+midendword enursprüng 14-136-1235-234-1234-1235-1256-1345-1245
+midendword enursäch 14-136-1235-234-345-1456
+midendword enurteil 14-136-1235-2345-146-123
+begmidword totenurn 2345-135-2345-14-136-1235-1345
+always schnur 156-1345-136-1235
+midendword inurie 35-136-1235-346
+midendword inurien 35-136-1235-24-14
+always knurr 13-1345-136-1235-1235
+always baikonur 12-1-24-13-135-1345-136-1235
+midendword tonurie 2345-135-1345-136-1235-346
+midendword tonurien 2345-135-1345-136-1235-24-14
+
+# NUTZ NÜTZ (4.4 Zweiformige Kürzungen)
+always nutz 1345-1356
+always nütz 5-1345-1356
+midendword anutz 1-1345-1356
+midendword anütz 1-5-1345-1356
+midendword enutz 15-1345-1356
+midendword enütz 15-5-1345-1356
+always benutz 23-1345-1356
+always benütz 23-5-1345-1356
+always genutz 12346-1345-1356
+always genütz 12346-5-1345-1356
+midendword inutz 24-1345-1356
+midendword inütz 24-5-1345-1356
+always einutz 146-1345-1356
+always einütz 146-5-1345-1356
+midendword unutz 136-1345-1356
+midendword unütz 136-5-1345-1356
+
+# ODER  (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word oder 135
+
+# ÖFFENTLICH (4.4 Zweiformige Kürzungen)
+always öffentlich 246-456
+
+# OHNE (4.4 Zweiformige Kürzungen)
+always ohne 135-15
+always bohn 12-135-125-1345
+always hohn 125-135-125-1345
+always john 245-135-125-1345
+always lohn 123-135-125-1345
+always mohn 134-135-125-1345
+always rohn 1235-135-125-1345
+always frohnatur 124-1235-135-125-1345-2345
+always sohn 234-135-125-1345
+always wohn 2456-135-125-1345
+
+# OR  (4.1 Lautgruppenkürzungen)
+begmidword or 26
+endword or-\s 26-36-0
+endword or-,\s 26-36-2-0
+always kakao 13-1-13-1-135
+always disco 145-24-234-6-14-135
+always discount 145-24-234-6-14-135-136-1345-2345
+always kommando 13-1346-235-145-135
+always pseudo 1234-234-126-145-135
+before r begmidword judo 245-136-145-135
+begmidword deoroll 145-15-135-1235-135-12345
+always video 1236-24-145-15-135
+always rodeo 1235-135-145-15-135
+always georelief 12346-135-1235-13456-24-15-124
+prfword neoreal 1345-15-135-1235-15-1-123
+begmidword neoreal 1345-15-135-1235-15-25
+begmidword neorenaiss 1345-15-135-1235-14-1-24-2346
+always stereo 23456-12456-15-135
+always indigo 35-145-45-135
+always kongo 13-135-1345-1245-135
+always jericho 245-12456-3456-135
+always bio 12-24-135
+always radio 1235-1-145-24-135
+always inforadio 35-124-135-1235-1-145-24-135
+always audio 16-145-24-135
+always studio 23456-136-145-24-135
+always risiko 1235-24-234-24-13-135
+always schoko 156-135-13-135
+always disko 145-24-234-13-135
+always hallo 125-1-12345-135
+begmidword beloru 12-13456-135-1235-136
+begmidword kloroll 13-123-135-1235-135-12345
+always gallo 1245-1-12345-135
+always solo 234-135-123-135
+always chemo 1456-12356-135
+always eskimo 123456-13-24-134-135
+always thermo 2345-125-12456-134-135
+always kino 13-35-135
+always mono 134-135-1345-135
+always porno 1234-26-1345-135
+always oor 135-135-1235
+begmidword koor 13-135-26
+begmidword nanoor 1345-235-135-26
+begword poritz 1234-135-1235-24-2345-1356
+begmidword poros 1234-135-1235-135-234
+begmidword porosität 1234-26-135-234-5-345
+midword oporos 135-1234-26-135-234
+always sapporo 234-1-1234-1234-26-135
+always tempo 2345-12356-1234-135
+always tempora 2345-12356-1234-26-1
+prfword temporal 2345-12356-1234-26-1-123
+begmidword temporal 2345-12356-1234-26-25
+always temporär 2345-12356-1234-26-345-1235
+always temporier 2345-12356-1234-26-346-1235
+always rororo 1235-135-1235-135-1235-135
+always libero 123-24-12-12456-135
+always makro 134-1-13-1235-135
+always mikro 134-24-13-1235-135
+always repro 1235-15-1234-1235-135
+always büro 12-1256-1235-135
+always neuro 1345-126-1235-135
+always veto 1236-15-2345-135
+always foto 124-135-2345-135
+always photo 1234-125-135-2345-135
+always puerto 1234-136-12456-2345-135
+always netto 1345-15-2345-2345-135
+always brutto 12-1235-136-2345-2345-135
+midword orhythm 135-1235-125-6-13456-2345-125-134
+always auto 16-2345-135
+prfword autor 16-2345-135-1235
+before konsonant begmidword autor 16-2345-26
+always autoren 16-2345-26-14
+always autorennbahn 16-2345-135-1235-14-1345-12-1-125-1345
+always autorennen 16-2345-135-1235-14-1345-14
+always autorennfahr 16-2345-135-1235-14-1345-2-1235
+always autorin 16-2345-26-35
+always autorisation 16-2345-26-24-234-5-1345
+always autorisier 16-2345-26-24-234-346-1235
+always autoritär 16-2345-26-24-2345-345-1235
+always autorität 16-2345-26-5-345
+always autoritativ 16-2345-26-24-2345-5-1236
+always autors 16-2345-26-234
+always autorschaft 16-2345-26-156
+always rätorom 1235-345-2345-135-1235-135-134
+always bravo 12-1235-1-1236-135
+
+# PARAGRAPH (4.4 Zweiformige Kürzungen)
+always paragraph 1234-1245
+
+# PERSON (4.4 Zweiformige Kürzungen)
+always person 1234-1345
+always persön 5-1234-1345
+prfword personalie 1234-1345-25-24-15
+always personalien 1234-1345-25-24-14
+
+# PHILOSOPH (4.4 Zweiformige Kürzungen)
+always philosoph 1234-125
+
+# PLATZ PLÄTZ (4.4 Zweiformige Kürzungen)
+always platz 1234-1356
+always plätz 5-1234-1356
+
+# PLÖTZLICH (4.4 Zweiformige Kürzungen)
+always plötzlich 1234-456
+
+# POLITIK (4.4 Zweiformige Kürzungen)
+always politik 1234-13
+
+# POLITISCH (4.4 Zweiformige Kürzungen)
+always politisch 1234-156
+
+# PRO- (4.2.1 Vorsilbenkürzungen)
+begword pro 12345
+sufword prokofjew 1234-1235-135-13-135-124-245-15-2456
+always prometh 1234-1235-135-134-15-2345-125
+sufword proust 1234-1235-135-136-23456
+sufword protasius 1234-1235-135-2345-1-234-24-136-234
+begmidword provenc 1234-1235-135-1236-14-6-14
+begmidword provenz 1234-1235-135-1236-14-1356
+
+# PUNKT PÜNKT (4.4 Zweiformige Kürzungen)
+always punkt 1234-2345
+always pünkt 5-1234-2345
+
+# Q   (4.1 Lautgruppenkürzungen)
+word q 6-12345
+always q 6-12345
+# Grossgeschriebene Wortanfänge erhalten sonst keinen Pt.6!
+context ["Q"]$u @6-12345
+
+# RECHT (4.4 Zweiformige Kürzungen)
+always recht 1235-2345
+always rechts 1235-2345-234
+always rechtschaffen 1235-2345-156-1-124-124-14
+always rechtsetz 1235-2345-2-15
+always rechtsprech 1235-2345-2-2346
+begmidword rechtsteh 1235-2345-23456-2356
+always rechtstell 1235-2345-2-13456
+always rechtstutz 1235-2345-23456-136-2345-1356
+always europarecht 126-1235-135-1234-1-1235-2345
+always brecht 12-1235-15-1456-2345
+prfword brechte 12-1235-15-1456-236
+always schreibrecht 156-12-1235-2345
+always halbrecht 125-25-12-1235-2345
+# HOMNYM
+always erbrecht 12456-12-1235-2345
+always zerbrecht 1356-12456-12-1235-15-1456-2345
+always dordrecht 145-26-145-1235-15-1456-2345
+midendword erecht 15-1235-2345
+always berecht 23-1235-2345
+always haberecht 2-125-15-1235-2345
+always gerecht 12346-1235-2345
+midendword ierecht 346-1235-2345
+midendword terecht 236-1235-2345
+always senkrecht 234-14-13-1235-2345
+always vetorecht 1236-15-2345-135-1235-2345
+always ruprecht 1235-136-1234-1235-15-1456-2345
+always utrecht 136-2345-1235-15-1456-2345
+
+# REGIER (4.4 Zweiformige Kürzungen)
+always regier 1235-1245
+always regieraum 1235-15-1245-346-1235-16-134
+always regieräum 1235-15-1245-346-1235-34-134
+always segregier 234-15-1245-1235-15-1245-346-1235
+always aggregier 1-1245-1245-1235-15-1245-346-1235
+
+# REHABILIT (4.4 Zweiformige Kürzungen)
+always rehabilit 1235-12
+
+# REPUBLIK (4.4 Zweiformige Kürzungen)
+always republik 1235-13
+
+# RICHT (4.3.6 Kommakürzungen)
+always richt 2-3456
+always bricht 12-1235-3456-2345
+always abricht 1-12-2-3456
+always schreibricht 156-12-2-3456
+always halbricht 125-25-12-2-3456
+always schubricht 156-136-12-2-3456
+always crichton 6-14-1235-3456-2345-135-1345
+always bericht 23-2-3456
+always ericht 15-2-3456
+always gericht 12346-2-3456
+always kehricht 13-2356-1235-3456-2345
+always röhricht 1235-246-125-1235-3456-2345
+always töricht 2345-246-1235-3456-2345
+prfword törichte 2345-246-1235-3456-236
+always törichtest 2345-246-1235-3456-236-23456
+always trichter 2345-1235-3456-2345-12456
+prfword stricht 23456-1235-3456-2345
+always maastricht 134-1-1-23456-1235-3456-2345
+
+# RÜCK (4.4 Zweiformige Kürzungen)
+always rück 1235-46
+always arück 1-1235-46
+always brück 12-1235-1256-46
+always abrück 1-12-1235-46
+always osnabrück 135-234-1345-1-12-1235-1256-46
+midendword erück 15-1235-46
+always berück 23-1235-46
+always gerück 12346-1235-46
+always perück 1234-12456-1256-46
+midendword terück 236-1235-46
+begword frück 124-1235-1256-46
+always krück 13-1235-1256-46
+always druckrücken 145-46-1235-1256-46-14
+always orück 135-1235-46
+always herrück 125-12456-1235-46
+always hunsrück 125-256-234-1235-1256-46
+
+# SAG (4.4 Zweiformige Kürzungen)
+always sag 234-1245
+always säg 5-234-1245
+before l begmidword säge 5-234-1245-15
+before m begmidword säge 5-234-1245-15
+always sag's 234-1245-6-234
+midendword sagent 234-1-1245-14-2345
+always sägerest 5-234-1245-15-1235-15-23456
+always sägerochen 5-234-1245-15-1235-135-1456-14
+midword saggreg 234-1-1245-1245-1235-15-1245
+always sägeunfall 5-234-1245-15-256-124-12345
+begmidword sägeunfäll 5-234-1245-15-256-5-124-12345
+always sagit 234-1-1245-24-2345
+always sago 234-1-1245-135
+always sagrada 234-1-1245-1235-1-145-1
+always lasagn 123-1-234-1-1245-1345
+midendword esagent 123456-1-1245-14-2345
+always disagio 145-24-234-1-1245-24-135
+always visag 1236-24-234-1-1245
+prfword visage 1236-24-234-1-12346
+always canossa 6-14-235-135-2346-1
+always corsag 6-14-26-234-1-1245
+prfword corsage 6-14-26-234-1-12346
+always korsag 13-26-234-1-1245
+prfword korsage 13-26-234-1-12346
+always kanossa 13-235-135-2346-1
+always assagai 1-2346-1-1245-1-24
+always massage 134-1-2346-1-12346
+always massagen 134-1-2346-1-1245-14
+always passage 1234-1-2346-1-12346
+always passagen 1234-1-2346-1-1245-14
+always passagier 1234-1-2346-1-1245-346-1235
+always messag 134-15-2346-1-1245
+prfword message 134-15-2346-1-12346
+always vernissag 1236-12456-1345-24-2346-1-1245
+prfword vernissage 1236-12456-1345-24-2346-1-12346
+midendword ausagier 16-234-1-1245-346-1235
+
+# -SAM   4.2.1 a) Nachsilbenkürzungen
+midendword sam 2346
+always samariter 234-1-134-356-24-2345-12456
+always samarkand 234-1-134-356-13-235-145
+always samba 234-1-134-12-1
+always sambation 234-1-134-12-5-1345
+always sambesi 234-1-134-12-123456-24
+always sambia 234-1-134-12-24-1
+always sambuc 234-1-134-12-136-6-14
+always samisch 234-1-134-24-156
+always samm 234-1-1346
+midword sammach 2346-134-56
+always samo 234-1-134-135
+always sampl 234-1-134-1234-123
+midword samplitud 234-1-134-1234-123-24-2345-136-145
+always samson 234-1-134-234-135-1345
+always samstag 234-1-134-234-2345-1-1245
+prfword samstage 234-1-134-234-2345-1-12346
+always samstäg 234-1-134-234-2345-345-1245
+always samsung 234-1-134-234-256-1245
+always samt 234-1-134-2345
+sufword verlangsam 36-123-1245-2346
+midword verlangsam 1236-12456-123-1245-2346
+always samuel 234-1-134-136-13456
+always samurai 234-1-134-136-1235-1-24
+always betriebsam 23-2345-1235-346-12-2346
+always rübsamen 1235-1256-12-234-1-134-14
+always windsamen 2456-35-145-234-1-134-14
+always fischmondsamen 124-24-156-134-135-1345-145-234-1-134-14
+midendword esamt 123456-1-134-2345
+always besam 23-234-1-134
+always besamm 23-234-1-1346
+always desambiguier 145-123456-1-134-12-45-136-346-1235
+always gesamt 12346-234-1-134-2345
+prfword gesamte 12346-234-1-134-236
+begmidword heeresameis 125-15-15-1235-123456-1-134-146-234
+sufword sesam 234-123456-1-134
+always gemüsesamen 12346-134-1256-234-15-234-1-134-14
+begmidword hanfsam 125-235-124-234-1-134
+before m begmidword langsam 123-1245-2346
+midendword ungsamt 136-234-1-134-2345
+always lauchsamen 123-16-1456-234-1-134-14
+always bisam 12-24-234-1-134
+always kürbisamen 13-1256-1235-12-24-234-234-1-134-14
+always chilisamen 1456-24-123-24-234-1-134-14
+always balsam 12-25-234-1-134
+before m begmidword salsa 234-25-234-1
+always baumsamen 12-16-134-234-1-134-14
+begword ansam 235-234-1-134
+always ansamm 235-234-1-1346
+always mensamahl 134-14-234-1-134-1-125-123
+always blumensamen 12-123-136-134-14-234-1-134-14
+always anemonensamen 235-12356-135-1345-14-234-1-134-14
+always rasensamen 1235-1-234-14-234-1-134-14
+always erbsensamen 12456-12-234-14-234-1-134-14
+always finkensamen 124-35-13-14-234-1-134-14
+always pflanzensamen 1234-124-123-235-1356-14-234-1-134-14
+always pillensamen 1234-24-12345-14-234-1-134-14
+always erbsensamen 12456-12-234-14-234-1-134-14
+always tomatensamen 2345-135-134-1-2345-14-234-1-134-14
+always blütensamen 12-123-1256-2345-14-234-1-134-14
+always löwenzahnsamen 123-246-2456-14-1356-1-125-1345-234-1-134-14
+always mohnsamen 134-135-125-1345-234-1-134-14
+always leinsamen 123-1246-234-1-134-14
+always mosambik 134-135-234-1-134-12-24-13
+always posamentier 1234-135-234-1-134-14-2345-346-1235
+always rosamund 1235-135-234-1-134-256-145
+sufword osama 135-234-1-134-1
+always brosam 12-1235-135-234-1-134
+always nitrosamin 1345-24-2345-1235-135-234-1-134-35
+always bärlappsamen 12-345-1235-123-1-1234-1234-234-1-134-14
+sufword verkehrsam 36-13-2356-1235-234-1-134
+midendword verkehrsam 1236-12456-13-2356-1235-234-1-134
+always assam 1-2346-1-134
+always grassamen 1245-1235-1-234-234-1-134-14
+always flachssamen 124-123-56-234-234-1-134-14
+always indossamen 35-145-135-2346-1-134-14
+begmidword unratssamm 256-1235-1-2345-234-234-1-1346
+always staatsamateur 23456-2345-234-1-134-1-2345-126-1235
+midendword schaftsamt 156-234-1-134-2345
+midendword sichtsamt 234-3456-2345-234-1-134-2345
+always arbeitsam 356-12-2346
+always arbeitsameis 356-12-234-1-134-146-234
+always arbeitsamt 356-12-234-1-134-2345
+begmidword bedecktsam 23-145-15-46-2345-234-1-134
+begmidword nacktsam 1345-1-46-2345-234-1-134
+sufword entsam 2346-234-1-134
+always entsam 14-2345-234-1-134
+midendword fahrtsamt 2-1235-2345-234-1-134-2345
+always unkrautsamen 256-13-1235-16-2345-234-1-134-14
+always usambara 136-234-1-134-12-356-1
+
+# SATZ SÄTZ (4.4 Zweiformige Kürzungen)
+always satz 234-1356
+always sätz 5-234-1356
+always glasätzung 1245-123-1-234-345-2345-1356-136
+
+# SCH (4.1 Lautgruppenkürzungen)
+word sch 6-156
+always sch 156
+midword schanc 234-1456-235-6-14
+midword schao 234-1456-1-135
+midendword scharakter 234-1456-13
+midendword schef 234-1456-15-124
+before f begmidword asche 1-156-15
+before f begmidword wäsche 2456-345-156-15
+before f begmidword fische 124-24-156-15
+always scheffel 156-15-124-124-13456
+always scheffl 156-15-124-124-123
+always tuschefüll 2345-136-156-15-124-1256-12345
+midendword schemie 234-1456-12356-346
+midword schemik 234-1456-12356-134-24-13
+always scherzando 234-1456-12456-1356-235-145-135
+always scherzo 234-1456-12456-1356-135
+midendword schirurg 234-1456-24-1235-136-1235-1245
+always schlösschen 156-123-246-2346-1456-14
+always schnäpschen 156-1345-345-1234-234-1456-14
+always school 234-1456-135-135-123
+midendword schromat 234-1456-1235-135-134-1-2345
+midendword schromo 234-1456-1235-135-134-135
+midendword schronik 234-1456-1235-135-1345-24-13
+midword schrono 234-1456-1235-135-1345-135
+midendword schüechli 234-1456-1256-15-1456-123-24
+always maraschino 134-356-1-234-1456-35-135
+begmidword eschatolo 123456-1456-1-2345-135-123-135
+always radieschen 1235-1-145-346-234-1456-14
+always lieschen 123-346-234-1456-14
+always brieschen 12-1235-346-234-1456-14
+always wieschen 2456-346-234-1456-14
+endword folgschor 124-1245-234-1456-135-1235
+midword folgschor 124-1245-234-1456-26
+midword folgschör 124-1245-234-1456-246-1235
+endword angschor 235-1245-234-1456-135-1235
+midword angschor 235-1245-234-1456-26
+midword angschör 235-1245-234-1456-246-1235
+always lieblingschat 123-346-12-123-35-1245-234-1456-1-2345
+midendword üchschen 1256-1456-234-1456-14
+endword ungschor 136-234-1456-135-1235
+midword ungschor 136-234-1456-26
+midword ungschör 136-234-1456-246-1235
+always ischia 24-234-1456-24-1
+always ischämie 24-234-1456-345-134-346
+always ischämien 24-234-1456-345-134-24-14
+always maischip 134-1-24-234-1456-24-1234
+always reischen 1235-146-234-1456-14
+always mischief 134-24-234-1456-346-124
+always prischen 1234-1235-24-234-1456-14
+always hälschen 125-345-123-234-1456-14
+prfword engelschor 14-1245-13456-234-1456-135-1235
+always engelschor 14-1245-13456-234-1456-26
+always engelschör 14-1245-13456-234-1456-246-1235
+prfword teufelschor 2345-126-124-13456-234-1456-135-1235
+always teufelschor 2345-126-124-13456-234-1456-26
+always teufelschör 2345-126-124-13456-234-1456-246-1235
+always hülschen 125-1256-123-234-1456-14
+always gänschen 1245-345-1345-234-1456-14
+always hänschen 125-345-1345-234-1456-14
+endword enschor 14-234-1456-135-1235
+midword enschor 14-234-1456-26
+midword enschör 14-234-1456-246-1235
+always möpschen 134-246-1234-234-1456-14
+endword sschen 2346-1456-14
+always bisschen 12-24-2346-1456-14
+always fässchen 124-345-2346-1456-14
+always gässchen 1245-345-2346-1456-14
+always tässchen 2345-345-2346-1456-14
+always klösschen 13-123-246-2346-1456-14
+always flüsschen 124-123-1256-2346-1456-14
+always küsschen 13-1256-2346-1456-14
+always nüsschen 1345-1256-2346-1456-14
+always heitscheck 125-234-1456-15-46
+always kabäuschen 13-1-12-34-234-1456-14
+always häuschen 125-34-234-1456-14
+always läuschen 123-34-234-1456-14
+always mäuschen 134-34-234-1456-14
+always knäuschen 13-1345-34-234-1456-14
+always päuschen 1234-34-234-1456-14
+always bläschen 12-123-345-234-1456-14
+always gläschen 1245-123-345-234-1456-14
+always häschen 125-345-234-1456-14
+always käschen 13-345-234-1456-14
+always näschen 1345-345-234-1456-14
+always väschen 1236-345-234-1456-14
+always döschen 145-246-234-1456-14
+always höschen 125-246-234-1456-14
+always röschen 1235-246-234-1456-14
+prfword fröschen 124-1235-246-156-14
+always blüschen 12-123-1256-234-1456-14
+
+# -SCHAFT 4.2.1 a) Nachsilbenkürzungen
+midendword schaft 156
+midendword schafts 156-234
+always gschaftl 1245-156-1-124-2345-123
+always mahagonischaft 134-1-125-1-1245-135-1345-24-156-1-124-2345
+always stiefelschaft 23456-346-124-13456-156-1-124-2345
+always barschaft 12-356-156-1-124-2345
+always nachbarschaft 1345-56-12-356-156
+always speerschaft 234-1234-15-15-1235-156-1-124-2345
+always herrschaft 1235-1235-156-1-124-2345
+always herrschafts 1235-1235-156-1-124-2345-234
+
+# SCHLAG SCHLÄG (4.4 Zweiformige Kürzungen)
+always schlag 156-1245
+always schläg 5-156-1245
+always flanschlager 124-123-235-156-123-1-1245-12456
+
+# SCHLIEß (4.4 Zweiformige Kürzungen)
+syllable schließ 156-2346
+
+# SCHON (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word schon 156
+
+# SCHREIB (4.4 Zweiformige Kürzungen)
+syllable schreib 156-12
+before m begmidword schreibe 156-12-15
+before s begmidword schreibe 156-12-15
+
+# SCHRIEB (4.3.6 Kommakürzungen)
+always schrieb 2-156
+
+# SCHRIFT (4.4 Zweiformige Kürzungen)
+always schrift 156-2345
+always schriftsteil 156-2345-234-2345-146-123
+
+# SCHWIERIG (4.4 Zweiformige Kürzungen)
+always schwierig 156-45
+
+# SEHR (4.4 Zweiformige Kürzungen)
+always sehr 234-1235
+always sehrest 234-2356-1235-15-23456
+always sehrind 234-2356-1235-35-145
+always sehrohr 234-2356-1235-135-125-1235
+always standesehr 2-23456-123456-2356-1235
+begmidword fernseh 124-12456-1345-234-2356
+midword dersehr 145-12456-234-2356-1235
+midword iersehr 346-1235-234-2356-1235
+always hausehr 125-16-234-2356-1235
+
+# SEIN (4.3.3 Einformige Kürzungen, alleinstehend oder am Wortanfang)
+sufword sein 246
+always seineufer 234-1246-15-136-124-12456
+
+# SELBST (4.4 Zweiformige Kürzungen)
+always selbst 234-23456
+# Alte Rechtschreibung
+always selbständig 234-13456-12-5-23456-45
+
+# SETZ (4.3.6 Kommakürzungen)
+always setz 2-15
+
+# SICH  (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word sich 14
+word sich's 14-6-234
+# sind die apostrophierten 4.3 nötig?: auf's ist's etc.
+
+# SIE   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word sie 234
+word sie's 234-6-234
+
+# SIND (4.4 Zweiformige Kürzungen)
+always sind 234-145
+always sindbad 234-35-145-12-1-145
+midword sindefin 234-35-145-15-124-35
+always sindelfin 234-35-145-13456-124-35
+midendword sinder 234-35-145-12456
+midendword sindern 234-35-145-12456-1345
+midendword sinderin 234-35-145-12456-35
+midendword sinderinnen 234-35-145-12456-35-1345-14
+midendword sindex 234-35-145-15-6-1346
+midendword sindik 234-35-145-24-13
+midendword sindiz 234-35-145-24-1356
+midword sindoss 234-35-145-135-2346
+midword sindukt 234-35-145-136-13-2345
+midendword sindustrie 234-35-145-136-23456-1235-346
+midendword sindustrien 234-35-145-136-23456-1235-24-14
+midword sindustri 234-35-145-136-23456-1235-24
+
+# SITZ (4.3.6 Kommakürzungen)
+always sitz 2-24
+always lausitz 123-16-234-24-2345-1356
+
+# SO (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word so 1234
+always sobald 2-1234-12-25-145
+always sodann 2-1234-145-235-1345
+always sodass 2-1234-145-1-2346
+always soeben 2-1234-15-12-14
+always sofern 2-1234-124-12456-1345
+always sofort 2-1234-124-26-2345
+prfword sogar 2-1234-1245-1-1235
+always sogenannt 2-1234-12346-1345-235-1345-2345
+prfword sogenannte 2-1234-12346-1345-235-1345-236
+always sogleich 2-1234-1245-1456
+always solang 2-1234-123-1245
+always somit 2-1234-2-2345
+always sonach 2-1234-1345-56
+always sooft 2-1234-135-124-2345
+always sosehr 2-1234-234-1235
+always sosein 2-1234-234-1246
+always soso 2-1234-2-1234
+sufword soundso 2-1234-2-136-2-1234
+always soviel 2-1234-1236-123
+always soweit 2-1234-2456-2345
+always sowenig 2-1234-2456-45
+always sowie 2-1234-2-126
+always sowieso 2-1234-2-126-2-1234
+always sowohl 2-1234-2456-123
+always sozusagen 2-1234-2-1356-234-1245-14
+always allsogleich 1-12345-2-1234-1245-1456
+always genauso 12346-1345-16-2-1234
+always geradeso 12346-1235-1-145-15-2-1234
+always wieso 2-126-2-1234
+sufword umso 136-134-2-1234
+always umsonst 136-134-234-135-1345-23456
+always umsorg 136-134-234-26-1245
+prfword umsorge 136-134-234-26-12346
+always umsort 136-134-234-26-2345
+
+# SOLCH (4.4 Zweiformige Kürzungen)
+always solch 234-1456
+
+# SOLL (4.3.6 Kommakürzungen)
+always soll 2-234
+
+# SONDERN (4.4 Zweiformige Kürzungen)
+always sondern 234-1345
+begmidword sondernach 234-135-1345-145-12456-1345-56
+always sondernummer 234-135-1345-145-12456-1345-136-1346-12456
+always sondernutz 234-135-1345-145-12456-1345-1356
+
+# SOZIAL (4.4 Zweiformige Kürzungen)
+always sozial 234-123
+
+# SPIEL (4.3.6 Kommakürzungen)
+syllable spiel 2-346
+
+# SPRACH SPRÄCH (4.4 Zweiformige Kürzungen)
+always sprach 234-1234
+always spräch 5-234-1234
+always spracheck 234-1234-1235-56-15-46
+
+# SPRECH (4.3.6 Kommakürzungen)
+always sprech 2-2346
+
+# ß   (4.1 Lautgruppenkürzungen)
+always ß 2346
+
+# SS  (4.1 Lautgruppenkürzungen)
+midendword ss 2346
+midword ssch 234-156
+midendword sschnee 234-156-1345-15-15
+midword sssch 2346-156
+midendword ssschnee 2346-156-1345-15-15
+midendword ssschnur 2346-156-1345-136-1235
+midendword ssschrift 2346-156-2345
+syllable saison 234-1-24-234-135-1345
+syllable saitig 234-1-24-2345-45
+syllable sakramen 234-1-13-1235-1-134-14
+syllable sammellager 234-1-1346-13456-123-1-1245-12456
+syllable sammlung 234-1-1346-123-136
+syllable sammlungs 234-1-1346-123-136-234
+syllable sanierung 234-235-346-1235-136
+syllable sanktion 234-235-13-2345-245
+syllable satellit 234-1-236-12345-24-2345
+syllable sattel 234-1-2345-2345-13456
+syllable savann 234-1-1236-235-1345
+always segment 234-15-1245-134-14-2345
+prfword segmente 234-15-1245-134-14-236
+syllable sehnsuch 234-2356-1345-234-136-1456
+syllable sehnsüch 234-2356-1345-234-1256-1456
+syllable seidenmat 234-146-145-14-134-1-2345
+syllable sekretari 234-15-13-1235-15-2345-356-24
+syllable sekretär 234-15-13-1235-15-2345-345-1235
+syllable sektierer 234-15-13-2345-346-1235-12456
+syllable semester 234-12356-15-23456-12456
+syllable semestrig 234-12356-15-23456-1235-45
+syllable sepsis 234-15-1234-234-24-234
+syllable sequenz 234-15-6-12345-136-14-1356
+begmidword sexual 234-15-6-1346-136-25
+syllable sexuell 234-15-6-1346-136-15-12345
+syllable situation 234-24-2345-136-5-1345
+syllable skizz 234-13-24-1356-1356
+syllable sklave 234-13-123-1-1236-15
+syllable sklaven 234-13-123-1-1236-14
+syllable sklaverei 234-13-123-1-1236-12456-146
+syllable skorbut 234-13-26-12-136-2345
+syllable skrupel 234-13-1235-136-1234-13456
+syllable software 234-135-124-2345-2456-356-15
+syllable sohl 234-135-125-123
+syllable soldat 234-135-123-145-1-2345
+syllable solidarität 234-135-123-24-145-356-5-345
+always solist 234-135-123-24-23456
+always solistisch 234-135-123-5-156
+syllable souverän 234-135-136-1236-12456-345-1345
+syllable soziolo 234-135-1356-24-135-123-135
+syllable sparkass 234-1234-356-13-1-2346
+syllable spektakel 234-1234-15-13-2345-1-13-13456
+always spektr 234-1234-15-13-2345-1235
+syllable spekul 234-1234-15-13-136-123
+syllable spezialität 234-1234-15-1356-24-25-5-345
+syllable spezifi 234-1234-15-1356-24-124-24
+syllable spezifität 234-1234-15-1356-24-124-5-345
+syllable sphär 234-1234-125-345-1235
+syllable splitter 234-1234-123-24-2345-2345-12456
+syllable spricht 234-1234-1235-3456-2345
+syllable stadien 23456-1-145-24-14
+syllable stadion 23456-1-145-24-135-1345
+syllable stadium 23456-1-145-24-136-134
+syllable staffel 23456-1-124-124-13456
+syllable stahl 23456-1-125-123
+syllable statist 23456-1-2345-24-23456
+syllable statistisch 23456-1-2345-5-156
+syllable stausee 23456-16-234-15-15
+syllable stauseen 23456-16-234-15-14
+syllable stauung 23456-16-136
+syllable stipendi 23456-24-1234-14-145-24
+syllable stornierung 23456-26-1345-346-1235-136
+syllable strahl 23456-1235-1-125-123
+syllable strahlemann 23456-1235-1-125-123-15-134-1345
+syllable struktur 23456-1235-136-13-2345-136-1235
+syllable strähn 23456-1235-345-125-1345
+syllable student 23456-136-145-14-2345
+syllable städte 23456-345-145-236
+syllable städten 23456-345-145-2345-14
+syllable städter 23456-345-145-2345-12456
+syllable stämm 23456-345-1346
+syllable stärk 23456-345-1235-13
+syllable stöck 23456-246-46
+syllable störend 23456-246-1235-14-145
+syllable störer 23456-246-1235-12456
+syllable störung 23456-246-1235-136
+syllable störungs 23456-246-1235-136-234
+syllable stöß 23456-246-2346
+syllable stünd 23456-1256-1345-145
+always subjekt 234-136-12-245-15-13-2345
+prfword subjekte 234-136-12-245-15-13-236
+syllable subvention 234-136-12-1236-14-2345-245
+syllable sylvani 234-6-13456-123-1236-235-24
+syllable symbol 234-6-13456-134-12-135-123
+syllable symptom 234-6-13456-134-1234-2345-135-134
+syllable syndrom 234-6-13456-1345-145-1235-135-134
+syllable synkre 234-6-13456-1345-13-1235-15
+syllable synod 234-6-13456-1345-135-145
+syllable system 234-6-13456-23456-12356
+syllable szenarien 234-1356-14-356-24-14
+syllable säckel 234-345-46-13456
+syllable transfer 2345-1235-235-234-124-12456
+midendword ssaal 234-234-1-1-123
+always flussaal 124-123-136-2346-1-1-123
+midendword ssach 234-234-56
+begmidword missach 134-24-2346-56
+always sissach 234-24-2346-56
+always massachusetts 134-1-2346-56-136-234-15-2345-2345-234
+begmidword sprossachs 234-1234-1235-135-2346-56-234
+midendword ssaft 234-234-1-124-2345
+endword ssage 234-234-1245-15
+midendword ssagen 234-234-1245-14
+midendword ssalat 234-234-25-1-2345
+endword ssalate 234-234-25-1-236
+endword ssalbe 234-234-25-12-15
+midendword ssalben 234-234-25-12-14
+midendword ssaldo 234-234-25-145-135
+midendword ssalon 234-234-25-135-1345
+midendword ssalut 234-234-25-136-2345
+endword ssalute 234-234-25-136-236
+midendword ssamen 234-234-1-134-14
+midendword ssatir 234-234-1-2345-24-1235
+midendword ssatz 234-234-1356
+midendword ssätz 234-5-234-1356
+midendword ssaum 234-234-16-134
+midendword sschlag 234-156-1245
+midendword sschläg 234-5-156-1245
+midendword sschnur 234-156-1345-136-1235
+midendword sschul 234-156-136-123
+midword sschül 234-156-1256-123
+midendword sschrift 234-156-2345
+midendword ssee 234-234-15-15
+always chaussee 1456-16-2346-15-15
+prfword chausseen 1456-16-2346-15-14
+always odyssee 135-145-6-13456-2346-15-15
+prfword odysseen 135-145-6-13456-2346-15-14
+midendword sseel 234-234-15-15-123
+midendword sseen 234-234-15-14
+before e begmidword baisse 12-1-24-2346-15
+midendword ssegel 234-234-15-1245-13456
+midendword ssehen 234-234-2356-14
+midendword sseher 234-234-2356-12456
+endword ssehne 234-234-2356-1345-15
+midendword ssehnen 234-234-2356-1345-14
+midendword sseide 234-234-146-145-15
+midendword ssein 234-234-1246
+always passein 1234-1-2346-1246
+always hussein 125-136-2346-15-35
+always schlussein 156-123-136-2346-1246
+endword sseite 234-234-146-236
+midendword sseiten 234-234-146-2345-14
+midendword sseitig 234-234-146-2345-45
+midendword sseits 234-234-146-2345-234
+midword ssektor 234-234-15-13-2345-26
+endword ssektor 234-234-15-13-2345-135-1235
+midendword sselig 234-234-13456-45
+always fisselig 124-24-2346-13456-45
+always dusselig 145-136-2346-13456-45
+always fusselig 124-136-2346-13456-45
+always schusselig 156-136-2346-13456-45
+always pusselig 1234-136-2346-13456-45
+midword sseminar 234-234-12356-35-356
+endword sseminar 234-234-12356-35-1-1235
+midendword ssenat 234-234-14-1-2345
+midendword ssender 234-234-14-145-12456
+always peterssen 1234-15-2345-12456-234-234-14
+always fassender 124-1-2346-14-145-12456
+always prassender 1234-1235-1-2346-14-145-12456
+always hassender 125-1-2346-14-145-12456
+always schassender 156-1-2346-14-145-12456
+always nässender 1345-345-2346-14-145-12456
+always passender 1234-1-2346-14-145-12456
+always hissender 125-24-2346-14-145-12456
+always pissender 1234-24-2346-14-145-12456
+always küssender 13-1256-2346-14-145-12456
+always flussender 124-123-136-2346-14-145-12456
+always missender 134-24-2346-14-145-12456
+midendword ssendung 234-234-14-145-136
+midendword ssenken 234-234-14-13-14
+midendword ssenkung 234-234-14-13-136
+midword ssensor 234-234-14-234-26
+endword ssensor 234-234-14-234-135-1235
+midendword sserie 234-234-12456-24-15
+midendword sserien 234-234-12456-24-14
+midendword sserver 234-234-12456-1236-12456
+begmidword wasserver 2456-1-2346-12456-1236-12456
+always gewässer 12346-2456-345-2346-12456
+midendword ssetz 234-2-15
+endword sseuche 234-234-126-1456-15
+midendword sseuche 234-234-126-1456-14
+midendword ssheriff 234-234-125-12456-24-124-124
+midendword sshow 234-234-125-135-2456
+midendword ssibirisch 234-234-24-12-24-1235-24-156
+midendword ssicher 234-234-3456-12456
+midendword ssicht 234-234-3456-2345
+midendword ssiedlung 234-234-346-145-123-136
+midendword ssieg 234-234-346-1245
+endword ssiege 234-234-346-12346
+midendword ssiegen 234-234-346-1245-14
+midendword ssiegel 234-234-346-1245-13456
+midword ssignal 234-234-45-1345-25
+endword ssignal 234-234-45-1345-1-123
+midendword ssignatur 234-234-45-1345-1-2345-136-1235
+midendword ssilbig 234-234-24-123-12-45
+midendword ssilvani 234-234-24-123-1236-235-24
+midendword ssinn 234-234-35-1345
+always insass 35-234-1-2346
+always schloss 156-123-135-2346
+always russin 1235-136-2346-35
+always äbtissin 345-12-2345-24-2346-35
+midendword ssinus 234-234-35-136-234
+endword ssitte 234-234-24-2345-236
+midendword ssitten 234-234-24-2345-2345-14
+midendword ssitz 234-2-24
+midendword sskala 234-234-13-25-1
+midendword sskalen 234-234-13-25-14
+midendword sskat 234-234-13-1-2345
+midendword sskilauf 234-234-13-24-123-16-124
+midendword sskript 234-234-13-1235-24-1234-2345
+endword sskripte 234-234-13-1235-24-1234-236
+endword ssocke 234-234-135-46-15
+midendword ssockel 234-234-135-46-13456
+midendword ssocken 234-234-135-46-14
+endword ssode 234-234-135-145-15
+midendword ssoden 234-234-135-145-14
+midendword ssohn 234-234-135-125-1345
+after konsonant midendword sson 234-234-135-1345
+midendword ssonder 234-234-135-1345-145-12456
+midendword ssondern 234-234-1345
+endword ssonne 234-234-135-1345-1345-15
+midendword ssonnen 234-234-135-1345-1345-14
+endword ssorge 234-234-26-12346
+midendword ssorgen 234-234-26-1245-14
+midendword ssozial 234-234-123
+midendword sspalt 234-234-1234-25-2345
+endword sspalte 234-234-1234-25-236
+endword sspange 234-234-1234-235-12346
+midendword sspangen 234-234-1234-235-1245-14
+midendword sspannung 234-234-1234-235-1345-136
+midendword ssparen 234-234-1234-356-14
+endword ssparte 234-234-1234-356-236
+midendword ssparten 234-234-1234-356-2345-14
+midendword sspatel 234-234-1234-1-2345-13456
+midendword sspazier 234-234-1234-1-1356-346-1235
+midendword sspaß 234-234-1234-1-2346
+midendword sspeck 234-234-1234-15-46
+midendword sspediteur 234-234-1234-15-145-24-2345-126-1235
+midendword sspedition 234-234-1234-15-145-24-2345-245
+midendword sspeed 234-234-1234-15-15-145
+midendword sspeich 234-234-1234-146-1456
+midendword sspeis 234-234-1234-146-234
+endword sspende 234-234-1234-14-145-15
+midendword sspenden 234-234-1234-14-145-14
+midendword sspender 234-234-1234-14-145-12456
+midendword ssperr 234-234-1234-12456-1235
+midendword sspesen 234-234-1234-123456-14
+midendword sspiegel 234-234-1234-346-1245-13456
+midendword sspiel 234-2-346
+midendword sspindel 234-234-1234-35-145-13456
+midendword sspinn 234-234-1234-35-1345
+midendword sspion 234-234-1234-24-135-1345
+midword sspiral 234-234-1234-24-1235-25
+midword sspital 234-234-1234-24-2345-25
+endword sspital 234-234-1234-24-2345-1-123
+midendword sspitz 234-234-1234-24-2345-1356
+midendword ssport 234-234-1234-26-2345
+always passport 1234-1-2346-1234-26-2345
+midendword ssprach 234-234-1234
+midendword sspring 234-234-1234-1235-35-1245
+endword sspringe 234-234-1234-1235-35-12346
+midendword ssprint 234-234-1234-1235-35-2345
+midendword sspritz 234-234-1234-1235-24-2345-1356
+midendword sspross 234-234-1234-1235-135-2346
+midendword sspruch 234-234-1234-1235-136-1456
+midendword ssprung 234-234-1234-1235-256-1245
+midendword ssprüch 234-234-1234-1235-1256-1456
+midword ssprüng 234-234-1234-1235-1256-1345-1245
+endword ssprünge 234-234-1234-1235-1256-1345-12346
+midendword sspur 234-234-1234-136-1235
+midendword sspänner 234-234-1234-345-1345-1345-12456
+midendword sspännig 234-234-1234-345-1345-1345-45
+midendword sspül 234-234-1234-1256-123
+midendword sspür 234-234-1234-1256-1235
+before s begmidword steins 23456-1246-234
+before s begmidword gesteins 12346-23456-1246-234
+midword ations 5-1345-234
+midword ationsauf 5-1345-234-2-16
+always aronsstab 356-135-1345-234-23456-1-12
+midendword rsstab 1235-234-23456-1-12
+always sstachel 234-23456-56-13456
+always sstapel 234-23456-1-1234-13456
+midword ssst 2346-23456
+midword ssstell 2346-2-13456
+before s begmidword boots 12-135-135-2345-234
+midendword sstaat 234-23456-2345
+midendword sstabes 234-23456-1-12-123456
+midendword sstabil 234-23456-1-12-24-123
+midendword sstabs 234-23456-1-12-234
+midendword sstadt 234-23456-1-145-2345
+midendword sstäd 234-23456-345-145
+midendword sstall 234-23456-1-12345
+midendword sstamm 234-23456-1-1346
+midendword sstamperl 234-23456-1-134-1234-12456-123
+midendword sstand 234-2-23456
+endword sstange 234-23456-235-12346
+midendword sstangen 234-23456-235-1245-14
+endword sstar 234-23456-1-1235
+midendword sstars 234-23456-356-234
+midendword sstark 234-23456-356-13
+midendword sstarr 234-23456-356-1235
+midendword sstart 234-23456-356-2345
+midendword sstation 234-23456-5-1345
+midendword sstatt 234-23456-1-2345-2345
+endword sstatue 234-23456-1-2345-136-15
+midendword sstatuen 234-23456-1-2345-136-14
+midendword sstatus 234-23456-1-2345-136-234
+midendword sstatut 234-23456-1-2345-136-2345
+endword sstaude 234-23456-16-145-15
+midendword sstauden 234-23456-16-145-14
+midendword ssteak 234-23456-15-1-13
+midendword sstehend 234-23456-2356-14-145
+midendword ssteigern 234-23456-146-1245-12456-1345
+midendword ssteigerung 234-23456-146-1245-12456-136
+midendword sstein 234-23456-1246
+endword sstele 234-23456-13456-15
+midendword sstelen 234-23456-13456-14
+endword sstelle 234-2-13456-15
+midendword sstellen 234-2-13456-14
+midendword sstellig 234-2-13456-45
+midendword sstellreflex 234-2-13456-1235-15-124-123-15-6-1346
+midendword sstellung 234-2-13456-136
+midendword sstelz 234-23456-13456-1356
+midendword sstempel 234-23456-12356-1234-13456
+endword ssteppe 234-23456-15-1234-1234-15
+midendword ssteppen 234-23456-15-1234-1234-14
+endword ssterbe 234-23456-12456-12-15
+midendword ssterben 234-23456-12456-12-14
+midendword ssteril 234-23456-12456-24-123
+midendword sstern 234-23456-12456-1345
+midendword ssteuer 234-23456-126-12456
+midendword sstich 234-23456-3456
+midendword sstift 234-23456-24-124-2345
+midendword sstil 234-23456-24-123
+midendword sstill 234-23456-24-12345
+midendword sstimm 234-23456-24-1346
+midendword sstock 234-23456-135-46
+midendword sstoff 234-23456-135-124-124
+midendword sstollen 234-23456-135-12345-14
+midendword sstolz 234-23456-135-123-1356
+midendword sstop 234-23456-135-1234
+midendword sstopp 234-23456-135-1234-1234
+midendword sstory 234-23456-26-6-13456
+midendword sstoß 234-23456-135-2346
+midendword sstraf 234-23456-1235-1-124
+midendword sstrand 234-23456-1235-235-145
+midendword sstrang 234-23456-1235-235-1245
+midendword sstrauch 234-23456-1235-16-1456
+midendword sstraß 234-23456-1235-1-2346
+midendword sstreb 234-23456-1235-15-12
+endword sstrebe 234-23456-1235-15-12-15
+endword sstreck 234-23456-1235-15-46
+midendword sstreich 234-23456-1235-146-1456
+midendword sstreif 234-23456-1235-146-124
+midendword sstreik 234-23456-1235-146-13
+midendword sstreit 234-23456-1235-146-2345
+endword sstreite 234-23456-1235-146-236
+midendword sstreuung 234-23456-1235-126-136
+midendword sstrich 234-23456-1235-3456
+midendword sstrichter 2346-2345-1235-3456-2345-12456
+midendword sstroh 234-23456-1235-135-125
+midendword sstrom 234-23456-1235-135-134
+midendword sstroph 234-23456-1235-135-1234-125
+midendword sstrotzend 234-23456-1235-135-2345-1356-14-145
+endword sstube 234-23456-136-12-15
+midendword sstuben 234-23456-136-12-14
+endword sstufe 234-23456-136-124-15
+midendword sstufen 234-23456-136-124-14
+midendword sstuhl 234-23456-136-125-123
+endword sstunde 234-23456-256-145-15
+midendword sstunden 234-23456-256-145-14
+midendword ssturm 234-23456-136-1235-134
+midendword ssturz 234-23456-136-1235-1356
+endword sstute 234-23456-136-236
+midendword sstuten 234-23456-136-2345-14
+midendword sstutz 234-23456-136-2345-1356
+endword sstäbe 234-23456-345-12-15
+midendword sstäben 234-23456-345-12-14
+midendword sständ 234-5-23456
+midendword sstück 234-23456-1256-46
+midendword sstülp 234-23456-1256-123-1234
+midendword sstürm 234-23456-1256-1235-134
+midendword sstürz 234-23456-1256-1235-1356
+midendword sstütz 234-23456-1256-2345-1356
+endword ssuche 234-234-136-1456-15
+midendword ssuchen 234-234-136-1456-14
+midendword ssucher 234-234-136-1456-12456
+midendword ssucht 234-234-136-1456-2345
+midendword ssud 234-234-136-145
+midendword ssumm 234-234-136-1346
+midendword ssumpf 234-234-136-134-1234-124
+endword ssuppe 234-234-136-1234-1234-15
+midendword ssuppen 234-234-136-1234-1234-14
+endword sszene 234-234-1356-14-15
+midendword sszenen 234-234-1356-14-14
+endword ssäfte 234-234-345-124-236
+midendword ssäften 234-234-345-124-2345-14
+endword ssäge 234-5-234-1245-15
+midendword ssägemaschin 234-5-234-1245-15-134-156
+midendword ssägen 234-5-234-1245-14
+endword ssäle 234-234-345-123-15
+midendword ssälen 234-234-345-123-14
+endword ssätz 234-5-234-1356
+midendword ssäufer 234-234-34-124-12456
+midendword ssäuger 234-234-34-1245-12456
+midendword ssäugetier 234-234-34-12346-2345-346-1235
+endword ssäule 234-234-34-123-15
+midendword ssäulen 234-234-34-123-14
+midendword ssüchtig 234-234-1256-1456-2345-45
+midendword ssünd 234-234-1256-1345-145
+always dasselbe 145-1-234-234-13456-12-15
+always dasselbig 145-1-234-234-13456-12-45
+always abgas 1-12-1245-1-234
+always niklas 1345-24-13-123-1-234
+always nicklas 1345-24-46-123-1-234
+prfword grassorte 1245-1235-1-234-234-26-236
+begmidword grassort 1245-1235-1-234-234-26-2345
+begmidword grasst 1245-1235-1-234-23456
+before s begmidword diebs 145-346-12-234
+always antriebs 235-2345-1235-346-12-234
+prfword antriebst 235-2345-1235-346-12-23456
+always betriebs 23-2345-1235-346-12-234
+always betriebsetz 23-2345-1235-346-12-2-15
+prfword betriebst 23-2345-1235-346-12-23456
+begmidword betriebstätt 23-2345-1235-346-12-23456-345-2345-2345
+prfword betriebstätte 23-2345-1235-346-12-23456-345-2345-236
+always krebs 13-1235-15-12-234
+sufword vertriebs 36-2345-1235-346-12-234
+word vertriebst 36-2345-1235-346-12-23456
+midendword vertriebs 1236-12456-2345-1235-346-12-234
+endword vertriebst 1236-12456-2345-1235-346-12-23456
+before s begmidword leibs 123-146-12-234
+always weibs 2456-146-12-234
+always kalbs 13-25-12-234
+always jakobs 245-1-13-135-12-234
+always jakobstraß 245-1-13-135-12-23456-1235-1-2346
+always wettbewerbs 2456-15-2345-2345-23-2456-12456-12-234
+always wettbewerbstell 2456-15-2345-2345-23-2456-12456-12-2-13456
+always erwerbs 12456-2456-12456-12-234
+always urlaubs 136-1235-123-16-12-234
+always ericsson 12456-24-6-14-234-234-135-1345
+always schieds 156-346-145-234
+prfword schiedst 156-346-145-23456
+always mitglieds 2-2345-1245-123-346-145-234
+always mitgliedstaat 2-2345-1245-123-346-145-23456-2345
+always mitgliedschaft 2-2345-1245-123-346-145-156
+always herolds 125-12456-135-123-145-234
+always heroldstab 125-12456-135-123-145-23456-1-12
+always gedulds 12346-145-136-123-145-234
+sufword auslands 34-123-235-145-234
+midendword auslands 16-234-123-235-145-234
+sufword auslandsch 34-123-235-145-156
+midendword auslandsch 16-234-123-235-145-156
+sufword auslandschef 34-123-235-145-234-1456-15-124
+midendword auslandschef 16-234-123-235-145-234-1456-15-124
+always inlands 35-123-235-145-234
+always rolands 1235-135-123-235-145-234
+always hunds 125-256-145-234
+always hundschnell 125-256-145-156-1345-15-12345
+always hundstock 125-256-145-23456-135-46
+always mords 134-26-145-234
+begmidword mordseri 134-26-145-234-12456-24
+always mordsch 134-26-145-156
+always pfunds 1234-124-256-145-234
+always pfundsch 1234-124-256-145-156
+sufword verbands 36-12-235-145-234
+begword verbandsch 36-12-235-145-156
+sufword verbandschef 36-12-235-145-234-1456-15-124
+word verbandst 36-12-235-145-23456
+sufword verbandstoff 36-12-235-145-23456-135-124-124
+midendword verbands 1236-12456-12-235-145-234
+midword verbandsch 1236-12456-12-235-145-156
+midendword verbandschef 1236-12456-12-235-145-234-1456-15-124
+endword verbands 1236-12456-12-235-145-23456
+midendword verbandstoff 1236-12456-12-235-145-23456-135-124-124
+before s begmidword lands 123-235-145-234
+always leibes 123-146-12-123456
+always diebes 145-346-12-123456
+always liebes 123-346-12-123456
+always waldes 2456-25-145-123456
+always landes 123-235-145-123456
+begmidword landestreif 123-235-145-15-23456-1235-146-124
+always standes 2-23456-123456
+always bundes 12-256-145-123456
+always todes 2345-135-145-123456
+always tages 2345-1-1245-123456
+always metageschäft 134-15-2345-1-1245-124
+always sieges 234-346-1245-123456
+always kies 13-346-234
+always kiest 13-346-23456
+always vlies 1236-123-346-234
+always spezies 234-1234-15-1356-24-123456
+always achilles 1-1456-24-12345-123456
+always herkules 125-12456-13-136-123-123456
+always stammes 23456-1-1346-123456
+always mannes 134-1345-123456
+always sinnes 234-35-1345-123456
+always herpes 125-12456-1234-123456
+always heeres 125-15-15-1235-123456
+always meeres 134-15-15-1235-123456
+always jahres 245-1235-123456
+always diabetes 145-24-1-23-2345-123456
+always geistes 1245-146-23456-123456
+always gottes 1245-135-2345-2345-123456
+always gesetzes 12346-2-15-123456
+always schiffs 156-24-124-124-234
+always schiffschaukel 156-24-124-124-156-16-13-13456
+begmidword schiffschrau 156-24-124-124-156-1235-16
+prfword schiffst 156-24-124-124-23456
+always griffs 1245-1235-24-124-124-234
+always griffsch 1245-1235-24-124-124-156
+always griffschrift 1245-1235-24-124-124-156-2345
+always griffstück 1245-1235-24-124-124-23456-1256-46
+always griffstutz 1245-1235-24-124-124-23456-136-2345-1356
+prfword griffst 1245-1235-24-124-124-23456
+always behelfs 23-125-13456-124-234
+always hilfs 125-24-123-124-234
+prfword hilfst 125-24-123-124-23456
+always wolfs 2456-135-123-124-234
+always bischofs 12-24-156-135-124-234
+always friedhofs 124-1235-346-145-125-135-124-234
+always friedhofstill 124-1235-346-145-125-135-124-23456-24-12345
+always bahnhofs 12-1-125-1345-125-135-124-234
+always bahnhofstr 12-1-125-1345-125-135-124-23456-1235
+always bedarfs 23-145-356-124-234
+prfword bedarfst 23-145-356-124-23456
+sufword entwurfs 2346-2456-136-1235-124-234
+midendword entwurfs 14-2345-2456-136-1235-124-234
+always einkaufs 1246-13-16-124-234
+prfword einkaufst 1246-13-16-124-23456
+sufword verkaufs 36-13-16-124-234
+word verkaufst 36-13-16-124-23456
+sufword verkaufstand 36-13-16-124-2-23456
+sufword verkaufständ 36-13-16-124-5-23456
+midendword verkaufs 1236-12456-13-16-124-234
+endword verkaufst 1236-12456-13-16-124-23456
+midendword verkaufstand 1236-12456-13-16-124-2-23456
+midendword verkaufständ 1236-12456-13-16-124-5-23456
+always berufs 23-1235-136-124-234
+prfword berufst 23-1235-136-124-23456
+always durchschlags 2-1456-156-1245-234
+sufword verlags 36-123-1-1245-234
+midendword verlags 1236-12456-123-1-1245-234
+always auftrags 2-16-2345-1245-234
+prfword auftragst 2-16-2345-1245-23456
+always auftragsch 2-16-2345-1245-156
+always beitrags 2-12-2345-1245-234
+always betrags 23-2345-1245-234
+always ertrags 12456-2345-1245-234
+always ertragsteiger 12456-2345-1245-23456-146-1245-12456
+always ertragsteuer 12456-2345-1245-23456-126-12456
+sufword vertrags 36-2345-1245-234
+sufword vertragsch 36-2345-1245-156
+sufword vertragschließ 36-2345-1245-156-2346
+midendword vertrags 1236-12456-2345-1245-234
+midendword vertragsch 1236-12456-2345-1245-156
+midendword vertragschließ 1236-12456-2345-1245-156-2346
+always vortrags 2-26-2345-1245-234
+always alltags 1-12345-2345-1-1245-234
+always halbtags 125-25-12-2345-1-1245-234
+always montags 134-135-1345-2345-1-1245-234
+always feiertags 124-146-12456-2345-1-1245-234
+always mittags 134-24-2345-2345-1-1245-234
+always mittagsch 134-24-2345-2345-1-1245-156
+always festtags 124-15-23456-2345-1-1245-234
+always ganztags 1245-1356-2345-1-1245-234
+always sonntags 234-135-1345-1345-2345-1-1245-234
+always kriegs 13-1235-346-1245-234
+before a begmidword kriegst 13-1235-346-1245-234-2345
+before r begmidword kriegst 13-1235-346-1245-234-2345
+always kriegstüchtig 13-1235-346-1245-234-2345-1256-1456-2345-45
+always kriegst 13-1235-346-1245-23456
+always abstiegs 1-12-23456-346-1245-234
+prfword abstiegst 1-12-23456-346-1245-23456
+always aufstiegs 2-16-23456-346-1245-234
+prfword aufstiegst 2-16-23456-346-1245-23456
+always königs 13-246-1345-45-234
+always königstein 13-246-1345-45-23456-1246
+always erfolgs 12456-124-1245-234
+always erfolgst 12456-124-1245-23456
+always erfolgsträg 12456-124-1245-234-5-2345-1245
+begmidword erfolgstrain 12456-124-1245-234-2345-1235-1-24-1345
+always erfolgstyp 12456-124-1245-234-2345-6-13456-1234
+always empfangs 12356-1234-124-235-1245-234
+always gangs 1245-235-1245-234
+always gangsch 1245-235-1245-156
+begmidword gangschanc 1245-235-1245-234-1456-235-6-14
+always gangsetz 1245-235-1245-2-15
+prfword gangst 1245-235-1245-23456
+always gangster 1245-235-1245-23456-12456
+always anfangs 235-124-235-1245-234
+always gesangs 12346-234-235-1245-234
+always gesangschul 12346-234-235-1245-156-136-123
+always gesangst 12346-234-235-1245-23456
+always gesangstund 12346-234-235-1245-23456-256-145
+always zwangs 1356-2456-235-1245-234
+always zwangsch 1356-2456-235-1245-156
+prfword zwangst 1356-2456-235-1245-23456
+always lieblings 123-346-12-123-35-1245-234
+always säuglings 234-34-1245-123-35-1245-234
+always frühlings 124-1235-1256-125-123-35-1245-234
+always zwillings 1356-2456-24-12345-35-1245-234
+always lehrlings 123-2356-1235-123-35-1245-234
+always schmetterlings 156-134-15-2345-2345-12456-123-35-1245-234
+always flüchtlings 124-123-1256-1456-2345-123-35-1245-234
+always trainings 2345-1235-1-24-1345-35-1245-234
+always herings 125-12456-35-1245-234
+always gebirgs 12346-12-24-1235-1245-234
+always betrugs 23-2345-1235-136-1245-234
+prfword betrugst 23-2345-1235-136-1245-23456
+always bezugs 23-1356-136-1245-234
+always bezugschein 23-1356-136-1245-156-1246
+always einzugs 1246-1356-136-1245-234
+always einzugsch 1246-1356-136-1245-156
+always vorzugs 2-26-1356-136-1245-234
+sufword entzugs 2346-1356-136-1245-234
+midendword entzugs 14-2345-1356-136-1245-234
+begmidword lachss 123-56-234-234
+always flachs 124-123-56-234
+always flachsch 124-123-56-156
+always flachschaber 124-123-56-156-1-12-12456
+always flachst 124-123-56-23456
+always gesprächs 12346-5-234-1234-234
+before s midword chs 1456-234
+before s midword achs 56-234
+always wachs 2456-56-234
+always wachsam 2456-56-2346
+always wachschiff 2456-56-156-24-124-124
+always wachschlaf 2456-56-156-123-1-124
+always wachschutz 2456-56-156-136-2345-1356
+always wachssch 2456-56-234-156
+prfword wachst 2456-56-23456
+always wachstation 2456-56-23456-5-1345
+prfword wachste 2456-56-23456-15
+prfword wachstem 2456-56-23456-12356
+prfword wachsten 2456-56-23456-14
+prfword wachster 2456-56-23456-12456
+prfword wachstes 2456-56-23456-123456
+# HOMONYM
+always wachstub 2456-56-23456-136-12
+always schwach 156-2456-56
+always sechs 234-15-1456-234
+prfword sechst 234-15-1456-23456
+before konsonant begmidword sechst 234-15-1456-23456
+prfword sechste 234-15-1456-23456-15
+always sechstel 234-15-1456-23456-13456
+prfword sechstem 234-15-1456-23456-12356
+prfword sechsten 234-15-1456-23456-14
+prfword sechstens 234-15-1456-23456-14-234
+prfword sechster 234-15-1456-23456-12456
+prfword sechstes 234-15-1456-23456-123456
+sufword ausgleichs 34-1245-1456-234
+midendword ausgleichs 16-234-1245-1456-234
+sufword ausgleichsch 34-1245-1456-156
+midendword ausgleichsch 16-234-1245-1456-156
+begword ausgleichschanc 34-1245-1456-234-1456-235-6-14
+midword ausgleichschanc 16-234-1245-1456-234-1456-235-6-14
+sufword ausgleichst 34-1245-1456-23456
+midendword ausgleichst 16-234-1245-1456-23456
+word ausgleichstor 34-1245-1456-234-2345-135-1235
+begword ausgleichstor 34-1245-1456-234-2345-26
+midword ausgleichstor 16-234-1245-1456-234-2345-26
+endword ausgleichstor 16-234-1245-1456-234-2345-135-1235
+begword ausgleichstreff 34-1245-1456-234-2345-124
+midword ausgleichstreff 16-234-1245-1456-234-2345-124
+sufword vergleichs 36-1245-1456-234
+word vergleichst 36-1245-1456-23456
+midendword vergleichs 1236-12456-1245-1456-234
+endword vergleichst 1236-12456-1245-1456-23456
+always reichs 1235-146-1456-234
+always streich 23456-1235-146-1456
+prfword reichst 1235-146-1456-23456
+prfword reichste 1235-146-1456-23456-15
+prfword reichstem 1235-146-1456-23456-12356
+prfword reichsten 1235-146-1456-23456-14
+prfword reichster 1235-146-1456-23456-12456
+prfword reichstes 1235-146-1456-23456-123456
+always mönchs 134-246-1345-1456-234
+always brauchs 2-34-234
+prfword brauchst 2-34-23456
+always brauchsteuer 2-34-23456-126-12456
+always fuchs 124-136-1456-234
+always fuchst 124-136-1456-23456
+always fuchsteufel 124-136-1456-234-2345-126-124-13456
+always aufbruchs 2-16-12-1235-136-1456-234
+always aufbruchst 2-16-12-1235-136-1456-23456
+sufword ausbruchs 34-12-1235-136-1456-234
+begword ausbruchstell 34-12-1235-136-1456-2-13456
+midendword ausbruchs 16-234-12-1235-136-1456-234
+midword ausbruchstell 16-234-12-1235-136-2-13456
+always einbruchs 1246-12-1235-136-1456-234
+begmidword einbruchstell 1246-12-1235-136-1456-2-13456
+always einbruchsch 1246-12-1235-136-1456-156
+always geruchs 12346-1235-136-1456-234
+sufword besuchs 23-234-136-1456-234
+word besuchst 23-234-136-1456-23456
+sufword versuchs 36-234-136-1456-234
+word versuchst 36-234-136-1456-23456
+midendword versuchs 1236-12456-234-136-1456-234
+endword versuchs 1236-12456-234-136-1456-23456
+always wuchs 2456-136-1456-234
+prfword wuchst 2456-136-1456-23456
+always relais 1235-13456-1-24-234
+always mais 134-1-24-234
+always maisch 134-1-24-156
+always gleis 1245-123-146-234
+prfword gleist 1245-123-146-23456
+prfword gleiste 1245-123-146-23456-15
+prfword gleistem 1245-123-146-23456-12356
+prfword gleisten 1245-123-146-23456-14
+prfword gleister 1245-123-146-23456-12456
+prfword gleistes 1245-123-146-23456-123456
+# HOMONYM
+prfword gleistest 1245-123-146-23456-15-23456
+prfword gleistet 1245-123-146-23456-15-2345
+always steigleistung 23456-146-1245-123-146-23456-136
+always kreis 13-1235-146-234
+prfword kreist 13-1235-146-23456
+prfword kreiste 13-1235-146-23456-15
+prfword kreistem 13-1235-146-23456-12356
+prfword kreisten 13-1235-146-23456-14
+prfword kreister 13-1235-146-23456-12456
+prfword kreistes 13-1235-146-23456-123456
+prfword kreistest 13-1235-146-23456-15-23456
+prfword kreistet 13-1235-146-23456-15-2345
+always kreisch 13-1235-146-156
+always preis 1234-1235-146-234
+prfword preist 1234-1235-146-23456
+prfword preiste 1234-1235-146-23456-15
+prfword preistem 1234-1235-146-23456-12356
+prfword preisten 1234-1235-146-23456-14
+prfword preister 1234-1235-146-23456-12456
+prfword preistes 1234-1235-146-23456-123456
+always anissamen 235-24-234-234-1-134-14
+always johannis 245-135-125-235-1345-24-234
+always tennis 2345-14-1345-24-234
+always basis 12-1-234-24-234
+always basisch 12-1-234-24-156
+always gratis 1245-1235-1-2345-24-234
+always praxis 1234-1235-1-6-1346-24-234
+always geschmacks 12346-156-134-1-46-234
+always geschmackstoff 12346-156-134-1-46-23456-135-124-124
+always dreiecks 145-1235-146-15-46-234
+always dreiecksch 145-1235-146-15-46-156
+always augenblicks 16-1245-14-12-123-24-46-234
+sufword ausdrucks 34-145-46-234
+sufword ausdruckst 34-145-46-23456
+midendword ausdrucks 16-234-145-46-234
+midendword ausdruckst 16-234-145-46-23456
+always glücks 1245-46-234
+# HOMONYM
+always glücksam 1245-46-2346
+prfword glückst 1245-46-23456
+prfword glückstadt 1245-46-23456-1-145-2345
+always unglücks 256-1245-46-234
+prfword unglückst 256-1245-46-23456
+always stücks 23456-1256-46-234
+always stücksteuer 23456-1256-46-23456-126-12456
+prfword stückst 23456-1256-46-23456
+always bibliotheks 12-24-12-123-24-135-2345-125-15-13-234
+always volks 1236-13-234
+always links 123-35-13-234
+prfword linkst 123-35-13-23456
+prfword flinkste 124-123-35-13-23456-15
+always flinkst 124-123-35-13-23456
+always bezirks 23-1356-24-1235-13-234
+always werks 2456-12456-13-234
+always werksch 2456-12456-13-156
+always werkschrift 2456-12456-13-156-2345
+always gewerkschaft 12346-2456-12456-13-156
+always gewerkschafts 12346-2456-12456-13-156-234
+prfword werkst 2456-12456-13-23456
+always werkstatt 2456-12456-13-23456-1-2345-2345
+always werkstätt 2456-12456-13-23456-345-2345-2345
+always werkstätte 2456-12456-13-23456-345-2345-236
+always werkstätten 2456-12456-13-23456-345-2345-2345-14
+always werkstein 2456-12456-13-23456-1246
+always werkstell 2456-12456-13-2-13456
+always werksteuer 2456-12456-13-23456-126-12456
+always werkstoff 2456-12456-13-23456-135-124-124
+always werkstoll 2456-12456-13-23456-135-12345
+always werkstück 2456-12456-13-23456-1256-46
+always hals 125-25-234
+always halst 125-25-23456
+begmidword halstabl 125-25-234-2345-1-12-123
+always halstuch 125-25-234-2345-136-1456
+begmidword halstüch 125-25-234-2345-1256-1456
+always generals 1245-14-12456-25-234
+always generalsch 1245-14-12456-25-156
+always generalst 1245-14-12456-25-23456
+always generalstaat 1245-14-12456-25-23456-2345
+always generalstab 1245-14-12456-25-23456-1-12
+always generalstäb 1245-14-12456-25-23456-345-12
+always generalstand 1245-14-12456-25-2-23456
+always generalständ 1245-14-12456-25-5-23456
+always grals 1245-1235-25-234
+always quartals 6-12345-136-356-2345-25-234
+always karnevals 13-356-1345-15-1236-25-234
+always adels 1-145-13456-234
+prfword adelst 1-145-13456-23456
+always handels 125-145-13456-234
+always handelsch 125-145-13456-156
+prfword handelst 125-145-13456-23456
+always fels 124-13456-234
+prfword ffelst 124-124-13456-23456
+after f midendword elster 13456-23456-12456
+always schwafel 156-2456-1-124-13456
+always tafel 2345-1-124-13456
+always täfel 2345-345-124-13456
+always gaffel 1245-1-124-124-13456
+always waffel 2456-1-124-124-13456
+always löffel 123-246-124-124-13456
+always pantoffel 1234-235-2345-135-124-124-13456
+always kartoffel 13-356-2345-135-124-124-13456
+always schnüffel 156-1345-1256-124-124-13456
+prfword zweifelst 1356-2456-146-124-13456-23456
+always tröpfel 2345-1235-246-1234-124-13456
+always würfel 2456-1256-1235-124-13456
+always apfelsch 1-1234-124-13456-156
+always apfelst 1-1234-124-13456-23456
+midendword äufelst 34-124-13456-23456
+always himmels 125-24-1346-13456-234
+prfword himmelst 125-24-1346-13456-23456
+always himmelschlüssel 125-24-1346-13456-156-123-1256-2346-13456
+always himmelschrei 125-24-1346-13456-156-1235-146
+always himmelstreb 125-24-1346-13456-23456-1235-15-12
+always himmelstürm 125-24-1346-13456-23456-1256-1235-134
+always befehls 23-124-2356-123-234
+always gefühls 12346-124-1256-125-123-234
+always urteils 136-1235-2345-146-123-234
+prfword urteilst 136-1235-2345-146-123-23456
+always konzils 13-135-1345-1356-24-123-234
+always beifalls 2-12-124-12345-234
+always einfalls 1246-124-12345-234
+always einfallstraß 1246-124-12345-23456-1235-1-2346
+always zufalls 2-1356-124-12345-234
+always marschalls 134-356-156-1-12345-234
+always marschallstab 134-356-156-1-12345-23456-1-12
+always karls 13-356-123-234
+always karlstad 13-356-123-23456-1-145
+begmidword karlstraß 13-356-123-23456-1235-1-2346
+always impuls 24-134-1234-136-123-234
+always brems 12-1235-12356-234
+prfword bremst 12-1235-12356-23456
+prfword bremste 12-1235-12356-23456-15
+prfword bremstem 12-1235-12356-23456-12356
+prfword bremsten 12-1235-12356-23456-14
+prfword bremster 12-1235-12356-23456-12456
+prfword bremstes 12-1235-12356-23456-123456
+# HOMONYM
+prfword bremstest 12-1235-12356-23456-15-23456
+prfword bremstet 12-1235-12356-23456-15-2345
+always übernahms 2-1256-1345-134-234
+prfword übernahmst 2-1256-1345-134-23456
+always brahms 12-1235-1-125-134-234
+always bims 12-24-134-234
+always bimste 12-24-134-23456-15
+always bimsten 12-24-134-23456-14
+always gesims 12346-234-24-134-234
+always gesimst 12346-234-24-134-23456
+always jubiläums 245-136-12-24-123-345-136-134-234
+always museums 134-136-234-15-136-134-234
+always datums 145-1-2345-136-134-234
+always eigentums 146-1245-14-2345-136-134-234
+always präsidiums 1234-1235-345-234-24-145-24-136-134-234
+always imperiums 24-134-1234-12456-24-136-134-234
+always ministeriums 134-35-24-23456-12456-24-136-134-234
+always jeans 245-15-1-1345-234
+always trans 2345-1235-235-234
+always transchier 2345-1235-235-156-346-1235
+always sanssouci 234-235-234-234-135-136-6-14-24
+always glaubens 1245-123-16-12-14-234
+always schadens 156-1-145-14-234
+always schadenstift 156-1-145-14-23456-24-124-2345
+always friedens 124-1235-346-145-14-234
+prfword friedenste 124-1235-346-145-14-23456-15
+always friedenstell 124-1235-346-145-14-2-13456
+prfword friedenstem 124-1235-346-145-14-23456-12356
+prfword friedensten 124-1235-346-145-14-23456-14
+prfword friedenster 124-1235-346-145-14-23456-12456
+prfword friedenstes 124-1235-346-145-14-23456-123456
+always friedenstift 124-1235-346-145-14-23456-24-124-2345
+always kondens 13-135-1345-145-14-234
+always ordens 26-145-14-234
+always tangens 2345-235-1245-14-234
+sufword vermögens 36-2-246-14-234
+midendword vermögens 1236-12456-2-246-14-234
+always darlehens 145-356-123-2356-14-234
+always schreckens 156-1235-15-46-14-234
+always schreckensch 156-1235-15-46-14-156
+always schreckenstarr 156-1235-15-46-14-23456-356-1235
+always willens 2456-12345-14-234
+always namens 1345-1-134-14-234
+always namensch 1345-1-134-14-156
+always namenstempel 1345-1-134-14-23456-12356-1234-13456
+always siemens 234-346-134-14-234
+always unternehmens 2-256-1345-125-14-234
+always einkommens 1246-13-1346-14-234
+always einkommensteuer 1246-13-1346-14-23456-126-12456
+sufword verfahrens 36-2-1235-14-234
+midendword verfahrens 1236-12456-2-1235-14-234
+always ermessens 12456-134-15-2346-14-234
+always wissens 2456-2346-14-234
+always wissenschaft 2456-2346-14-156
+always wissenschaftsauf 2456-2346-14-156-234-2-16
+always wissenstand 2456-2346-14-2-23456
+sufword verhaltens 36-125-25-2345-14-234
+word verhaltenste 36-125-25-2345-14-23456-15
+word verhaltenstem 36-125-25-2345-14-23456-12356
+word verhaltensten 36-125-25-2345-14-23456-14
+word verhaltenster 36-125-25-2345-14-23456-12456
+word verhaltenstes 36-125-25-2345-14-23456-123456
+midendword verhaltens 1236-12456-125-25-2345-14-234
+endword verhaltenste 1236-12456-125-25-2345-14-23456-15
+endword verhaltenstem 1236-12456-125-25-2345-14-23456-12356
+endword verhaltensten 1236-12456-125-25-2345-14-23456-14
+endword verhaltenster 1236-12456-125-25-2345-14-23456-12456
+endword verhaltenstes 1236-12456-125-25-2345-14-23456-123456
+sufword vertrauens 36-2345-1235-16-14-234
+midendword vertrauens 1236-12456-2345-1235-16-14-234
+always herzens 125-12456-1356-14-234
+sufword vereins 36-1246-234
+sufword vereinsam 36-1246-2346
+word vereinst 36-1246-23456
+midendword vereins 1236-12456-1246-234
+midendword vereinsam 1236-12456-1246-2346
+endword vereinst 1236-12456-1246-23456
+before s begmidword steins 23456-1246-234
+always schweins 156-2456-1246-234
+always zins 1356-35-234
+always finanz 124-35-235-1356
+always justiz 245-136-23456-24-1356
+always magazin 134-1-1245-1-1356-35
+always medizin 134-15-145-24-1356-35
+always benzin 12-14-1356-35
+always kratz 13-1235-1-2345-1356
+prfword zinst 1356-35-23456
+prfword zinste 1356-35-23456-15
+prfword zinstem 1356-35-23456-12356
+prfword zinsten 1356-35-23456-14
+prfword zinster 1356-35-23456-12456
+prfword zinstes 1356-35-23456-123456
+prfword zinstest 1356-35-23456-15-23456
+prfword zinstet 1356-35-23456-15-2345
+before s begmidword manns 134-1345-234
+always seemanns 234-15-15-134-1345-234
+always seemannschaft 234-15-15-134-1345-156
+always kaufmanns 13-16-124-134-1345-234
+always kaufmannschaft 13-16-124-134-1345-156
+always bergmanns 12-12456-1245-134-1345-234
+before s midword ions 24-135-1345-234
+always garnisons 1245-356-1345-24-234-135-1345-234
+always kantons 13-235-2345-135-1345-234
+before s begword kokos 13-135-13-135-234
+always kosmos 13-135-234-134-135-234
+before s begword los 123-135-234
+always erlös 12456-123-246-234
+always erlösch 12456-123-246-156
+always erlöst 12456-123-246-23456
+before s begmidword moos 134-135-135-234
+always lotos 123-135-2345-135-234
+always gips 1245-24-1234-234
+always gipst 1245-24-1234-23456
+always schnaps 156-1345-1-1234-234
+always korps 13-26-1234-234
+always alters 25-2345-12456-234
+prfword alterst 25-2345-12456-23456
+always halterschaft 125-25-2345-12456-156
+always schalter 156-25-2345-12456
+before s begmidword mars 134-356-234
+always neujahrs 1345-126-245-1235-234
+sufword verkehrs 36-13-2356-1235-234
+word verkehrst 36-13-2356-1235-23456
+midendword verkehrs 1236-12456-13-2356-1235-234
+endword verkehrst 1236-12456-13-2356-1235-23456
+always kurs 13-136-1235-234
+always kurschatten 13-136-1235-156-1-2345-2345-14
+prfword kurst 13-136-1235-23456
+always kurstadt 13-136-1235-23456-1-145-2345
+always kurstäd 13-136-1235-23456-345-145
+always velours 1236-13456-135-136-1235-234
+always merkur 134-12456-13-136-1235
+always staats 23456-2345-234
+always senats 234-14-1-2345-234
+always monats 134-135-1345-1-2345-234
+always rats 1235-1-2345-234
+always heirats 125-146-1235-1-2345-234
+always ratsam 1235-1-2345-2346
+always ratsamt 1235-1-2345-234-1-134-2345
+always ratsch 1235-1-2345-156
+always ratschef 1235-1-2345-234-1456-15-124
+always ratschlag 1235-1-2345-156-1245
+always ratschläg 1235-1-2345-5-156-1245
+always ratschluss 1235-1-2345-156-123-136-2346
+always ratschlüss 1235-1-2345-156-123-1256-2346
+always ratsitz 1235-1-2345-2-24
+always ratsprach 1235-1-2345-234-1234
+always ratstoff 1235-1-2345-23456-135-124-124
+always ratstück 1235-1-2345-23456-1256-46
+prfword tratst 2345-1235-1-2345-23456
+midword itäts 1-2345-2345-14-2345-1-2345-234
+always attentats 1-2345-2345-14-2345-1-2345-234
+always pubertäts 1234-136-12-12456-2345-345-2345-234
+always abts 1-12-2345-234
+always gebiets 12346-12-346-2345-234
+always miets 134-346-2345-234
+always mietsch 134-346-2345-156
+always mietst 134-346-2345-23456
+always mietstand 134-346-2345-2-23456
+always geschäfts 1245-124-234
+always unterschrifts 2-256-156-2345-234
+always unterschriftstempel 2-256-156-2345-23456-12356-1234-13456
+always kunfts 13-256-124-2345-234
+always kunftsch 13-256-124-2345-156
+always kunftschanc 13-256-124-2345-234-1456-235-6-14
+always wehrmachts 2456-2356-1235-134-56-2345-234
+always fastnachts 124-1-23456-1345-56-2345-234
+always weihnachts 2456-146-125-1345-56-2345-234
+always gefechts 12346-124-15-1456-2345-234
+always geschlechts 12346-156-123-15-1456-2345-234
+always geschichts 12346-156-3456-2345-234
+always gerichts 12346-2-3456-234
+always unterrichts 2-256-2-3456-234
+always unterrichtstoff 2-256-2-3456-23456-135-124-124
+midword sichts 234-3456-2345-234
+begmidword sichtsch 234-3456-2345-156
+always gewichts 12346-2456-3456-2345-234
+always zufluchts 2-1356-124-123-136-1456-2345-234
+always arbeits 356-12-234
+always abseits 1-12-234-146-2345-234
+always hochzeits 125-135-1456-1356-2345-234
+always gehalts 12346-125-25-2345-234
+always inhalts 35-125-25-2345-234
+always inhaltschwer 35-125-25-2345-156-2456-12456
+always unterhalts 2-256-125-25-2345-234
+always unterhaltsam 2-256-125-25-2345-2346
+always haushalts 125-16-234-125-25-2345-234
+always amts 1-134-2345-234
+always kamtsch 13-1-134-2345-156
+always parlaments 1234-356-123-1-134-14-2345-234
+always temperaments 2345-12356-1234-12456-1-134-14-2345-234
+always regiments 1235-15-1245-24-134-14-2345-234
+always advents 1-145-1236-14-2345-234
+always angebots 235-12346-12-135-2345-234
+sufword verbots 36-12-135-2345-234
+word verbotst 36-12-135-2345-23456
+midendword verbots 1236-12456-12-135-2345-234
+endword verbotst 1236-12456-12-135-2345-23456
+always fahrts 2-1235-2345-234
+always fahrtsch 2-1235-2345-156
+always fahrtstraß 2-1235-2345-23456-1235-1-2346
+always fahrtsträß 2-1235-2345-23456-1235-345-2346
+always fahrtstreck 2-1235-2345-23456-1235-15-46
+always fahrtstund 2-1235-2345-23456-256-145
+always fahrtstag 2-1235-2345-234-2345-1-1245
+prfword fahrtstage 2-1235-2345-234-2345-1-12346
+always gegenwarts 1245-2456-234
+always wirts 2456-24-1235-2345-234
+always geburts 12346-12-136-1235-2345-234
+prfword geburtstätte 12346-12-136-1235-2345-23456-345-2345-236
+prfword geburtstätten 12346-12-136-1235-2345-23456-345-2345-2345-14
+always kabinetts 13-1-12-35-15-2345-2345-234
+always kabinettstück 13-1-12-35-15-2345-2345-23456-1256-46
+always durchtritts 2-1456-2345-1235-24-2345-2345-234
+always eintritts 1246-2345-1235-24-2345-2345-234
+prfword eintrittst 1246-2345-1235-24-2345-2345-23456
+sufword austritts 34-2345-1235-24-2345-2345-234
+word austrittst 34-2345-1235-24-2345-2345-23456
+midendword austritts 16-234-2345-1235-24-2345-2345-234
+midendword austrittst 16-234-2345-1235-24-2345-2345-23456
+always durchschnitts 2-1456-156-1345-24-2345-2345-234
+always querschnitts 6-12345-136-12456-156-1345-24-2345-2345-234
+always gemüts 12346-134-1256-2345-234
+midendword aussag 16-234-234-1245
+midendword aussaat 16-234-234-1-1-2345
+midendword aussend 16-234-234-14-145
+midword aussied 16-234-234-346-145
+midword ausspar 16-234-234-1234-356
+always haussegen 125-16-234-234-15-1245-14
+begmidword haussipp 125-16-234-234-24-1234-1234
+begmidword haussperlin 125-16-234-234-1234-12456-123-35
+begmidword haussprech 125-16-234-2-2346
+always hausstadt 125-16-234-23456-1-145-2345
+begmidword hausstäd 125-16-234-23456-345-145
+always hausstaub 125-16-234-23456-16-12
+begmidword hausstreck 125-16-234-23456-1235-15-46
+begmidword haussuch 125-16-234-234-136-1456
+always hinaus 125-35-16-234
+always unaus 256-16-234
+before s begmidword raus 1235-16-234
+always heraus 125-12456-16-234
+always voraus 2-26-16-234
+always bambus 12-1-134-12-136-234
+always kubus 13-136-12-136-234
+always arcus 356-6-14-136-234
+always pyrrhus 1234-6-13456-1235-1235-125-136-234
+always sozius 234-135-1356-24-136-234
+always jus 245-136-234
+always jusch 245-136-156
+always just 245-136-23456
+always sympathikus 234-6-13456-134-1234-1-2345-125-24-13-136-234
+always arkus 356-13-136-234
+always zirkus 1356-24-1235-13-136-234
+prfword zirkusse 1356-24-1235-13-136-2346-15
+always zirkussen 1356-24-1235-13-136-2346-14
+always gallus 1245-1-12345-136-234
+always phallus 1234-125-1-12345-136-234
+always plus 1234-123-136-234
+always pluster 1234-123-136-23456-12456
+always rhythmus 1235-125-6-13456-2345-125-134-136-234
+always orgasmus 26-1245-1-234-134-136-234
+sufword tetanus 2345-15-2345-235-136-234
+midendword tetanus 236-2345-235-136-234
+always venus 1236-14-136-234
+always konus 13-135-1345-136-234
+always minus 134-35-136-234
+always kosinus 13-135-234-35-136-234
+always tonus 2345-135-1345-136-234
+always taunus 2345-16-1345-136-234
+always papyrus 1234-1-1234-6-13456-1235-136-234
+always kasus 13-1-234-136-234
+always status 23456-1-2345-136-234
+always luxus 123-136-6-1346-136-234
+always news 1345-15-2456-234
+
+# ST  (4.1 Lautgruppenkürzungen)
+word st 234-2345
+always st 23456
+syllable talkshow 2345-25-13-234-125-135-2456
+syllable thorax 2345-125-26-1-6-1346
+syllable trainings 2345-1235-1-24-1345-35-1245-234
+word sta 234-2345-1
+# HOMONYM
+midendword stabell 234-2345-1-23-12345
+midendword stablet 234-2345-1-12-123-15-2345
+midendword stabu 234-2345-1-12-136
+midendword stafel 234-2345-1-124-13456
+midendword stag 234-2345-1-1245
+midendword stagegeld 234-2345-1-12346-1245-13456-145
+endword stage 234-2345-1-12346
+always stagnation 23456-1-1245-1345-5-1345
+always stagnier 23456-1-1245-1345-346-1235
+always stagsegel 23456-1-1245-234-15-1245-13456
+midendword stakt 234-2345-1-13-2345
+always herbst 125-12456-12-23456
+endword stakte 234-2345-1-13-236
+endword stalar 234-2345-25-1-1235
+midword stalar 234-2345-25-356
+midendword stalent 234-2345-25-14-2345
+midendword staler 234-2345-25-12456
+always standstanz 2-23456-234-2345-235-1356
+midword stangent 234-2345-235-1245-14-2345
+endword stangente 234-2345-235-1245-14-236
+endword stanne 234-2345-235-1345-15
+midendword stannen 234-2345-235-1345-14
+midendword stapezier 234-2345-1-1234-15-1356-346-1235
+sufword austarier 34-2345-356-346-1235
+midendword starier 234-2345-356-346-1235
+midendword starif 234-2345-356-24-124
+endword stasche 234-2345-1-156-15
+midendword staschen 234-2345-1-156-14
+endword stasse 234-2345-1-2346-15
+midendword stassen 234-2345-1-2346-14
+endword staste 234-2345-1-23456-15
+endword stasten 234-2345-1-23456-14
+midendword statbestand 234-2345-1-2345-23-2-23456
+midendword statbeständ 234-2345-1-2345-23-5-23456
+midendword stätig 234-2345-345-2345-45
+always bestätig 23-23456-345-2345-45
+midendword stauglich 234-2345-16-1245-456
+midendword staumel 234-2345-16-134-13456
+midendword stausend 234-2345-16-234-14-145
+endword staxe 234-2345-1-6-1346-15
+midendword staxen 234-2345-1-6-1346-14
+word ste 234-2345-15
+midendword steam 234-2345-15-1-134
+begword steam 23456-15-1-134
+always steamen 23456-15-1-134-14
+always steamer 23456-15-1-134-12456
+always steamt 23456-15-1-134-2345
+endword steamte 23456-15-1-134-236
+midendword stechnik 234-2345-13
+midendword stechnisch 234-2345-156
+midendword stechnolog 234-236-1456-1345-135-123-135-1245
+endword stechnologe 234-236-1456-1345-135-123-135-12346
+midendword stee 234-2345-15-15
+always steelband 23456-15-15-123-12-235-145
+midendword steich 234-2345-146-1456
+midword steilnahm 234-2345-146-123-1345-134
+midendword eisteil 146-234-2345-146-123
+midword steilnehm 234-2345-146-123-1345-125
+midendword steils 234-2345-146-123-234
+always steilst 23456-146-123-23456
+midendword steilzeit 234-2345-146-123-1356-2345
+midendword stelefon 234-2345-13456-15-124-135-1345
+midendword stelegraf 234-2345-13456-15-1245-1235-1-124
+midendword estelegraf 123456-2345-13456-15-1245-1235-1-124
+midendword stelegramm 234-2345-13456-15-1245-1235-1-1346
+midendword stemperatur 234-2345-12356-1234-12456-1-2345-136-1235
+midendword stempo 234-2345-12356-1234-135
+midendword stendenz 234-2345-14-145-14-1356
+endword stensor 234-2345-14-234-135-1235
+midword stensor 234-2345-14-234-26
+midendword steppich 234-236-1234-1234-3456
+midendword sterm 234-2345-12456-134
+always läster 123-345-23456-12456
+always pflaster 1234-124-123-1-23456-12456
+always raster 1235-1-23456-12456
+always priester 1234-1235-346-23456-12456
+always meister 134-146-23456-12456
+always geschwister 12346-156-2456-24-23456-12456
+always fenster 124-14-23456-12456
+always polster 1234-135-123-23456-12456
+always oster 135-23456-12456
+always östermalm 246-23456-12456-134-25-134
+always kloster 13-123-135-23456-12456
+always schuster 156-136-23456-12456
+always flüster 124-123-1256-23456-12456
+always muster 134-136-23456-12456
+midword sterrass 234-2345-12456-1235-1-2346
+midword sterrin 234-2345-12456-1235-35
+midword sterritori 234-2345-12456-1235-24-2345-26-24
+midendword ationstest 5-1345-234-236-23456
+sufword aussteuer 34-23456-126-12456
+midendword aussteuer 16-234-23456-126-12456
+always auftragssteuerung 2-16-2345-1245-234-23456-126-12456-136
+midendword niersteuerung 1345-346-1235-23456-126-12456-136
+always baggersteuerung 12-1-1245-1245-12456-23456-126-12456-136
+always bausteuerung 12-16-23456-126-12456-136
+midendword steufel 234-2345-126-124-13456
+midendword stext 234-236-6-1346-2345
+endword stexte 234-236-6-1346-236
+midword stheat 234-2345-125-15-1-2345
+midendword stheke 234-2345-125-15-13-15
+midendword stheken 234-2345-125-15-13-14
+midendword sthema 234-2345-125-12356-1
+midendword sthemen 234-2345-125-12356-14
+midword stheni 234-2345-125-14-24
+endword sthenie 234-2345-125-14-346
+midword stheno 234-2345-125-14-135
+midendword stheo 234-2345-125-15-135
+midword stheor 234-2345-125-15-26
+midword stherap 234-2345-125-12456-1-1234
+midendword stherm 234-2345-125-12456-134
+midendword sthese 234-2345-125-123456-15
+midendword sthesen 234-2345-125-123456-14
+midendword sthron 234-2345-125-1235-135-1345
+midendword sticket 234-2345-24-46-15-2345
+midendword stief 234-2345-346-124
+always stief 23456-346-124
+always stiefbruder 23456-346-124-12-1235-136-145-12456
+always stiefbrüder 23456-346-124-12-1235-1256-145-12456
+always stiefel 23456-346-124-13456
+always stiefgeschwister 23456-346-124-12346-156-2456-24-23456-12456
+always stiefkind 23456-346-124-13-35-145
+always stiefmutter 23456-346-124-134-136-2345-2345-12456
+always stiefmütter 23456-346-124-134-1256-2345-2345-12456
+always stiefschwester 23456-346-124-156-2456-15-23456-12456
+always stiefsohn 23456-346-124-234-135-125-1345
+always stiefsöhn 23456-346-124-234-246-125-1345
+always stieftochter 23456-346-124-2345-135-1456-2345-12456
+always stieftöchter 23456-346-124-2345-246-1456-2345-12456
+always stiefvater 23456-346-124-1236-1-2345-12456
+always stiefväter 23456-346-124-1236-345-2345-12456
+endword stilge 234-2345-24-123-12346
+midendword stilgen 234-2345-24-123-1245-14
+midendword stilger 234-2345-24-123-1245-12456
+midendword stilgung 234-2345-24-123-1245-136
+endword stinte 234-2345-35-236
+midendword stinten 234-2345-35-2345-14
+midendword stip 234-2345-24-1234
+always stipend 23456-24-1234-14-145
+always stippbesuch 23456-24-1234-1234-23-234-136-1456
+always stippchen 23456-24-1234-1234-1456-14
+always stippe 23456-24-1234-1234-15
+always stippen 23456-24-1234-1234-14
+always stippmilch 23456-24-1234-1234-134-24-123-1456
+always stippvisi 23456-24-1234-1234-1236-24-234-24
+always stipulation 23456-24-1234-136-123-5-1345
+always stipulier 23456-24-1234-136-123-346-1235
+midendword stitel 234-2345-24-2345-13456
+midendword stiter 234-2345-24-2345-12456
+midendword stoast 234-2345-135-1-23456
+midendword stochter 234-2345-135-1456-2345-12456
+midendword stod 234-2345-135-145
+begmidword mastodon 134-1-23456-135-145-135-1345
+midendword estod 123456-2345-135-145
+midword stoleran 234-2345-135-123-12456-235
+midendword stool 234-2345-135-135-123
+midendword stopo 234-2345-135-1234-135
+midendword storkel 234-2345-26-13-13456
+midendword storte 234-2345-26-236
+midendword storten 234-2345-26-2345-14
+midendword stour 234-2345-135-136-1235
+midendword stown 234-2345-135-2456-1345
+midendword stracht 234-2345-1235-56-2345
+midendword stradition 234-2345-1235-1-145-24-2345-245
+midendword strag 234-2345-1245
+midendword stragödi 234-2345-1245-246-145-24
+midendword strain 234-2345-1235-1-24-1345
+midword strak 234-2345-1235-1-13
+midword stranch 234-2345-1235-235-1456
+midendword strank 234-2345-1235-235-13
+midendword strans 234-2345-1235-235-234
+midendword stratsch 234-2345-1235-1-2345-156
+midendword strauer 234-2345-1235-16-12456
+midendword straum 234-2345-1235-16-134
+midendword sträum 234-2345-1235-34-134
+always gastraum 1245-1-23456-1235-16-134
+begmidword gasträum 1245-1-23456-1235-34-134
+always lastraum 123-1-23456-1235-16-134
+begmidword lasträum 123-1-23456-1235-34-134
+always kunst 13-256-23456
+midendword ostraum 135-23456-1235-16-134
+midendword osträum 135-23456-1235-34-134
+midendword straurig 234-2345-1235-16-1235-45
+midendword strauung 234-2345-1235-16-136
+midendword streff 234-2345-124
+midendword streib 234-2345-1235-146-12
+midendword strend 234-2345-1235-14-145
+endword strendite 23456-1235-14-145-24-236
+midendword strenditen 23456-1235-14-145-24-2345-14
+midword strenn 234-2345-1235-14-1345
+midword streppe 234-2345-1235-15-1234-1234
+midword stret 234-2345-1235-15-2345
+endword strete 234-2345-1235-15-236
+midendword stribun 234-2345-1235-24-12-256
+midendword strieb 234-2345-1235-346-12
+midendword striller 234-2345-1235-24-12345-12456
+midendword strink 234-2345-1235-35-13
+midendword strog 234-2345-1235-135-1245
+always gastrogel 1245-1-23456-1235-135-1245-13456
+always gastrogen 1245-1-23456-1235-135-1245-14
+begmidword astrogl 1-23456-1235-135-1245-123
+begmidword astrogn 1-23456-1235-135-1245-1345
+always astrograf 1-23456-1235-135-1245-1235-1-124
+always astrograph 1-23456-1235-135-1245-1235-1-1234-125
+always östrogen 246-23456-1235-135-1245-14
+midendword strommel 234-2345-1235-135-1346-13456
+midword strompet 234-2345-1235-135-134-1234-15-2345
+endword strompete 234-2345-1235-135-134-1234-15-236
+midendword strompetet 234-2345-1235-135-134-1234-15-236-2345
+endword strompetete 234-2345-1235-135-134-1234-15-236-236
+midendword stropf 234-2345-1235-135-1234-124
+midword strophä 234-2345-1235-135-1234-125-345
+midendword stross 234-2345-1235-135-2346
+midendword strost 234-2345-1235-135-23456
+midword strot 234-2345-1235-135-2345
+always rostrot 1235-135-23456-1235-135-2345
+prfword rostrote 1235-135-23456-1235-135-236
+midendword strug 234-2345-1235-136-1245
+midendword struthahn 234-2345-1235-136-2345-125-1-125-1345
+midword struthähn 234-2345-1235-136-2345-125-345-125-1345
+midendword strächtig 234-2345-1235-345-1456-2345-45
+midendword sträg 234-5-2345-1245
+midword strän 234-2345-1235-345-1345
+prfword strände 23456-1235-345-1345-145-15
+always stränden 23456-1235-345-1345-145-14
+always ostränder 135-23456-1235-345-1345-145-12456
+prfword stränge 23456-1235-345-1345-12346
+always strängen 23456-1235-345-1345-1245-14
+always strängig 23456-1235-345-1345-1245-45
+midendword sträum 234-2345-1235-34-134
+midword sträum 234-2345-1235-34-134
+endword strög 234-2345-1235-246-12346
+midword strög 234-2345-1235-246-1245
+midword ströpf 234-2345-1235-246-1234-124
+midendword strüb 234-2345-1235-1256-12
+midendword strümmer 234-2345-1235-1256-1346-12456
+midword stuberk 234-2345-136-12-12456-13
+midendword stuch 234-2345-136-1456
+endword stumor 234-2345-136-134-135-1235
+midword stumor 234-2345-136-134-26
+midword sturbin 234-2345-136-1235-12-35
+midendword sturbo 234-2345-136-1235-12-135
+midword sturbul 234-2345-136-1235-12-136-123
+midendword sturn 234-2345-136-1235-1345
+midendword styp 234-2345-6-13456-1234
+midendword styrann 234-2345-6-13456-1235-235-1345
+midword stäfel 234-2345-345-124-13456
+midendword stägig 234-2345-345-1245-45
+midendword stäglich 234-2345-345-1245-456
+midendword stäler 234-2345-345-123-12456
+midword stänz 234-2345-345-1345-1356
+midendword stäter 234-2345-345-2345-12456
+midword stäusch 234-2345-34-156
+midendword stöchter 234-2345-246-1456-2345-12456
+midendword stöne 234-2345-246-1345-15
+midendword stönen 234-2345-246-1345-14
+midendword stöter 234-2345-246-2345-12456
+midendword stötung 234-2345-246-2345-136
+midword stüch 234-2345-1256-1456
+always stücksteil 23456-1256-46-234-2345-146-123
+midword stüft 234-2345-1256-124-2345
+midword stüll 234-2345-1256-12345
+midword stümel 234-2345-1256-134-13456
+midendword stümlich 234-2345-1256-134-456
+midendword stür 234-2345-1256-1235
+always stürb 23456-1256-1235-12
+always stürm 23456-1256-1235-134
+always stürz 23456-1256-1235-1356
+midendword stüte 234-2345-1256-236
+midendword estüte 123456-2345-1256-236
+prfword gestüte 12346-23456-1256-236
+midendword stüten 234-2345-1256-2345-14
+midendword estüten 123456-2345-1256-2345-14
+prfword gestüten 12346-23456-1256-2345-14
+always sthm 234-2345-125-134
+always ästhesie 345-234-2345-125-123456-346
+always ästhet 345-234-2345-125-15-2345
+syllable abgas 1-12-1245-1-234
+always gastank 1245-1-234-2345-235-13
+always gästeelf 1245-345-23456-15-13456-124
+always gasturm 1245-1-234-2345-136-1235-134
+always gastürm 1245-1-234-2345-1256-1235-134
+always kastagnet 13-1-23456-1-1245-1345-15-2345
+always glasteil 1245-123-1-234-2345-146-123
+always glastisch 1245-123-1-234-2345-24-156
+always glasturm 1245-123-1-234-2345-136-1235-134
+always glastürm 1245-123-1-234-2345-1256-1235-134
+always mastermind 134-1-23456-12456-134-35-145
+always anästh 235-345-234-2345-125
+always pastagericht 1234-1-23456-1-12346-2-3456
+always pastagrinsen 1234-1-23456-1-1245-1235-35-234-14
+always frästisch 124-1235-345-234-2345-24-156
+begmidword abstrak 1-12-23456-1235-1-13
+always betriebsteil 23-2345-1235-346-12-234-2345-146-123
+always betriebstreu 23-2345-1235-346-12-234-2345-1235-126
+always krebstier 13-1235-15-12-234-2345-346-1235
+always obstipation 135-12-23456-24-1234-5-1345
+always wettbewerbsteil 2456-15-2345-2345-23-2456-12456-12-234-2345-146-123
+always erwerbstätig 12456-2456-12456-12-234-2345-345-2345-45
+always abschiedstrunk 1-12-156-346-145-234-2345-1235-256-13
+always aidstest 1-24-145-234-236-23456
+sufword verbandstisch 36-12-235-145-234-2345-24-156
+midendword verbandstisch 1236-12456-12-235-145-234-2345-24-156
+always kindstauf 13-35-145-234-2345-16-124
+always kindstäuf 13-35-145-234-2345-34-124
+always rindstalg 1235-35-145-234-2345-25-1245
+always hundsteuer 125-256-145-234-2345-126-12456
+always mordsteuer 134-26-145-234-2345-126-12456
+always mordsteur 134-26-145-234-2345-126-1235
+always esther 123456-2345-125-12456
+always pestherd 1234-15-23456-125-12456-145
+always aesthet 1-15-234-2345-125-15-2345
+always liebestat 123-346-12-123456-2345-1-2345
+always liebestoll 123-346-12-123456-2345-135-12345
+always liebestrunk 123-346-12-123456-2345-1235-256-13
+always landesteil 123-235-145-123456-2345-146-123
+always bundestrupp 12-256-145-123456-2345-1235-136-1234-1234
+always gestippt 12346-23456-24-1234-1234-2345
+prfword gestippte 12346-23456-24-1234-1234-236
+midendword gestüt 12346-23456-1256-2345
+midendword gestüte 12346-23456-1256-236
+always frühstücksteller 124-1235-1256-125-23456-1256-46-234-236-12345-12456
+always tagesteller 2345-1-1245-123456-236-12345-12456
+always siegestrunk 234-346-1245-123456-2345-1235-256-13
+always ruhmestat 1235-136-125-134-123456-2345-1-2345
+before t begmidword pommes 1234-135-1346-123456
+always kirmestanz 13-24-1235-134-123456-2345-235-1356
+always einesteils 1246-123456-2345-146-123-234
+always heeresteil 125-15-15-1235-123456-2345-146-123
+always meerestier 134-15-15-1235-123456-2345-346-1235
+always gottestreu 1245-135-2345-2345-123456-2345-1235-126
+begmidword westempor 2456-15-23456-12356-1234-26
+always gesetzestreu 12346-2-15-123456-2345-1235-126
+# HOMONYM
+always schiffstau 156-24-124-124-234-2345-16
+always schiffstäuf 156-24-124-124-234-2345-34-124
+prfword schiffstonnage 156-24-124-124-234-2345-135-1345-1345-1-12346
+always schiffstonnage 156-24-124-124-234-2345-135-1345-1345-1-1245
+always hilfstaucher 125-24-123-124-234-2345-16-1456-12456
+always hilfstätig 125-24-123-124-234-2345-345-2345-45
+always hilfstrupp 125-24-123-124-234-2345-1235-136-1234-1234
+prfword hofstor 125-135-124-234-2345-135-1235
+begmidword hofstor 125-135-124-234-2345-26
+midendword kaufstresen 13-16-124-234-2345-1235-123456-14
+midendword kaufstrick 13-16-124-234-2345-1235-24-46
+midendword kaufstrip 13-16-124-234-2345-1235-24-1234
+sufword verkaufstisch 36-13-16-124-234-2345-24-156
+midendword verkaufstisch 1236-12456-13-16-124-234-2345-24-156
+always berufstätig 23-1235-136-124-234-2345-345-2345-45
+midendword gstresen 1245-234-2345-1235-15-234-15-1345
+sufword vertragsteil 36-2345-1245-234-2345-146-123
+midendword vertragsteil 1236-12456-2345-1245-234-2345-146-123
+sufword vertragstreu 36-2345-1245-234-2345-1235-126
+midendword vertragstreu 1236-12456-2345-1245-234-2345-1235-126
+always tagstisch 2345-1-1245-234-2345-24-156
+syllable alltags 1-12345-2345-1-1245-234
+always mittagstrunk 134-24-2345-2345-1-1245-234-2345-1235-256-13
+always kriegstalk 13-1235-346-1245-234-2345-25-13
+always kriegstanz 13-1235-346-1245-234-2345-235-1356
+always kriegsteil 13-1235-346-1245-234-2345-146-123
+always kriegstheater 13-1235-346-1245-234-2345-125-15-1-2345-12456
+always kriegsto 13-1235-346-1245-234-2345-135
+always königstreu 13-246-1345-45-234-2345-1235-126
+always anfangsteil 235-124-235-1245-234-2345-146-123
+always empfangsteil 12356-1234-124-235-1245-234-2345-146-123
+prfword längstal 5-123-1245-234-2345-1-123
+always längstal 5-123-1245-234-2345-25
+always zwangstauf 1356-2456-235-1245-234-2345-16-124
+always zwangstäuf 1356-2456-235-1245-234-2345-34-124
+always lieblingst 123-346-12-123-35-1245-234-2345
+always zwillingsturm 1356-2456-24-12345-35-1245-234-2345-136-1235-134
+always zwillingstürm 1356-2456-24-12345-35-1245-234-2345-1256-1235-134
+always flüchtlingstreck 124-123-1256-1456-2345-123-35-1245-234-2345-1235-15-46
+midendword ungstank 136-234-2345-235-13
+midendword ungstat 136-234-2345-1-2345
+midendword ungsteil 136-234-2345-146-123
+midendword ungstisch 136-234-2345-24-156
+midendword ungstresen 136-234-2345-1235-15-234-15-1345
+midendword ungstreu 136-234-2345-1235-126
+midendword ungstrick 136-234-2345-1235-24-46
+midendword ungstrupp 136-234-2345-1235-136-1234-1234
+midendword ungsturm 136-234-2345-136-1235-134
+midendword ungstät 136-234-2345-345-2345
+prfword brandungstor 12-1235-235-145-136-234-2345-135-1235
+always brandungstor 12-1235-235-145-136-234-2345-26
+always mündungstrichter 134-1256-1345-145-136-234-2345-1235-3456-2345-12456
+always spannungston 234-1234-235-1345-136-234-2345-135-1345
+always spannungstön 234-1234-235-1345-136-234-2345-246-1345
+sufword versöhnungstrunk 36-234-246-125-1345-136-234-2345-1235-256-13
+midendword versöhnungstrunk 1236-12456-234-246-125-1345-136-234-2345-1235-256-13
+prfword führungstor 124-125-136-234-2345-135-1235
+always führungstor 124-125-136-234-2345-26
+always führungstrupp 124-125-136-234-2345-1235-136-1234-1234
+always beobachtungstürm 23-135-12-56-2345-136-234-2345-1256-1235-134
+always begrüßungstrunk 23-1245-1235-1256-2346-136-234-2345-1235-256-13
+always zeitungstisch 1356-2345-136-234-2345-24-156
+always gebirgstrupp 12346-12-24-1235-1245-234-2345-1235-136-1234-1234
+always zugsteil 1356-136-1245-234-2345-146-123
+always gesprächsteil 12346-5-234-1234-234-2345-146-123
+always wachstum 2456-56-234-2345-136-134
+always sechsteil 234-15-1456-234-2345-146-123
+sufword ausgleichs 34-1245-1456-234
+midword ausgleichs 16-234-1245-1456-234
+always reichsteil 1235-146-1456-234-2345-146-123
+always reichstrupp 1235-146-1456-234-2345-1235-136-1234-1234
+always mönchstum 134-246-1345-1456-234-2345-136-134
+prfword durchbruchstal 2-1456-12-1235-136-1456-234-2345-1-123
+always durchbruchstal 2-1456-12-1235-136-1456-234-2345-25
+prfword einbruchstal 1246-12-1235-136-1456-234-2345-1-123
+always einbruchstal 1246-12-1235-136-1456-234-2345-25
+sufword versuchstier 36-234-136-1456-234-2345-346-1235
+midendword versuchstier 1236-12456-234-136-1456-234-2345-346-1235
+always frühstücksteller 124-1235-1256-125-23456-1256-46-234-2345-15-12345-12456
+always frühstückstisch 124-1235-1256-125-23456-1256-46-234-2345-24-156
+always hephaistostempel 125-15-1234-125-1-24-23456-135-234-2345-12356-1234-13456
+always distorsion 145-24-234-2345-26-234-245
+always eistanz 146-234-2345-235-1356
+begmidword eistort 146-234-2345-26-2345
+prfword eistorte 146-234-2345-26-236
+begmidword eistört 146-234-2345-246-1235-2345
+always reisteig 1235-146-234-2345-146-1245
+always reistopf 1235-146-234-2345-135-1234-124
+always kreisteil 13-1235-146-234-2345-146-123
+always beweisteil 23-2-146-2345-146-123
+syllable geheimnis 12346-125-146-134-1346
+always tischtennistisch 2345-24-156-2345-14-1345-24-234-2345-24-156
+always bündnistreu 12-1256-1345-145-1346-2345-1235-126
+always eucharistiefeier 126-1456-356-24-23456-346-124-146-12456
+begmidword elvistoll 13456-1236-24-234-2345-135-12345
+always backstage 12-1-46-23456-1-12346
+always speckstipp 234-1234-15-46-23456-24-1234-1234
+always fockstag 124-135-46-23456-1-1245
+prfword glückstor 1245-46-234-2345-135-1235
+always glückstor 1245-46-234-2345-26
+sufword ausdruckstanz 34-145-46-234-2345-235-1356
+always ausdruckstanz 16-234-145-46-234-2345-235-1356
+always volkstanz 1236-13-234-2345-235-1356
+always volkstänz 1236-13-234-2345-345-1345-1356
+always volkstum 1236-13-234-2345-136-134
+always bezirkstier 23-1356-24-1235-13-234-2345-346-1235
+always karnevalstrubel 13-356-1345-15-1236-25-234-2345-1235-136-12-13456
+always handelsteil 125-145-13456-234-2345-146-123
+always himmelstanz 125-24-1346-13456-234-2345-235-1356
+always himmelstempel 125-24-1346-13456-234-2345-12356-1234-13456
+prfword himmelstor 125-24-1346-13456-234-2345-135-1235
+always himmelstor 125-24-1346-13456-234-2345-26
+syllable befehls 23-124-2356-123-234
+prfword fallstor 124-12345-234-2345-135-1235
+always fallstor 124-12345-234-2345-26
+prfword hadrianstor 125-1-145-1235-24-235-234-2345-135-1235
+always hadrianstor 125-1-145-1235-24-235-234-2345-26
+always kapitänstisch 13-1-1234-24-2345-345-1345-234-2345-24-156
+always friedenstaub 124-1235-346-145-14-234-2345-16-12
+prfword friedenstaube 124-1235-346-145-14-234-2345-16-12-15
+always friedenstrupp 124-1235-346-145-14-234-2345-1235-136-1234-1234
+always kondenstopf 13-135-1345-145-14-234-2345-135-1234-124
+always kondenstöpf 13-135-1345-145-14-234-2345-246-1234-124
+sufword vermögensteil 36-2-246-14-234-2345-146-123
+midendword vermögensteil 1236-12456-2-246-14-234-2345-146-123
+always dienstagent 145-346-1345-23456-1-1245-14-2345
+always schreckenstat 156-1235-15-46-14-234-2345-1-2345
+always namensteil 1345-1-134-14-234-2345-146-123
+always unternehmensteil 2-256-1345-125-14-234-2345-146-123
+always willkommenstrunk 2456-12345-13-1346-14-234-2345-1235-256-13
+always wissenstempel 2456-2346-14-234-2345-12356-1234-13456
+always einstipp 1246-23456-24-1234-1234
+always mannstoll 134-1345-234-2345-135-12345
+always wahnsinnstat 2456-1-125-1345-234-35-1345-234-2345-1-2345
+always wahnsinnstät 2456-1-125-1345-234-35-1345-234-2345-345-2345
+always irrsinnstat 24-1235-1235-234-35-1345-234-2345-1-2345
+always ionsteil 24-135-1345-234-2345-146-123
+always ionstisch 24-135-1345-234-2345-24-156
+midendword ionstreu 24-135-1345-234-2345-1235-126
+always legionstrupp 123-15-1245-24-135-1345-234-2345-1235-136-1234-1234
+always unionstrupp 256-24-135-1345-234-2345-1235-136-1234-1234
+always invasionstrupp 35-1236-1-234-245-234-2345-1235-136-1234-1234
+always formationstanz 124-26-134-5-1345-234-2345-235-1356
+always rezitationston 1235-15-1356-24-2345-5-1345-234-2345-135-1345
+always aktionstrupp 1-13-2345-245-234-2345-1235-136-1234-1234
+always revolutionstrupp 1235-15-1236-135-123-136-2345-245-234-2345-1235-136-1234-1234
+always ostagent 135-23456-1-1245-14-2345
+always lostrab 123-135-234-2345-1235-1-12
+always moostier 134-135-135-234-2345-346-1235
+word pst 1234-234-2345
+sufword verkehrsteil 36-13-2356-1235-234-2345-146-123
+midendword verkehrsteil 1236-12456-13-2356-1235-234-2345-146-123
+begword verkehrsto 36-13-2356-1235-234-2345-135
+midword verkehrsto 1236-12456-13-2356-1235-234-2345-135
+always kursteil 13-136-1235-234-2345-146-123
+sufword ausstieg 34-23456-346-1245
+midendword ausstieg 16-234-23456-346-1245
+word ausstiege 34-23456-346-12346
+endword ausstiege 16-234-23456-346-12346
+always sstell 234-2-13456
+always fasst 124-1-2346-2345
+prfword fasste 124-1-2346-236
+prfword fasstest 124-1-2346-236-23456
+prfword fasstet 124-1-2346-236-2345
+always hasst 125-1-2346-2345
+always agulhasstrom 1-1245-136-123-125-1-234-23456-1235-135-134
+prfword hasste 125-1-2346-236
+always hasstest 125-1-2346-236-23456
+always schasst 156-1-2346-2345
+prfword schasste 156-1-2346-236
+prfword schasstest 156-1-2346-236-23456
+prfword schasstet 156-1-2346-236-2345
+midendword blasst 12-123-1-2346-2345
+endword blasste 12-123-1-2346-236
+midendword blasstest 12-123-1-2346-236-23456
+endword blasstet 12-123-1-2346-236-2345
+always thomasst 2345-125-135-134-1-234-23456
+always eidesstatt 146-145-123456-23456-1-2345-2345
+always kongressteil 13-135-1345-1245-1235-15-2346-2345-146-123
+word isst 24-2346-2345
+always beißt 12-146-2346-2345
+sufword vergisst 36-1245-24-2346-2345
+always hisst 125-24-2346-2345
+prfword hisste 125-24-2346-236
+prfword hisstest 125-24-2346-236-23456
+prfword hisstet 125-24-2346-236-2345
+word wisst 2456-2346-2345
+word psst 1234-234-234-2345
+midendword ssst 234-234-234-2345
+before s begmidword mess 134-15-2346
+before s begmidword miss 134-24-2346
+word pssst 1234-234-234-234-2345
+word psssst 1234-234-234-234-234-2345
+always gussteil 1245-136-2346-2345-146-123
+always küsst 13-1256-2346-2345
+prfword küsste 13-1256-2346-236
+prfword küsstest 13-1256-2346-236-23456
+prfword küsstet 13-1256-2346-236-2345
+prfword flusstal 124-123-136-2346-2345-1-123
+begmidword flusstal 124-123-136-2346-2345-25
+always schlussteil 156-123-136-2346-2345-146-123
+always wusst 2456-136-2346-2345
+prfword wusste 2456-136-2346-236
+always wusstest 2456-136-2346-236-23456
+prfword wusstet 2456-136-2346-236-2345
+always wüsst 2456-1256-2346-2345
+prfword wüsste 2456-1256-2346-236
+prfword wüsstest 2456-1256-2346-236-23456
+prfword wüsstet 2456-1256-2346-236-2345
+always ratstisch 1235-1-2345-234-2345-24-156
+midendword itätstreu 5-345-234-2345-1235-126
+always sanitätstrupp 234-235-5-345-234-2345-1235-136-1234-1234
+always gebietsteil 12346-12-346-2345-234-2345-146-123
+always gesellschaftstanz 1245-156-234-2345-235-1356
+always schaftsteil 156-234-2345-146-123
+midendword schaftstreu 156-234-2345-1235-126
+always geschäftsteil 1245-124-234-2345-146-123
+always anschriftsteil 235-156-2345-234-2345-146-123
+prfword stiftstor 23456-24-124-2345-234-2345-135-1235
+begmidword stiftstor 23456-24-124-2345-234-2345-26
+midendword kunftstrick 13-256-124-2345-234-2345-1235-24-46
+always machtsteil 134-56-2345-234-2345-146-123
+always weihnachtsteller 2456-146-125-1345-56-2345-234-236-12345-12456
+always weihnachtstisch 2456-146-125-1345-56-2345-234-2345-24-156
+always gefechtsturm 12346-124-15-1456-2345-234-2345-136-1235-134
+always geschlechtsteil 12346-156-123-15-1456-2345-234-2345-146-123
+syllable gesichts 12346-234-3456-2345-234
+always nichtstuer 1345-234-2345-136-12456
+always nichtstun 1345-234-2345-256
+sufword aussichtsturm 34-234-3456-2345-234-2345-136-1235-134
+always aussichtsturm 16-234-234-3456-2345-234-2345-136-1235-134
+begword aussichtstürm 34-234-3456-2345-234-2345-1256-1235-134
+always aussichtstürm 16-234-234-3456-2345-234-2345-1256-1235-134
+always arbeitsteil 356-12-234-2345-146-123
+midendword heitstick 125-234-2345-24-46
+midendword heitstrunk 125-234-2345-1235-256-13
+always gewohnheitstier 12346-2456-135-125-1345-125-234-2345-346-1235
+always sicherheitstrupp 234-3456-12456-125-234-2345-1235-136-1234-1234
+always keitsteil 13-234-2345-146-123
+midendword keitstreu 13-234-2345-1235-126
+prfword abseitstor 1-12-234-146-2345-234-2345-135-1235
+always abseitstor 1-12-234-146-2345-234-2345-26
+always veitstanz 1236-146-2345-234-2345-235-1356
+always veitstänz 1236-146-2345-234-2345-345-1345-1356
+always amtston 1-134-2345-234-2345-135-1345
+word auswärtstor 34-2456-2345-135-1235
+begword auswärtstor 34-2456-2345-26
+midword auswärtstor 16-234-2456-2345-26
+endword auswärtstor 16-234-2456-2345-135-1235
+always wirtstier 2456-24-1235-2345-234-2345-346-1235
+always ortsteil 26-2345-234-2345-146-123
+always geburtstaub 12346-12-136-1235-2345-234-2345-16-12
+always kabinettstisch 13-1-12-35-15-2345-2345-234-2345-24-156
+always blutstrunk 12-123-136-2345-234-2345-1235-256-13
+sufword austausch 34-2345-16-156
+always austausch 16-234-2345-16-156
+sufword austeil 34-2345-146-123
+always austeil 16-234-2345-146-123
+sufword austob 34-2345-135-12
+always austob 16-234-2345-135-12
+word austobe 34-2345-135-12-15
+midword austobe 16-234-2345-135-23
+endword austobe 16-234-2345-135-12-15
+word austoben 34-2345-135-12-14
+midendword austoben 16-234-2345-135-12-14
+sufword austoll 34-2345-135-12345
+always austoll 16-234-2345-135-12345
+sufword austonn 34-2345-135-1345-1345
+always austonn 16-234-2345-135-1345-1345
+midword stonn 234-2345-135-1345-1345
+sufword austramp 34-2345-1235-1-134-1234
+always austramp 16-234-2345-1235-1-134-1234
+sufword austrat 34-2345-1235-1-2345
+word austratet 34-2345-1235-1-236-2345
+word austratest 34-2345-1235-1-236-23456
+always austrat 16-234-2345-1235-1-2345
+endword austratet 16-234-2345-1235-1-236-2345
+endword austratest 16-234-2345-1235-1-236-23456
+sufword austrick 34-2345-1235-24-46
+always austrick 16-234-2345-1235-24-46
+sufword austritt 34-2345-1235-24-2345-2345
+always austritt 16-234-2345-1235-24-2345-2345
+word austritte 34-2345-1235-24-2345-236
+endword austritte 16-234-2345-1235-24-2345-236
+sufword austrock 34-2345-1235-135-46
+always austrock 16-234-2345-1235-135-46
+sufword austun 34-2345-256
+always austun 16-234-2345-256
+sufword austupf 34-2345-136-1234-124
+always austupf 16-234-2345-136-1234-124
+sufword austusch 34-2345-136-156
+always austusch 16-234-2345-136-156
+always haustaub 125-16-234-2345-16-12
+prfword haustaube 125-16-234-2345-16-12-15
+always haustempel 125-16-234-2345-12356-1234-13456
+always haustier 125-16-234-2345-346-1235
+always haustisch 125-16-234-2345-24-156
+prfword haustor 125-16-234-2345-135-1235
+always haustor 125-16-234-2345-26
+begmidword haustrepp 125-16-234-2345-1235-15-1234-1234
+always haustrunk 125-16-234-2345-1235-256-13
+always hausturm 125-16-234-2345-136-1235-134
+always voraustrupp 2-26-16-234-2345-1235-136-1234-1234
+always sausteil 234-16-23456-146-123
+always moschustier 134-135-156-136-234-2345-346-1235
+always juliusturm 245-136-123-24-136-234-2345-136-1235-134
+always konfuziustempel 13-135-1345-124-136-1356-24-136-234-2345-12356-1234-13456
+always adjustage 1-145-245-136-23456-1-12346
+always kustode 13-136-23456-135-145-15
+always kustoden 13-136-23456-135-145-14
+always zirkustier 1356-24-1235-13-136-234-2345-346-1235
+always kursusteil 13-136-1235-234-136-234-2345-146-123
+before t begmidword dys 145-6-13456-234
+always body 12-135-145-6-13456
+always nystagmus 1345-6-13456-23456-1-1245-134-136-234
+
+# STAAT (4.4 Zweiformige Kürzungen)
+always staat 23456-2345
+
+# STAND STÄND (4.3.6 Kommakürzungen)
+always stand 2-23456
+always ständ 5-23456
+always stands 2-23456-234
+always standschaft 2-23456-156
+always standsetz 2-23456-2-15
+always standsprach 2-23456-234-1234
+always standsprung 2-23456-234-1234-1235-256-1245
+prfword standst 2-23456-23456
+always standstreif 2-23456-23456-1235-146-124
+
+# STELL (4.3.6 Kommakürzungen)
+always stell 2-13456
+always bruchstell 12-1235-136-1456-2-13456
+
+# STETS (4.4 Zweiformige Kürzungen)
+always stets 23456-234
+always stetson 23456-15-2345-234-135-1345
+
+# TE  (4.1 Lautgruppenkürzungen)
+midendword te 236
+always teakbaum 2345-15-1-13-12-16-134
+always teakholz 2345-15-1-13-125-135-123-1356
+always teakhölz 2345-15-1-13-125-246-123-1356
+always teakwald 2345-15-1-13-2456-25-145
+always teakwäld 2345-15-1-13-2456-345-123-145
+always team 2345-15-1-134
+always tearoom 2345-15-1-1235-135-135-134
+always teaser 2345-15-1-234-12456
+endword teditor 2345-15-145-24-2345-135-1235
+midword teditor 2345-15-145-24-2345-26
+always tee 2345-15-15
+always güteein 1245-1256-236-1246
+midword teffek 2345-15-124-124-15-13
+midword teffizien 2345-15-124-124-24-1356-24-14
+midendword tehirn 236-125-24-1235-1345
+midendword tei 2345-146
+midendword tein 2345-1246
+always jutein 245-136-236-35
+midendword tekzem 2345-15-13-1356-12356
+midword tepidem 2345-15-1234-24-145-12356
+midword tepilep 2345-15-1234-24-123-15-1234
+midword tepoch 2345-15-1234-135-1456
+midendword tetat 2345-15-2345-1-2345
+midendword tethik 2345-15-2345-125-24-13
+midendword tethisch 2345-15-2345-125-24-156
+always teuer 2345-126-12456
+always teuf 2345-126-124
+always teupitz 2345-126-1234-24-2345-1356
+always teur 2345-126-1235
+always teutoburg 2345-126-2345-135-12-136-1235-1245
+always teuton 2345-126-2345-135-1345
+midword tevaku 2345-15-1236-1-13-136
+midword tevalu 2345-15-1236-25-136
+midword tex 2345-15-6-1346
+midword texan 236-6-1346-235
+always latex 123-1-236-6-1346
+midendword text 236-6-1346-2345
+midendword textra 2345-15-6-1346-2345-1235-1
+sufword textrand 2345-15-6-1346-2345-1235-235-145
+midendword textrand 236-6-1346-2345-1235-235-145
+endword texte 236-6-1346-236
+midendword textet 236-6-1346-236-2345
+endword textete 236-6-1346-236-236
+midword texemp 2345-15-6-1346-12356-1234
+midword texpand 2345-15-6-1346-1234-235-145
+midendword texpansion 2345-15-6-1346-1234-235-234-245
+midword texper 2345-15-6-1346-1234-12456
+midword texplo 2345-15-6-1346-1234-123-135
+midword texpor 2345-15-6-1346-1234-26
+midendword texpress 2345-15-6-1346-1234-1235-15-2346
+midendword texzess 2345-15-6-1346-1356-15-2346
+always saateul 234-1-1-2345-126-123
+midendword teau 2345-15-16
+always raterund 1235-1-236-1235-256-145
+before s begmidword karate 13-356-1-236
+prfword karates 13-356-1-2345-123456
+before a begmidword geräte 12346-1235-345-236
+before a begmidword elite 13456-24-236
+before a begmidword härte 125-345-1235-236
+begmidword spinatess 234-1234-35-1-2345-15-2346
+always geräteeigen 12346-1235-345-236-146-1245-14
+begmidword geräteein 12346-1235-345-236-1246
+begmidword geräteent 12346-1235-345-236-14-2345
+always pentateuch 1234-14-2345-1-2345-126-1456
+always cocteau 6-14-135-6-14-2345-15-16
+begmidword kräfteein 5-13-124-15-1246
+always beeftea 12-15-15-124-2345-15-1
+always giftefeu 1245-24-124-2345-15-124-126
+always duftessenz 145-136-124-2345-15-2346-14-1356
+sufword achteck 1-1456-2345-15-46
+always achteck 56-2345-15-46
+always nachteul 1345-56-2345-126-123
+sufword lichtecht 123-3456-2345-15-1456-2345
+midendword lichtecht 456-2345-15-1456-2345
+word lichtechte 123-3456-2345-15-1456-236
+midendword lichtechte 456-2345-15-1456-236
+always zuchteber 1356-136-1456-2345-15-12-12456
+always drahtextension 145-1235-1-125-2345-15-6-1346-2345-14-234-245
+begmidword eliteein 13456-24-236-1246
+always eliteelf 13456-24-236-13456-124
+begmidword friteus 124-1235-24-2345-126-234
+always kakteen 13-1-13-236-14
+always distrikteben 145-24-23456-1235-24-13-2345-15-12-14
+begmidword halteein 125-25-236-1246
+begmidword kälteein 13-345-123-236-1246
+begmidword kälteempfind 13-345-123-236-12356-1234-124-35-145
+begmidword kälteerzeug 13-345-123-236-12456-1356-126-1245
+begmidword kälteex 13-345-123-236-15-6-1346
+always zelteck 1356-13456-2345-15-46
+always gesamtetat 12346-234-1-134-2345-15-2345-1-2345
+always gesamtex 12346-234-1-134-2345-15-6-1346
+always montezuma 134-135-1345-236-1356-136-134-1
+begmidword ernteameis 12456-1345-236-1-134-146-234
+begmidword ernteaus 12456-1345-236-16-234
+begmidword ernteein 12456-1345-236-1246
+begmidword ernteer 12456-1345-236-12456
+always proteus 1234-1235-135-2345-126-234
+always stripteas 23456-1235-24-1234-2345-15-1-234
+always stripteus 23456-1235-24-1234-2345-126-234
+begmidword dompteus 145-135-134-1234-2345-126-234
+always hunderteck 125-256-145-12456-2345-15-46
+begmidword werteein 2456-12456-236-1246
+begmidword werteel 2456-12456-236-13456
+always wertethik 2456-12456-2345-15-2345-125-24-13
+always wertethisch 2456-12456-2345-15-2345-125-24-156
+always fortexist 124-26-2345-15-6-1346-24-23456
+begmidword portefeuill 1234-26-236-124-126-24-12345
+always steelband 23456-15-15-123-12-235-145
+begmidword gersteein 1245-12456-23456-15-1246
+always glattechs 1245-123-1-2345-2345-15-1456-234
+always bretteffekt 12-1235-15-2345-2345-15-124-124-15-13-2345
+prfword bretteffekte 12-1235-15-2345-2345-15-124-124-15-13-236
+begmidword balletteus 12-1-12345-15-2345-2345-126-234
+begmidword wettess 2456-15-2345-2345-15-2346
+always schnitteben 156-1345-24-2345-2345-15-12-14
+begmidword fritteus 124-1235-24-2345-2345-126-234
+always fauteuil 124-16-2345-126-24-123
+begmidword leuteess 123-126-236-15-2346
+always gutedel 1245-136-2345-15-145-13456
+begmidword güteeigen 1245-1256-236-146-1245-14
+always blutegel 12-123-136-2345-15-1245-13456
+
+# TEh
+begmidword teh 2345-2356
+before h begmidword geräte 12346-1235-345-236
+begmidword geschäftehalber 1245-124-15-125
+always rechtehand 1235-2345-15-125-145
+always früchtehändler 124-1235-1256-1456-236-5-125-145-123-12456
+before h begmidword white 2456-125-24-236
+before h begmidword elite 13456-24-236
+before h begmidword ernte 12456-1345-236
+always remotehost 1235-12356-135-236-125-135-23456
+before h begmidword warte 2456-356-236
+before h begmidword gäste 1245-345-23456-15
+begmidword restehauf 1235-15-23456-15-125-16-124
+before h begmidword zugute 2-1356-1245-136-236
+always hütehund 125-1256-236-125-256-145
+always buxtehud 12-136-6-1346-236-125-136-145
+begmidword ärztehon 345-1235-1356-236-125-135-1345
+
+# TEl
+always tel 2345-13456
+midendword telang 236-123-1245
+midword teläng 236-5-123-1245
+midword teleist 236-123-146-23456
+midword teliefer 236-123-346-124-12456
+midword telini 236-123-35-24
+sufword tell 2345-15-12345
+midendword tell 236-12345
+midendword tellang 2345-13456-123-1245
+midendword telläng 2345-13456-5-123-1245
+midendword telliter 2345-13456-123-24-2345-12456
+midendword tellos 2345-13456-123-135-234
+begmidword kräftel 5-13-124-15-123
+always wachtel 2456-56-2345-13456
+always scheitel 156-146-2345-13456
+before l begmidword seite 234-146-236
+always whitelist 2456-125-24-236-123-24-23456
+always kapitellang 13-1-1234-24-2345-13456-123-1245
+always kapitelläng 13-1-1234-24-2345-13456-5-123-1245
+always titel 2345-24-2345-13456
+begmidword kältel 13-345-123-236-123
+always mantel 134-235-2345-13456
+always jahrzehntelang 245-1356-15-123-1245
+always hotel 125-135-2345-13456
+always hoteller 125-135-236-12345-12456
+before l begmidword warte 2456-356-236
+always jahrhundertelang 245-125-15-123-1245
+before l begmidword werte 2456-12456-236
+always gürtel 1245-1256-1235-2345-13456
+always debattelos 145-15-12-1-2345-236-123-135-234
+always sattel 234-1-2345-2345-13456
+always schüttel 156-1256-2345-2345-13456
+always beutelust 12-126-236-123-136-23456
+always beutelüst 12-126-236-123-1256-23456
+begmidword jutel 245-136-236-123
+# TEm
+always tem 2345-12356
+midword temanipul 236-134-235-24-1234-136-123
+midendword temann 236-134-1345
+midendword temänn 236-5-134-1345
+midendword temaschin 236-134-156
+midword temechan 236-134-15-1456-235
+midendword temedizin 236-134-15-145-24-1356-35
+midendword temess 236-134-15-2346
+midendword temilieu 236-134-24-123-24-126
+midendword temittel 236-134-2345
+endword temmal 2345-12356-134
+before m midendword apparate 1-1234-1234-356-1-236
+before m midendword geräte 12346-1235-345-236
+before m midendword geschäfte 1245-124-15
+before m midendword kräfte 5-13-124-15
+before m midendword rechte 1235-2345-15
+prfword rechtem 1235-2345-12356
+before m midendword gerüchte 12346-1235-1256-1456-236
+always sitemap 234-24-236-134-1-1234
+begmidword haltem 125-25-236-134
+before m begmidword kälte 13-345-123-236
+before m begmidword warte 2456-356-236
+always portemonnaie 1234-26-236-134-135-1345-1345-1-24-15
+prfword portemonnaies 1234-26-236-134-135-1345-1345-1-24-123456
+before m begmidword gäste 1245-345-23456-15
+before m begmidword leute 123-126-236
+before m begmidword güte 1245-1256-236
+prfword ärztem 345-1235-1356-2345-12356
+before m begmidword ärzte 345-1235-1356-236
+# TEn
+always ten 2345-14
+endword tename 236-1345-1-134-15
+midendword tenamen 236-1345-1-134-14
+midendword tenummer 236-1345-136-1346-12456
+always kräftenach 5-13-124-15-1345-56
+begmidword seitenahm 234-146-236-1345-134
+begmidword seitenehm 234-146-236-1345-125
+always monteneg 134-135-1345-236-1345-15-1245
+always gutenacht 1245-136-236-1345-56-2345
+always gütenorm 1245-1256-236-1345-26-134
+# TEr
+always ter 2345-12456
+always räterepublik 1235-345-236-1235-13
+before r midendword geräte 12346-1235-345-236
+always städtereis 23456-345-145-236-1235-146-234
+begmidword früchter 124-1235-1256-1456-236-1235
+always halteraum 125-25-236-1235-16-134
+always kältereg 13-345-123-236-1235-15-1245
+always kälteresist 13-345-123-236-1235-123456-24-23456
+always halteriegel 125-25-236-1235-346
+always haltering 125-25-236-1235-35-1245
+prfword halteringe 125-25-236-1235-35-12346
+always halteräum 125-25-236-1235-34-134
+always erntereif 12456-1345-236-1235-146-124
+always warteraum 2456-356-236-1235-16-134
+always warteräum 2456-356-236-1235-34-134
+always werterechn 2456-12456-236-1235-15-1456-1345
+before r begmidword gäste 1245-345-23456-15
+always pusterohr 1234-136-23456-15-1235-135-125-1235
+always pusteröhr 1234-136-23456-15-1235-246-125-1235
+always beuterecht 12-126-236-1235-2345
+always güteregelung 1245-1256-236-1235-15-1245-13456-136
+begmidword ärzter 345-1235-1356-236-1235
+# TEs
+always tes 2345-123456
+midendword tesaal 236-234-1-1-123
+midendword tesegen 236-234-15-1245-14
+midendword teseil 236-234-146-123
+endword teseite 236-234-146-236
+midendword teseiten 236-234-146-2345-14
+midendword teseriell 236-234-12456-24-15-12345
+midendword tesetz 236-2-15
+midendword tesiegel 236-234-346-1245-13456
+endword tesignal 236-234-45-1345-1-123
+midword tesignal 236-234-45-1345-25
+midendword tesilo 236-234-24-123-135
+midendword teskala 236-234-13-25-1
+midendword teskalation 2345-123456-13-25-5-1345
+midword tesoftwar 236-234-135-124-2345-2456-356
+midendword tesoldat 236-234-135-123-145-1-2345
+midendword tespannung 236-234-1234-235-1345-136
+midword tespektr 236-234-1234-15-13-2345-1235
+midendword tespezifisch 236-234-1234-15-1356-24-124-24-156
+midendword tespiel 236-2-346
+midendword tespray 236-234-1234-1235-1-6-13456
+midendword tesystem 236-234-6-13456-23456-12356
+endword tesäle 236-234-345-123-15
+midendword tesälen 236-234-345-123-14
+always ratesendung 1235-1-236-234-14-145-136
+always kräftespiel 5-13-124-15-2-346
+always rechtesystem 1235-2345-15-234-6-13456-23456-12356
+always whitespac 2456-125-24-236-234-1234-1-6-14
+always punktesamm 1234-2345-15-234-1-1346
+always punktespiel 1234-2345-15-2-346
+always punktesystem 1234-2345-15-234-6-13456-23456-12356
+begmidword montesin 134-135-1345-236-234-35
+always jutesack 245-136-236-234-1-46
+always jutespinn 245-136-236-234-1234-35-1345
+always jutesäck 245-136-236-234-345-46
+# TEsch
+always tesch 236-156
+midendword teschaft 236-156
+midendword teschlag 236-156-1245
+midendword teschlang 236-156-123-235-1245
+endword teschlange 236-156-123-235-12346
+midendword teschrift 236-156-2345
+midendword teschwung 236-156-2456-256-1245
+prfword weltesche 2456-13456-2345-15-156-15
+prfword welteschen 2456-13456-2345-15-156-14
+# TEss
+midendword tess 236-2346
+sufword tess 2345-15-2346
+always acetessig 1-6-14-15-2345-15-2346-45
+prfword diabetesstar 145-24-1-23-2345-123456-23456-1-1235
+always diabetesstar 145-24-1-23-2345-123456-23456-356
+always nachtessen 1345-56-2345-15-2346-14
+always fruchtessenz 124-1235-136-1456-2345-15-2346-14-1356
+always quintessenz 6-12345-136-35-2345-15-2346-14-1356
+always obstessig 135-12-23456-15-2346-45
+always festessen 124-15-23456-15-2346-14
+begmidword geistessch 1245-146-23456-123456-156
+begmidword geistesst 1245-146-23456-123456-23456
+# TEst
+sufword test 2345-15-23456
+midendword test 236-23456
+midendword testand 236-2-23456
+midendword teständ 236-5-23456
+midendword testell 236-2-13456
+midendword testund 236-23456-256-145
+midendword testünd 236-23456-1256-1345-145
+always asphaltestrich 1-234-1234-125-25-2345-15-23456-1235-3456
+always zementestrich 1356-12356-14-2345-15-23456-1235-3456
+
+# TECHNIK (4.4 Zweiformige Kürzungen)
+syllable technik 2345-13
+
+# TECHNISCH (4.4 Zweiformige Kürzungen)
+syllable technisch 2345-156
+
+# TRAG (4.4 Zweiformige Kürzungen)
+always trag 2345-1245
+always träg 5-2345-1245
+sufword tetragon 2345-15-2345-1235-1-1245-135-1345
+midendword tetragon 236-2345-1235-1-1245-135-1345
+always arbitr 356-12-24-2345-1235
+before g begmidword ultra 136-123-2345-1235-1
+prfword astragal 1-23456-1235-1-1245-1-123
+always astragal 1-23456-1235-1-1245-25
+always estragon 15-23456-1235-1-1245-135-1345
+before g begword extra 1346-2345-1235-1
+before g midword extra 15-6-1346-2345-1235-1
+
+# TREFF (4.4 Zweiformige Kürzungen)
+always treff 2345-124
+
+# TROTZ (4.4 Zweiformige Kürzungen)
+always trotz 2345-1356
+always trotzki 2345-1235-135-2345-1356-13-24
+always trotzkismus 2345-1235-135-2345-1356-13-5-24
+always trotzkistisch 2345-1235-135-2345-1356-13-5-156
+always strotz 23456-1235-135-2345-1356
+
+# ÜBER (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word über 1256
+always über-\s 2-1256-36-0
+word über'm 1256-6-134
+word über'n 1256-6-1345
+word über's 1256-6-234
+always über 2-1256
+always büberei 12-1256-12-12456-146
+always trüber 2345-1235-1256-12-12456
+sufword stüber 23456-1256-12-12456
+prfword stüber 23456-1256-12-12456
+
+# ÜBERHAUPT (4.4 Zweiformige Kürzungen)
+always überhaupt 1256-125
+
+# ÜBRIG (4.4 Zweiformige Kürzungen)
+always übrig 1256-45
+
+# UN  (4.1 Lautgruppenkürzungen)
+word un 136-1345
+always un-\s 256-36-0
+always un 256
+always un-\s 256-36-0
+always un-,\s 256-36-2-0
+sufword ausbaunummer 34-12-16-1345-136-1346-12456
+midendword ausbaunummer 16-234-12-16-1345-136-1346-12456
+always werbeun 2456-12456-23-256
+always werbeunter 2456-12456-23-2-256
+always reunier 1235-15-256-346-1235
+always council 6-14-135-136-1345-6-14-24-123
+always count 6-14-135-136-1345-2345
+always mount 134-135-136-1345-2345
+prfword mounte 134-135-136-1345-236
+prfword mountest 134-135-136-1345-236-23456
+always mountet 134-135-136-1345-236-2345
+prfword mountete 134-135-136-1345-236-236
+always mountetet 134-135-136-1345-236-236-2345
+always mountetest 134-135-136-1345-236-236-23456
+always thermounter 2345-125-12456-134-135-2-256
+always tunichtgut 2345-136-2-1345-1245-136-2345
+always bantuneger 12-235-2345-136-1345-15-1245-12456
+always neuunter 1345-126-2-256
+
+# UND (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word und 136
+always und 2-136
+always undank 256-145-13
+always undatier 256-145-1-2345-346-1235
+begmidword undefin 256-145-15-124-35
+always undehn 256-145-2356-1345
+always undekl 256-145-15-13-123
+always undeklarier 256-145-15-13-123-356-346-1235
+always undemokrat 256-145-2345
+always undenk 256-145-14-13
+always under 256-145-12456
+always undestillier 256-145-15-23456-24-12345-346-1235
+prfword undeutbar 256-145-126-2345-12-1-1235
+begmidword undeutbar 256-145-126-2345-12-356
+always undeutlich 256-145-126-2345-456
+always undeutsch 256-145-156
+always undezim 256-145-15-1356-24-134
+always undialekt 256-145-24-25-15-13-2345
+always undicht 256-145-3456-2345
+prfword undichte 256-145-3456-236
+always undichtest 256-145-3456-236-23456
+always undifferenzier 256-145-24-124-124-12456-14-1356-346-1235
+sufword undin 256-145-35
+always unding 256-145-35-1245
+prfword undinge 256-145-35-12346
+always undiplomatisch 256-145-24-1234-123-135-134-1-2345-24-156
+begmidword undiszi 256-145-24-234-1356-24
+always undogmatisch 256-145-135-1245-134-1-2345-24-156
+begmidword undokumentier 256-145-135-13-136-134-14-2345-346-1235
+begmidword undotier 256-145-135-2345-346-1235
+always undramatisch 256-145-1235-1-134-1-2345-24-156
+always undulier 256-145-136-123-346-1235
+always unduldsam 256-145-136-123-145-2346
+always undurch 256-2-1456
+always undynamisch 256-145-6-13456-1345-1-134-24-156
+always bund 12-256-145
+always secund 234-15-6-14-256-145
+begmidword redundan 1235-15-145-256-145-235
+always redundantwort 1235-15-145-2-136-235-2345-2456-26-2345
+always dundee 145-256-145-15-15
+always fund 124-256-145
+always fünfund 124-1256-1345-124-2-136
+sufword gund 1245-256-145
+sufword gunda 1245-256-145-1
+sufword gunde 1245-256-145-15
+always gundel 1245-256-145-13456
+always gunder 1245-256-145-12456
+always gundula 1245-256-145-136-123-1
+begmidword segund 234-15-1245-256-145
+always kunigund 13-256-24-1245-256-145
+always burgund 12-136-1235-1245-256-145
+always hund 125-256-145
+always schund 156-256-145
+always kund 13-256-145
+always lund 123-256-145
+always kalundborg 13-25-256-145-12-26-1245
+always alundum 25-256-145-136-134
+always mund 134-256-145
+always immund 24-1346-256-145
+always bound 12-135-136-1345-145
+always found 124-135-136-1345-145
+sufword mound 134-135-136-1345-145
+sufword pound 1234-135-136-1345-145
+always round 1235-135-136-1345-145
+always around 356-135-136-1345-145
+always sound 234-135-136-1345-145
+always spund 234-1234-256-145
+always rund 1235-256-145
+always korund 13-26-256-145
+always vierund 1236-346-1235-2-136
+always sund 234-256-145
+midendword esund 15-234-256-145
+always sechsund 234-15-1456-234-2-136
+always stund 23456-256-145
+always tund 2345-256-145
+always tundurch 2345-256-2-1456
+begword achtund 1-1456-2345-2-136
+midendword achtund 56-2345-2-136
+always kattun 13-1-2345-2345-256
+always wund 2456-256-145
+begword yund 6-13456-256-145
+always hyundai 125-6-13456-256-145-1-24
+
+# -UNG    4.2.1 a) Nachsilbenkürzungen
+midendword ung 136
+midendword ungs 136-234
+midword ungsauf 136-234-2-16
+midendword ungstell 136-2-13456
+begmidword ungeach 256-12346-56
+always ungebunden 256-12346-12-256-145-14
+always ungeheuer 256-12346-125-126-12456
+always ungenau 256-12346-1345-16
+always ungetüm 256-12346-2345-1256-134
+always ungezogen 256-12346-1356-135-1245-14
+always ungleich 256-1245-1456
+always unglimpf 256-1245-123-24-134-1234-124
+always ungültig 256-1245-1256-123-2345-45
+begmidword braung 12-1235-16-1345-1245
+begmidword braunge 12-1235-16-1345-12346
+always braungelb 12-1235-16-1345-1245-13456-12
+always bungalow 12-256-1245-25-135-2456
+always bungee 12-256-1245-15-15
+sufword dung 145-256-1245
+always bedungen 23-145-256-1245-14
+always pferdedung 1234-124-12456-145-15-145-256-1245
+always gedungen 12346-145-256-1245-14
+always schweinedung 156-2456-1246-15-145-256-1245
+always schafdung 156-1-124-145-256-1245
+always kuhdung 13-136-125-145-256-1245
+always viehdung 1236-346-125-145-256-1245
+always kameldung 13-1-134-13456-145-256-1245
+always stalldung 23456-1-12345-145-256-1245
+always ziegendung 1356-346-1245-14-145-256-1245
+always elefantendung 13456-15-124-235-2345-14-145-256-1245
+sufword verdungen 36-145-256-1245-14
+always verdungen 1236-12456-145-256-1245-14
+always fungier 124-256-1245-346-1235
+always fungizid 124-256-1245-24-1356-24-145
+syllable hunger 125-256-1245-12456
+syllable hungrig 125-256-1245-1235-45
+syllable hungry 125-256-1245-1235-6-13456
+always dschungel 145-156-256-1245-13456
+always jung 245-256-1245
+prfword junge 245-256-12346
+always jungem 245-256-1245-12356
+always jungen 245-256-1245-14
+always junger 245-256-1245-12456
+always junges 245-256-1245-123456
+always jungfer 245-256-1245-124-12456
+prfword jungs 245-256-1245-234
+sufword kung 13-256-1245
+always kungel 13-256-1245-13456
+prfword lunge 123-256-12346
+sufword lungen 123-256-1245-14
+always lungenmaschin 123-256-1245-14-134-156
+always lunger 123-256-1245-12456
+begmidword staublun 23456-16-12-123-256
+always nibelung 1345-24-12-13456-256-1245
+prfword nibelunge 1345-24-12-13456-256-12346
+always gelungen 12346-123-256-1245-14
+always schlungen 156-123-256-1245-14
+always geschlungen 12346-156-123-256-1245-14
+word exilungar 1346-24-123-256-1245-1-1235
+begword exilungar 1346-24-123-256-1245-356
+midword exilungar 15-6-1346-24-123-256-1245-356
+endword exilungar 15-6-1346-24-123-256-1245-1-1235
+always geklungen 12346-13-123-256-1245-14
+always erklungen 12456-13-123-256-1245-14
+sufword verklungen 36-13-123-256-1245-14
+begmidword taucherlun 2345-16-1456-12456-123-256
+always misslungen 134-24-2346-123-256-1245-14
+begword mung 134-256-1245
+always immun 24-1346-256
+always immung 24-1346-136
+prfword lounge 123-135-136-1345-12346
+prfword lounges 123-135-136-1345-1245-123456
+always young 6-13456-135-136-1345-1245
+always pungier 1234-256-1245-346-1235
+prfword runge 1235-256-12346
+always rungentasch 1235-256-1245-14-2345-1-156
+always rungenwagen 1235-256-1245-14-2456-1-1245-14
+always drungen 145-1235-256-1245-14
+always gerungen 12346-1235-256-1245-14
+always steigerungen 23456-146-1245-12456-136-14
+word verengerungen 36-14-1245-12456-136-14
+midendword verengerungen 1236-12456-14-1245-12456-136-14
+always sprung 234-1234-1235-256-1245
+always errungen 12456-1235-256-1245-14
+always zerrungen 1356-12456-1235-136-14
+always sperrungen 234-1234-12456-1235-136-14
+sufword entrungen 2346-1235-256-1245-14
+always entrungen 14-2345-1235-256-1245-14
+always wrungen 2456-1235-256-1245-14
+sufword sung 234-256-1245
+always besungen 23-234-256-1245-14
+always gesungen 12346-234-256-1245-14
+always samsung 234-1-134-234-256-1245
+begword tungst 2345-256-1245-23456
+always zuungunsten 2-1356-256-1245-256-23456-14
+always schwung 156-2456-256-1245
+always geschwung 12346-156-2456-256-1245
+always zwungen 1356-2456-256-1245-14
+prfword zunge 1356-256-12346
+always zung 1356-136
+sufword zungen 1356-256-1245-14
+always landzungen 123-235-145-1356-256-1245-14
+always pferdzungen 1234-124-12456-145-1356-256-1245-14
+endword dezungen 145-15-1356-256-1245-14
+always seezungen 234-15-15-1356-256-1245-14
+always betonzungen 23-2345-135-1345-1356-256-1245-14
+always flammenzungen 124-123-1-1346-14-1356-256-1245-14
+always ochsenzungen 135-1456-234-14-1356-256-1245-14
+always lästerzungen 123-345-23456-12456-1356-256-1245-14
+midendword erzungen 12456-1356-256-1245-14
+midendword sabberzungen 234-1-12-12-12456-1356-256-1245-14
+always unterzungen 2-256-1356-256-1245-14
+midendword eszungen 123456-1356-256-1245-14
+midendword sszungen 2346-1356-256-1245-14
+midendword szungen 234-1356-256-1245-14
+always kreuzunglücklich 13-1235-126-1356-256-1245-46-456
+midword zungs 1356-136-234
+
+# UNTER (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word unter 256
+always unter-\s 2-256-36-0
+always unter 2-256
+always gelaunter 12346-123-16-1345-2345-12456
+always geraunter 12346-1235-16-1345-2345-12456
+always bräunter 12-1235-34-1345-2345-12456
+always staunter 23456-16-1345-2345-12456
+always zäunter 1356-34-1345-2345-12456
+always bunter 12-256-2345-12456
+always siebunter 234-346-12-2-256
+always schreibunter 156-12-2-256
+begmidword farbunter 124-356-12-2-256
+always erbuntertänig 12456-12-2-256-2345-345-1345-45
+always subunter 234-136-12-2-256
+always neunter 1345-126-1345-2345-12456
+always routineunter 1235-135-136-2345-35-15-2-256
+sufword gunter 1245-256-2345-12456
+always hunter 125-256-2345-12456
+always schuhunter 156-136-125-2-256
+always kunterbun 13-256-2345-12456-12-256
+always munter 134-256-2345-12456
+always islamunter 24-234-123-1-134-2-256
+always systemunter 234-6-13456-23456-12356-2-256
+always heimunter 125-146-134-2-256
+always geheimunter 12346-125-146-134-2-256
+always filmunter 124-24-123-134-2-256
+begword programmunter 12345-1245-1235-1-1346-2-256
+midword programmunter 1234-1235-135-1245-1235-1-1346-2-256
+always schwimmunter 156-2456-24-1346-2-256
+always stromunter 23456-1235-135-134-2-256
+always atomunter 1-2345-135-134-2-256
+always schirmunter 156-24-1235-134-2-256
+always counter 6-14-135-136-1345-2345-12456
+after z midendword unter 2-256
+always zunter 1356-2-256
+
+# VER- (4.2.1 Vorsilbenkürzungen)
+begword ver 36
+always -ver 36-1236-12456
+always -verhältnis 36-1236-125
+word vera 1236-12456-1
+sufword veracruz 1236-12456-1-6-14-1235-136-1356
+sufword veranda 1236-12456-235-145-1
+sufword veranden 1236-12456-235-145-14
+word veras 1236-12456-1-234
+word verb 1236-12456-12
+word verba 1236-12456-12-1
+word verbal 1236-12456-12-1-123
+begword verbal 1236-12456-12-25
+begword verball 36-12-1-12345
+sufword verbatim 1236-12456-12-1-2345-24-134
+word verben 1236-12456-12-14
+begword verbf 1236-12456-12-124
+begword verbg 1236-12456-12-1245
+word verbis 1236-12456-12-24-234
+begword verbk 1236-12456-12-13
+begword verbm 1236-12456-12-134
+word verbs 1236-12456-12-234
+begword verbstell 1236-12456-12-2-13456
+word verbum 1236-12456-12-136-134
+word verbums 1236-12456-12-136-134-234
+begword verbw 1236-12456-12-2456
+begword verbwieder 1236-12456-12-346-145
+sufword verbzusatz 1236-12456-12-2-1356-234-1356
+begword verbzusätz 1236-12456-12-2-1356-5-234-1356
+sufword vercingetorix 1236-12456-6-14-35-12346-2345-26-24-6-1346
+word verdi 1236-12456-145-24
+sufword verdikt 1236-12456-145-24-13-2345
+word verdikte 1236-12456-145-24-13-236
+word verdis 1236-12456-145-24-234
+word verdun 1236-12456-145-256
+word verduns 1236-12456-145-256-234
+sufword verena 1236-12456-14-1
+sufword vergil 1236-12456-1245-24-123
+sufword vergilb 36-1245-24-123-12
+sufword vergilt 36-1245-24-123-2345
+word vergine 1236-12456-1245-35-15
+sufword verifikation 1236-12456-24-124-24-13-5-1345
+sufword verifizier 1236-12456-24-124-24-1356-346-1235
+sufword verita 1236-12456-24-2345-1
+sufword verlain 1236-12456-123-1-24-1345
+sufword vermeer 1236-12456-134-15-15-1235
+sufword vermont 1236-12456-134-135-1345-2345
+begword veron 1236-12456-135-1345
+word vers 1236-12456-234
+word versace 1236-12456-234-1-6-14-15
+word versaces 1236-12456-234-1-6-14-123456
+begword versaill 1236-12456-234-1-24-12345
+word versal 1236-12456-234-1-123
+begword versal 1236-12456-234-25
+begword versalz 36-234-25-1356
+always versanf 1236-12456-234-235-124
+always versart 1236-12456-234-356-2345
+begword versb 1236-12456-234-12
+begword versd 1236-12456-234-145
+word verse 1236-12456-234-15
+begword versemach 1236-12456-234-15-134-56
+word versen 1236-12456-234-14
+word versepos 1236-12456-234-15-1234-135-234
+word versepen 1236-12456-234-15-1234-14
+begword verserzähl 1236-12456-234-12456-5-1356-123
+word verses 1236-12456-234-123456
+sufword verseschmied 1236-12456-234-15-156-134-346-145
+begword versf 1236-12456-234-124
+begword versier 1236-12456-234-346-1235
+sufword version 1236-12456-234-245
+begword versläng 1236-12456-234-5-123-1245
+begword verslehr 1236-12456-234-123-2356-1235
+begword versk 1236-12456-234-13
+sufword versklav 36-234-13-123-1-1236
+begword verskomödi 1236-12456-234-13-135-134-246-145-24
+begword versm 1236-12456-234-134
+begword versn 1236-12456-234-1345
+begword versniff 36-234-1345-24-124-124
+begword versnob 36-234-1345-135-12
+sufword verspaar 1236-12456-234-1234-1-1-1235
+word versroman 1236-12456-234-1235-135-134-1-1345
+begword versroman 1236-12456-234-1235-135-134-235
+sufword versspiel 1236-12456-234-2-346
+word versus 1236-12456-234-136-234
+always vertebrat 1236-12456-236-12-1235-1-2345
+always vertigo 1236-12456-2345-24-1245-135
+word vertikal 1236-12456-2345-24-13-1-123
+begword vertikal 1236-12456-2345-24-13-25
+word verum 1236-12456-136-134
+word verve 1236-12456-1236-15
+
+# VERHÄLTNIS (4.4 Zweiformige Kürzungen)
+always verhältnis 1236-125
+
+# VIEL (4.4 Zweiformige Kürzungen)
+always viel 1236-123
+
+# VIELLEICHT (4.4 Zweiformige Kürzungen)
+always vielleicht 1236-2345
+
+# VOLK VÖLK (4.4 Zweiformige Kürzungen)
+always volk 1236-13
+always völk 5-1236-13
+word volker 1236-135-123-13-12456
+word volkers 1236-135-123-13-12456-234
+always volketswil 1236-135-123-13-15-2345-234-2456-24-123
+sufword volkhard 1236-135-123-13-125-356-145
+sufword volkmann 1236-135-123-13-134-235-1345
+word volkmar 1236-135-123-13-134-1-1235
+word volkmars 1236-135-123-13-134-356-234
+
+# VOLL (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word voll 12345
+always voll-\s 2-12345-36-0
+always voll 2-12345
+always völl 5-12345
+always volley 1236-135-12345-15-6-13456
+
+# VOM (4.4 Zweiformige Kürzungen)
+always vom 1236-134
+word servomotor 234-12456-1236-135-134-135-2345-135-1235
+begword servomotor 234-12456-1236-135-134-135-2345-26
+always ovomalt 135-1236-135-134-25-2345
+
+# VON (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word von 1236
+always von-\s 2-1236-36-0
+always von 2-1236
+sufword avon 1-1236-135-1345
+sufword savona 234-1-1236-135-1345-1
+sufword devon 145-15-1236-135-1345
+syllable yvonn 6-13456-1236-135-1345-1345
+
+# VOR (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word vor 26
+always vor-\s 2-26-36-0
+always vor 2-26
+always voraus 2-26-16-234
+always favorisier 124-1-1236-26-24-234-346-1235
+always favorit 124-1-1236-26-24-2345
+word flavor 124-123-1-1236-135-1235
+always flavor 124-123-1-1236-26
+always bravoruf 12-1235-1-1236-135-1235-136-124
+always ivorer 24-1236-26-12456
+always ivory 24-1236-26-6-13456
+begmidword herbivor 125-12456-12-24-1236-26
+begword livorn 123-24-1236-26-1345
+begword omnivor 135-134-1345-24-1236-26
+begword karnivor 13-356-1345-24-1236-26
+midword tivor 2345-24-1236-26
+always yvorn 6-13456-1236-26-1345
+
+# WAHR WÄHR (4.4 Zweiformige Kürzungen)
+always wahr 2456-125
+always währ 5-2456-125
+
+# WÄHREND (4.4 Zweiformige Kürzungen)
+always während 345-145
+
+# WAR WÄR (4.3.3 Einformige Kürzungen, alleinstehend oder am Wortanfang)
+word war 356
+word wär 5-356
+word ware 356-15
+word wäre 5-356-15
+sufword waren 356-14
+word wären 5-356-14
+word wärest 5-356-15-23456
+word wäret 5-356-15-2345
+word warst 356-23456
+word wärst 5-356-23456
+word wärt 5-356-2345
+word are 1-1235-15
+word aren 1-1235-14
+
+# -WÄRTS  4.2.1 a) Nachsilbenkürzungen
+midendword wärts 2456
+
+# WAS   (4.3.1 Einformige Wortkürzungen, nur alleinstehend)
+word was 2456
+
+# WEG (4.4 Zweiformige Kürzungen)
+always weg 2456-1245
+word wega 2456-15-1245-1
+word wegas 2456-15-1245-1-234
+before h midword wege 2456-1245-15
+prfword weggen 2456-15-1245-1245-14
+prfword weggens 2456-15-1245-1245-14-234
+always schwegler 156-2456-15-1245-123-12456
+always nimwegen 1345-24-134-2456-15-1245-14
+always norwegen 1345-26-2456-15-1245-14
+always norweger 1345-26-2456-15-1245-12456
+always norwegisch 1345-26-2456-15-1245-24-156
+always wegerich 2456-15-1245-12456-3456
+
+# WEIT (4.4 Zweiformige Kürzungen)
+always weit 2456-2345
+always schweitzer 156-2456-146-2345-1356-12456
+always zweit 1356-2456-146-2345
+always reizweiter 1235-146-1356-2456-2345-12456
+always schweizweit 156-2456-146-1356-2456-2345
+prfword zweite 1356-2456-146-236
+always zweitemal 1356-2456-146-236-134
+
+# WENIG (4.4 Zweiformige Kürzungen)
+always wenig 2456-45
+
+# WENN (4.4 Zweiformige Kürzungen)
+always wenn 2456-1345
+sufword wenner 2456-14-1345-12456
+always schwenning 156-2456-14-1345-35-1245
+always löwen 123-246-2456-14
+
+# WESENTLICH (4.4 Zweiformige Kürzungen)
+always wesentlich 2456-456
+
+# WEIS (4.3.6 Kommakürzungen)
+always weis 2-146
+always weisel 2456-146-234-13456
+always budweiser 12-136-145-2456-146-234-12456
+always zweisait 1356-2456-146-234-1-24-2345
+always zweisam 1356-2456-146-2346
+always zweiseit 1356-2456-146-234-146-2345
+always zweisemest 1356-2456-146-234-12356-15-23456
+always zweisilb 1356-2456-146-234-24-123-12
+always zweisch 1356-2456-146-156
+begmidword zweisimm 1356-2456-146-234-24-1346
+always zweisitz 1356-2456-146-2-24
+always zweisprach 1356-2456-146-234-1234
+always zweisp 1356-2456-146-234-1234
+begmidword zweist 1356-2456-146-23456
+prfword zweist 1356-2456-146-23456
+always zweistand 1356-2456-146-2-23456
+always zweiständ 1356-2456-146-5-23456
+always zweistell 1356-2456-146-2-13456
+always zweistund 1356-2456-146-23456-256-145
+sufword entzwei 2346-1356-2456-146
+always entzwei 14-2345-1356-2456-146
+
+# WELCH (4.3.4 Einformige Kürzungen, alleinstehend, mit Endungen oder in Wortverbindungen)
+always welch 13456
+
+# WERD (4.3.6 Kommakürzungen)
+always werd 2-2456
+word werder 2456-12456-145-12456
+word werdern 2456-12456-145-12456-1345
+word werders 2456-12456-145-12456-234
+begword schwerd 156-2456-12456-145
+syllable beschwerd 23-156-2456-12456-145
+always friedrichswerder 124-1235-346-145-1235-3456-234-2456-12456-145-12456
+always hoyerswerda 125-135-6-13456-12456-234-2456-12456-145-1
+
+# WIE (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word wie 126
+word wie's 126-6-234
+always wieso 2-126-2-1234
+always wieviel 2-126-1236-123
+always wieweit 2-126-2456-2345
+always wiewohl 2-126-2456-123
+always irgendwie 24-1245-2-126
+always gleichwie 1245-1456-2-126
+always inwiefern 35-2-126-124-12456-1345
+always sowie 2-1234-2-126
+always sowieso 2-1234-2-126-2-1234
+always anderswie 2-12456-234-2-126
+always sonstwie 234-135-1345-23456-2-126
+
+# WIEDER (4.4 Zweiformige Kürzungen)
+always wieder 346-145
+
+# WILL (4.4 Zweiformige Kürzungen)
+always will 2456-12345
+always willard 2456-24-12345-356-145
+always willebrand 2456-24-12345-15-12-1235-235-145
+sufword willem 2456-24-12345-12356
+word willi 2456-24-12345-24
+always william 2456-24-12345-24-1-134
+always willibald 2456-24-12345-24-12-25-145
+sufword willie 2456-24-12345-346
+word willis 2456-24-12345-24-234
+word willy 2456-24-12345-6-13456
+word willys 2456-24-12345-6-13456-234
+always goodwill 1245-135-135-145-2456-24-12345
+always schwill 156-2456-24-12345
+begword swill 234-2456-24-12345
+word zwille 1356-2456-24-12345-15
+word zwillen 1356-2456-24-12345-14
+always zwillich 1356-2456-24-12345-3456
+prfword zwillinge 1356-2456-24-12345-35-12346
+always zwilling 1356-2456-24-12345-35-1245
+
+# WIR (4.4 Zweiformige Kürzungen)
+word wir 2456-1235
+word wir's 2456-1235-6-234
+
+# WIRD (4.4 Zweiformige Kürzungen)
+always wird 2456-145
+
+# WIRK (4.4 Zweiformige Kürzungen)
+always wirk 2456-13
+
+# WIRST (4.4 Zweiformige Kürzungen)
+always wirst 2456-23456
+
+# WIRTSCHAFT (4.4 Zweiformige Kürzungen)
+always wirtschaft 2456-156
+always wirtschafts 2456-156-234
+
+# WISS (4.4 Zweiformige Kürzungen)
+always wiss 2456-2346
+# Alte Rechtschreibung
+always wiß 2456-2346
+sufword swiss 234-2456-24-2346
+
+# WOHL (4.4 Zweiformige Kürzungen)
+always wohl 2456-123
+sufword rowohlt 1235-135-2456-135-125-123-2345
+sufword grotewohl 1245-1235-135-236-2456-135-125-123
+
+# WOLL WÖLL (4.3.6 Kommakürzungen)
+always woll 2-135
+always wöll 5-135
+begmidword wollespinn 2-135-15-234-1234-35-1345
+always wollust 2456-135-123-123-136-23456
+always wollüst 2456-135-123-123-1256-23456
+always schwoll 156-2456-135-12345
+begmidword geschwoll 12346-156-2456-135-12345
+always schwöll 156-2456-246-12345
+begword zwoll 1356-2456-135-12345
+
+# WORDEN (4.4 Zweiformige Kürzungen)
+always worden 135-14
+
+# WURD (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+word wurd 2456-136-1235-145
+begword wurd 136
+begword innewurd 35-1345-15-136
+
+# WÜRD (4.3.5 Einformige Kürzungen, nur mit Erweiterung)
+word würd 2456-1256-1235-145
+always würd 1256
+always würd's 1256-6-234
+always würdig 2456-1256-1235-145-45
+
+# X   (4.1 Lautgruppenkürzungen)
+word x 6-1346
+always x 6-1346
+# Grossgeschriebene Wortanfänge erhalten sonst keinen Pt.6!
+context ["X"]$u @6-1346
+
+# Y   (4.1 Lautgruppenkürzungen)
+word y 6-13456
+always y 6-13456
+# Grossgeschriebene Wortanfänge erhalten sonst keinen Pt.6!
+context ["Y"]$u @6-13456
+
+# ZAHL ZÄHL (4.4 Zweiformige Kürzungen)
+always zahl 1356-123
+always zähl 5-1356-123
+always zählebig 1356-345-125-123-12-45
+always rübezahl 1235-1256-23-1356-1-125-123
+
+# ZEIT (4.4 Zweiformige Kürzungen)
+always zeit 1356-2345
+word zeiter 1356-146-2345-12456
+word zeiters 1356-146-2345-12456-234
+sufword prophezei 12345-1234-125-15-1356-146
+midendword prophezei 1234-1235-135-1234-125-15-1356-146
+
+# ZU (4.3.2 Einformige Kürzungen, alleinstehend oder in Wortverbindungen)
+word zu 1356
+always zu-\s 2-1356-36-0
+always zu 2-1356
+prfword zuber 1356-136-12-12456
+sufword zuberbühler 1356-136-12-12456-12-1256-125-123-12456
+prfword zubers 1356-136-12-12456-234
+always azubi 1-1356-136-12-24
+always zucc 1356-136-6-14-6-14
+always zucch 1356-136-6-14-1456
+always zucht 1356-136-1456-2345
+always zuck 1356-136-46
+begmidword venezuel 1236-14-15-1356-136-13456
+always salzuflen 234-25-1356-136-124-123-14
+prfword zug 1356-136-1245
+begmidword zugb 1356-136-1245-12
+always zugrabauk 1356-136-1245-1235-1-12-16-13
+begmidword zugreinig 1356-136-1245-1235-1246-45
+begmidword herumzu 125-12456-136-134-2-1356
+begmidword herumzupf 125-12456-136-134-1356-136-1234-124
+always anzugärmel 235-1356-136-1245-345-1235-134-13456
+always eilzug 146-123-1356-136-1245
+always sattelzug 234-1-2345-2345-13456-1356-136-1245
+always bevorzug 23-2-26-1356-136-1245
+prfword bevorzuge 23-2-26-1356-136-12346
+before s begmidword zugs 1356-136-1245-234
+begmidword zugaukel 2-1356-1245-16-13-13456
+begmidword zugeb 2-1356-12346-12
+begmidword zugebet 2-1356-12346-23-2345
+# HOMONYM
+begmidword zugreif 2-1356-1245-1235-146-124
+prfword zugst 1356-136-1245-23456
+always zugabteil 1356-136-1245-1-12-2345-146-123
+always zugabfahr 1356-136-1245-1-12-2-1235
+always zuganschluss 1356-136-1245-235-156-123-136-2346
+always zuganschlüss 1356-136-1245-235-156-123-1256-2346
+begmidword zugbalk 1356-136-1245-12-25-13
+always zugband 1356-136-1245-12-235-145
+begmidword zugbänd 1356-136-1245-12-345-1345-145
+begmidword zugbr 1356-136-1245-12-1235
+always zugbügel 1356-136-1245-12-1256-1245-13456
+begmidword zugbe 1356-136-1245-23
+before d begmidword zug 1356-136-1245
+prfword zuge 1356-136-12346
+begmidword zuge 2-1356-12346
+always zugebunden 2-1356-12346-12-256-145-14
+always zugegen 2-1356-2-1245
+begmidword zugeh 2-1356-1245-2356
+begmidword zugehab 2-1356-12346-2-125
+begmidword zugehak 2-1356-12346-125-1-13
+always zugehalten 2-1356-12346-125-25-2345-14
+begmidword zugehämmer 2-1356-12346-125-345-1346-12456
+begmidword zugehäng 2-1356-12346-125-345-1345-1245
+begmidword zugehef 2-1356-12346-125-15-124
+begmidword zugeheil 2-1356-12346-125-146-123
+begmidword zugehopp 2-1356-12346-125-135-1234-1234
+always zugehör 2-1356-12346-125-246-1235
+begmidword zugehump 2-1356-12346-125-136-134-1234
+begmidword zugent 1356-136-1245-14-2345
+always lastzug 123-1-23456-1356-136-1245
+begmidword zugemal 2-1356-12346-134-25
+prfword zugehe 2-1356-1245-2356-15
+prfword zugehen 2-1356-1245-2356-14
+always zugehend 2-1356-1245-2356-14-145
+prfword zugeher 2-1356-1245-2356-12456
+always zugehfrau 2-1356-1245-2356-124-1235-16
+prfword zugehst 2-1356-1245-2356-23456
+prfword zugeht 2-1356-1245-2356-2345
+prfword zugeinricht 1356-136-1245-1246-2-3456
+prfword zuger 1356-136-1245-12456
+sufword zugerin 1356-136-1245-12456-35
+always zugerland 1356-136-1245-12456-123-235-145
+begmidword zugerländ 1356-136-1245-12456-123-345-1345-145
+always zugersee 1356-136-1245-12456-234-15-15
+prfword zuges 1356-136-1245-123456
+before f begmidword zug 1356-136-1245
+before g begmidword zug 1356-136-1245
+before h begmidword zug 1356-136-1245
+before j begmidword zug 1356-136-1245
+always zugig 1356-136-1245-45
+before k begmidword zug 1356-136-1245
+always zugkräft 1356-136-1245-5-13-124
+always zuglang 1356-136-1245-123-1245
+always zugläng 1356-136-1245-5-123-1245
+always zuglast 1356-136-1245-123-1-23456
+always zuglein 1356-136-1245-123-1246
+always zugloch 1356-136-1245-123-135-1456
+always zuglöch 1356-136-1245-123-246-1456
+always zugluft 1356-136-1245-123-136-124-2345
+before m begmidword zug 1356-136-1245
+before n begmidword zug 1356-136-1245
+always zugober 1356-136-1245-135-12-12456
+always zugochs 1356-136-1245-135-1456-234
+always zugraub 1356-136-1245-1235-16-12
+always zugräub 1356-136-1245-1235-34-12
+always zugrecht 1356-136-1245-1235-2345
+always zugreis 1356-136-1245-1235-146-234
+begmidword zugrestaur 1356-136-1245-1235-15-23456-16-1235
+always zugroll 1356-136-1245-1235-135-12345
+before s begmidword zug 1356-136-1245
+before s begmidword zugs 1356-136-1245-234
+before t begmidword zug 1356-136-1245
+always bezug 23-1356-136-1245
+always zugüber 1356-136-1245-2-1256
+always zugunglück 1356-136-1245-256-1245-46
+before kpvw begmidword zug 1356-136-1245
+before z begmidword zug 1356-136-1245
+
+after z midendword uhr 136-125-1235
+always zuhr 1356-136-125-1235
+always zuider 1356-136-24-145-12456
+always suzuki 234-136-1356-136-13-24
+always lapislazuli 123-1-1234-24-234-123-1-1356-136-123-24
+always zull 1356-136-12345
+always zulp 1356-136-123-1234
+always zulu 1356-136-123-136
+begmidword abzuluchs 1-12-2-1356-123-136-1456-234
+begmidword abzulutsch 1-12-2-1356-123-136-2345-156
+always zuluft 2-1356-123-136-124-2345
+always zulugen 2-1356-123-136-1245-14
+begmidword pelzum 1234-13456-1356-136-134
+midendword zunabhängig 1356-256-1-12-125-345-1345-1245-45
+always zunder 1356-256-145-12456
+begmidword schmerzun 156-134-12456-1356-256
+always zunft 1356-256-124-2345
+# siehe -ung           zunge
+# siehe -ung           zungen
+always münzunion 134-1256-1345-1356-256-24-135-1345
+always zupf 1356-136-1234-124
+begmidword zupfeif 2-1356-1234-124-146-124
+begmidword zupferch 2-1356-1234-124-12456-1456
+begmidword zupflanz 2-1356-1234-124-123-235-1356
+begmidword zupflüg 2-1356-1234-124-123-1256-1245
+prfword zupflüge 2-1356-1234-124-123-1256-12346
+begmidword zupfropf 2-1356-1234-124-1235-135-1234-124
+begmidword putzutensi 1234-136-2345-1356-136-2345-14-234-24
+always zutsch 1356-136-2345-156
+always zuzel 1356-136-1356-13456
+always frequenz 124-1235-15-6-12345-136-14-1356
+
+# ZUM (4.4 Zweiformige Kürzungen)
+word zum 1356-134
+always zumal 2-1356-134
+word kurzum 13-1356-136-134
+begmidword lizenzum 123-24-1356-14-1356-136-134
+begmidword blitzum 12-123-24-2345-1356-136-134
+begmidword schutzum 156-136-2345-1356-136-134
+
+# ZUNÄCHST (4.4 Zweiformige Kürzungen)
+always zunächst 1356-1345
+
+# ZUR (4.4 Zweiformige Kürzungen)
+word zur 1356-1235
+always zurecht 2-1356-1235-2345
+always zurr 1356-136-1235-1235
+begmidword zurred 1356-1235-1235-15-145
+begmidword zurruh 1356-1235-1235-136-125
+begmidword zurruhesetz 1356-1235-1235-136-125-15-2-15
+begmidword zurschau 1356-1235-156-16
+begmidword zurver 1356-1235-1236-12456
+word zurzeit 1356-1235-1356-2345
+sufword azur 1-1356-136-1235
+begmidword mazurk 134-1-1356-136-1235-13
+begmidword karenzur 13-356-14-1356-136-1235
+begmidword lizenzur 123-24-1356-14-1356-136-1235
+begmidword kurzur 13-1356-136-1235
+begmidword sturzursach 23456-136-1235-1356-136-1235-234-56
+
+# ZURÜCK (4.4 Zweiformige Kürzungen)
+always zurück 1356-46
+prfword zurücken 2-1356-1235-46-14
+begmidword zurücken 2-1356-1235-46-14
+begmidword zurückent 1356-46-14-2345
+
+# ZUSAMMEN (4.4 Zweiformige Kürzungen)
+always zusammen 1356-234
+
+# ZWISCHEN (4.4 Zweiformige Kürzungen)
+always zwischen 1356-2456
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti
new file mode 100644
index 0000000..41780a6
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti
@@ -0,0 +1,108 @@
+#  Copyright (C) 2010 Leon Ungier <Leon.Ungier@ViewPlus.com>, 
+#  Copyright (C) 2010 Mohammed R. Ramadan <mramadan@nattiq.com> 
+#  Copyright (C) 2010 Samuel Thibault <samuel.thibault@ens-lyon.org>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+#
+# This table is built and maintained by Leon Ungier <Leon.Ungier@ViewPlus.com>
+# with help and guidance from Mohammed R. Ramadan <mramadan@nattiq.com>
+#
+# Converted to liblouis table by Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+# generated by ttbtest
+letter	\x0901	3	DEVANAGARI SIGN CANDRABINDU
+letter	\x0902	56	DEVANAGARI SIGN ANUSVARA
+letter	\x0903	6	DEVANAGARI SIGN VISARGA
+letter	\x0905	1	DEVANAGARI LETTER A
+letter	\x0906	345	DEVANAGARI LETTER AA
+letter	\x0907	24	DEVANAGARI LETTER I
+letter	\x0908	35	DEVANAGARI LETTER II
+letter	\x0909	136	DEVANAGARI LETTER U
+letter	\x090a	1256	DEVANAGARI LETTER UU
+letter	\x090d	157	DEVANAGARI LETTER CANDRA E
+letter	\x090e	347	DEVANAGARI LETTER SHORT E
+letter	\x090f	15	DEVANAGARI LETTER E
+letter	\x0910	34	DEVANAGARI LETTER AI
+letter	\x0911	1357	DEVANAGARI LETTER CANDRA O
+letter	\x0912	2467	DEVANAGARI LETTER SHORT O
+letter	\x0913	135	DEVANAGARI LETTER O
+letter	\x0914	246	DEVANAGARI LETTER AU
+letter	\x0915	13	DEVANAGARI LETTER KA
+letter	\x0916	46	DEVANAGARI LETTER KHA
+letter	\x0917	1234	DEVANAGARI LETTER GA
+letter	\x0918	126	DEVANAGARI LETTER GHA
+letter	\x0919	346	DEVANAGARI LETTER NGA
+letter	\x091a	14	DEVANAGARI LETTER CA
+letter	\x091b	16	DEVANAGARI LETTER CHA
+letter	\x091c	245	DEVANAGARI LETTER JA
+letter	\x091d	356	DEVANAGARI LETTER JHA
+letter	\x091e	25	DEVANAGARI LETTER NYA
+letter	\x091f	23456	DEVANAGARI LETTER TTA
+letter	\x0920	2456	DEVANAGARI LETTER TTHA
+letter	\x0921	1246	DEVANAGARI LETTER DDA
+letter	\x0922	123456	DEVANAGARI LETTER DDHA
+letter	\x0923	3456	DEVANAGARI LETTER NNA
+letter	\x0924	2345	DEVANAGARI LETTER TA
+letter	\x0925	1456	DEVANAGARI LETTER THA
+letter	\x0926	145	DEVANAGARI LETTER DA
+letter	\x0927	2346	DEVANAGARI LETTER DHA
+letter	\x0928	1345	DEVANAGARI LETTER NA
+letter	\x0929	56	DEVANAGARI LETTER NNNA
+letter	\x092a	1234	DEVANAGARI LETTER PA
+letter	\x092b	235	DEVANAGARI LETTER PHA
+letter	\x092c	12	DEVANAGARI LETTER BA
+letter	\x092d	45	DEVANAGARI LETTER BHA
+letter	\x092e	134	DEVANAGARI LETTER MA
+letter	\x092f	13456	DEVANAGARI LETTER YA
+letter	\x0930	1235	DEVANAGARI LETTER RA
+letter	\x0931	12357	DEVANAGARI LETTER RRA
+letter	\x0932	123	DEVANAGARI LETTER LA
+letter	\x0933	1237	DEVANAGARI LETTER LLA
+letter	\x0934	12378	DEVANAGARI LETTER LLLA
+letter	\x0935	1236	DEVANAGARI LETTER VA
+letter	\x0936	146	DEVANAGARI LETTER SHA
+letter	\x0937	12346	DEVANAGARI LETTER SSA
+letter	\x0938	234	DEVANAGARI LETTER SA
+letter	\x0939	125	DEVANAGARI LETTER HA
+letter	\x093d	2	DEVANAGARI SIGN AVAGRAHA
+letter	\x093e	345	DEVANAGARI VOWEL SIGN AA
+letter	\x093f	24	DEVANAGARI VOWEL SIGN I
+letter	\x0940	35	DEVANAGARI VOWEL SIGN II
+letter	\x0941	136	DEVANAGARI VOWEL SIGN U
+letter	\x0942	1256	DEVANAGARI VOWEL SIGN UU
+letter	\x0945	157	DEVANAGARI VOWEL SIGN CANDRA E
+letter	\x0946	347	DEVANAGARI VOWEL SIGN SHORT E
+letter	\x0947	15	DEVANAGARI VOWEL SIGN E
+letter	\x0948	34	DEVANAGARI VOWEL SIGN AI
+letter	\x0949	1357	DEVANAGARI VOWEL SIGN CANDRA O
+letter	\x094a	2467	DEVANAGARI VOWEL SIGN SHORT O
+letter	\x094b	135	DEVANAGARI VOWEL SIGN O
+letter	\x094c	246	DEVANAGARI VOWEL SIGN AU
+letter	\x094d	4	DEVANAGARI SIGN VIRAMA
+punctuation	\x0964	256	DEVANAGARI DANDA
+letter	\x0966	245	DEVANAGARI DIGIT ZERO
+letter	\x0967	1	DEVANAGARI DIGIT ONE
+letter	\x0968	12	DEVANAGARI DIGIT TWO
+letter	\x0969	14	DEVANAGARI DIGIT THREE
+letter	\x096a	145	DEVANAGARI DIGIT FOUR
+letter	\x096b	15	DEVANAGARI DIGIT FIVE
+letter	\x096c	124	DEVANAGARI DIGIT SIX
+letter	\x096d	1245	DEVANAGARI DIGIT SEVEN
+letter	\x096e	125	DEVANAGARI DIGIT EIGHT
+letter	\x096f	24	DEVANAGARI DIGIT NINE
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti
new file mode 100644
index 0000000..00e23f2
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti
@@ -0,0 +1,10 @@
+digit 0 245
+digit 1 1
+digit 2 12
+digit 3 14
+digit 4 145
+digit 5 15
+digit 6 124
+digit 7 1245
+digit 8 125
+digit 9 24
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti
new file mode 100644
index 0000000..201b97a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti
@@ -0,0 +1,10 @@
+digit        0      346
+digit        1      16
+digit        2      126
+digit        3      146
+digit        4      1456
+digit        5      156
+digit        6      1246
+digit        7      12456
+digit        8      1256
+digit        9      246
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti
new file mode 100644
index 0000000..efda4f6
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti
@@ -0,0 +1,10 @@
+digit 0 2458
+digit 1 18
+digit 2 128
+digit 3 148
+digit 4 1458
+digit 5 158
+digit 6 1248
+digit 7 12458
+digit 8 1258
+digit 9 248
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb
new file mode 100644
index 0000000..cdf8b0b
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb
@@ -0,0 +1,768 @@
+# liblouis: U.K. English Grade 2 Braille Contraction Table
+# Created by Tom Johnston <tom.johnston@accessibilityconsulting.co.uk>. 
+
+include en-gb-g1.utb
+
+# the letter a
+largesign a 1
+always about 1-12
+contraction ab
+always above 1-12-1236
+contraction abv
+always according 1-14
+contraction ac
+always across 1-14-1235
+contraction acr
+always aed =
+#always aer = Rosenlaer
+begword aforem 1-123456-15-134 aforementioned 
+word aforesaid 1-123456-15-234-145
+always after 1-124
+contraction af
+sufword afternoon 1-124-1345 afternoons
+contraction afn
+always afterward 1-124-2456
+contraction afw
+word again 1-1245
+contraction ag
+word against 1-1245-34
+word agst =
+#endword gery = orangery
+midendword ally 6-13456
+word almost 1-123-134
+contraction alm
+word already 1-123-1235
+contraction alr
+word also 1-123
+contraction al
+word although 1-123-1456
+word alth =
+word altogether 1-123-2345
+contraction alt
+word always 1-123-2456
+contraction alw
+midendword ance 46-15
+largesign and 12346
+midword angh = Shanghai
+begword aqued = aqueduct
+always ar 345
+word aright 1-5-1235
+word as 1356
+contraction as
+midendword ation 6-1345
+midendword aunder 1-136-1345-145-12456 saunders
+begword auto = autofocus
+
+# the letter b
+midword bb 23
+midendword bble 12-3456
+lowword be 23
+begword be 23
+begword bea 12-2
+always bear 12-15-345
+begword beatif 23-1-2345-24-124
+begword beatit 23-1-2345-24-2345
+begword beatr 12-2-2345-1235 Beatrice
+always beck 12-15-14-13
+always bed 12-1246
+begword beda 23-145-1 bedazzle
+begword bede 23-145-15 bedevil
+word bede 12-1246-15 bede (a name)
+begword bedi 23-145-24 bedizzened
+word bee 12-15-15
+begword bee 12-15-15
+always been 12-15-26
+always beer 12-15-12456
+word beg =
+begword begg 12-15-2356
+word begs =
+begword bei = beijing
+sufword being 23-346
+sufword belch 12-15-123-16
+begword beld = Beldon
+begword belf = belfry, belfast
+begword belg = Belgium
+begword belk = Belkin
+always bell =
+begword belm = Belmont
+always belt =
+begword belw = belwether
+always ben 12-26
+begword beni 12-26-24
+begword benif 23-1345-24-124 benificient
+sufword benign 23-1345-24-1245-1345 benignity
+begword benov 23-1345-135-1236 benovolent
+begword benu 23-1345-136 benumbed
+begword ber 12-12456
+begword bera 23-1235-1 berating
+begword bere 23-1235-15 bereft
+begword berea 23-1235-2 bereaved
+begword beri 23-1235-24 beribboned
+always best 12-15-34
+sufword bestow 23-34-246
+always beth 12-15-1456 Bethany
+always bethe 12-15-2346 Bethel (Hans) Bethe
+always bets =
+always bett =
+sufword bev = bevies
+begword bever 12-5-15 Beverly beverage
+always bio =
+midendword bious 12-24-1256-234 dubious
+joinword by 356
+always because 23-14
+word bec =
+always before 23-124
+word bef =
+always behind 23-125
+word behring 12-15-125-1235-346
+word beh =
+word bel =
+begword beln = Belnick
+always below 23-123
+always beneath 23-1345
+always beside 23-234
+word bes =
+sufword bess = Bessie
+always between 23-2345
+word bet =
+always beyond 23-13456
+word bey =
+midendword ble 3456
+midendword bleau 12-123-2-136 tableau
+always bless 12-46-234 joblessness
+always blind 12-123
+contraction bl
+always blinded 12-123-35-145-1246
+sufword blinder 12-123-35-145-12456
+word blinding 12-123-35-145-346
+always braille 12-1235-123
+contraction brl
+word but 12
+
+# the letter c
+midword cc 25
+midword cch 14-16
+always chloro 16-123-135-1235-135
+begword cofac = cofactor
+always cofound 14-135-124-46-145
+# begword com 36
+begword com 23478
+
+# sufword common 36-134-135-1345 commonest
+sufword common 23478-134-135-1345 commonest
+begword con 25
+sufword conceive 25-14-1236
+word concv =
+word concvd =
+word concvr =
+word concvs =
+word concvst =
+word concvth =
+sufword conceiving 25-14-1236-1245
+word concvg =
+always cone 14-5-135
+word cons 14-135-1345-234
+sufword conundrum = 
+always could 14-145
+contraction cd
+sufword coworker 14-135-5-2456-12456
+midword cc 25
+word can 14
+always cannot 456-14
+word ch =
+always ch 16
+always character 5-16
+always chemo 16-15-134-135
+word child 16
+always children 16-1345
+word chn =
+sufword clever 14-123-5-15 cleverest
+
+# the letter d
+always day 5-145
+begword deact = deactivation
+begword deall = deallocate
+begword decarb 145-15-14-345-12
+always deceive 145-14-1236
+contraction dcv
+contraction dcvd
+contraction dcvr
+contraction dcvs
+word dcvst =
+word dcvth =
+always deceiving 145-14-1236-1245
+contraction dcvg
+always declare 145-14-123
+contraction dcl
+contraction dcld
+contraction dclr
+contraction dcls
+word dclst =
+word dclth =
+always declaring 145-14-123-1245
+contraction dclg
+begword deref = dereferencing
+begword dereg = deregulation
+midword dd 256
+midendword dday 145-5-145 midday
+begword dedic 145-1246-24-14 dedicated
+begword dis 256
+#sufword disc = discount disconsolate
+always dish 145-24-146
+begword disha 256-125-1 dishabile
+begword dishear 256-125-15-345 disheartened
+begword disho 256-125-135 dishonor
+begword dishone 256-125-5-135 dishonest
+sufword disk =
+sufword dispirit 145-24-456-234 dispirited
+begword disul = disulfide
+word do 145
+
+# the letter e
+midword ea 2
+midword eabil = interchangeability
+always eable 15-1-3456
+endword eably = noticeably
+midendword eage = mileage
+midendword eager 2-1245-12456 meager
+always eally 15-6-13456
+midendword eance 15-46-15 vengeance
+midendword eand 15-12346 meander
+always eation 15-6-1345
+always ear 15-345
+always ed 1246
+#always edic = edict Benedict
+sufword edict =
+#sufword edition 15-145-24-56-1345 editions
+#midword edo 15-145-135
+always edraw =
+word either 15-24
+contraction ei
+word en =
+always en 26
+always ename 15-5-1345
+sufword enamel 26-1-134-15-123 enameled
+midendword ence 56-15
+always eneck = bottleneck
+midendword eness 15-56-234 closeness
+endword enesse 15-56-234-15
+#begword enor = enormous
+#begword enou 15-1345-1256
+lowword enough 26
+word enough 26-1256-126
+#begword enu 15-1345-136
+always er 12456
+#begword era =
+#word eras 12456-1-234
+#begword erec = erect 
+#begword ero 15-1235-135
+midendword eroom = storeroom
+#begword eru = erupt
+always ever 5-15
+midendword evere 15-1236-12456-15 Everest
+always evered 15-1236-12456-1246
+word every 15
+
+# the letter f
+midword ff 235
+always father 5-124
+always fein 124-15-35 Feingold
+always first 124-34
+word fst =
+#always fever 124-15-1236-12456
+always ffor 124-123456
+largesign for 123456
+always fore 123456-15
+begword forens 123456-26-234 forensic
+always forever 123456-5-15 forevermore
+always foot =
+word from 124
+always friend 124-1235
+contraction fr
+midendword ful 56-123
+always funder 124-136-1345-145-12456
+
+# the letter g
+begword geo = geoengineering
+sufword geoff 1245-15-12356-124 Geoffrey
+midword gg 2356
+always gh 126
+endword gham = Langham
+always ghead 1245-125-2-145
+always gheart 1245-125-15-345-2345
+midendword ghill = dunghill
+midendword ghorn = bighorn
+always ghouse 1245-125-1256-234-15
+always ghz = (gigahertz)
+begword givea = giveaway
+sufword gnome = gnomedb
+word go 1245
+always good 1245-145
+contraction gd
+begword gos = goshawk
+word goshen 1245-135-146-26
+always great 1245-1235-2345
+contraction grt
+
+# the letter h
+always had 456-125
+begword hadd 125-1-256 haddock
+sufword hade = hadean 
+word have 125
+always here 5-125
+always hered 125-12456-1246
+always heren 125-12456-26
+midendword herence 125-12456-56-15 adherence
+always herer 125-12456-12456
+always heres 125-12456-15-234
+always heret 125-12456-15-2345
+word heretofore 5-125-2345-135-123456-15
+word herself 125-12456-124
+word herf =
+word him 125-134
+word hm 125-3-134
+sufword hmm =
+word himself 125-134-124
+contraction hmf
+lowword his 236
+sufword horse = horseradish
+always hydro =
+
+# the letter i
+word i 24
+midendword iever 24-15-1236-12456
+always immediate 24-134-134
+contraction imm
+begword immuno = immunofluorescence
+lowword in 35
+word in =
+always in 35
+begword incon 35-14-135-1345 incongruous
+always iness 24-56-234
+endword inesse 24-56-234-15
+midendword ing 346
+#midword inga 35-1245-1 nightingale
+always ingar 35-1245-345 Weingarten
+#midword ingen 35-1245-26 palingenesis (new birth)
+#midword ingi 35-1245-24 meningitis
+midendword inging 346-346 bringing
+joinword into 35-235
+always isomer 24-234-135-134-12456
+word it 1346
+word its 1346-234
+contraction xs
+word itself 1346-124
+contraction xf
+midendword ity 56-13456
+
+# the letter j
+word just 245
+
+# the letter k
+always know 5-13
+word knowledge 13
+
+# the letter l
+midendword less 46-234
+always letter 123-1235
+contraction lr
+word like 123
+always little 123-123
+contraction ll
+sufword lone 123-5-135 lonely
+always lord 5-123
+
+# the letter m
+always many 456-134
+begword mc =
+always medic 134-1246-24-14 medicare
+midendword ment 56-2345
+midword menth 134-26-1456 Blumenthal
+always mideast 134-24-145-15-1-34
+word milling 134-24-123-123-346
+begword mishand 134-24-234-125-12346 mishandled
+always mishap =
+sufword mishear 134-24-234-125-15-345 misheard
+begword missh 134-24-234-146 misshapen
+word mistook =
+begword mistran = mistranslation
+sufword mistreat 134-24-234-2345-1235-2-2345
+begword mistru = mistrust
+begword misty = mistyped
+word monetary 134-5-135-2345-345-13456
+word more 134
+always mother 5-134
+always much 134-16
+word mch =
+word must 134-34
+word mst =
+word mustn 134-34-1345
+begword myo = myofibroblasts
+word myself 134-13456-124
+contraction myf
+
+# the letter n
+always name 5-1345
+always nament 1345-1-56-2345 tournament
+always namese =
+endnum nd 1345-145
+always necessary 1345-15-14
+contraction nec
+word neither 1345-15-24
+contraction nei
+midendword ness 56-234
+begword noness = nonessential
+word nonetheless 1345-5-135-2346-46-234
+always nonex =
+begword nong = nongraphical
+word noone 1345-135-5-135
+sufword nose = nosedive
+word not 1345
+word noways =
+word nowhere 1345-135-5-156
+
+# the letter o
+word O 135
+always O 135
+#midword oed = Schroeder
+#always oen = Phoenix
+midendword oence 135-26-14-15 electroencephalogram
+largesign of 12356
+midendword ofar 135-124-345 insofar
+always ofold = twofold
+midword ofor 135-123456
+always onesi =
+midendword oness 135-56-234
+midendword onesse 135-56-234-15 
+midendword oneer 135-1345-15-12456
+midendword oned 135-1345-1246
+always one 5-135
+midendword onel = salmonella colonel
+always onem = phoneme
+midendword onement 5-135-56-2345 atonement
+always onent 135-1345-26-2345
+midendword oneous 135-1345-15-1256-234 erroneous
+always oner 135-1345-12456
+midendword onese = Cantonese,
+word oneself 5-135-124
+word onef =
+midendword oness 135-56-234 Deaconess
+midendword onet = phonetics bayonet
+endword onez = Ordonez
+midendword ong 56-1245
+always oon = sooner
+always osome =
+word ou =
+always ou 1256
+midendword ound 46-145
+midendword ount 46-2345
+always ourselves 1256-1235-1236-234
+word ourvs =
+word out 1256
+always ought 5-1256
+always ow 246
+word o'clock 135-3-14
+
+# the letter p
+always paid 1234-145
+contraction pd
+always part 5-1234
+begword parta 1234-345-2345-1 partake
+begword parto 1234-345-2345-135
+word people 1234
+always perceive 1234-12456-14-1236
+word percv =
+word percvd =
+word percvr =
+word percvs =
+word percvst =
+word percvth =
+always perceiving 1234-12456-14-1236-1245
+word percvg =
+always perhaps 1234-12456-125
+word perh =
+always pher 1234-125-12456 cyphered
+begword potho = pothole pothook
+begword pre =
+always preach 1234-1235-2-16
+sufword predator 1234-1235-1246-1-2345-135-1235
+always prof = 
+always profes 1234-1235-12356-15-234 unprofessional
+sufword profile 1234-1235-12356-24-123-15
+begword proff 1234-1235-12356-124 proffer
+always profit 1234-1235-12356-24-2345
+
+# the letter q
+always quick 12345-13
+contraction qk
+word quite 12345
+always question 5-12345
+
+# the letter r
+sufword rafter 1235-1-124-2345-12456
+word rather 1235
+sufword raw = rawhide
+endnum rd 1235-145
+begword reab = reabsorbed
+always reac =
+always reach 1235-2-16
+begword readj = readjust
+begword readm = readmit
+begword reaff 1235-15-1-235
+always reagent 1235-15-1-1245-26-2345
+begword reagg 1235-15-1-2356 reaggregated
+begword realig = realign
+begword rean = reanalyze, reanimate
+begword reapp = reappear
+begword reass 1235-15-1-234-234
+begword reatt = reattach
+begword reau = reauthorization
+begword reaw = reawaken
+#begword rede =
+#begword redi =
+word redo =
+#word redone 1235-15-145-5-135
+#begword redou 1235-15-145-1256 redouble redoubt 
+#always redu =
+always receive 1235-14-1236
+contraction rcv
+contraction rcvd
+contraction rcvr
+contraction rcvs
+word rcvst =
+word rcvth =
+always receiving 1235-14-1236-1245
+contraction rcvg
+#begword redis = redistribute
+#begword redr = redress
+begword reduc 1235-1246-136-14 reduce
+begword redun 1235-1246-136-1345 redundant
+always rejoice 1235-245-14
+contraction rjc
+contraction rjcd
+contraction rjcr
+contraction rjcs
+word rjcst =
+word rjcth =
+always rejoicing 1235-245-14-1245
+contraction rjcg
+sufword renaming 1235-26-1-134-346 renamings
+#begword rene =
+sufword renegade 1235-26-15-1245-1-145-15
+#begword renom = renominate
+#begword renou 1235-15-1345-1256 renounce
+#sufword renown 1235-15-1345-246-1345 renowned
+#begword renu = renunciation
+sufword reread 1235-15-1235-2-145
+sufword rerun = reruns
+#always rever 1235-15-1236-12456
+always reveren 1235-5-15-26 irreverent
+always reverence 1235-5-15-56-15 irreverence
+sufword reverie 1235-5-15-24-15
+always right 5-1235
+
+# the letter s
+endnum s = 40s (no letter sign)
+always s 234
+always S 234
+word said 234-145
+contraction sd
+sufword saw = sawhorse
+sufword screw = screwhole
+#always sedu =
+always sent 234-26-2345 sentimental
+always sever 234-15-1236-12456 perseverance 
+always several 234-5-15-1-123 severally
+word shall 146
+word sh =
+always sh 146
+always shaus = In German names
+always should 146-145
+word shd =
+always shoulder 146-1256-123-145-12456
+word singapore 234-346-1-1234-135-1235-15 
+midendword sion 46-1345
+#midword stak 234-2345-1-13
+midendword stion 234-56-1345
+word so 234
+always some 5-234
+midendword somed 234-135-134-1246 ransomed
+always somer 234-135-134-12456 somersault 
+always spirit 456-234
+midendword ssword 234-234-45-2456 crossword 
+endnum st 34
+word st =
+always st 34
+always sth 234-1456
+always sthe 234-2346
+midendword sthead 34-125-2-145 masthead
+always sthood 34-125-135-135-145 priesthood
+word still 34
+always stime 234-5-2345
+midendword stown 234-2345-246-1345 Pickstown
+#begword stringen 34-1235-35-1245-26 stringent stringency
+begword styro 34-13456-1235-135 styrofoam
+always shead 234-125-2-145
+always sheart 124-125-15-345-2345
+always shouse 234-125-1256-234-15
+always ssh =
+always shood =
+word such 234-16
+word sch =
+always sword =
+
+# the letter t
+endnum th 1456
+word th =
+always th 1456
+always thand 2345-125-12346 shorthand
+word that 2345
+word this 1456
+word thyself 1456-13456-124
+word thyf =
+always tnam =
+joinword to 235
+word today 2345-145
+contraction td
+word tomorrow 2345-134
+contraction tm
+word tonight 2345-1345
+contraction tn
+always thead 2345-125-2-145
+always theast 1456-15-1-34
+always theart 2345-125-15-345-2345
+always thouse 2345-125-1256-234-15
+largesign the 2346
+word themselves 2346-134-1236-234
+word themvs 1456-15-134-1236-234
+always their 456-2346
+always thence 1456-56-15
+always there 5-2346
+midendword thereal 2346-1235-2-123 ethereal
+word thereupon 5-2346-45-136
+always thered 2346-1235-1246
+always therer 2346-1235-12456
+always theres 2346-1235-15-234 theresa therese 
+always thood =
+midendword tion 56-1345
+always time 5-2345
+midendword timed 1245-24-134-1246
+midendword timer 2345-24-134-12456
+midendword timet = altimeter
+word these 45-2346
+always through 5-1456
+always together 2345-1245-1235
+contraction tgr
+word those 45-1456
+begword trans = transtype
+
+# the letter u
+begword un = unameliorated
+begword unble = unblemished
+#begword undis = undisturbed
+begword uneas = unease
+begword uneat = uneaten
+sufword unful = unfulfilled
+begword unmen 136-1345-134-26 unmentioned
+word upon 45-136 Dupont
+word us 136
+always under 5-136
+word unsaid 136-1345-234-145
+
+# the letter v
+begword vaing 1236-1-35-1245 vainglory
+word very 1236
+begword vice = viceroy
+
+# the letter w
+lowword was 356
+word wh =
+always wh 156
+midendword whart 2456-125-345-2345 Newhart
+word which 156
+midendword whouse 2456-125-1256-234-15 Newhouse
+word will 2456
+lowword were 2356
+always where 5-156
+word whereupon 5-156-45-136
+word wherever 156-12456-5-15
+largesign with 23456
+always word 45-2456
+word whose 45-156
+always work 5-2456
+always would 2456-145
+contraction wd
+always world 456-2456
+
+# the letter x
+
+# the letter y
+word you 13456
+always young 5-13456
+word your 13456-1235
+contraction yr
+word yours 13456-1235-234
+contraction yrs
+word yourself 13456-1235-124
+contraction yrf
+word yourselves 13456-1235-1236-234
+contraction yrvs
+
+# the letter z
+
+# Système International Prefixes
+begword yotta 13456-135-2345-2345-1 10^24
+begword zetta 1356-15-2345-2345-1 10^21
+# begword exa 15-1346-1 10^18
+begword peta 1234-15-2345-1 10^15
+begword tera 2345-12456-1 10^12
+begword giga 1245-24-1245-1 10^9
+begword mega 134-15-1245-1 10^6
+begword kilo 13-24-123-135 10^3
+begword hecto 125-15-14-2345-135 10^2
+begword deca 145-15-14-1 10^1
+begword deci 145-15-14-24 10^-1
+begword centi 14-26-2345-24 10^-2
+begword milli 134-24-123-123-24 10^-3
+begword micro 134-24-14-1235-135 10^-6
+begword nano 1345-1-1345-135 10^-9
+begword pico 1234-24-14-135 10^-12
+begword femto 124-15-134-2345-135 10^-15
+begword atto 1-2345-2345-135 10^-18
+begword zepto 1356-15-1234-2345-135 10^-21
+begword yocto 13456-135-14-2345-135 10^-24
+
+begword anti =
+# begword endo 26-145-135 endow
+begword epi =
+begword extra =
+begword hyper 125-13456-1234-12456
+begword hypo =
+begword infra 35-124-1235-1
+begword inter 35-2345-12456
+begword intra 35-2345-1235-1
+begword iso =
+begword macro =
+begword meta =
+begword micro =
+begword mono =
+begword multi =
+begword patho 1234-1-1456-135
+begword peri 1234-12456-24
+begword poly =
+begword post 1234-135-34
+begword pre =
+begword pseudo =
+begword retro =
+# begword semi = seminar
+begword sub =
+begword super 234-136-1234-12456
+begword tetra =
+begword trans =
+begword ultra =
+# begword uni =
+
+# other prefixes
+begword electro =
+begword neuro =
+begword psycho 1234-234-13456-16-135
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb
new file mode 100644
index 0000000..295e64a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb
@@ -0,0 +1,366 @@
+# liblouis: U.K. English Grade 1 table
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. 
+# All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by Tom Johnston, Tom.Johnston@accessibilityconsulting.co.uk
+#
+
+include text_nabcc.dis All display opcodes
+
+include ukchardefs.cti All character definition opcodes
+
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+multind 56-6 letsign capsign
+letsign 56
+capsign 6
+begcaps 6-6
+endcaps 6-3
+begital 46
+endital 46-3
+begbold 46-46
+endbold 46-3
+begcomp 6-346
+endcomp 6-346
+
+# the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Letters are defined in en-chardefs
+
+#single letter words
+largesign a 1
+largesign A 1
+word I 24
+word O 135
+word o 135
+
+# punctuation
+prepunc " 236
+postpunc " 356
+always " 5
+prepunc ' 6-236
+postpunc ' 356-3
+postpunc '' 356
+postpunc ''' 356-3-356
+
+always ' 3
+endword 'd 3-145
+word 'em = 
+endword 'll 3-123-123
+endword 'm 3-134
+endword 're 3-1235-15
+endword 's 3-234
+endword \x2019\x0073 3-234
+endword 't 3-2345
+word 'tis =
+word 'twas =
+endword 've 3-1236-15
+midnum , 3
+always , 2
+midnum . 2
+decpoint . 2
+always . 256
+always ; 23
+midnum : 6-25
+always : 25
+endnum ! 6-235
+always ! 235
+always # 4-3456
+midnum / 456-34-3456
+always / 456-34
+always ? 236
+endnum % 0-25-1234
+always % 25-1234
+midnum ^ 346-3456
+always ^ 456-126
+always ~ 4-156
+always & 4-12346
+midnum * 0-56-236-3456
+always * 35-35
+repeated *** 35-35-0-35-35-0-35-35
+prepunc ( 2356
+postpunc ) 2356
+always [ 6-2356
+always ] 2356-3
+always { 46-2356
+always } 46-2356
+always -com =
+endword -to = pointed-to resource
+endword -by = used-by
+# always _ 78
+prepunc `` 236
+prepunc ` 6-236
+always ` 4
+always @ 2346
+always \\ 5-16
+always | 5-123
+#	repeated \s 0		Uncomment if you want a single space for repeated spaces 
+#	repeated \t 0		Uncomment if you want TABs converted to a space
+repeated \x00a0 0 no break space
+repeated --- 36-36-36
+
+# repeated ___ 78-78-78
+repeated ___ 46-46-46
+
+repeated ::: 25-25-25
+
+repeated === 56-2356-56-2356-56-2356
+repeated ~~~ 4-156-4-156-4-156
+always \s-\s 36-36
+always \s-\scom 36-36-14-135-134
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+# always  \x2026 3-3-3 # 8230			MS Word smart ellipsis
+
+# the hyphen
+# always ­ 36
+repeated ­­­ 36-36-36
+always \s­\s 36-36
+
+# accented letters
+
+uplow \x00C0\x00E0 1				# a with grave
+uplow \x00C1\x00E1 1				# a with acute
+uplow \x00C2\x00E2 1				# a with circumflex
+uplow \x00C3\x00E3 1				# a with tilde
+uplow \x00C4\x00E4 1				# a with dieresis
+uplow \x00C5\x00E5 1				# a with ring above
+uplow \x00C6\x00E6 1				# letter ae
+uplow \x00C7\x00E7 14				# c with cedilla
+uplow \x00C8\x00E8 15				# e with grave
+uplow \x00C9\x00E9 15				# e with acute
+uplow \x00CA\x00EA 15				# e with circumflex
+uplow \x00CB\x00EB 15				# e with dieresis
+uplow \x00CC\x00EC 24				# i with grave above
+uplow \x00CD\x00ED 24				# i with acute above
+uplow \x00CE\x00EE 24				# i with circumflex
+uplow \x00CF\x00EF 24				# i with dieresis
+uplow \x00D0\x00F0 15				# letter eth
+uplow \x00D1\x00F1 1345			# n with tilde
+uplow \x00D2\x00F2 135			# o with grave above
+uplow \x00D3\x00F3 135			# o with acute above
+uplow \x00D4\x00F4 135			# o with circumflex
+uplow \x00D5\x00F5 135			# o with tilde
+uplow \x00D6\x00F6 135			# o with dieresis
+
+# \x00D7	× multiplication sign	----------------------
+
+uplow \x00D8\x00F8 135			# o with stroke
+uplow \x00D9\x00F9 136			# u with grave above
+uplow \x00DA\x00FA 136			# u with acute above
+uplow \x00DB\x00FB 136			# u with circumflex above
+uplow \x00DC\x00FC 136				# u with dieeresis
+uplow \x00DD\x00FD 13456		# y with acute above
+uplow \x00DE\x00FE 2345			# letter thorn
+letter \x00DF 2346		# small sharp s
+uplow \x0174\x0175 2456 w with circumflex
+uplow \x0176\x0177 13456 # y with circumflex
+uplow \x0178\x00ff 13456 # y with diaeresis
+uplow \x1EF2\x1EF3 13456 # y with grave
+
+largesign \x00C0 4-1      [C0] upper a grave
+largesign \x00E0   4-1      [E0] lower a grave
+
+largesign \x00C1 4-1      [C1] upper a acute
+largesign \x00E1   4-1      [E1] lower a acute
+
+largesign \x00C2 4-1      [C2] upper a circumflex
+largesign \x00E2   4-1      [E2] lower a circumflex
+
+largesign \x00C3 4-1      [C3] upper a tilde
+largesign \x00E3   4-1      [E3] lower a tilde
+
+largesign \x00C4 4-1      [C4] upper a dieresis
+largesign \x00E4   4-1      [E4] lower a dieresis
+
+largesign \x00C5 4-1      [C5] upper a ring
+largesign \x00E5   4-1      [E5] lower a ring
+
+largesign \x00C6 1-15     [C6] upper ae
+largesign \x00E6   1-15			[E6] lower ae
+
+largesign \x00C7 4-14     [C7] upper c cedilla
+largesign \x00E7   4-14     [E7] lower c cedilla
+
+largesign \x00C8 4-15     [C8] upper e grave
+largesign \x00E8   4-15     [E8] lower e grave
+
+largesign \x00C9 4-15     [C9] upper e acute
+largesign \x00E9   4-15     [E9] lower e acute
+
+largesign \x00CA 4-15     [CA] upper e circumflex
+largesign \x00EA   4-15     [EA] lower e circumflex
+
+largesign \x00CB 4-15     [CB] upper e dieresis
+largesign \x00EB   4-15     [EB] lower e dieresis
+
+largesign \x00CC 4-24     [CC] upper i grave
+largesign \x00EC   4-24     [EC] lower i grave
+
+largesign \x00CD 4-24     [CD] upper i acute
+largesign \x00ED   4-24     [ED] lower i acute
+
+largesign \x00CE 4-24     [CE] upper i circumflex
+largesign \x00EE   4-24     [EE] lower i circumflex
+
+largesign \x00CF 4-24     [CF] upper i dieresis
+largesign \x00EF   4-24     [EF] lower i dieresis
+
+largesign \x00D0 4-15     [D0] upper eth
+largesign \x00F0   4-15     [F0] lower eth
+
+largesign \x00D1 4-1345   [D1] upper n tilde
+largesign \x00F1   4-1345   [F1] lower n tilde
+
+largesign \x00D2 4-135    [D2] upper o grave
+largesign \x00F2   4-135    [F2] lower o grave
+
+largesign \x00D3 4-135    [D3] upper o acute
+largesign \x00F3   4-135    [F3] lower o acute
+
+largesign \x00D4 4-135    [D4] upper o circumflex
+largesign \x00F4   4-135    [F4] lower o circumflex
+
+largesign \x00D5 4-135    [D5] upper o tilde
+largesign \x00F5   4-135    [F5] lower o tilde
+
+largesign \x00D6 4-135    [D6] upper o dieresis
+largesign \x00F6   4-135			[F6] lower o dieresis
+
+largesign \x00D8 4-135    [D8] upper o slash
+largesign \x00f8   4-135    [F8] lower o slash
+
+largesign \x00D9 4-136    [D9] upper u grave
+largesign \x00F9   4-136    [F9] lower u grave
+
+largesign \x00DA 4-136    [DA] upper u acute
+largesign \x00FA   4-136    [FA] lower u acute
+
+largesign \x00DB 4-136    [DB] upper u circumflex
+largesign \x00FB   4-136    [FB] lower u circumflex
+
+largesign \x00DC 4-136    [DC] upper u dieresis
+largesign \x00FC   4-136    [FC] lower u dieresis
+
+largesign \x00DD 4-13456  [DD] upper y acute
+largesign \x00FD   4-13456  [FD] lower y acute
+
+largesign \x00DE 4-2345   [DE] upper t horn
+largesign \x00FE   4-2345   [FE] lower t horn
+
+largesign \x00DF 234-234 (DF) lower ss
+
+
+largesign \x0174 4-2456 lower w circumflex
+largesign \x0175 4-2456 upper w circumflex
+
+largesign \x0176 4-13456 upper y circumflex
+largesign \x0177 4-13456 lower y circumflex
+
+largesign \x0178 4-13456 upper y with dieresis
+largesign \x00FF 4-13456 lower y with dieresis
+
+largesign \x1EF2 4-13456 upper y with grave
+largesign \x1EF3 4-13456 lower y with grave
+
+hyphen 	\x2010 36		 # 8208			hyphen
+
+# punctuation \x2011 36		 # 8209			non-breaking hyphen
+punctuation \x2011 23478	# 8209  non-breaking hyphen
+
+
+always	\x2013 56-36		 # 8211		smart minus sign
+
+
+always	\x201C 236	 # 8220			smart opening double quote
+always	\x201D 356	 # 8221			smart closing double quote
+always	\x201E 236	 # 8222			smart double low quotation mark
+always	\x201F 356	 # 8223			smart double high reverse quotation mark
+
+
+# mathematical symbols
+decpoint . 2
+always < 246
+joinword = 56-2356
+joinnum = 56-2356
+always > 135
+midnum + 0-56-235-3456
+joinnum + 56-235
+joinword + 56-235
+midnum - 36-3456
+always - 36
+joinnum × 56-236
+joinword × 56-236
+midnum ÷ 0-56-256-3456 division sign
+joinnum ÷ 56-256
+joinword ÷ 56-256
+begnum £ 123
+always £ 4-123 pounds
+
+# other special characters
+always © 45-14 copyright
+sign ™ 45-2345 trademark
+sign ® 45-1235 registered
+always ¶ 1234-345 paragraph
+always § 234-3 section
+always ° 356 degrees
+begnum $ 256
+always $ 4-256
+always ¢ 4-14 cents
+sign € 4-15	euro
+always € 4-15	euro
+always ¥ 4-13456 yen
+always µ 2-134 mu
+
+# special character sequences
+literal :// URLs
+literal www.
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+# include countries.cti
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zi			p
+	
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb
new file mode 100644
index 0000000..b060e1c
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb
@@ -0,0 +1,42 @@
+# liblouis: U.S. English 8 dot Computer braille table
+
+space \t 9 tab
+space \s 0 blank
+space \x00a0 a unbreakable space
+sign \x000a 78 newline
+space \x000d 0 carriage return
+include loweredDigits6Dots.uti
+include latinLetterDef8Dots.uti
+punctuation , 6
+punctuation ; 56
+punctuation : 156
+punctuation . 46
+punctuation ! 2346
+punctuation " 5
+punctuation ' 3
+punctuation ( 12356
+punctuation ) 23456
+punctuation - 36
+sign _ 456
+math < 126
+math = 123456
+math > 345
+sign % 146
+math + 346
+math ~ 45
+sign ` 4
+sign & 12346
+sign $ 1246
+punctuation ? 1456
+punctuation { 246
+punctuation [ 2467
+punctuation } 12456
+punctuation ] 124567
+sign ^ 457
+sign @ 47
+sign # 3456
+sign \\ 12567
+sign | 1256
+math / 34
+sign * 16
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb
new file mode 100644
index 0000000..6b4590a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb
@@ -0,0 +1,180 @@
+# liblouis: English, U.S. grade 1 (EBAE) table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
+#  The BRLTTY Team
+#
+#  Copyright (C) 2004, 2005, 2006
+#  ViewPlus Technologies, Inc. www.viewplus.com
+#  and
+#  JJB Software, Inc. www.jjb-software.com
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License 
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+# 
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public 
+#  License along with this program; see the file COPYING.  If not, write 
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by John J. Boyer john.boyer@jjb-software.com
+
+include chardefs.cti All character definition opcodes
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+capsign 6
+begcaps 6-6
+endcaps 6-3
+firstwordital 46-46
+lastworditalbefore 46
+lenitalphrase 4
+firstletterital 46-3
+lastletterital 46-36
+singleletterital 46-25
+firstwordbold 456-456
+lastwordboldbefore 456
+lenboldphrase 4
+begcomp 456-346
+endcomp 456-156
+
+# literary forms of the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Letters are defined in chardefs.cti
+
+# punctuation
+prepunc ( 2356
+word ( 4-2356
+always ( 2356
+postpunc ) 2356
+word ) 4-2356
+always ) 2356
+prepunc " 236
+postpunc " 356
+word " 4-236
+prepunc ` 6-236
+prepunc ' 6-236
+postpunc ' 356-3
+word ' 4-3
+word 'em = 
+word 'tis =
+word 'twas =
+begnum # 456-1456 print number sign before number
+midnum , 2
+postpunc , 2
+word , 4-2
+decpoint . 46
+midnum - 36
+hyphen - 36
+always \s--\s 36-36
+always \s-\s 36-36
+midnum \x00ad 36
+postpunc . 256
+word . 4-256
+postpunc ; 23
+word ; 4-23
+midnum : 25
+postpunc : 25
+always : 4-25
+postpunc ! 235
+always ! 4-235
+midnum / 34
+always / 456-34
+always < 5-13
+always = 46-13
+always > 46-2
+always + 4-346
+postpunc ? 236
+word ? 4-236
+endnum st 34
+endnum nd 1345-145
+endnum rd 1235-145
+endnum 's 3-234
+endnum th 1456
+endnum 's 3-234
+always % 4-25-1234
+midnum ^ 45
+always ^ 456-126
+always ~ 4-156
+always & 4-12346
+midnum * 4-16
+always * 35-35
+prepunc [ 6-2356
+word [ 4-6-2356
+always [ 6-2356
+postpunc ] 2356-3
+word ] 4-2356-3
+always ] 2356-3
+prepunc { 56-2356
+word { 4-56-2356
+always { 56-2356
+postpunc } 2356-23
+word } 4-2356-23
+always } 2356-23
+always @ 4-1
+always \\ 4-1256
+always | 456-1256
+repeated \s 0
+repeated \t 0
+always \s-\s 36-36
+always ..." 3-3-3-356
+always ... 3-3-3
+always ...' 3-3-3-356-3
+repeated .... 0
+repeated ____ 456
+repeated ---- 36
+always .\s.\s." 3-3-3-356
+always .\s.\s. 3-3-3 . . .
+begnum $ 256
+always $ 4-256
+
+# special character sequences
+compbrl :// URLs
+compbrl ()
+compbrl www.
+compbrl ::
+compbrl .com
+compbrl .edu
+compbrl .gov
+compbrl .ini
+compbrl .mil
+compbrl .net
+compbrl .org
+compbrl .doc
+compbrl .xml
+compbrl .xsl
+compbrl .htm
+compbrl .html
+compbrl .tex
+compbrl .txt
+compbrl .gif
+compbrl .jpg
+compbrl .png
+compbrl .wav
+compbrl .tar
+compbrl .zip
+
+context "\e"$a *
+always \\_ 56 letter sign before Roman page numbers
+pass2 @56-56 @56
+pass2 @3-56 @3
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb
new file mode 100644
index 0000000..ded1979
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb
@@ -0,0 +1,371 @@
+# liblouis: U.S. English Grade 1 table
+#
+# This is an old table which is kept only for backward compatability.
+# Do NOT use it in your work.
+# use en-us-g1.ctb
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. 
+# All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+#
+
+include text_nabcc.dis All display opcodes
+
+
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 2346				# 33
+punctuation " 5						# 34
+sign # 3456								# 35
+sign $ 1246								# 36
+sign % 146								# 37
+sign & 12346							# 38
+punctuation ' 3						# 39 apostrophe
+punctuation ( 12356				# 40
+punctuation ) 23456				# 41
+sign * 16									# 42
+math + 346								# 43
+punctuation , 6						# 44
+punctuation - 36					# 45
+punctuation . 46					# 46
+math / 34									# 47
+include loweredDigits6Dots.uti
+punctuation : 156					# 58
+punctuation ; 56					# 59
+math < 126								# 60
+math = 123456							# 61
+math > 345								# 62
+punctuation ? 1456				# 63
+sign @ 47									# 64
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 2467				# 91
+sign \\ 12567							# 92
+punctuation ] 124567			# 93
+sign ^ 457								# 94 circumflex accent
+sign _ 456								# 95 underscore
+sign ` 4									# 96 grave accent
+# a - z										# 97 - 122
+punctuation { 246					# 123
+sign | 1256								# 124
+punctuation } 12456				# 125
+math ~ 45									# 126
+
+space \X00A0 0						# 160 no-break space
+sign \x00A2 4-14					# 162 ¢ cents sign
+sign \x00A3 4-123					# 163 £ pounds sign
+
+sign \x00A5 4-13456				#	165 ¥ yen sign
+
+sign § 4-234-3						# 167 section sign \x00A7
+
+sign \x00A9 2356-6-14-2356 # 169	© copyright sign
+
+sign \x00AE 16-256				 # ® Registered mark
+
+punctuation \x00Ad 36			# 173	  soft hyphen
+
+sign \x00B0 356						# 176	  ° degrees sign
+
+sign \x00B5 46-134				# 181		µ micro sign
+sign \x00B6 4-1234-345		#	182	  ¶ pilcrow sign
+
+math \x00D7 56-236				# 215		× multiplication sign
+
+math \x00F7 56-256				# 247		÷ division sign
+
+punctuation \x2010 36				# 8208  hyphen
+# punctuation \x2011 23478	# 8209  non-breaking hyphen
+punctuation \x2011 4578			# 8209  non-breaking hyphen
+
+punctuation \x2013 6-36		# 8211	en dash
+
+
+punctuation	\x2018 3			# 8216	smart single left quotation mark
+punctuation	\x2019 3			# 8217	smart single right quotation mark
+
+punctuation	\x201C 236		# 8220	smart opening double quote
+punctuation	\x201D 356		# 8221	smart closing double quote
+punctuation	\x201E 236		# 8222	smart double low quotation mark
+punctuation	\x201F 356		# 8223	smart double high reverse quotation mark
+
+punctuation \x2026 3-3-3	# 8230 smart ellipsis
+
+sign \x20AC 4-15					# 8364 Euro sign
+
+# --------------------------- end definitions ---------------------------------
+
+include countries.cti
+
+# include text.nabcc.dis All display opcodes
+# include text_nabcc.dis All display opcodes
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+multind 56-6 letsign capsign
+letsign 56
+capsign 6
+begcaps 6-6
+endcaps 6-3
+begital 46
+endital 46-46
+begbold 456
+endbold 456-456
+begcomp 456-346
+endcomp 456-156
+
+# the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Letters are defined in en-chardefs
+
+#single letter words
+largesign a 1
+largesign A 1
+word I 24
+word O 135
+word o 135
+
+# accented letters
+
+uplow \x00C0\x00E0 1				# a with grave
+uplow \x00C1\x00E1 1				# a with acute
+uplow \x00C2\x00E2 1				# a with circumflex
+uplow \x00C3\x00E3 1				# a with tilde
+uplow \x00C4\x00E4 1				# a with dieresis
+uplow \x00C5\x00E5 1				# a with ring above
+uplow \x00C6\x00E6 1				# letter ae
+uplow \x00C7\x00E7 14				# c with cedilla
+uplow \x00C8\x00E8 15				# e with grave
+uplow \x00C9\x00E9 15				# e with acute
+uplow \x00CA\x00EA 15				# e with circumflex
+uplow \x00CB\x00EB 15				# e with dieresis
+uplow \x00CC\x00EC 24				# i with grave above
+uplow \x00CD\x00ED 24				# i with acute above
+uplow \x00CE\x00EE 24				# i with circumflex
+uplow \x00CF\x00EF 24				# i with dieresis
+uplow \x00D0\x00F0 15				# letter eth
+uplow \x00D1\x00F1 1345			# n with tilde
+uplow \x00D2\x00F2 135			# o with grave above
+uplow \x00D3\x00F3 135			# o with acute above
+uplow \x00D4\x00F4 135			# o with circumflex
+uplow \x00D5\x00F5 135			# o with tilde
+uplow \x00D6\x00F6 135			# o with dieresis
+# \x00D7	× multiplication sign	----------------------
+uplow \x00D8\x00F8 135			# o with stroke
+uplow \x00D9\x00F9 136			# u with grave above
+uplow \x00DA\x00FA 136			# u with acute above
+uplow \x00DB\x00FB 136			# u with circumflex above
+uplow \x00DC\x00FC 136				# u with dieeresis
+uplow \x00DD\x00FD 13456		# y with acute above
+uplow \x00DE\x00FE 2345			# letter thorn
+letter \x00DF 2346		# small sharp s
+uplow \x0174\x0175 2456 w with circumflex
+uplow \x0176\x0177 13456 # y with circumflex
+uplow \x0178\x00ff 13456 # y with diaeresis
+uplow \x1ef2\x1ef3 13456 # y with grave
+
+largesign \x00C0 4-1      [C0] upper a grave
+largesign \x00E0   4-1      [E0] lower a grave
+
+largesign \x00C1 4-1      [C1] upper a acute
+largesign \x00E1   4-1      [E1] lower a acute
+
+largesign \x00C2 4-1      [C2] upper a circumflex
+largesign \x00E2   4-1      [E2] lower a circumflex
+
+largesign \x00C3 4-1      [C3] upper a tilde
+largesign \x00E3   4-1      [E3] lower a tilde
+
+largesign \x00C4 4-1      [C4] upper a dieresis
+largesign \x00E4   4-1      [E4] lower a dieresis
+
+largesign \x00C5 4-1      [C5] upper a ring
+largesign \x00E5   4-1      [E5] lower a ring
+
+largesign \x00C6 1-15     [C6] upper ae
+largesign \x00E6   1-15			[E6] lower ae
+
+largesign \x00C7 4-14     [C7] upper c cedilla
+largesign \x00E7   4-14     [E7] lower c cedilla
+
+largesign \x00C8 4-15     [C8] upper e grave
+largesign \x00E8   4-15     [E8] lower e grave
+
+largesign \x00C9 4-15     [C9] upper e acute
+largesign \x00E9   4-15     [E9] lower e acute
+
+largesign \x00CA 4-15     [CA] upper e circumflex
+largesign \x00EA   4-15     [EA] lower e circumflex
+
+largesign \x00CB 4-15     [CB] upper e dieresis
+largesign \x00EB   4-15     [EB] lower e dieresis
+
+largesign \x00CC 4-24     [CC] upper i grave
+largesign \x00EC   4-24     [EC] lower i grave
+
+largesign \x00CD 4-24     [CD] upper i acute
+largesign \x00ED   4-24     [ED] lower i acute
+
+largesign \x00CE 4-24     [CE] upper i circumflex
+largesign \x00EE   4-24     [EE] lower i circumflex
+
+largesign \x00CF 4-24     [CF] upper i dieresis
+largesign \x00EF   4-24     [EF] lower i dieresis
+
+largesign \x00D0 4-15     [D0] upper eth
+largesign \x00F0   4-15     [F0] lower eth
+
+largesign \x00D1 4-1345   [D1] upper n tilde
+largesign \x00F1   4-1345   [F1] lower n tilde
+
+largesign \x00D2 4-135    [D2] upper o grave
+largesign \x00F2   4-135    [F2] lower o grave
+
+largesign \x00D3 4-135    [D3] upper o acute
+largesign \x00F3   4-135    [F3] lower o acute
+
+largesign \x00D4 4-135    [D4] upper o circumflex
+largesign \x00F4   4-135    [F4] lower o circumflex
+
+largesign \x00D5 4-135    [D5] upper o tilde
+largesign \x00F5   4-135    [F5] lower o tilde
+
+largesign \x00D6 4-135    [D6] upper o dieresis
+largesign \x00F6   4-135			[F6] lower o dieresis
+
+largesign \x00D8 4-135    [D8] upper o slash
+largesign \x00f8   4-135    [F8] lower o slash
+
+largesign \x00D9 4-136    [D9] upper u grave
+largesign \x00F9   4-136    [F9] lower u grave
+
+largesign \x00DA 4-136    [DA] upper u acute
+largesign \x00FA   4-136    [FA] lower u acute
+
+largesign \x00DB 4-136    [DB] upper u circumflex
+largesign \x00FB   4-136    [FB] lower u circumflex
+
+largesign \x00DC 4-136    [DC] upper u dieresis
+largesign \x00FC   4-136    [FC] lower u dieresis
+
+largesign \x00DD 4-13456  [DD] upper y acute
+largesign \x00FD   4-13456  [FD] lower y acute
+
+largesign \x00DE 4-2345   [DE] upper t horn
+largesign \x00FE   4-2345   [FE] lower t horn
+
+largesign \x00DF 234-234 (DF) lower ss
+
+largesign \x0174 4-2456 lower w circumflex
+largesign \x0175 4-2456 upper w circumflex
+
+largesign \x0176 4-13456 upper y circumflex
+largesign \x0177 4-13456 lower y circumflex
+
+largesign \x0178 4-13456 upper y with dieresis
+largesign \x00FF 4-13456 lower y with dieresis
+
+largesign \x1EF2 4-13456 upper y with grave
+largesign \x1EF3 4-13456 lower y with grave
+
+# punctuation
+prepunc ( 2356
+postpunc ) 2356
+prepunc " 236
+postpunc " 356
+prepunc ' 6-236
+postpunc ' 356-3
+word 'em = 
+word 'tis =
+word 'twas =
+begnum # 3456-4 print number sign before number
+midnum , 2
+postpunc , 2
+decpoint . 46
+midnum - 36
+hyphen - 36
+#capsnocont
+postpunc . 256
+postpunc ; 23
+midnum : 25
+postpunc : 25
+postpunc ! 235
+midnum / 34
+always / 456-34
+always < 5-13
+always > 46-2
+postpunc ? 236
+endnum % 4-356
+midnum ^ 45
+always ^ 456-126
+always ~ 4-156
+always & 456-12346
+midnum * 4-16
+always * 35-35
+always [ 456-12356
+always ] 456-23456
+always { 46-12356
+always } 46-23456
+prepunc ` 6-236
+always @ 4-1
+always \\ 456-16
+always | 456-1256
+repeated \s 0
+repeated \t 0
+always \s-\s 36-36
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+always $ 256-3456
+
+# special character sequences
+compbrl :// URLs
+compbrl www.
+compbrl .com
+compbrl .edu
+compbrl .gov
+compbrl .mil
+compbrl .net
+compbrl .org
+# include countries.cti
+compbrl .doc
+compbrl .htm
+compbrl .html
+compbrl .tex
+compbrl .txt
+compbrl .gif
+compbrl .jpg
+compbrl .png
+compbrl .wav
+compbrl .tar
+compbrl .zip
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb
new file mode 100644
index 0000000..1200175
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb
@@ -0,0 +1,1074 @@
+# liblouis: English, U.S. Grade 2 (ABAE) table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
+#  The BRLTTY Team
+#
+#  Copyright (C) 2004, 2005, 2006
+#  ViewPlus Technologies, Inc. www.viewplus.com
+#  and
+#  JJB Software, Inc. www.jjb-software.com
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License 
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+# 
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public 
+#  License along with this program; see the file COPYING.  If not, write 
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by John J. Boyer john.boyer@jjb-software.com
+
+include en-us-g1.ctb
+
+# Braille indicators specific to Grade 2
+letsign 56
+noletsignafter .
+noletsignafter '
+multind 56-6 letsign capsign
+
+# Contractions beginning with the letter a
+largesign a 1
+largesign A 1
+always aar 1-345 Aaron
+always aa 1-1 back-translation: maasai
+word about 1-12
+word thereabouts 5-2346-1-12-234
+word runabout 1235-136-1345-1-12
+contraction ab
+sufword above 1-12-1236
+contraction abv
+word according 1-14
+contraction ac
+word accordingly 1-14-123-13456
+contraction acly
+word across 1-14-1235
+contraction acr
+always aed =
+always aer = Rosenlaer
+begword aforem 1-123456-15-134 aforementioned 
+word aforesaid 1-123456-15-234-145
+always afr 1-124-1235
+sufword after 1-124
+contraction af
+always afternoon 1-124-1345 afternoons
+contraction afn
+sufword afterward 1-124-2456
+contraction afw
+word again 1-1245
+contraction ag
+word against 1-1245-34
+always agery =
+midendword ally 6-13456
+word almost 1-123-134
+contraction alm
+word already 1-123-1235
+contraction alr
+word also 1-123
+contraction al
+word although 1-123-1456
+word altogether 1-123-2345
+contraction alt
+word always 1-123-2456
+contraction alw
+midendword ance 46-15
+largesign and 12346
+always andar 12346-345 staodard
+midendword anda 12346-1 panda
+midword angh = Shanghai
+begword anted =
+always anterior 1-1345-2345-23456-24-135-1235
+begword anter =
+begword aqued = aqueduct
+always ar 345
+word aright 1-5-1235
+word as 1356
+contraction as
+always athe 1-2346 back-translation: lathe
+midendword ation 6-1345
+midendword aunder 1-136-1345-145-12456 saunders
+begword auto = autofocus
+syllable away =
+
+# the letter b
+midword bb 23
+midendword bble 12-3456
+lowword be 23
+begword be 23
+begword bea 12-2
+always beu = Beulah
+always bear 12-15-345
+begword beatif 23-1-2345-24-124
+begword beatit 23-1-2345-24-2345
+begword beatr 23-1-2345-1235 Beatrice
+always beck 12-15-14-13
+always bed 12-1246
+begword beda 23-145-1 bedazzle
+begword bede 23-145-15 bedevil
+word bede 12-1246-15 bede (a name)
+begword bedi 23-145-24 bedizzened
+word bee 12-15-15
+begword bee 12-15-15
+always been 12-15-26
+always beer 12-15-12456
+word beg =
+begword begg 12-15-2356
+word begs =
+begword bei = beijing
+sufword being 23-346
+sufword belch 12-15-123-16
+begword beld = Beldon
+begword belf = belfry, belfast
+begword belg = Belgium
+begword belk = Belkin
+always bell =
+begword belm = Belmont
+always belt =
+begword belw = belwether
+always ben 12-26
+begword beni 12-26-24
+begword benif 23-1345-24-124 benificient
+sufword benign 23-1345-24-1245-1345 benignity
+begword benov 23-1345-135-1236 benovolent
+begword benu 23-1345-136 benumbed
+begword ber 12-12456
+begword bera 23-1235-1 berating
+begword bere 23-1235-15 bereft
+begword berea 23-1235-2 bereaved
+always beriberi 12-12456-24-12-12456-24
+begword beri 23-1235-24 beribboned
+always best 12-15-34
+sufword bestow 23-34-246
+syllable beth 12-15-1456 Bethany
+always bethe 12-15-2346 Bethel (Hans) Bethe
+always bets =
+always bett =
+sufword bev = bevies
+begword bever 12-5-15 Beverly beverage
+always bio =
+midendword bious 12-24-1256-234 dubious
+always bottlen = bottlenosed
+joinword by 356
+word because 23-14
+word bec =
+sufword before 23-124
+word behind 23-125
+word behring 12-15-125-1235-346
+word bel =
+begword beln = Belnick
+word below 23-123
+word beneath 23-1345
+sufword beside 23-234
+sufword bess = Bessie
+word between 23-2345
+word bet =
+word beyond 23-13456
+word bey =
+always bleu =
+midendword ble 3456
+midendword bleau 12-123-2-136 tableau
+syllable bleed 12-123-15-1246 nosebleed
+always bless 12-46-234 joblessness
+word blind 12-123
+contraction bl
+begword blindf 12-123-124 blindfold
+word blindly 12-123-123-13456
+word blindness 12-123-56-234
+sufword blinds 12-123-234 blindsided
+always boat = boathook
+always braille 12-1235-123
+contraction brl
+word but 12
+
+# the letter c
+midword cch 14-16
+always chs 16-234 dachshund
+always chloro 16-123-135-1235-135
+begword cofac = cofactor
+always cofound 14-135-124-46-145
+begword com 36
+sufword common 36-134-135-1345 commonest
+begword con 25
+sufword conceive 25-14-1236
+sufword conceiving 25-14-1236-1245
+always conch 14-135-1345-16
+always cone 14-5-135
+word cons 14-135-1345-234
+sufword conundrum = 
+sufword could 14-145
+word could've 14-145-3-1236-15
+contraction cd
+always cred 14-1235-1246 incredulous
+midword cc 25
+word can 14
+always cannot 456-14
+always ch 16
+syllable chand 16-12346 merchandise
+always character 5-16
+always chemo 16-15-134-135
+word child 16
+prfword children 16-1345
+sufword clever 14-123-5-15 cleverest
+
+# the letter d
+always daredevil 145-345-15-145-15-1236-24-123
+always day 5-145
+always dday 145-5-145
+begword deact = deactivation
+begword deall = deallocate
+begword decarb 145-15-14-345-12
+always deceive 145-14-1236
+contraction dcv
+contraction dcvd
+contraction dcvr
+contraction dcvs
+always deceiving 145-14-1236-1245
+contraction dcvg
+always declare 145-14-123
+contraction dcl
+contraction dcld
+contraction dclr
+contraction dcls
+word declaring 145-14-123-1245
+contraction dclg
+begword deref = dereferencing
+begword dereg = deregulation
+midword dd 256
+begword dedic 145-1246-24-14 dedicated
+always dedu = nondeductible
+begword deno = denote
+always denom =
+begword denou 145-15-1345-1256 denounce
+begword denu = denunciation
+begword dera = derail
+begword deri 145-15-1235-24
+begword dero = derogatory
+begword dino 145-35-135 dinoflagellate
+begword dis 256
+word disc =
+word discs =
+always dish 145-24-146
+begword disha 256-125-1 dishabile
+begword dishear 256-125-15-345 disheartened
+begword disho 256-125-135 dishonor
+begword dishone 256-125-5-135 dishonest
+sufword disk =
+sufword dispirit 145-24-456-234 dispirited
+begword disul = disulfide
+word do 145
+syllable down 145-246-1345 facedown
+always edress = vinedresser
+syllable drum = kettledrum
+always edom =
+always reduc =
+always seduc =
+# syllable dun =
+
+# the letter e
+midword ea 2
+midword eabil = interchangeability
+always eable 15-1-3456
+endword eably = noticeably
+midendword eage = mileage
+midendword eager 2-1245-12456 meager
+always eally 15-6-13456
+midendword eance 15-46-15 vengeance
+midendword eand 15-12346 meander
+always eation 15-6-1345
+always ear 15-345
+always ed 1246
+begword edic = edict Benedict
+sufword edition 15-145-24-56-1345 editions
+syllable draw =
+word either 15-24
+contraction ei
+word en =
+always en 26
+always ename 15-5-1345
+sufword enamel 26-1-134-15-123 enameled
+midendword ence 56-15
+syllable neck = bottleneck
+midendword eness 15-56-234 closeness
+begword enor = enormous
+begword enou 15-1345-1256
+lowword enough 26
+word enough 26-1256-126
+begword enu 15-1345-136
+always er 12456
+begword era =
+word eras 12456-1-234
+begword erec = erect 
+begword ero 15-1235-135
+syllable room = storeroom
+begword eru = erupt
+always evert 15-1236-12456-2345
+always nevertheless 1345-5-15-2346-46-234
+always ever 5-15
+midendword evere 15-1236-12456-15 Everest
+always evered 15-1236-12456-1246
+word every 15
+
+# the letter f
+midword ff 235
+syllable ffold 235-135-123-145 scaffold
+always father 5-124
+always fein 124-15-35 Feingold
+always first 124-34
+always fever 124-15-1236-12456
+always ffor 124-123456
+largesign for 123456
+begword fora 123456-1 foramen
+always fore 123456-15
+begword forens 123456-26-234 forensic
+always forever 123456-5-15 forevermore
+syllable fold =
+syllable foot =
+word from 124
+word friend 124-1235
+word friends 124-1235-234
+word friendless 124-1235-46-234
+sufword friendship 124-1235-146-24-1234
+sufword friendl 124-1235-123
+contraction fr
+always fruity =
+midendword ful 56-123
+always funder 124-136-1345-145-12456
+
+# the letter g
+begword geo = geoengineering
+sufword geoff 1245-15-12356-124 Geoffrey
+midword gg 2356
+always gh 126
+endword gham = Langham
+midendword ghill = dunghill
+always ghz = (gigahertz)
+sufword gnome = gnomedb
+word go 1245
+sufword good 1245-145
+contraction gd
+always good-by 1245-145-36-12-13456
+syllable grad = leningrad
+sufword great 1245-1235-2345
+contraction grt
+
+# the letter h
+always had 456-125
+always hadd 125-1-256 haddock
+sufword hade = hadean 
+syllable hand 125-12346
+word have 125
+syllable hawk =
+syllable hawthorn 125-1-2456-1456-135-1235-1345
+syllable head 125-2-145
+syllable heart 125-15-345-2345
+always hedgerow 125-1246-1245-15-1235-246
+syllable herd 125-12456-145 goatherd
+always here 5-125
+always hereafter 5-125-1-124
+always hered 125-12456-1246
+always heren 125-12456-26
+midendword herence 125-12456-56-15 adherence
+always herer 125-12456-12456
+always heres 125-12456-15-234
+always heret 125-12456-15-2345
+word heretofore 5-125-2345-135-123456-15
+word herself 125-12456-124
+word him 125-134
+word His 6-236
+word hm 125-3-134
+sufword hmm =
+word himself 125-134-124
+contraction hmf
+lowword his 236
+syllable holm =
+syllable hood =
+syllable horn =
+syllable horse = horseradish
+syllable house 125-1256-234-15 
+syllable hydro =
+always hwh =
+
+# the letter i
+word I 24
+midendword iever 24-15-1236-12456
+word immediate 24-134-134
+contraction imm
+word immediately 24-134-134-123-13456
+contraction immly
+begword immuno = immunofluorescence
+lowword in 35
+word in =
+always in 35
+endword in' 35-3
+begword incon 35-14-135-1345 incongruous
+midendword iness 24-56-234
+midendword ing 346
+midword inga 35-1245-1 nightingale
+always ingar 35-1245-345 Weingarten
+midendword ingent 346-26-2345 stringent
+midword ingenc 346-26-14 contingency
+midword ingen 35-1245-26 palingenesis (new birth)
+midword ingi 35-1245-24 meningitis
+midendword inging 346-346 bringing
+joinword into 35-235
+always isinglass 24-234-35-1245-123-1-234-234
+always isomer 24-234-135-134-12456
+word it 1346
+word it's 1346-3-234
+word it'd 1346-3-145
+word it'll 1346-3-123-123
+word its 1346-234
+contraction xs
+word itself 1346-124
+contraction xf
+midendword ity 56-13456
+
+# the letter j
+word just 245
+
+# the letter k
+always knot = knothole
+always know 5-13
+word knowledge 13
+
+# the letter l
+always \s-\shis 36-36-125-24-234
+always \s-\swas 36-36-2456-1-234
+word housed 125-1256-234-1246
+sufword land 123-12346 landowner
+midendword less 46-234
+sufword letter 123-1235
+contraction lr
+sufword newsletter 1345-15-2456-234-123-1235
+word unlettered 136-1345-123-1235-1246
+word like 123
+always lineage 123-35-2-1245-15
+sufword little 123-123
+contraction ll
+sufword lone 123-5-135 lonely
+always loner 123-135-1345-12456
+always lord 5-123
+
+# the letter m
+always maha =
+always many 456-134
+begword mccon 134-14-25
+begword mc =
+always medic 134-1246-24-14 medicare
+midendword ment 56-2345
+midword menth 134-26-1456 Blumenthal
+always mideast 134-24-145-15-1-34
+word milling 134-24-123-123-346
+always minestrone 134-35-15-34-1235-135-1345-15
+always mishap =
+sufword mishear 134-24-234-125-15-345 misheard
+begword missh 134-24-234-146 misshapen
+begword misst 134-24-234-34 missstep
+word mistook =
+begword mistran = mistranslation
+sufword mistreat 134-24-234-2345-1235-2-2345
+begword mistru = mistrust
+begword misty = mistyped
+word monetary 134-5-135-2345-345-13456
+always mongoose =
+word more 134
+always mother 5-134
+always much 134-16
+word must 134-34
+word mustn 134-34-1345
+word musty 134-34-13456
+begword myo = myofibroblasts
+word myself 134-13456-124
+contraction myf
+
+# the letter n
+always name 5-1345
+midendword nament 1345-1-56-2345 tournament
+always namese =
+word near-by 1345-15-345-36-12-13456
+prfword necessary 1345-15-14 unnecessary
+contraction nec
+word neither 1345-15-24
+contraction nei
+midendword ness 56-234
+always news = newsstand
+syllable nomad = seminomadic
+always nodded 1345-135-256-1246 for back-translation
+begword nonen 1345-135-1345-26 nonentity
+begword noness = nonessential
+word nonetheless 1345-5-135-2346-46-234
+always noneq =
+always nonex =
+begword nong = nongraphical
+word noone 1345-135-5-135
+begword nose = nosedive
+word nosed 1345-135-234-1246
+word not 1345
+word noways =
+word nowhere 1345-135-5-156
+
+# the letter o
+word O 135
+midword oed = Schroeder
+always oen = Phoenix
+midendword oence 135-26-14-15 electroencephalogram
+largesign of 12356
+midendword ofar 135-124-345 insofar
+midendword ofa 12356-1 back-translation: sofa
+midword ofor 135-123456
+midendword onea = Hasmonean
+always onesi =
+midendword oness 135-56-234
+midendword oneer 135-1345-15-12456
+midendword oned 135-1345-1246
+always one 5-135
+always oneal = peritoneal
+midendword oneless 5-135-46-234 tonelessly
+midendword onel = salmonella colonel
+always onem = phoneme
+midendword onement 5-135-56-2345 atonement
+midendword onent 135-1345-26-2345
+midendword oneous 135-1345-15-1256-234 erroneous
+always oner 135-1345-12456
+midendword onese = Cantonese,
+word oneself 5-135-124
+midendword oness 135-56-234 Deaconess
+midendword onet = phonetics bayonet
+endword onez = Ordonez
+midendword ong 56-1245
+always oon = sooner
+always osome =
+word ou =
+always ou 1256
+midendword ound 46-145
+midendword ount 46-2345
+always ourselves 1256-1235-1236-234
+word out 1256
+always ought 5-1256
+always ow 246
+word o'clock 135-3-14
+
+# the letter p
+prfword paid 1234-145
+contraction pd
+always part 5-1234
+begword parta 1234-345-2345-1 partake
+begword parthe 1234-345-2346 parthenon
+begword parth 1234-345-1456 parthian
+begword parto 1234-345-2345-135
+begword parthen 1234-345-2346-1345 parthenon parthenogenesis
+word people 1234
+always perceive 1234-12456-14-1236
+always perceiving 1234-12456-14-1236-1245
+always perhaps 1234-12456-125
+begword photo =
+always pher 1234-125-12456 cyphered
+always pineapple 1234-35-15-1-1234-1234-123-15
+syllable portion 1234-135-1235-56-1345
+syllable port = porthole
+begword potho = pothole pothook
+begword pre =
+always preach 1234-1235-2-16
+sufword predator 1234-1235-1246-1-2345-135-1235
+always prof =
+word prof. 1234-1235-12356-256
+begword proff 1234-1235-12356-124 proffer
+always profit 1234-1235-12356-24-2345
+
+# the letter q
+always quick 12345-13
+contraction qk
+word quite 12345
+always question 5-12345
+
+# the letter r
+sufword rafter 1235-1-124-2345-12456
+word rather 1235
+sufword raw = rawhide
+begword reab = reabsorbed
+always reac =
+always reach 1235-2-16
+begword readj = readjust
+begword readm = readmit
+begword reaff 1235-15-1-235
+sufword reagent 1235-15-1-1245-26-2345
+begword reagg 1235-15-1-2356 reaggregated
+begword realig = realign
+begword rean = reanalyze, reanimate
+begword reapp = reappear
+begword reass 1235-15-1-234-234
+begword reatt = reattach
+begword reau = reauthorization
+begword reaw = reawaken
+begword rede =
+begword redi =
+word redo =
+word redone 1235-15-145-5-135
+begword redou 1235-15-145-1256 redouble redoubt 
+always redu =
+always receive 1235-14-1236
+contraction rcv
+contraction rcvd
+contraction rcvr
+contraction rcvs
+always receiving 1235-14-1236-1245
+contraction rcvg
+begword redis = redistribute
+begword redr = redress
+word reichstag 1235-15-24-16-234-2345-1-1245
+always rejoice 1235-245-14
+contraction rjc
+contraction rjcd
+contraction rjcr
+contraction rjcs
+always rejoicing 1235-245-14-1245
+contraction rjcg
+sufword renaming 1235-15-1345-1-134-346 renamings
+begword rene =
+begword renom = renominate
+begword renou 1235-15-1345-1256 renounce
+sufword renown 1235-15-1345-246-1345 renowned
+begword renu = renunciation
+begword rera = reradiate
+sufword reread 1235-15-1235-2-145
+sufword rerun = reruns
+always rever 1235-15-1236-12456
+always reveren 1235-5-15-26 irreverent
+always reverence 1235-5-15-56-15 irreverence
+sufword reverie 1235-5-15-24-15
+begword ribof =
+begword ribon =
+always right 5-1235
+
+# the letter s
+word said 234-145
+contraction sd
+syllable screw = screwhole
+sufword sedan 234-1246-1-1345
+begword seda =
+always sedu =
+always sent 234-26-2345 sentimental
+always sever 234-15-1236-12456 perseverance 
+always several 234-5-15-1-123 severally
+word shall 146
+word sh =
+always sh 146
+always shaus = In German names
+sufword should 146-145
+always shoulder 146-1256-123-145-12456
+word singapore 234-346-1-1234-135-1235-15 
+midendword sion 46-1345
+midword stak 234-2345-1-13
+midendword stion 234-56-1345
+word so 234
+always some 5-234
+midendword somed 234-135-134-1246 ransomed
+always somer 234-135-134-12456 somersault 
+always spirit 456-234
+midendword ssword 234-234-45-2456 crossword 
+partword st 34
+always sth 234-1456
+always sthe 234-2346
+word still 34
+always stime 234-5-2345
+midendword stown 234-2345-246-1345 Pickstown
+begword styro 34-13456-1235-135 styrofoam
+always ssh =
+always sst =
+word such 234-16
+word sch =
+always sword =
+
+# the letter t
+word th =
+always th 1456
+word that 2345
+word this 1456
+word thyself 1456-13456-124
+word tiddledywinks 2345-24-256-123-15-145-13456-2456-35-13-234
+always tnam =
+joinword to 235
+word today 2345-145
+contraction td
+word tomorrow 2345-134
+contraction tm
+word tonight 2345-1345
+contraction tn
+always turtledove =
+always thead 2345-125-2-145
+always theast 1456-15-1-34
+largesign the 2346
+always thea 2346-1 theater
+word themselves 2346-134-1236-234
+always their 456-2346
+always thence 1456-56-15
+always there 5-2346
+midendword thereal 2346-1235-2-123 ethereal
+always thereen 2346-1235-15-26 smithereens
+word thereupon 5-2346-45-136
+always thereafter 5-2346-1-124
+always thered 2346-1235-1246
+always therer 2346-1235-12456
+always theres 2346-1235-15-234 theresa therese 
+midendword tion 56-1345
+always time 5-2345
+midendword timed 1245-24-134-1246
+midendword timer 2345-24-134-12456
+midendword timet = altimeter
+word these 45-2346
+always through 5-1456
+always together 2345-1245-1235
+contraction tgr
+word those 45-1456
+begword trans = transtype
+
+# the letter u
+begword un = unameliorated
+begword unble = unblemished
+begword uncon = uncongenial
+begword undis = undisturbed
+begword uneas = unease
+begword uneat = uneaten
+sufword unful = unfulfilled
+begword unmen 136-1345-134-26 unmentioned
+begword unpre = unpredictable
+word upon 45-136 Dupont
+word us 136
+always under 5-136
+word unsaid 136-1345-234-145
+
+# the letter v
+begword vaing 1236-1-35-1245 vainglory
+word very 1236
+begword vice = viceroy
+
+# the letter w
+lowword was 356
+word wh =
+always wh 156
+midendword whart 2456-125-345-2345 Newhart
+word which 156
+word will 2456
+lowword were 2356
+lowword Were 6-2356 for back-translation
+always where 5-156
+word whereupon 5-156-45-136
+word wherever 156-12456-5-15
+largesign with 23456
+always word 45-2456
+word whose 45-156
+always work 5-2456
+sufword would 2456-145
+word would've 2456-145-3-1236-15
+contraction wd
+always world 456-2456
+
+# the letter x
+
+# the letter y
+word you 13456
+word you'd 13456-3-145
+word you'll 13456-3-123-123
+word you're 13456-3-1235-15
+word you've 13456-3-1236-15
+always young 5-13456
+word your 13456-1235
+contraction yr
+word yours 13456-1235-234
+contraction yrs
+word yourself 13456-1235-124
+contraction yrf
+word yourselves 13456-1235-1236-234
+contraction yrvs
+
+# the letter z
+
+# Syst`eme International Prefixes
+begword proto =
+begword yotta 13456-135-2345-2345-1 10^24
+begword zetta 1356-15-2345-2345-1 10^21
+# begword exa 15-1346-1 10^18
+begword peta 1234-15-2345-1 10^15
+begword tera 2345-12456-1 10^12
+begword giga 1245-24-1245-1 10^9
+begword mega 134-15-1245-1 10^6
+begword kilo 13-24-123-135 10^3
+begword hecto 125-15-14-2345-135 10^2
+begword deca 145-15-14-1 10^1
+begword deci 145-15-14-24 10^-1
+begword centi 14-26-2345-24 10^-2
+begword milli 134-24-123-123-24 10^-3
+begword micro 134-24-14-1235-135 10^-6
+begword nano 1345-1-1345-135 10^-9
+begword pico 1234-24-14-135 10^-12
+begword femto 124-15-134-2345-135 10^-15
+begword atto 1-2345-2345-135 10^-18
+begword zepto 1356-15-1234-2345-135 10^-21
+begword yocto 13456-135-14-2345-135 10^-24
+begword anti =
+# begword endo 26-145-135 endow
+begword epi =
+begword extra =
+begword hyper 125-13456-1234-12456
+begword hypo =
+begword infra 35-124-1235-1
+begword inter 35-2345-12456
+begword intra 35-2345-1235-1
+begword iso =
+begword macro =
+begword meta =
+begword micro =
+begword mono =
+begword multi =
+begword patho 1234-1-1456-135
+begword peri 1234-12456-24
+begword poly =
+begword post 1234-135-34
+begword pre =
+begword pseudo =
+begword retro =
+# begword semi = seminar
+begword sub =
+begword super 234-136-1234-12456
+# begword tetra =
+begword trans =
+begword ultra =
+# begword uni =
+
+# other prefixes
+begword electro =
+begword neuro =
+begword psycho 1234-234-13456-16-135
+endword in' =
+endword 'd 3-145 back-translation: = doesn't work
+endword 'm 3-134
+endword 're 3-1235-15
+endword 've 3-1236-15
+endword 'll 3-123-123
+endword 's 3-234
+endword 't 3-2345
+word 'em = 
+always -com 36-14-135-134
+endword -by =
+endword -to = pointed-to resource
+
+word abalone =
+sufword abecedarian 1-12-15-14-15-145-345-24-1-1345
+midendword aean =
+begword aen =
+begword aftere 1-124-2345-12456-15 aftereffect
+begword afteri 1-124-2345-12456-24 afterimage
+sufword airedale =
+sufword anemone = 
+sufword anteat =
+word antigone =
+word baloney =
+sufword bandog =
+sufword battledo = battledor battledome
+always bedragg 23-145-1235-1-2356
+sufword beguine 12-15-1245-136-35-15 proper name
+sufword belittle 23-123-123
+always benares 23-1345-345-15-234
+begword benev 23-1345-15-1236
+begword bene 12-26-15
+always bering 12-12456-346
+always bezel =
+syllable nomial =
+always boer =
+always burlingam =
+word caen =
+midendword lingian 123-346-24-1-1345
+endword reagh 1235-2-126 castlereagh
+sufword cation 14-1-2345-24-135-1345
+always chatham 16-1-2345-125-1-134
+always cicerone 14-24-14-12456-135-1345-15
+always blenz 12-123-26-1356
+always enzym 26-1356-13456-134
+always coname 14-135-5-1345
+word conally 14-135-1345-6-13456
+word conatus =
+word conestoga 25-15-34-135-1245-1
+word coney =
+word conidium =
+endword zione =
+word cony =
+sufword deaconess 145-2-14-135-56-234
+begword denation 145-15-1345-6-1345
+syllable natur =
+always derogate 145-12456-135-1245-1-2345-15
+always dinghy 145-35-126-13456
+always  doggone 145-135-1245-1245-5-135
+always donee =
+word donegal =
+begword equidis = equidistant
+midendword thereally 2346-1235-15-6-13456 ethereally
+midendword enook =
+always eversion 15-1236-12456-46-1345
+sufword falconet =
+sufword feringhee 124-12456-35-126-15-15
+begword fired = firedamp firedrake
+always francene 124-1235-1-1345-14-26-15
+contraction frs
+sufword froward 124-1235-135-2456-345-145
+sufword garderobe 1245-345-145-15-1235-135-12-15
+midendword ometer 135-134-15-2345-12456 gasometer
+always gastight 1245-1-234-2345-24-126-2345
+word goering 1245-135-15-1235-346
+word Goodwill = with a cap
+word Goody = with a cap
+word Goodyear 1245-135-135-145-13456-15-345
+always genealog 1245-26-15-1-123-135-1245
+syllable herd = goatherd
+begword conan =
+always thold = berthold
+always equino =
+syllable thill = anthill
+word conch 14-135-1345-16
+word conches 14-135-1345-16-15-234
+syllable urinary 136-1235-35-345-13456
+always goddam =
+always oering  135-15-1235-346
+always handsomer 125-12346-5-234-1235
+always heartsease 125-15-345-2345-234-15-1-234-15
+always hereford 125-12456-15-123456-145
+always hereupon 5-125-45-136
+endword sheimer 234-125-15-24-134-12456
+always hermione 125-12456-134-24-135-1345-15
+always hoity =
+always toity =
+midendword blence 12-123-56-15
+midendword blend 12-123-26-145
+syllable rubber 1235-136-23-12456 indiarubber
+begword indist 35-145-24-234-2345 indistinct
+begword inerad 35-15-1235-1-145 ineradicable
+begword ingl 35-1245-123 inglewood inglenook
+word iredell =
+begword irre =
+word jaconet =
+word jehad =
+word jihad = 
+word konev =
+contraction lrs
+word limeade =
+always lineag 123-35-2-1245
+contraction llr
+always littleton = proper noun
+always littlejohn = surname
+always letterman = surname
+always oweed 135-2456-15-1246 locoweed
+always lonesome 123-5-135-5-234
+always maenad =
+always menhaden 134-26-125-1-145-26
+midendword encephal 26-14-15-1234-125-1-123
+sufword misoneism =
+sufword misterm 134-24-234-2345-12456-134
+sufword mistitl =
+always misword 134-24-234-45-2456
+word more'n =
+word nonesuch 1345-5-135-234-16
+word noway = change entry of noways
+word nowise =
+sufword nuthatch 1345-136-2345-125-1-2345-16
+begword oed = oedipus
+always oneida =
+word orangeade =
+begword out 1256-2345 outhaul
+endword full = overfull 
+begword oleag = oleaginous
+always peritoneum 1234-12456-24-2345-135-1345-15-136-134
+always peroneal 1234-12456-135-1345-2-123
+always persephone 1234-12456-234-15-1234-125-135-1345-15
+begword pinedr 1234-35-15-145-1235 pinedrop
+syllable root = pokeroot snakeroot
+always poleax = poleax
+sufword potherb 1234-123-2345-125-12456-12
+sufword potsherd 1234-135-2345-146-12456-145
+syllable hunter 125-136-1345-2345-12456 pothunter
+always praenom =
+always predecess 1234-1235-1246-15-14-15-234-234
+always predicat 1234-1235-1246-24-14-1-2345
+always prounion =
+endword  edelic = psychedelic
+begword reaffor 1235-15-1-125-123456 reafforestation
+begword reappor = reapportion
+begword reavow  1235-15-1-1236-246
+begword redac = redact
+begword rededic 1235-15-145-1246-24-14 rededicate
+always redingote 1235-1246-346-135-2345-15
+begword renav = renavigated
+always renegad 1235-26-15-1245-1-145
+always rerefin 1235-15-1235-15-124-35
+begword resth = restharrow
+endword flery = riflery
+begword roped = ropedance
+always roustabout 1235-1256-34-1-12
+word sadowa =
+always scattergood 234-14-1-2345-2345-12456-1245-145
+word sever 234-5-15
+word severs 234-5-15-234
+word severed 234-5-15-1246
+word severing 234-5-15-346
+always severn 234-5-15-1345
+midword sever 234-15-1236-12456 perseverance 
+word several 234-5-15-1-123 severally
+always shofar 146-12356-345
+always shoshone 146-135-146-135-1345-15
+begword skeda = skedaddle
+always smitheren 234-134-24-2346-1235-26 proper name
+endword ouno = radiouno
+always sparerib 234-1234-345-15-1235-14-12
+always speakeas 234-1234-2-13-15-1-234
+begword spiken = spikenard
+syllable hound 125-46-145 loghound 
+always stingar 34-346-345
+always owork 135-5-2456 cowork stuccowork
+begword cowr = cowrote
+endword enaed 15-1345-1-1246 subpoenaed 
+begword threenod 1456-1235-15-15-1345-135-145 threenode
+always tranship 2345-1235-1-1345-146-24-1234
+begword trinar 2345-1235-24-1345-234 trinary trinaries
+always turnabout 2345-136-1235-1345-1-12
+always dledee =
+always dledum = tweedledee and tweedledum
+always twould 2345-2456-145
+begword unblea 136-1345-12-123-2 unbleach?
+begword unbless 136-1345-12-46-234
+begword underog =
+begword underiv =
+always vicenar 1236-24-14-26-345
+sufword violone =
+sufword wakerif =
+always wenceslaus 2456-26-14-15-234-123-1-136-234
+word whereabouts 5-156-1-12-234
+begword wired = wiredance
+always wiseacr =
+always you'n 13456-1256-3-1345
+always zingaro  1356-346-345-135
+always zwinglian 1356-2456-346-123-24-1-1345
+sufword thorn 1456-135-1235-1345
+word hearths 125-15-345-1456-234
+word hearth 125-15-345-1456
+always  \s\x2013\s 36-36 # 8211  en dash
+always \s\x2014\s 36-36 # em dash
+# nobreak 6-46-56-e,6-46-56
+
+# Problems handled with context
+context _$l["."]$l @256 U.S.
+context _$d["a"] @56-1
+context _$d["A"] @56-1
+
+# problems handled with multipass opcodes
+pass2 @36-36-36 @36-36
+pass2 @6-236-3456 @3-3456
+pass2 $s1-10 @0
+pass2 @6-56 @56-6
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb
new file mode 100644
index 0000000..7bf8d36
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb
@@ -0,0 +1,194 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - English (Canada)
+# Dave Mielke <dave@mielke.cc>
+
+# This text table implements North American style English braille, the
+# additional letters of the French, German, and Italian alphabets, and
+# easy-to-remember representations for many common extra symbols.
+
+# generated by ttbtest
+letter \x0001 178		START OF HEADING
+letter \x0002 1278		START OF TEXT
+letter \x0003 1478		END OF TEXT
+letter \x0004 14578		END OF TRANSMISSION
+letter \x0005 1578		ENQUIRY
+letter \x0006 12478		ACKNOWLEDGE
+letter \x0007 124578		BELL
+letter \x0008 12578		BACKSPACE
+space \t 2478		CHARACTER TABULATION
+space \n 24578		LINE FEED (LF)
+space \v 1378		LINE TABULATION
+space \f 12378		FORM FEED (FF)
+space \r 13478		CARRIAGE RETURN (CR)
+letter \x000e 134578		SHIFT OUT
+letter \x000f 13578		SHIFT IN
+letter \x0010 123478		DATA LINK ESCAPE
+letter \x0011 1234578		DEVICE CONTROL ONE
+letter \x0012 123578		DEVICE CONTROL TWO
+letter \x0013 23478		DEVICE CONTROL THREE
+letter \x0014 234578		DEVICE CONTROL FOUR
+letter \x0015 13678		NEGATIVE ACKNOWLEDGE
+letter \x0016 123678		SYNCHRONOUS IDLE
+letter \x0017 245678		END OF TRANSMISSION BLOCK
+letter \x0018 134678		CANCEL
+letter \x0019 1345678		END OF MEDIUM
+letter \x001a 135678		SUBSTITUTE
+space \s 0		SPACE
+punctuation ! 2346		EXCLAMATION MARK
+punctuation " 5		QUOTATION MARK
+punctuation # 3456		NUMBER SIGN
+punctuation $ 1246		DOLLAR SIGN
+punctuation % 146		PERCENT SIGN
+punctuation & 12346		AMPERSAND
+punctuation ' 3		APOSTROPHE
+punctuation ( 12356		LEFT PARENTHESIS
+punctuation ) 23456		RIGHT PARENTHESIS
+punctuation * 16		ASTERISK
+punctuation + 346		PLUS SIGN
+punctuation , 6		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 46		FULL STOP
+punctuation / 34		SOLIDUS
+include loweredDigits6Dots.uti
+punctuation : 156		COLON
+punctuation ; 56		SEMICOLON
+punctuation < 126		LESS-THAN SIGN
+punctuation = 123456		EQUALS SIGN
+punctuation > 345		GREATER-THAN SIGN
+punctuation ? 1456		QUESTION MARK
+punctuation @ 47		COMMERCIAL AT
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+punctuation [ 2467		LEFT SQUARE BRACKET
+punctuation \\ 12567		REVERSE SOLIDUS
+punctuation ] 124567		RIGHT SQUARE BRACKET
+punctuation ^ 457		CIRCUMFLEX ACCENT
+punctuation _ 456		LOW LINE
+punctuation ` 4		GRAVE ACCENT
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation { 246		LEFT CURLY BRACKET
+punctuation | 1256		VERTICAL LINE
+punctuation } 12456		RIGHT CURLY BRACKET
+punctuation ~ 45		TILDE
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a1 23467		INVERTED EXCLAMATION MARK
+punctuation \x00a2 12467		CENT SIGN
+punctuation \x00a3 34567		POUND SIGN
+punctuation \x00a5 134568		YEN SIGN
+punctuation \x00a6 1256		BROKEN BAR
+punctuation \x00a7 2348		SECTION SIGN
+punctuation \x00a9 148		COPYRIGHT SIGN
+punctuation \x00ab 123567		LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00ac 13458		NOT SIGN
+punctuation \x00ad 36		SOFT HYPHEN
+punctuation \x00ae 12358		REGISTERED SIGN
+punctuation \x00b0 1458		DEGREE SIGN
+punctuation \x00b1 3467		PLUS-MINUS SIGN
+lowercase \x00b5 1348		MICRO SIGN
+punctuation \x00b6 12348		PILCROW SIGN
+punctuation \x00b7 467		MIDDLE DOT
+punctuation \x00bb 234567		RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00bf 14567		INVERTED QUESTION MARK
+uppercase \x00c0 1235678		LATIN CAPITAL LETTER A WITH GRAVE
+uppercase \x00c2 1678		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c4 34578		LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase \x00c7 1234678		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00c8 234678		LATIN CAPITAL LETTER E WITH GRAVE
+uppercase \x00c9 12345678		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00ca 12678		LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uppercase \x00cb 124678		LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase \x00cc 3478		LATIN CAPITAL LETTER I WITH GRAVE
+uppercase \x00ce 14678		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00cf 1245678		LATIN CAPITAL LETTER I WITH DIAERESIS
+uppercase \x00d2 34678		LATIN CAPITAL LETTER O WITH GRAVE
+uppercase \x00d4 145678		LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase \x00d6 24678		LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation \x00d7 167		MULTIPLICATION SIGN
+uppercase \x00d9 2345678		LATIN CAPITAL LETTER U WITH GRAVE
+uppercase \x00db 15678		LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase \x00dc 125678		LATIN CAPITAL LETTER U WITH DIAERESIS
+lowercase \x00df 34568		LATIN SMALL LETTER SHARP S
+lowercase \x00e0 123568		LATIN SMALL LETTER A WITH GRAVE
+lowercase \x00e2 168		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e4 3458		LATIN SMALL LETTER A WITH DIAERESIS
+lowercase \x00e7 123468		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00e8 23468		LATIN SMALL LETTER E WITH GRAVE
+lowercase \x00e9 1234568		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00ea 1268		LATIN SMALL LETTER E WITH CIRCUMFLEX
+lowercase \x00eb 12468		LATIN SMALL LETTER E WITH DIAERESIS
+lowercase \x00ec 348		LATIN SMALL LETTER I WITH GRAVE
+lowercase \x00ee 1468		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00ef 124568		LATIN SMALL LETTER I WITH DIAERESIS
+lowercase \x00f2 3468		LATIN SMALL LETTER O WITH GRAVE
+lowercase \x00f4 14568		LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase \x00f6 2468		LATIN SMALL LETTER O WITH DIAERESIS
+punctuation \x00f7 347		DIVISION SIGN
+lowercase \x00f9 234568		LATIN SMALL LETTER U WITH GRAVE
+lowercase \x00fb 1568		LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase \x00fc 12568		LATIN SMALL LETTER U WITH DIAERESIS
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti
new file mode 100644
index 0000000..a1fa45f
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti
@@ -0,0 +1,203 @@
+#
+#  Copyright (C) 2010, 2011 by DocArch <http://www.docarch.be>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# ----------------------------------------------------------------------------------------------
+#  odt2braille - Braille authoring in OpenOffice.org.
+# ----------------------------------------------------------------------------------------------
+#
+#  Spanish Braille
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
+#
+# ----------------------------------------------------------------------------------------------
+
+# ==============================================================================================
+# SINGLE-CELL
+# ==============================================================================================
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+include latinLetterDef6Dots.uti
+
+uplow       \x00C1\x00E1  12356,12356         Áá                  LATIN CAPITAL LETTER A WITH ACUTE - LATIN SMALL LETTER A WITH ACUTE
+uplow       \x00C9\x00E9  2346,2346           Éé                  LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE
+uplow       \x00CD\x00ED  34,34               Íí                  LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE
+uplow       \x00D1\x00F1  12456,12456         Ññ                  LATIN CAPITAL LETTER N WITH TILDE - LATIN SMALL LETTER N WITH TILDE
+uplow       \x00D3\x00F3  346,346             Óó                  LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE
+uplow       \x00DA\x00FA  23456,23456         Úú                  LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE
+uplow       \x00DC\x00FC  1256,1256           Üü                  LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS
+
+space       \x0009        9                                       <control> HORIZONTAL TABULATION
+space       \x000A        0                                       <control> LINE FEED
+space       \x000C        0                                       <control> FORM FEED
+space       \x000D        0                                       <control> CARRIAGE RETURN
+space       \x001B        1b                                      <control> ESCAPE
+space       \x0020        0                                       SPACE
+punctuation \x0021        256                 !                   EXCLAMATION MARK
+punctuation \x0022        236                 "                   QUOTATION MARK
+punctuation \x0027        3                   '                   APOSTROPHE
+punctuation \x0028        126                 (                   LEFT PARENTHESIS
+punctuation \x0029        345                 )                   RIGHT PARENTHESIS
+sign        \x002A        35                  *                   ASTERISK
+math        \x002B        235                 +                   PLUS SIGN
+punctuation \x002C        2                   ,                   COMMA
+punctuation \x002D        36                  -                   HYPHEN-MINUS
+punctuation \x002E        3                   .                   FULL STOP
+include loweredDigits6Dots.uti
+punctuation \x003A        25                  :                   COLON
+punctuation \x003B        23                  ;                   SEMICOLON
+math        \x003C        246                 <                   LESS-THAN SIGN
+math        \x003D        2356                =                   EQUALS SIGN
+math        \x003E        135                 >                   GREATER-THAN SIGN
+punctuation \x003F        26                  ?                   QUESTION MARK
+punctuation \x005B        12356               [                   LEFT SQUARE BRACKET
+punctuation \x005D        23456               ]                   RIGHT SQUARE BRACKET
+sign        \x007C        456                 |                   VERTICAL LINE
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x0082        2                   ‚                   <control> BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA
+punctuation \x0084        236                 „                   <control> - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE
+punctuation \x0093        236                 “                   <control> SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE
+punctuation \x0094        236                 ”                   <control> CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX
+punctuation \x0096        36                  –                   <control> START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE
+space       \x00A0        a                                       NO-BREAK SPACE
+punctuation \x00A1        235                 ¡                   INVERTED EXCLAMATION MARK
+punctuation \x00AB        236                 «                   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00AD        36                  ­                   SOFT HYPHEN
+sign        \x00B8        2                   ¸                   CEDILLA
+punctuation \x00BB        236                 »                   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00BF        26                  ¿                   INVERTED QUESTION MARK
+math        \x00D7        236                 ×                   MULTIPLICATION SIGN
+math        \x00F7        256                 ÷                   DIVISION SIGN
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2000..206F  General Punctuation
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x2010        36                  ‐                   HYPHEN
+punctuation \x2011        36                  ‑                   NON-BREAKING HYPHEN
+punctuation \x2012        36                  ‒                   FIGURE DASH
+punctuation \x2013        36                  –                   EN DASH
+punctuation \x2018        236                 ‘                   LEFT SINGLE QUOTATION MARK
+punctuation \x2019        236                 ’                   RIGHT SINGLE QUOTATION MARK
+punctuation \x201A        236                 ‚                   SINGLE LOW-9 QUOTATION MARK
+punctuation \x201B        236                 ‛                   SINGLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation \x201C        236                 “                   LEFT DOUBLE QUOTATION MARK
+punctuation \x201D        236                 ”                   RIGHT DOUBLE QUOTATION MARK
+punctuation \x201E        236                 „                   DOUBLE LOW-9 QUOTATION MARK
+punctuation \x201F        236                 ‟                   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+punctuation \x2043        36                  ⁃                   HYPHEN BULLET
+
+
+# ==============================================================================================
+# MULTI-CELL
+# ==============================================================================================
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0000..007F  C0 Controls and Basic Latin
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0024        345-234             $                   DOLLAR SIGN
+math        \x0025        456-356             %                   PERCENT SIGN
+sign        \x0026        6-12346             &                   AMPERSAND
+math        \x002F        6-2                 /                   SOLIDUS
+sign        \x0040        56-16               @                   COMMERCIAL AT
+sign        \x005C        5-3                 \                   REVERSE SOLIDUS
+math        \x007B        5-123               {                   LEFT CURLY BRACKET
+math        \x007D        456-2               }                   RIGHT CURLY BRACKET
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
+# ----------------------------------------------------------------------------------------------
+
+sign        \x0080        456-15              €                   <control> - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS
+punctuation \x0085        3-3-3               …                   <control> NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS
+sign        \x0089        456-356-356         ‰                   <control> CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX
+punctuation \x0097        36-36               —                   <control> END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE
+sign        \x00A2        45-14               ¢                   CENT SIGN
+sign        \x00A3        5-2346              £                   POUND SIGN
+sign        \x00A5        456-13456           ¥                   YEN SIGN
+sign        \x00A9        126-46-14-345       ©                   COPYRIGHT SIGN
+sign        \x00AA        56-16               ª                   FEMININE ORDINAL INDICATOR
+sign        \x00AE        126-46-1235-345     ®                   REGISTERED SIGN
+math        \x00B1        235-25-36           ±                   PLUS-MINUS SIGN
+sign        \x00B2        16-3456-12          ²                   SUPERSCRIPT TWO
+sign        \x00B3        16-3456-14          ³                   SUPERSCRIPT THREE
+sign        \x00B5        4-134               µ                   MICRO SIGN
+math        \x00BC        1456-2-145          ¼                   VULGAR FRACTION ONE QUARTER
+math        \x00BD        1456-2-12           ½                   VULGAR FRACTION ONE HALF
+math        \x00BE        1456-25-145         ¾                   VULGAR FRACTION THREE QUARTERS
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 0370..03FF  Greek and Coptic
+# ----------------------------------------------------------------------------------------------
+
+lowercase   \x03B1        4-1                 α                   GREEK SMALL LETTER ALPHA
+lowercase   \x03B2        4-12                β                   GREEK SMALL LETTER BETA
+lowercase   \x03B3        4-1245              γ                   GREEK SMALL LETTER GAMMA
+lowercase   \x03B4        4-145               δ                   GREEK SMALL LETTER DELTA
+lowercase   \x03B5        4-15                ε                   GREEK SMALL LETTER EPSILON
+lowercase   \x03B6        4-1356              ζ                   GREEK SMALL LETTER ZETA
+lowercase   \x03B7        4-156               η                   GREEK SMALL LETTER ETA
+lowercase   \x03B8        4-1456              θ                   GREEK SMALL LETTER THETA
+lowercase   \x03B9        4-24                ι                   GREEK SMALL LETTER IOTA
+lowercase   \x03BA        4-13                κ                   GREEK SMALL LETTER KAPPA
+lowercase   \x03BB        4-123               λ                   GREEK SMALL LETTER LAMDA
+lowercase   \x03BC        4-134               μ                   GREEK SMALL LETTER MU
+lowercase   \x03BD        4-1345              ν                   GREEK SMALL LETTER NU
+lowercase   \x03BE        4-1346              ξ                   GREEK SMALL LETTER XI
+lowercase   \x03BF        4-135               ο                   GREEK SMALL LETTER OMICRON
+lowercase   \x03C0        4-1234              π                   GREEK SMALL LETTER PI
+lowercase   \x03C1        4-1235              ρ                   GREEK SMALL LETTER RHO
+lowercase   \x03C2        4-234               ς                   GREEK SMALL LETTER FINAL SIGMA
+lowercase   \x03C3        4-234               σ                   GREEK SMALL LETTER SIGMA
+lowercase   \x03C4        4-2345              τ                   GREEK SMALL LETTER TAU
+lowercase   \x03C5        4-136               υ                   GREEK SMALL LETTER UPSILON
+lowercase   \x03C6        4-124               φ                   GREEK SMALL LETTER PHI
+lowercase   \x03C7        4-12346             χ                   GREEK SMALL LETTER CHI
+lowercase   \x03C8        4-13456             ψ                   GREEK SMALL LETTER PSI
+lowercase   \x03C9        4-2456              ω                   GREEK SMALL LETTER OMEGA
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 2000..206F  General Punctuation
+# ----------------------------------------------------------------------------------------------
+
+punctuation \x2014        36-36               —                   EM DASH
+punctuation \x2015        36-36               ―                   HORIZONTAL BAR
+punctuation \x2026        3-3-3               …                   HORIZONTAL ELLIPSIS
+
+
+# ----------------------------------------------------------------------------------------------
+# Unicode 20A0..20CF  Currency Symbols
+# ----------------------------------------------------------------------------------------------
+
+sign        \x20AC        456-15              €                   EURO SIGN
+
+
+# ----------------------------------------------------------------------------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb
new file mode 100644
index 0000000..2225bb2
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb
@@ -0,0 +1,32 @@
+#
+#  Copyright (C) 2010, 2011 by DocArch <http://www.docarch.be>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# -------------------------------------------------------------------------------
+#
+#  Spanish Braille
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
+#
+# ----------------------------------------------------------------------------------------------
+
+include es-chardefs.cti
+include braille-patterns.cti
+include es-translation.ctb
+
+# ---------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb
new file mode 100644
index 0000000..5a81062
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb
@@ -0,0 +1,60 @@
+#
+#  Copyright (C) 2010, 2011 by DocArch <http://www.docarch.be>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# ----------------------------------------------------------------------------------------------
+#  odt2braille - Braille authoring in OpenOffice.org.
+# ----------------------------------------------------------------------------------------------
+#
+#  Spanish Braille
+#     Created and maintained by Bert Frees <bertfrees@gmail.com>
+#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
+#
+# ----------------------------------------------------------------------------------------------
+
+# ---------------------------------------
+# Digits
+# ---------------------------------------
+
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# ---------------------------------------
+# Braille indicator opcodes
+# ---------------------------------------
+
+numsign 3456
+capsign 46
+begcaps 46-46
+
+# ---------------------------------------
+# Translation opcodes
+# ---------------------------------------
+
+repeated \s 0
+repeated \t 0
+
+# ----------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb
new file mode 100644
index 0000000..3b39176
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb
@@ -0,0 +1,123 @@
+# liblouis: Estonian braille table
+# Based on the US.English chardef.
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
+#  The BRLTTY Team
+#
+#  Copyright (C) 2012 liblouis authors, Jürgen Dengo <jyrgen.dengo@gmail.com>
+
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License 
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+# 
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public 
+#  License along with this program; see the file COPYING.  If not, write 
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+
+
+# Computer braille single-cell characters
+space \s 0 blank
+space \t 9 tab
+space \x000a 0 newline
+space \x000c 0
+space \x000d 0 carriage return
+space \x001b 1b escape character for html back-translation
+space \x00A0 a NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE 
+include digits8Dots.uti
+
+include latinLetterDef8Dots.uti
+
+punctuation ( 236
+punctuation } 267
+punctuation ] 23456
+punctuation ? 26
+punctuation : 25
+punctuation ) 356
+punctuation ! 235
+punctuation { 358
+punctuation [ 12356
+punctuation ' 5
+punctuation - 36
+punctuation . 3
+punctuation " 56
+punctuation ; 23
+punctuation , 2
+sign & 12346
+sign $ 1246
+sign \x20ac 123456-15
+sign \x00A3 456
+sign | 456
+sign \\ 16
+sign % 1456
+sign * 35
+sign # 3456
+punctuation ` 4
+sign _ 258
+sign ^ 578
+sign @ 47
+math = 2356
+math < 1358
+math / 34
+math > 2468
+math + 235
+math ~ 45
+
+# Estonian specific characters
+uppercase \x0160 1567 LATIN UPPERCASE S WITH CARAT
+lowercase \x0161 156 LATIN LOWERCASE S WITH CARAT
+uppercase \x017d 23467 LATIN UPPERCASE Z WITH CARAT
+lowercase \x017e 2346 LATIN LOWERCASE Z WITH CARAT
+uppercase \x00c4 3457 LATIN CAPITAL LETTER A  WITH DIAERESIS
+lowercase \x00E4 345 LATIN SMALL LETTER A WITH DIAERESIS 0061 0308 LATIN 
+uppercase \x00D6 2467 LATIN CAPITAL LETTER O WITH DIAERESIS 004F 0308 
+lowercase \x00F6 246 LATIN SMALL LETTER O WITH DIAERESIS 006F 0308 
+uppercase \x00d5 1267 LATIN CAPITAL LETTER O WITH TILDE
+lowercase \x00F5 126 LATIN SMALL LETTER O WITH TILDE 006F 0303 LATIN 
+uppercase \x00DC 12567 LATIN CAPITAL LETTER U WITH DIAERESIS 0055 0308 
+lowercase \x00FC 1256 LATIN SMALL LETTER U WITH DIAERESIS 0075 0308 
+
+# Accented letters marked in Estonian braille
+lowercase \x00DF 2346 LATIN SMALL LETTER SHARP S German 
+uppercase \x00C7 123467 LATIN CAPITAL LETTER C WITH CEDILLA 0043 0327 
+lowercase \x00E7 12346 LATIN SMALL LETTER C WITH CEDILLA 0063 0327 LATIN 
+uppercase \x00C0 123567 LATIN CAPITAL LETTER A WITH GRAVE 0041 0300 LATIN 
+lowercase \x00E0 12356 LATIN SMALL LETTER A WITH GRAVE 0061 0300 LATIN 
+uppercase \x00C8 23467 LATIN CAPITAL LETTER E WITH GRAVE 0045 0300 LATIN 
+lowercase \x00E8 2346 LATIN SMALL LETTER E WITH GRAVE 0065 0300 LATIN 
+uppercase \x00D9 234567 LATIN CAPITAL LETTER U WITH GRAVE 0055 0300 LATIN 
+lowercase \x00F9 23456 LATIN SMALL LETTER U WITH GRAVE 0075 0300 LATIN 
+uppercase \x00C2 167 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 0041 0302 
+lowercase \x00E2 16 LATIN SMALL LETTER A WITH CIRCUMFLEX 0061 0302 
+uppercase \x00CA 1267 LATIN CAPITAL LETTER E WITH CIRCUMFLEX 0045 0302 
+lowercase \x00EA 126 LATIN SMALL LETTER E WITH CIRCUMFLEX 0065 0302 
+uppercase \x00CE 1467 LATIN CAPITAL LETTER I WITH CIRCUMFLEX 0049 0302 
+lowercase \x00EE 146 LATIN SMALL LETTER I WITH CIRCUMFLEX 0069 0302 
+uppercase \x00D4 14567 LATIN CAPITAL LETTER O WITH CIRCUMFLEX 004F 0302 
+lowercase \x00F4 1456 LATIN SMALL LETTER O WITH CIRCUMFLEX 006F 0302 
+uppercase \x00DB 1567 LATIN CAPITAL LETTER U WITH CIRCUMFLEX 0055 0302 
+lowercase \x00FB 156 LATIN SMALL LETTER U WITH CIRCUMFLEX 0075 0302 
+uppercase \x00C9 1234567 LATIN CAPITAL LETTER E WITH ACUTE 0045 0301 LATIN 
+lowercase \x00E9 123456 LATIN SMALL LETTER E WITH ACUTE 0065 0301 LATIN 
+uppercase \x00CB 12467 LATIN CAPITAL LETTER E WITH DIAERESIS 0045 0308 
+lowercase \x00EB 1246 LATIN SMALL LETTER E WITH DIAERESIS 0065 0308 
+uppercase \x00CF 124567 LATIN CAPITAL LETTER I WITH DIAERESIS 0049 0308 
+lowercase \x00EF 12456 LATIN SMALL LETTER I WITH DIAERESIS 0069 0308 
+
+# Other characters
+uppercase \x00C1 123567 LATIN CAPITAL LETTER A WITH ACUTE 0041 0301 LATIN 
+lowercase \x00E1 12356 LATIN SMALL LETTER A WITH ACUTE 0061 0301 LATIN 
+uppercase \x00CD 347 LATIN CAPITAL LETTER I WITH ACUTE 0049 0301 LATIN 
+lowercase \x00ED 34 LATIN SMALL LETTER I WITH ACUTE 0069 0301 LATIN 
+uppercase \x00D3 3467 LATIN CAPITAL LETTER O WITH ACUTE 004F 0301 LATIN 
+lowercase \x00F3 346 LATIN SMALL LETTER O WITH ACUTE 006F 0301 LATIN 
+uppercase \x00DA 123567 LATIN CAPITAL LETTER U WITH ACUTE 0055 0301 LATIN 
+lowercase \x00FA 23456 LATIN SMALL LETTER U WITH ACUTE 0075 0301 LATIN 
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb
new file mode 100644
index 0000000..ab4fac8
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb
@@ -0,0 +1,252 @@
+# liblouis: Finnish 8 dot braille table
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. 
+# All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+#
+# Created by Code Factory S.L.
+
+include text_nabcc.dis
+
+letter \x0002 1278
+letter \x0003 1478
+letter \x0004 14578
+letter \x0005 2678
+letter \x0006 12478
+letter \x0007 124578
+letter \x0008 12578
+letter \x0009 3578
+letter \x000A 24578
+letter \x000B 1378
+letter \x000C 12378
+letter \x000D 13478
+letter \x000E 134578
+letter \x000F 23678
+letter \x0010 123478
+letter \x0011 1234578
+letter \x0012 123578
+letter \x0013 23478
+letter \x0014 234578
+letter \x0015 35678
+letter \x0016 123678
+letter \x0017 245678
+letter \x0018 134678
+letter \x0019 1345678
+letter \x001A 135678
+letter \x001B 345678
+letter \x001C 12345678
+letter \x001D 4678
+letter \x001E 4578
+letter \x001F 67
+
+letter \x0020 0
+
+space \x00a0 0
+#space \t 0-0
+#space \s 0
+
+# non Capital characters 
+letter a 1
+letter b 12
+letter c 14
+letter d 145
+letter e 15
+letter f 124
+letter g 1245
+letter h 125
+letter i  24
+letter j  245
+letter k 13
+letter l 123
+letter m 134
+letter n 1345
+letter o 135
+letter p 1234
+letter q 12345
+letter r 1235
+letter s 234
+letter t  2345
+letter u 136
+letter v 1236
+letter w  2456
+letter x 1346
+letter y 13456
+letter z 1356
+
+# capital characters
+letter A 17
+letter B 127
+letter C 147
+letter D 1457
+letter E 157
+letter F 1247
+letter G 12457
+letter H 1257
+letter I  247
+letter J  2457
+letter K 137
+letter L 1237
+letter M 1347
+letter N 13457
+letter O 1357
+letter P 12347
+letter Q 123457
+letter R 12357
+letter S 2347
+letter T  23457
+letter U 1367
+letter V 12367
+letter W  24567
+letter X 13467
+letter Y 134567
+letter Z 13567
+
+# the decimal digits
+include digits8Dots.uti
+
+
+
+# punctuations 
+punctuation ! 256
+punctuation " 56
+letter \x0023 3456
+letter $ 2346
+punctuation % 1456
+punctuation & 12346
+punctuation ' 5
+
+punctuation ( 236
+punctuation ) 356 
+punctuation * 35
+punctuation + 235
+punctuation , 2 
+letter - 36  
+punctuation . 3
+letter /  34
+
+punctuation :  25
+punctuation ;  23
+punctuation < 126
+punctuation = 2356
+punctuation > 156
+punctuation ? 26
+letter @ 4
+
+punctuation [   12356
+letter \x005C  146 # escape for \
+punctuation ]   23456
+letter ^  457
+letter _  346
+letter `  1234568
+
+punctuation {  1246
+punctuation |   456
+punctuation }  12456
+letter ~  45
+letter \x007f  7 
+
+
+#Hex Dots Dec Char Description
+letter \X00C2 24578 # 194Â Latin capital letter a with circumflex
+letter \X00CA  1267 # 202Ê Latin capital letter e with circumflex
+letter \X00CE  1467 # 206Î Latin capital letter i with circumflex
+letter \X00D4  14567 # 212Ô Latin capital letter o with circumflex
+letter \X00DB  1567 # 219Û Latin capital letter u with circumflex
+letter \X00E2 1678 # 226â Latin small letter a with circumflex
+letter \X00EA  12678 # 234ê Latin small letter e with circumflex
+letter \X00EE  14678 # 238î Latin small letter i with circumflex
+letter \X00F4  145678 # 244ô Latin small letter o with circumflex
+letter \X00FB  15678 # 251û Latin small letter u with circumflex
+
+# The 5 letters with a grave accent `) use the [6-0] dot combinations:
+
+#Hex Dots Dec Char Description
+letter \X00C0  235678 # 192À Latin capital letter a with grave
+letter \X00C8  3578 # 200È Latin capital letter e with grave
+letter \X00CC  57 # 204Ì Latin capital letter i with grave
+letter \X00D2 578 # 210Ò Latin capital letter o with grave
+letter \X00D9 35678 # 217Ù Latin capital letter u with grave
+letter \X00E0  123568 # 224à Latin small letter a with grave
+letter \X00E8  23468 # 232è Latin small letter e with grave
+letter \X00EC  348 # 236ì Latin small letter i with grave
+letter \X00F2 3468 # 242ò Latin small letter o with grave
+letter \X00F9 234568 # 249ù Latin small letter u with grave
+
+# The6 letters with an acute accent ') use the [a-f] dot combinations with
+# dots 3 and 6 added:
+
+#Hex Dots Dec Char Description
+letter \X00C1 28 # 193Á Latin capital letter a with acute
+letter \X00C9 1234567 # 201É Latin capital letter e with acute
+letter \X00CD 258 # 205Í Latin capital letter i with acute
+letter \X00D3 267 # 211Ó Latin capital letter o with acute
+letter \X00DA 268 # 218Ú Latin capital letter u with acute
+letter \X00DD 3568 # 221Ý Latin capital letter y with acute
+letter \X00E1 168 # 225á Latin small letter a with acute
+letter \X00E9 123456 # 233é Latin small letter e with acute
+letter \X00ED 2478 # 237í Latin small letter i with acute
+letter \X00F3 13578 # 243ó Latin small letter o with acute
+letter \X00FA 13678 # 250ú Latin small letter u with acute
+letter \X00FD 24568 # 253ý Latin small letter y with acute
+
+# The 6 letters with a dieresis accent ") use the [f-j] dot combinations with
+# dots 3 and 6 added, and the number sign because it fits the sequence
+# reasonably well):
+
+#Hex Dots Dec Char Description
+letter \X00C4 3457 # 196Ä Latin capital letter a with diaeresis
+letter \X00CB 2358 # 203Ë Latin capital letter e with diaeresis
+letter \X00CF 23568 # 207Ï Latin capital letter i with diaeresis
+letter \X00D6  2467 # 214Ö Latin capital letter o with diaeresis
+letter \X00DC  12567 # 220Ü Latin capital letter u with diaeresis
+letter \X00E4 345 # 228ä Latin small letter a with diaeresis
+letter \X00EB 12468 # 235ë Latin small letter e with diaeresis
+letter \X00EF 124568 # 239ï Latin small letter i with diaeresis
+letter \X00F6  246 # 246ö Latin small letter o with diaeresis
+letter \X00FC  1256 # 252ü Latin small letter u with diaeresis
+letter \X00FF 134568 # 255ÿ Latin small letter y with diaeresis
+
+# There is no uppercase y-dieresis in the  Latin 1 character set. The German
+# lowercase double-s, which also doesn't have an uppercase counterpart in the
+#  Latin 1 character set, uses its representation:
+
+#Hex Dots Dec Char Description
+letter \X00DF 34568 # 223ß Latin small letter sharp s
+
+# The remaining accented letters are:
+
+#Hex Dots Dec Char Description
+letter \X00C3 3467 # 195Ã Latin capital letter a with tilde
+letter \X00D1 2567 # 209Ñ Latin capital letter n with tilde
+letter \X00D5  267 # 213Õ Latin capital letter o with tilde
+letter \X00C5 167 # 197Å Latin capital letter a with ring above
+letter \X00C7 1578 # 199Ç Latin capital letter c with cedilla
+letter \X00D8 1567 # 216Ø Latin capital letter o with stroke
+letter \X00C6 47 # 198Æ Latin capital letter ae
+letter \X00D0 3567 # 208Ð Latin capital letter eth
+letter \X00DE 2357 # 222Þ Latin capital letter thorn
+letter \X00E3 13678 # 227ã Latin small letter a with tilde
+letter \X00F1 13458 # 241ñ Latin small letter n with tilde
+letter \X00F5  1358 # 245õ Latin small letter o with tilde
+letter \X00E5 16 # 229å Latin small letter a with ring above
+letter \X00E7 1234678 # 231ç Latin small letter c with cedilla
+letter \X00F8 24678 # 248ø Latin small letter o with stroke
+letter \X00E6 34578 # 230æ Latin small letter ae
+letter \X00F0 23458 # 240ð Latin small letter eth
+letter \X00FE 12348 # 254þ Latin small letter thorn
+sign \X25CF 35
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb
new file mode 100644
index 0000000..91d4fe6
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb
@@ -0,0 +1,262 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Unified French - 2007
+
+# This is the 2007 unification of french computer braille tables, based on the
+# cp1252 character set
+#
+# http://www.avh.asso.fr/rubriques/infos_braille/table_braille_informatique.php
+
+# generated by ttbtest
+letter \x0000 123458		NULL
+letter \x0001 1234678		START OF HEADING
+letter \x0002 1258		START OF TEXT
+letter \x0003 123468		END OF TEXT
+letter \x0004 14578		END OF TRANSMISSION
+letter \x0005 158		ENQUIRY
+letter \x0006 12478		ACKNOWLEDGE
+letter \x0007 12458		BELL
+letter \x0008 12578		BACKSPACE
+space \t 124678		CHARACTER TABULATION
+space \n 24568		LINE FEED (LF)
+space \v 138		LINE TABULATION
+space \f 12378		FORM FEED (FF)
+space \r 13478		CARRIAGE RETURN (CR)
+letter \x000e 13458		SHIFT OUT
+letter \x000f 2368		SHIFT IN
+letter \x0010 123478		DATA LINK ESCAPE
+letter \x0011 1234578		DEVICE CONTROL ONE
+letter \x0012 123578		DEVICE CONTROL TWO
+letter \x0013 23478		DEVICE CONTROL THREE
+letter \x0014 234578		DEVICE CONTROL FOUR
+letter \x0015 13678		NEGATIVE ACKNOWLEDGE
+letter \x0016 123678		SYNCHRONOUS IDLE
+letter \x0017 245678		END OF TRANSMISSION BLOCK
+letter \x0018 134678		CANCEL
+letter \x0019 12368		END OF MEDIUM
+letter \x001a 15678		SUBSTITUTE
+letter \x001b 125678		ESCAPE
+letter \x001c 14678		INFORMATION SEPARATOR FOUR
+letter \x001d 12678		INFORMATION SEPARATOR THREE
+letter \x001e 2357		INFORMATION SEPARATOR TWO
+letter \x001f 2367		INFORMATION SEPARATOR ONE
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation # 34568		NUMBER SIGN
+punctuation $ 357		DOLLAR SIGN
+punctuation % 3468		PERCENT SIGN
+punctuation & 1234568		AMPERSAND
+punctuation ' 3		APOSTROPHE
+punctuation ( 236		LEFT PARENTHESIS
+punctuation ) 356		RIGHT PARENTHESIS
+punctuation * 35		ASTERISK
+punctuation + 23578		PLUS SIGN
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+punctuation / 34		SOLIDUS
+digit 0 3456		DIGIT ZERO
+digit 1 16		DIGIT ONE
+digit 2 126		DIGIT TWO
+digit 3 146		DIGIT THREE
+digit 4 1456		DIGIT FOUR
+digit 5 156		DIGIT FIVE
+digit 6 1246		DIGIT SIX
+digit 7 12456		DIGIT SEVEN
+digit 8 1256		DIGIT EIGHT
+digit 9 246		DIGIT NINE
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation < 238		LESS-THAN SIGN
+punctuation = 235678		EQUALS SIGN
+punctuation > 567		GREATER-THAN SIGN
+punctuation ? 26		QUESTION MARK
+punctuation @ 345		COMMERCIAL AT
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+punctuation [ 23678		LEFT SQUARE BRACKET
+punctuation \\ 348		REVERSE SOLIDUS
+punctuation ] 35678		RIGHT SQUARE BRACKET
+punctuation ^ 4		CIRCUMFLEX ACCENT
+punctuation _ 578		LOW LINE
+punctuation ` 6		GRAVE ACCENT
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation { 2378		LEFT CURLY BRACKET
+punctuation | 4568		VERTICAL LINE
+punctuation } 5678		RIGHT CURLY BRACKET
+punctuation ~ 38		TILDE
+letter \x007f 1238		DELETE
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a1 2358		INVERTED EXCLAMATION MARK
+punctuation \x00a2 1478		CENT SIGN
+punctuation \x00a3 237		POUND SIGN
+punctuation \x00a4 45		CURRENCY SIGN
+punctuation \x00a5 25678		YEN SIGN
+punctuation \x00a6 458		BROKEN BAR
+punctuation \x00a7 12348		SECTION SIGN
+punctuation \x00a8 46		DIAERESIS
+punctuation \x00a9 148		COPYRIGHT SIGN
+letter \x00aa 1678		FEMININE ORDINAL INDICATOR
+punctuation \x00ab 23568		LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00ac 2567		NOT SIGN
+punctuation \x00ad 78		SOFT HYPHEN
+punctuation \x00ae 12358		REGISTERED SIGN
+punctuation \x00af 1348		MACRON
+punctuation \x00b0 267		DEGREE SIGN
+punctuation \x00b1 3678		PLUS-MINUS SIGN
+punctuation \x00b2 457		SUPERSCRIPT TWO
+punctuation \x00b3 4567		SUPERSCRIPT THREE
+punctuation \x00b4 5		ACUTE ACCENT
+lowercase \x00b5 257		MICRO SIGN
+punctuation \x00b6 45678		PILCROW SIGN
+punctuation \x00b7 8		MIDDLE DOT
+punctuation \x00b8 456		CEDILLA
+punctuation \x00b9 47		SUPERSCRIPT ONE
+letter \x00ba 2678		MASCULINE ORDINAL INDICATOR
+punctuation \x00bb 23567		RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00bc 1368		VULGAR FRACTION ONE QUARTER
+punctuation \x00bd 468		VULGAR FRACTION ONE HALF
+punctuation \x00be 13468		VULGAR FRACTION THREE QUARTERS
+punctuation \x00bf 268		INVERTED QUESTION MARK
+uppercase \x00c0 123567		LATIN CAPITAL LETTER A WITH GRAVE
+uppercase \x00c1 1235678		LATIN CAPITAL LETTER A WITH ACUTE
+uppercase \x00c2 167		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c3 178		LATIN CAPITAL LETTER A WITH TILDE
+uppercase \x00c4 34567		LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase \x00c5 27		LATIN CAPITAL LETTER A WITH RING ABOVE
+uppercase \x00c6 3457		LATIN CAPITAL LETTER AE
+uppercase \x00c7 123467		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00c8 23467		LATIN CAPITAL LETTER E WITH GRAVE
+uppercase \x00c9 1234567		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00ca 1267		LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uppercase \x00cb 12467		LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase \x00cc 2478		LATIN CAPITAL LETTER I WITH GRAVE
+uppercase \x00cd 347		LATIN CAPITAL LETTER I WITH ACUTE
+uppercase \x00ce 1467		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00cf 124567		LATIN CAPITAL LETTER I WITH DIAERESIS
+uppercase \x00d0 1278		LATIN CAPITAL LETTER ETH
+uppercase \x00d1 134578		LATIN CAPITAL LETTER N WITH TILDE
+uppercase \x00d2 13578		LATIN CAPITAL LETTER O WITH GRAVE
+uppercase \x00d3 3467		LATIN CAPITAL LETTER O WITH ACUTE
+uppercase \x00d4 14567		LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase \x00d5 1378		LATIN CAPITAL LETTER O WITH TILDE
+uppercase \x00d6 24678		LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation \x00d7 3578		MULTIPLICATION SIGN
+uppercase \x00d8 345678		LATIN CAPITAL LETTER O WITH STROKE
+uppercase \x00d9 234567		LATIN CAPITAL LETTER U WITH GRAVE
+uppercase \x00da 2345678		LATIN CAPITAL LETTER U WITH ACUTE
+uppercase \x00db 1567		LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase \x00dc 12567		LATIN CAPITAL LETTER U WITH DIAERESIS
+uppercase \x00dd 1345678		LATIN CAPITAL LETTER Y WITH ACUTE
+uppercase \x00de 24578		LATIN CAPITAL LETTER THORN
+lowercase \x00df 2348		LATIN SMALL LETTER SHARP S
+lowercase \x00e0 12356		LATIN SMALL LETTER A WITH GRAVE
+lowercase \x00e1 123568		LATIN SMALL LETTER A WITH ACUTE
+lowercase \x00e2 168		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e3 18		LATIN SMALL LETTER A WITH TILDE
+lowercase \x00e4 34578		LATIN SMALL LETTER A WITH DIAERESIS
+lowercase \x00e5 28		LATIN SMALL LETTER A WITH RING ABOVE
+lowercase \x00e6 3458		LATIN SMALL LETTER AE
+lowercase \x00e7 12346		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00e8 2346		LATIN SMALL LETTER E WITH GRAVE
+lowercase \x00e9 123456		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00ea 1268		LATIN SMALL LETTER E WITH CIRCUMFLEX
+lowercase \x00eb 12468		LATIN SMALL LETTER E WITH DIAERESIS
+lowercase \x00ec 248		LATIN SMALL LETTER I WITH GRAVE
+lowercase \x00ed 3478		LATIN SMALL LETTER I WITH ACUTE
+lowercase \x00ee 1468		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00ef 124568		LATIN SMALL LETTER I WITH DIAERESIS
+lowercase \x00f0 128		LATIN SMALL LETTER ETH
+lowercase \x00f1 1245678		LATIN SMALL LETTER N WITH TILDE
+lowercase \x00f2 1358		LATIN SMALL LETTER O WITH GRAVE
+lowercase \x00f3 346		LATIN SMALL LETTER O WITH ACUTE
+lowercase \x00f4 14568		LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase \x00f5 4678		LATIN SMALL LETTER O WITH TILDE
+lowercase \x00f6 358		LATIN SMALL LETTER O WITH DIAERESIS
+punctuation \x00f7 2578		DIVISION SIGN
+lowercase \x00f8 568		LATIN SMALL LETTER O WITH STROKE
+lowercase \x00f9 23456		LATIN SMALL LETTER U WITH GRAVE
+lowercase \x00fa 234568		LATIN SMALL LETTER U WITH ACUTE
+lowercase \x00fb 1568		LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase \x00fc 12568		LATIN SMALL LETTER U WITH DIAERESIS
+lowercase \x00fd 134568		LATIN SMALL LETTER Y WITH ACUTE
+lowercase \x00fe 2458		LATIN SMALL LETTER THORN
+lowercase \x00ff 2568		LATIN SMALL LETTER Y WITH DIAERESIS
+uppercase \x0152 2467		LATIN CAPITAL LIGATURE OE
+lowercase \x0153 2468		LATIN SMALL LIGATURE OE
+uppercase \x0160 234678		LATIN CAPITAL LETTER S WITH CARON
+lowercase \x0161 23468		LATIN SMALL LETTER S WITH CARON
+uppercase \x0178 145678		LATIN CAPITAL LETTER Y WITH DIAERESIS
+uppercase \x017d 135678		LATIN CAPITAL LETTER Z WITH CARON
+lowercase \x017e 13568		LATIN SMALL LETTER Z WITH CARON
+lowercase \x0192 1248		LATIN SMALL LETTER F WITH HOOK
+letter \x02c6 48		MODIFIER LETTER CIRCUMFLEX ACCENT
+punctuation \x02dc 467		SMALL TILDE
+sign \x20ac 1578		EURO SIGN
+sign \x2122 23458		TRADE MARK SIGN
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb
new file mode 100644
index 0000000..f378cfa
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb
@@ -0,0 +1,141 @@
+# liblouis: Canadian French Grade 1 Table
+###############################################################################
+# BRLTTY - A background process providing access to the Linux console (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# Définitions pour code braille français international unifié
+# Par Nicolas Pitre <nico@cam.org>
+# Référence: http://www.inlb.qc.ca/apropos/c2003unificationdubraille.aspx
+
+# Uncontracted Unified French Table
+# ----------------------------------
+
+include text_nabcc.dis
+
+space \t 0 tab          # 9
+space \x000A 0
+space \x000D 0
+space \x00A0 0
+space \s 0 blank				# 32
+
+include latinLetterDef6Dots.uti
+uplow Çç 12346		c cédille
+uplow Éé 123456		e accent aigu
+uplow Àà 12356		a accent grave
+uplow Èè 2346		e accent grave
+uplow Ùù 23456		u accent grave
+uplow Ââ 16		a accent circonflexe
+uplow Êê 126		e accent circonflexe
+uplow Îî 146		i accent circonflexe
+uplow Ôô 1456		o accent circonflexe
+uplow Ûû 156		u accent circonflexe
+uplow Ëë 1246		e tréma
+uplow Ïï 12456		i tréma
+uplow Üü 1256		u tréma
+
+#	uplow oe 246		oe ligatur
+uplow \x0152\x0153 246
+
+
+punctuation , 2		virgule
+punctuation ; 23		point-virgule
+punctuation : 25		deux-points
+punctuation . 256		point
+punctuation ? 26		point d'interrogation
+punctuation ! 235		point d'exclamation
+punctuation " 5 		guillemt			
+punctuation ( 236		parenthèse ouvrante
+sign * 35						astérisque
+punctuation ) 356		parenthèse fermante
+punctuation ' 3			apostrophe
+math / 34						barre oblique
+sign @ 4						arobas
+sign % 246					pour cent
+punctuation - 36		trait d'union
+sign # 3456					dièse
+
+digit 0 245		zéro				
+digit 1 1			un	
+digit 2 12		deux				
+digit 3 14		trois			
+digit 4 145		quatre			
+digit 5 15		cinq			
+digit 6 124		six			
+digit 7 1245	sept
+digit 8 125		huit			
+digit 9 24		neuf		
+
+sign \x00A8 46			diaeresis sign
+# always n 34				divisé par
+math \x00F7 34
+	
+math + 346					plus		
+math = 2356					égal		
+math × 35						multiplié par
+math < 126					inférieur à
+math > 345					supérieur à
+
+sign © 5-14					copyright
+sign ° 145					degré
+sign & 23456	      perluète (et commercial)
+sign ¢ 14						cent
+sign ¤ 45-15				euro                         
+sign £ 45-123				livre			
+sign § 45-1234			paragraphe		
+sign $ 4-234				dollar			
+sign ¥ 45-13456			yen			
+punctuation « 45-2356		guillemet français ouvrant  
+punctuation » 2356-12		guillemet français fermant  
+punctuation [ 45-236		crochet droit ouvrant   
+punctuation ] 356-12		crochet droit fermant   
+punctuation { 6-236			accolade de gauche  
+punctuation } 356-3			accolade de droite   
+
+sign ¹ 6		exposant 1			
+sign ² 4-6-126	exposant 2	
+sign ³ 4-6-146	exposant 3
+sign ¼ 6-16-34-1456	un quart	
+sign ½ 6-16-34-126	un demi		
+sign ¾ 6-126-34-1456	trois quarts   
+
+capsign 46		indicateur de majuscule
+begcaps 46-46		succession de majuscules
+
+numsign 3456		préfixe pour les chiffres   
+midnum \s 3		espace entre les chiffres
+midnum , 2
+midnum . 256
+midnum - 36
+midnum + 346		plus      
+midnum / 34
+midnum : 25
+
+sign \x00B7 56
+sign \x00B8 45
+endnum # 56-3456
+
+sign _ 456		souligné 		
+
+repeated \s 0		espaces
+repeated \t 0		tabulations
+repeated \x00a0 0		espaces insécables
+
+repeated ... 256-256-256	points de suite		
+repeated --- 36-36-36
+repeated ___ 456-456-456				
+
+always \s--\s 36-36	tiret
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb
new file mode 100644
index 0000000..b59963b
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb
@@ -0,0 +1,140 @@
+# liblouis: French Grade 1 table
+###############################################################################
+# BRLTTY - A background process providing access to the Linux console (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# Définitions pour code braille français international unifié
+# Par Nicolas Pitre <nico@cam.org>
+# Référence: http://www.inlb.qc.ca/apropos/c2003unificationdubraille.aspx
+
+# Uncontracted Unified French Table
+# ----------------------------------
+
+include text_nabcc.dis
+
+space \t 0 tab          # 9
+space \x000A 0
+space \x000D 0
+space \x00A0 0
+space \s 0 blank				# 32
+
+include latinLetterDef6Dots.uti
+uplow Çç 12346		c cédille
+uplow Éé 123456		e accent aigu
+uplow Àà 12356		a accent grave
+uplow Èè 2346			e accent grave
+uplow Ùù 23456		u accent grave
+uplow Ââ 16				a accent circonflexe
+uplow Êê 126			e accent circonflexe
+uplow Îî 146			i accent circonflexe
+uplow Ôô 1456			o accent circonflexe
+uplow Ûû 156			u accent circonflexe
+uplow Ëë 1246			e tréma
+uplow Ïï 12456		i tréma
+uplow Üü 1256			u tréma
+
+#	uplow oe 246		oe ligatur
+uplow \x0152\x0153 246
+
+
+punctuation , 2			virgule
+punctuation ; 23		point-virgule
+punctuation : 25		deux-points
+punctuation . 256		point
+punctuation ? 26		point d'interrogation
+punctuation ! 235		point d'exclamation
+punctuation " 2356 	guillemt			
+punctuation ( 236		parenthèse ouvrante
+sign * 35						astérisque
+punctuation ) 356		parenthèse fermante
+punctuation ' 3			apostrophe
+math / 34						barre oblique
+sign @ 345					arobas
+sign % 346					pour cent
+punctuation - 36		trait d'union
+sign # 3456					dièse
+
+digit 0 3456				zéro				
+digit 1 16					un	
+digit 2 126					deux
+digit 3 146					trois
+digit 4 1456				quatre
+digit 5 156					cinq
+digit 6 1246				six
+digit 7 12456				sept
+digit 8 1256				huit
+digit 9 246					neuf
+
+sign \x00A8 46			diaeresis sign
+math \x00F7 6-256		divisé par
+	
+math + 6-235				plus		
+math = 6-2356				égal		
+math × 6-35					multiplié par
+math < 46-126				inférieur à
+math > 46-345				supérieur à
+
+sign © 5-14							copyright
+sign ° 5-135						degré
+sign & 5-123456					perluète (et commercial)
+sign ¢ 45-14						cent
+sign ¤ 45-15						euro                         
+sign £ 45-123						livre			
+sign § 45-1234					paragraphe		
+sign $ 4-234						dollar			
+sign ¥ 45-13456					yen			
+punctuation « 45-2356		guillemet français ouvrant  
+punctuation » 2356-12		guillemet français fermant  
+punctuation [ 45-236		crochet droit ouvrant   
+punctuation ] 356-12		crochet droit fermant   
+punctuation { 6-236			accolade de gauche  
+punctuation } 356-3			accolade de droite   
+
+sign ¹ 4-6-16						exposant 1			
+sign ² 4-6-126					exposant 2	
+sign ³ 4-6-146					exposant 3
+sign ¼ 6-16-34-1456			un quart	
+sign ½ 6-16-34-126			un demi		
+sign ¾ 6-126-34-1456		trois quarts   
+
+capsign 46								indicateur de majuscule
+begcaps 46-46							succession de majuscules
+
+numsign 3456							préfixe pour les chiffres
+midnum \s 3								espace entre les chiffres
+midnum , 2
+midnum . 256
+midnum - 36
+midnum + 346							plus
+midnum / 34
+midnum : 25
+
+sign \x00B7 56
+sign \x00B8 45
+endnum # 56-3456
+
+sign _ 456								souligné
+
+repeated \s 0							espaces
+repeated \t 0							tabulations
+repeated \x00a0 0					espaces insécables
+
+repeated ... 3-3-3				points de suite
+repeated --- 36-36-36
+repeated ___ 456-456-456				
+
+always \s--\s 36-36	tiret
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb
new file mode 100644
index 0000000..cbc1f32
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb
@@ -0,0 +1,590 @@
+# liblouis: Greek (Greece) Grade 1 Braille Table
+# Created by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+
+# include text_nabcc.dis
+include uni-text.dis
+# ----------- define all chars --------------------------------------
+
+space \t 0 tab						#  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 235			# 33 exclamation mark					x0021
+punctuation " 2356		double quote									x0022
+sign # 3456						number sign										x0023
+sign $ 256-3456				dollar sign										x0024
+sign % 25-1234
+sign & 12346					ampersand											z0026
+punctuation ' 36			apostrophe										x0027
+punctuation ( 2356		left parenthesis							x0028
+punctuation ) 2356		right parenthesis							x0029
+
+sign * 35							asterisk											x002A
+
+punctuation ? 236			(must be here) question mark	x003F
+sign | 56							x007C *LU* must be here so below is accepted	
+
+# math + 56-235					plus													002B
+math + 26							on specific request
+# midnum + 0-56-235		on specific request
+midnum + 36-3456
+# midnum * 0-56-236			multiplication
+midnum * 36-3456
+punctuation , 2				coma													002C
+punctuation - 36			hyphen-minus									002D
+punctuation . 256			point													002E
+math / 34							solidus												002F
+
+include digits6Dots.uti
+
+punctuation : 25				colon									x003A
+punctuation ; 26				semicolon							x003B
+math < 5-246						less-than sign				x003C
+# math = 2356							equal sign						x003D
+math = 36								on specific request
+math > 5-135						greater-than sign			x003E
+
+sign @ 345							commercial at					x0040
+
+include latinLetterDef6Dots.uti
+
+uplow \x0386\x03AC 1				Greek letter alpha with tonos
+uplow \x0388\x03AD 15				Greek letter epsilon with tonos
+uplow \x0389\x03AE 345			Greek letter eta with tonos
+uplow \x038A\x03AF 24				Greel letter iota with sonos
+uplow \x038C\x03CC 135			Greek letter omicron with tonos
+uplow \x038E\x03CD 13456		Greek letter upsilon with tonos
+uplow \x038F\x03CE 245			Greek letter omega with tonos
+
+uplow \x0391\X03B1 1				Greek letter alpha
+uplow \x0392\X03B2 12				Greek letter beta
+uplow \x0393\X03B3 1245			Greek letter gamma
+uplow \x0394\X03B4 145			Greek letter delta
+uplow \x0395\X03B5 15				Greek letter epsilon
+uplow \x0396\X03B6 1356			Greek letter zeta
+uplow \x0397\X03B7 345			Greek letter eta
+uplow \x0398\X03B8 1456			Greek letter theta
+uplow \x0399\X03B9 24				Greek letter iota
+uplow \x039A\X03BA 13				Greek letter kappa
+uplow \x039B\X03BB 123			Greek letter lamda
+uplow \x039C\X03BC 134			Greek letter Mu
+uplow \x039D\X03BD 1345			Greek letter Nu
+uplow \x039E\X03BE 1346			Greek letter Xi
+uplow \x039F\X03BF 135			Greek letter Omicron
+uplow \x03A0\X03C0 1234			Greek letter Pi
+uplow \x03A1\X03C1 1235			Greek letter Rho
+uplow \x03A3\X03C3 234			Greek letter sigma
+uplow \x03A4\X03C4 2345			Greek letter Tau
+uplow \x03A5\X03C5 13456		Greek letter Upsilon
+uplow \x03A6\X03C6 124			Greek letter Phi
+uplow \x03A7\X03C7 125			Greek letter Chi
+uplow \x03A8\X03C8 12346		Greek letter Psi
+uplow \x03A9\X03C9 245			Greek letter Omega
+
+
+punctuation [ 6-2356		left square bracket				x005B
+sign \\ 16							reverse solidus						x005C
+punctuation ] 2356-6		right square bracket			x005D
+sign ^ 346						circumflex accent					x005E
+sign _ 456						low line									x005F
+sign ` 6							grave accent							x0060
+
+# a - z								# 97 - 122								x0061-x007A
+
+# punctuation { 12356		left curly bracket				x007B
+punctuation { 6-2356		left curly bracket				x007B
+
+# punctuation } 23456		right curly bracket				x007D
+punctuation } 2356-6		right curly bracket				x007D
+
+sign ~ 5
+math ~ 34							tilde											x007E
+
+sign \x0080 15				euro sign									x0080
+
+punctuation \x0092 3	single right quotation mark		x0092
+
+space \X00A0 0		no-break space																x00A0
+sign ¢ 14					cent sign																			x00A2
+sign £ 123-3456		pound sign																		x00A3
+sign ¤ 45-15			currency sign																	x00A4
+sign ¥ 13456			yen	sign																			x00A5
+sign § 346				paragraph	sign																x00A7
+sign © 6-14-135-1234-13456-1235-24-1245-125-2345		copyright		x00A9
+sign ª 46					feminine ordinal indicator										x00AA
+sign « 236				left-pointing double angle quotation mark			x00AB
+sign ® 5-1235			registerd sign																x00AE
+sign ° 356				degree sign																		x00B0
+sign ² 4-6-126		superscript 2 sign														x00B2
+sign ³ 4-6-146		superscript 3 sign														x00B3
+sign µ 123456																										x00B5
+sign ¹ 4-6-16			superscript 1 sign														x00B9
+sign » 356				right-pointing double angle quotation mark		x00BB
+sign ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+sign ½ 6-16-34-126		vulgar fraction one half									x00BD
+sign ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+letter ¿ 35						inverted question mark										x00BF
+
+uplow \x00C0\x00E0 12356	letter a with grave	(à)		x00C0 / 00E0
+uplow Áá 1					letter a with acute							x00C1 / 00E1
+uplow Ââ 16					letter a with circumflex				x00C2 / 00E2
+uplow \x00C3\x00E3 345		letter a with tilde				x00C3
+uplow Ää 345				A with diaeresis				x00C4 / 00E4
+uplow Åå 246				A with ring above				x00C5 / 00E5
+uplow Ææ 345																				x00C6 / 00E6
+uplow Çç 12346			letter c with cedilla						x00C7
+uplow Èè 2346																				x00C8
+uplow Éé 123456			small e with acute							x00C9
+uplow \x00CA\x00EA 126		e with circumflex (ê)			x00CA
+uplow Ëë 1246																				x00CB
+uplow Ññ 12456			N with tilde						x00D1
+uplow Öö 246				O with diaeresis				x00D6
+math × 56-236				multiplication sign							x00D7
+
+letter ì 24																					x00EC
+letter í 24					small i with acute							x00ED
+letter î 146																				x00EE
+letter ï 12456																			x00EF
+letter ñ 12456			small n with tilde							x00F1
+letter ò 135																				x00F2
+letter ó 346				small o with acute							x00F3
+letter ô 1456				small o with circumflex					x00F4
+letter \x00F5 246		small o with tilde							x00F5
+letter ö 246				small o with diaeresis					x00F6
+math ÷ 0-56-256				division sign									x00F7
+letter ù 12356																			x00F9
+letter ú 136				small u with acute							x00FA
+letter û 156																				x00FB
+letter ü 1256				small u with diaeresis					x00FC
+
+letter \x0192 124		small F with hook								x0192
+
+sign \x2122 5-2345-134		Trademark sign
+
+punctuation	\x2010 46		 # 8208			hyphen
+punctuation	\x2011 46		 # 8209			non-breaking hyphen
+punctuation	\x2013 36		 # 8211			smart minus sign
+punctuation	\x2018 3		 # 8216			smart single left quotation mark
+punctuation	\x2019 3		 # 8217			single right quotation mark
+
+punctuation	\x201C 6-236				# 8220	left opening double quote
+punctuation	\x201D 356-6				# 8221	right closing double quote
+punctuation	\x201E 6-236					# 8222	smart double low quotation mark
+punctuation	\x201F 356-6					# 8223	smart double high reverse quotation mark
+punctuation  \x2026 3-3-3				# 8230	smart ellipsis
+
+sign	\x2030 3456-245-356-356			per mile sign ‰
+
+sign \x20AC 15				euro sign									x0080	Suzanne's correction
+
+sign \x00B7 23			# middle dot
+sign \x00B8 45			# ibid
+capsign 46
+begcaps 46-46
+
+numsign 3456
+midnum , 6
+midnum . 2
+
+# midnum - 0-56-36
+midnum - 36-3456
+
+# midnum / 256
+midnum / 34-3456
+
+midnum : 25
+midnum = 56-2356
+endnum # 56-3456
+begnum ( 126
+endnum ) 345
+
+endnum a 6-1
+endnum b 6-12
+endnum c 6-14
+endnum d 6-145
+endnum e 6-15
+endnum f 6-124
+endnum g 6-1245
+endnum h 6-125
+endnum i 6-24
+endnum j 6-245
+endnum k 6-13
+endnum l 6-123
+endnum m 6-134
+endnum n 6-1345
+endnum o 6-135
+endnum p 6-1234
+endnum q 6-12345
+endnum r 6-1235
+endnum s 6-234
+endnum t 6-2345
+endnum u 6-136
+endnum v 6-1236
+endnum w 6-2456
+endnum x 6-1346
+endnum y 6-13456
+endnum z 6-1356
+endnum \x0391 1				Greek letter alpha
+endnum \x0392 12			Greek letter beta
+endnum \x0393 1245		Greek letter gamma
+endnum \x0394 145			Greek letter delta
+endnum \x0395 15			Greek letter epsilon
+endnum \x0396 1356		Greek letter zeta
+endnum \x0397 345			Greek letter eta
+endnum \x0398 1456		Greek letter theta
+endnum \x0399 24			Greek letter iota
+endnum \x039A 13			Greek letter kappa
+endnum \x039B 123			Greek letter lamda
+endnum \x039C 134			Greek letter Mu
+endnum \x039D 1345		Greek letter Nu
+endnum \x039E 1346		Greek letter Xi
+endnum \x039F 135			Greek letter Omicron
+endnum \x03A0 1234		Greek letter Pi
+endnum \x03A1 1235		Greek letter Rho
+endnum \x03A3 234			Greek letter sigma
+endnum \x03A4 2345		Greek letter Tau
+endnum \x03A5 13456		Greek letter Upsilon
+endnum \x03A6 124			Greek letter Phi
+endnum \x03A7 125			Greek letter Chi
+endnum \x03A8 12346		Greek letter Psi
+endnum \x03A9 245			Greek letter Omega
+endnum \X03B1 6-1				Greek letter alpha
+endnum \X03B2 6-12			Greek letter beta
+endnum \X03B3 6-1245		Greek letter gamma
+endnum \X03B4 6-145			Greek letter delta
+endnum \X03B5 6-15			Greek letter epsilon
+endnum \X03B6 6-1356		Greek letter zeta
+endnum \X03B7 6-345			Greek letter eta
+endnum \X03B8 6-1456		Greek letter theta
+endnum \X03B9 6-24			Greek letter iota
+endnum \X03BA 6-13			Greek letter kappa
+endnum \X03BB 6-123			Greek letter lamda
+endnum \X03BC 6-134			Greek letter Mu
+endnum \X03BD 6-1345		Greek letter Nu
+endnum \X03BE 6-1346		Greek letter Xi
+endnum \X03BF 6-135			Greek letter Omicron
+endnum \X03C0 6-1234		Greek letter Pi
+endnum \X03C1 6-1235		Greek letter Rho
+endnum \X03C3 6-234			Greek letter sigma
+endnum \X03C4 6-2345		Greek letter Tau
+endnum \X03C5 6-13456		Greek letter Upsilon
+endnum \X03C6 6-124			Greek letter Phi
+endnum \X03C7 6-125			Greek letter Chi
+endnum \X03C8 6-12346		Greek letter Psi
+endnum \X03C9 6-245			Greek letter Omega
+
+prepunc " 236
+postpunc " 356
+
+repeated \s 0					espaces
+repeated \t 0					tabulations
+repeated \x00A0 0			espaces insécables
+
+repeated ... 3-3-3		points de suite
+repeated --- 36-36-36
+repeated ___ 456-456-456
+
+always \s--\s 36-36		tiret
+
+# letter \x03C2	2456		Greek small letter final sigma
+letter \x03C2	234			Greek small letter final sigma
+
+letter \x03CA 24
+letter \x0390 24
+letter \x03CB 13456
+letter \x03B0 13456
+
+
+# ----------------- Ancient Greek ----------------------
+
+letter \x1F08 46-1
+letter \x1F09 46-1236-1
+letter \x1F0A 356-46-1
+letter \x1F0B 26-46-1 
+letter \x1F0C 356-46-1
+letter \x1F0D 26-46-1
+letter \x1F0E 256-46-1
+letter \x1F0F 235-46-1
+letter \x1FBC 46-1-35
+letter \x1F88 46-1-35
+letter \x1F89 1236-46-1-35
+letter \x1F8A 356-46-1-35
+letter \x1F8B 26-46-1-35
+letter \x1F8C 356-46-1-35
+letter \x1F8D 26-46-1-35
+letter \x1F8E 256-46-1-35
+letter \x1F8F 235-46-1-35
+letter \x1F70 5-1					# marked in bold black?
+letter \x1F71 5-1					# marked in bold black?
+letter \x1F00 1
+letter \x1F01 1236-1
+letter \x1F02 356-1
+letter \x1F03 26-1
+letter \x1F04 356-1
+letter \x1F05 26-1
+letter \x1FB6 6-1
+letter \x1F06 256-1
+letter \x1F07 4-235-1
+letter \x1FB3 1-35
+letter \x1FB2 1-35
+letter \x1FB4 1-35
+letter \x1F80 1-35
+letter \x1F81 1236-1-35
+letter \x1F82 356-1-35
+letter \x1F83 26-1-35
+letter \x1F84 356-1-35
+letter \x1F85 26-1-35
+letter \x1FB7 6-1-35
+letter \x1F86 256-1-35
+letter \x1F87 235-1-35
+letter \x1F18 46-15
+letter \x1F19 1236-46-15
+letter \x1F1A 356-46-15
+letter \x1F1B 26-46-15
+letter \x1F1C 356-46-15
+letter \x1F1D 26-46-15
+letter \x1F72 5-15							# marked in blue?
+letter \x1F73 5-15
+letter \x1F10 15
+letter \x1F11 1236-15
+letter \x1F12 356-15
+letter \x1F13 26-15
+letter \x1F14 356-15
+letter \x1F15 26-15
+letter \x1F74 5-345
+letter \x1F75 5-345
+letter \x1F20 345
+letter \x1F21 1236-345
+letter \x1F22 356-345
+letter \x1F23 26-345
+letter \x1F24 356-345
+letter \x1F25 26-345
+letter \x1FC6 6-345
+letter \x1F26 256-345
+letter \x1F27 235-345
+letter \x1FC3 3456
+letter \x1FC2 5-3456
+letter \x1FC4 5-3456
+letter \x1F90 3456
+letter \x1F91 1236-3456
+letter \x1F92 356-3456
+letter \x1F93 26-3456
+letter \x1F94 356-3456
+letter \x1F95 26-3456
+letter \x1FC7 6-3456
+letter \x1F96 256-3456
+letter \x1F97 235-3456
+letter \x1F28 46-345
+letter \x1F29 1236-46-345
+letter \x1F2A 356-46-345
+letter \x1F2B 26-46-345
+letter \x1F2C 356-46-345
+letter \x1F2D 26-46-345
+letter \x1F2E 256-46-345
+letter \x1F2F 235-46-345
+letter \x1F98 46-3456
+letter \x1F99 1236-46-3456
+letter \x1F9C 356-46-3456
+letter \x1F9D 26-46-3456
+letter \x1F9E 256-46-3456
+letter \x1F9f 235-46-3456
+letter \x1F76 5-24
+letter \x1F77 5-24
+letter \x1F30 24
+letter \x1F31 1236-24
+letter \x1F32 356-24
+letter \x1F33 26-24
+letter \x1F34 356-24
+letter \x1F35 26-24
+letter \x1fD6 6-24
+letter \x1F36 256-24
+letter \x1F37 235-24
+letter \x1F38 46-24
+letter \x1F39 1236-46-24
+letter \x1F3A 356-46-24
+letter \x1F3B 26-46-24
+letter \x1F3C 356-46-24
+letter \x1F3D 26-46-24
+letter \x1F3E 256-46-24
+letter \x1F3F 235-46-24
+letter \x1F78 5-135
+letter \x1F79 5-135
+letter \x1F40 135
+letter \x1F41 1236-135
+letter \x1F42 356-135
+letter \x1F43 26-135
+letter \x1F44 356-135
+letter \x1F45 26-135
+letter \x1F48 46-135
+letter \x1F49 1236-46-135
+letter \x1F4A 356-46-135
+letter \x1f4B 26-46-135
+letter \x1F4C 356-46-135
+letter \x1f4D 26-46-135
+letter \x1F7A 5-13456
+letter \x1F7B 5-13456
+letter \x1F50 13456
+letter \x1F51 1236-13456
+letter \x1F52 356-13456
+letter \x1F53 26-13456
+letter \x1F54 356-13456
+letter \x1F55 26-13456
+letter \x1FE6 6-13456
+letter \x1F56 256-13456
+letter \x1F57 235-13456
+letter \x1F58 46-13456
+letter \x1F59 1236-46-13456
+letter \x1F5B 26-46-13456
+letter \x1F5D 26-46-13456
+letter \x1F5F 235-46-13456
+letter \x1F7C 5-245
+letter \x1F7D 5-245
+letter \x1F60 245
+letter \x1F61 1236-245
+letter \x1F62 356-245
+letter \x1F63 26-245
+letter \x1F64 346-245
+letter \x1F65 26-245
+letter \x1FF6 6-245
+letter \x1F66 256-245
+letter \x1F67 235-245
+letter \x1FF3 2456
+letter \x1FF2 5-2456
+letter \x1FF4 5-2456
+letter \x1FA0 2456
+letter \x1FA1 1236-2456
+letter \x1FA2 356-2456
+letter \x1FA3 26-2456
+letter \x1FA4 356-2456
+letter \x1FA5 26-2456
+letter \x1FF7 6-2456
+letter \x1FA6 256-2456
+letter \x1FA7 235-2456
+letter \x1F68 46-245
+letter \x1F69 1236-46-245
+letter \x1F6A 456-46-245
+letter \x1F6B 26-46-245
+letter \x1F6C 356-46-245
+letter \x1F6D 26-46-245
+letter \x1F6E 256-46-245
+letter \x1F6F 235-46-245
+letter \x1FA8 46-2456
+letter \x1FA9 1236-46-2456
+letter \x1FAA 356-46-2456
+letter \x1FAB 26-46-2456
+letter \x1FAC 356-46-2456
+letter \x1FAD 26-46-2456
+letter \x1FAE 256-46-2456
+letter \x1FAF 235-46-2456
+
+# - this is defined only to make the table compile
+letter \x1FD7 16-24-1256
+letter \x1FD2 1-5-24
+letter \x1FD3 15-24
+# - end
+
+always \x03B1\x1F76 5-126
+always \x03B1\x1F77 5-126
+always \x03B1\x03B9 126
+always \x1F00\x1FD6 1-6-24
+always \x1F00\x1FD7 16-24-1256
+always \x1F00\x1FD2 1-5-24
+always \x1F00\x1FD3 15-24
+always \x03B1\x1F32 356-126
+always \x03B1\x1F33 26-126
+always \x03B1\x1F34 356-126
+always \x03B1\x1F35 26-126
+always \x03B1\x1F36 256-126
+always \x03B1\x1F37 235-126
+always \x0391\x1F32 356-46-126
+always \x0391\x1F33 26-46-126
+always \x0391\x1F34 356-46-126
+always \x0391\x1F35 26-46-126
+always \x0391\x1F36 256-46-126
+always \x0391\x1F37 235-46-126
+always \x03BF\x1FD2 135-5-24
+always \x03BF\x1FD3 135-5-24
+always \x03BF\x1F76 5-246
+always \x03BF\x1F77 5-246
+always \x03BF\x1F32 356-246
+always \x03BF\x1F34 356-246
+always \x03BF\x1F33 26-246
+always \x03BF\x1F35 26-246
+always \x039F\x1F32 356-46-246
+always \x039F\x1F34 356-46-246
+always \x039F\x1F33 26-46-246
+always \x039F\x1F35 26-46-246
+always \x03B5\x1FD2 15-5-24
+always \x03B5\x1FD3 15-5-24
+always \x03B5\x1FD6 6-146
+always \x03B5\x1F76 5-146
+always \x03B5\x1F77 5-146
+always \x03B5\x1F32 356-146
+always \x03B5\x1F34 356-146
+always \x03B5\x1F33 26-146
+always \x03B5\x1F35 26-146
+always \x03B5\x1F36 256-146
+always \x03B5\x1F37 235-146
+always \x0395\x1F32 356-46-146
+always \x0395\x1F34 356-46-146
+always \x0395\x1F33 26-46-146
+always \x0395\x1F35 26-46-146
+always \x0395\x1F36 256-46-146
+always \x0395\x1F37 235-46-146
+
+# ------------------ End Ancient Greek -----------------
+
+
+
+
+
+#------ Double vowels -------
+# lowword \x0391\x0399 126				like lower case pair \x03B1\x03B9
+# replace \x0391\x0399 \x03B1\x03B9
+
+always \x03B1\x0390 1-24
+always \x03B1\x03AF 126
+always \x03B1\x03B0	1-13456
+always \x03B1\x03B9 126					like upper case pair \x0391\x0399
+always \x03B1\x03C5 16
+always \x03B1\x03CA	1-24
+always \x03B1\x03CB 1-13456
+always \x03B1\x03CD 16
+
+always \x03BF\x0390 135-24
+always \x03BF\x03AF 246
+always \x03BF\x03B0 135-13456
+always \x03BF\x03B9 246
+always \x03BF\x03C5 136
+always \x03BF\x03CA 135-24
+always \x03BF\x03CB 135-13456
+always \x03BF\x03CD 136
+
+always \x03AC\x03B9 1-24
+always \x03AC\x03C5 1-13456
+
+always \x03AD\x03B9	15-24
+always \x03AD\x03C5 15-13456
+
+always \x03CC\x03B9 135-24
+always \x03CC\x03C5 135-13456
+
+always \x03B5\x0390 15-24
+always \x03B5\x03AF 146
+always \x03B5\x03B0 15-13456
+always \x03B5\x03B9 146
+always \x03B5\x03C5 156
+always \x03B5\x03CA 15-24
+always \x03B5\x03CB 15-13456
+always \x03B5\x03CD 156
+# ----------------
+
+always # 5-3456						number sign								x0023
+always % 25-1234					percent sign							x0025
+always ' 3								apostrophe								x0027
+always = 56-2356					equal sign								x003D
+always \\ 5-16						reverse solidus						x005C
+always ~ 5-26							tilde											x007E
+always © 5-14							copyright									x00A9
+
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb
new file mode 100644
index 0000000..aa45a75
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb
@@ -0,0 +1,213 @@
+# liblouis: Hindi Grade 1 table
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. 
+# All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+#
+# Created by Code Factory S.L.
+
+include en-us-g1.utb
+
+#-----------
+
+sign \X0901 3 # davanagari chandra bindu 
+sign \X0902 56 # davanagari anuswar 
+sign \X0903 6 # davanagari visarg
+sign \X0905 1 #chhoTa aa"
+sign \X0906 345 #baraa aa"
+sign \X0907 24 #"chhoTi ii"
+sign \X0908 35 #"baRii ii"
+sign \X0909 136 #"chhoTaa u"
+sign \X090A 1256 #"baRaa uu"
+sign \X090B 5-1235 #"RRi"
+sign \X090C 5-12357 #"lri"
+sign \X090D 157 #"e"
+sign \X090E 347 #"ai"
+sign \X090F 15 #"e"
+sign \X0910 34 #"ai"
+sign \X0911 1357 #"o"
+sign \X0912 2467 #"au"
+sign \X0913 135 #"o"
+sign \X0914 246 #"au"
+
+sign \X0915 13 # davanagari ka
+sign \X0916 46 # davanagari kha
+sign \X0917 1245 # davanagari ga
+sign \X0918 126 # davanagari gha
+sign \X0919 346 #davanagari aNgaa
+
+sign \X091A 14 # davanagari ca
+sign \X091B 16 # davanagari cha
+sign \X091C 245 # davanagari ja
+sign \X091D 356 # davanagari jha
+sign \X091E 25 #davanagari yangaa
+
+sign \X091F 23456 # davanagari ta
+sign \X0920 2456 # davanagari tha
+sign \X0921 1246 # davanagari da
+sign \X0922 123456 # davanagari dha
+sign \X0923 3456 #davanagari nna
+
+sign \X0924 2345 # davanagari ta
+sign \X0925 1456 # davanagari tha
+sign \X0926 145 # davanagari da
+sign \X0927 2346 # davanagari dha
+sign \X0928 1345 #davanagari na
+
+sign \X092A 1234 # davanagari pa
+sign \X092B 235 # davanagari tha
+sign \X092C 12 # davanagari ba
+sign \X092D 45 # davanagari bha
+sign \X092E 134 #davanagari ma
+
+sign \X092F 13456 # davanagari yaa
+sign \X0930 1235 # davanagari ra
+sign \X0931 12357 # davanagari rra
+sign \X0932 123 # davanagari la
+sign \X0933 1237 #davanagari la
+sign \X0934 12378 #davanagari la
+sign \X0935 1236 #davanagari va
+sign \X0936 146 #davanagari sha
+sign \X0937 12346 #davanagari ssha
+sign \X0938 234 #davanagari sa
+sign \X0939 125 #davanagari ha
+
+#--------
+# matras
+
+sign \X093E 345 #baraa aa ki matra
+sign \X093F 24 #"chhoTi ii matra
+sign \X0940 35 #"baRii ii matra
+sign \X0941 136 #chhoTaa u matra
+sign \X0942 1256 #"baRaa uu matra"
+sign \X0943 5-1235 #"RRi matra"
+sign \X0944 5-12357 #"lri matra"
+sign \X0945 157 #"e matra"
+sign \X0946 347 #"ai matra"
+sign \X0947 15 #"e matra"
+sign \X0948 34 #"ai matra"
+sign \X0949 1357 #"o"
+sign \X094A 2467 #"au"
+sign \X094B 135 #"o matra"
+sign \X094C 246 #"au matra"
+
+sign \X094D 4
+
+#--------
+# digits
+
+digit \X0966 245 # davanagari 0
+digit \X0967 1 # davanagari 1
+digit \X0968 12 # davanagari 2
+digit \X0969 14 # davanagari 3
+digit \X096A 145 # davanagari 4
+digit \X096B 15 # davanagari 5
+digit \X096C 124 # davanagari 6
+digit \X096D 1245 # davanagari 7
+digit \X096E 125 # davanagari 8
+digit \X096F 24 # davanagari 9
+
+#--------
+# half characters
+
+always \X0915\x094D 4-13 # davanagari ka
+always \X0916\x094D 4-46 # davanagari kha
+always \X0917\x094D 4-1234 # davanagari ga
+always \X0918\x094D 4-126 # davanagari gha
+always \X0919\x094D 4-346 #davanagari aNgaa
+
+always \X091A\x094D 4-14 # davanagari ca
+always \X091B\x094D 4-16 # davanagari cha
+always \X091C\x094D 4-245 # davanagari ja
+always \X091D\x094D 4-356 # davanagari jha
+always \X091E\x094D 4-25 #davanagari yangaa
+
+always \X091F\x094d 4-23456 # davanagari ta
+always \X0920\x094D 4-2456 # davanagari tha
+always \X0921\x094D 4-1246 # davanagari da
+always \X0922\x094D 4-123456 # davanagari dha
+always \X0923\x094D 4-3456 #davanagari nna
+
+always \X0924\x094D 4-2345 # davanagari ta
+always \X0925\x094D 4-1456 # davanagari tha
+always \X0926\x094D 4-145 # davanagari da
+always \X0927\x094D 4-2346 # davanagari dha
+always \X0928\x094D 4-1345 #davanagari na
+
+always \X092A\x094D 4-1234 # davanagari pa
+always \X092B\x094D 4-235 # davanagari tha
+always \X092C\x094D 4-12 # davanagari ba
+always \X092D\x094D 4-2346 # davanagari bha
+always \X092E\x094D 4-1345 #davanagari ma
+
+always \X092F\x094D 4-13456 # davanagari yaa
+always \X0930\x094D 4-1235 # davanagari ra
+always \X0931\x094D 4-1235 # davanagari rra
+always \X0932\x094D 4-123 # davanagari la
+always \X0933\x094D 4-123 #davanagari la
+always \X0934\x094D 4-123 #davanagari la
+always \X0935\x094D 4-1236 #davanagari va
+always \X0936\x094D 4-146 #davanagari sha
+always \X0937\x094D 4-12346 #davanagari ssha
+always \X0938\x094D 4-234 #davanagari sa
+always \X0939\x094D 4-125 #davanagari ha
+
+#------------
+# consonent followed by vowel but not matra
+
+class HindiVowel \x0907\x0908\x0909\x090A\x090D\x090E\x090F\x0910\x0911\x0912\x0913\x0914
+
+before HindiVowel always \x0915 13-1 # davanagari ka
+before HindiVowel always \x0916 46-1 # davanagari kha
+before HindiVowel always \x0917 1245-1 # davanagari ga
+before HindiVowel always \x0918 126-1 # davanagari gha
+
+before HindiVowel always \x091A 14-1 # davanagari ca
+before HindiVowel always \x091B 16-1 # davanagari cha
+before HindiVowel always \x091C 245-1 # davanagari ja
+before HindiVowel always \x091D 356-1 # davanagari jha
+
+before HindiVowel always \x091F 23456-1 # davanagari ta
+before HindiVowel always \x0920 2456-1 # davanagari tha
+before HindiVowel always \x0921 1246-1 # davanagari da
+before HindiVowel always \x0922 123456-1 # davanagari dha
+before HindiVowel always \x0923 3456-1 #davanagari nna
+
+before HindiVowel always \x0924 2345-1 # davanagari ta
+before HindiVowel always \x0925 1456-1 # davanagari tha
+before HindiVowel always \x0926 145-1 # davanagari da
+before HindiVowel always \x0927 2346-1 # davanagari dha
+before HindiVowel always \x0928 1345-1 #davanagari na
+
+before HindiVowel always \x092A 1234-1 # davanagari pa
+before HindiVowel always \x092B 235-1 # davanagari tha
+before HindiVowel always \x092C 12-1 # davanagari ba
+before HindiVowel always \x092D 45-1 # davanagari bha
+before HindiVowel always \x092E 134-1 #davanagari ma
+
+before HindiVowel always \x092F 13456-1 # davanagari yaa
+before HindiVowel always \x0930 1235-1 # davanagari ra
+before HindiVowel always \x0931 12357-1 # davanagari rra
+before HindiVowel always \x0932 123-1 # davanagari la
+before HindiVowel always \x0933 1237-1 #davanagari la
+before HindiVowel always \x0934 12378-1 #davanagari la
+before HindiVowel always \x0935 1236-1 #davanagari va
+before HindiVowel always \x0936 146-1 #davanagari sha
+before HindiVowel always \x0937 12346-1 #davanagari ssha
+before HindiVowel always \x0938 234-1 #davanagari sa
+before HindiVowel always \x0939 125-1 #davanagari ha
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb
new file mode 100644
index 0000000..79185b0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb
@@ -0,0 +1,23 @@
+#  Copyright (C) 2010 Leon Ungier <Leon.Ungier@ViewPlus.com>, 
+#  Copyright (C) 2010 Mohammed R. Ramadan <mramadan@nattiq.com> 
+#  Copyright (C) 2010 Samuel Thibault <samuel.thibault@ens-lyon.org>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+# Table for Hindi
+include devanagari.cti
+include text_nabcc.dis
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb
new file mode 100644
index 0000000..44fbb54
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb
@@ -0,0 +1,233 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 2008-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Croatian
+#
+# Copyright (C) 2005 by Sebastien Sable, All rights reserved.
+
+# Table generated by Sébastien Sablé <sable@users.sourceforge.net> for
+# libbraille http://libbraille.org and gnome-braille
+# http://cvs.gnome.org/viewcvs/gnome-braille/
+#
+# Table adapted for BRLTTY by Samuel Thibault <samuel.thibault@ens-lyon.org>
+#
+# *Many thanks to Danko Butorac <danko at ipsis.hr> for his help*
+# Table based on "Croatian code page for computer 8-dot Braille
+# alphabet ANSI-1250" from the "Croatian Association of the Blind" at
+# http://www.savez-slijepih.hr/en/download.htm
+
+# generated by ttbtest
+space \s 0		SPACE
+punctuation " 2356		QUOTATION MARK
+punctuation $ 2346		DOLLAR SIGN
+punctuation % 46		PERCENT SIGN
+punctuation & 12346		AMPERSAND
+punctuation ' 6		APOSTROPHE
+punctuation ( 126		LEFT PARENTHESIS
+punctuation ) 345		RIGHT PARENTHESIS
+punctuation * 35		ASTERISK
+punctuation + 235		PLUS SIGN
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 3		FULL STOP
+punctuation / 256		SOLIDUS
+digit 0 346		DIGIT ZERO
+digit 1 16		DIGIT ONE
+digit 2 34		DIGIT TWO
+digit 3 146		DIGIT THREE
+digit 4 1456		DIGIT FOUR
+digit 5 156		DIGIT FIVE
+digit 6 1246		DIGIT SIX
+digit 7 12456		DIGIT SEVEN
+digit 8 1256		DIGIT EIGHT
+digit 9 246		DIGIT NINE
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation < 236		LESS-THAN SIGN
+punctuation = 123456		EQUALS SIGN
+punctuation > 356		GREATER-THAN SIGN
+punctuation ? 26		QUESTION MARK
+punctuation @ 47		COMMERCIAL AT
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+punctuation [ 123567		LEFT SQUARE BRACKET
+punctuation \\ 457		REVERSE SOLIDUS
+punctuation ] 234567		RIGHT SQUARE BRACKET
+punctuation ^ 567		CIRCUMFLEX ACCENT
+punctuation _ 4567		LOW LINE
+punctuation ` 4		GRAVE ACCENT
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation { 12356		LEFT CURLY BRACKET
+punctuation | 45		VERTICAL LINE
+punctuation } 23456		RIGHT CURLY BRACKET
+punctuation ~ 56		TILDE
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a4 4678		CURRENCY SIGN
+punctuation \x00a6 468		BROKEN BAR
+punctuation \x00a7 3578		SECTION SIGN
+punctuation \x00a8 8		DIAERESIS
+punctuation \x00a9 12458		COPYRIGHT SIGN
+punctuation \x00ab 378		LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00ac 2357		NOT SIGN
+punctuation \x00ad 78		SOFT HYPHEN
+punctuation \x00ae 1245678		REGISTERED SIGN
+punctuation \x00b0 578		DEGREE SIGN
+punctuation \x00b1 1234678		PLUS-MINUS SIGN
+punctuation \x00b4 48		ACUTE ACCENT
+lowercase \x00b5 34567		MICRO SIGN
+punctuation \x00b6 12348		PILCROW SIGN
+punctuation \x00b7 38		MIDDLE DOT
+punctuation \x00b8 568		CEDILLA
+punctuation \x00bb 678		RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+uppercase \x00c1 138		LATIN CAPITAL LETTER A WITH ACUTE
+uppercase \x00c2 123568		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c4 3457		LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase \x00c7 123467		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00c9 1234567		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00cb 12467		LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase \x00cd 347		LATIN CAPITAL LETTER I WITH ACUTE
+uppercase \x00ce 124567		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00d3 1358		LATIN CAPITAL LETTER O WITH ACUTE
+uppercase \x00d4 145678		LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase \x00d6 2467		LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation \x00d7 13468		MULTIPLICATION SIGN
+uppercase \x00da 1368		LATIN CAPITAL LETTER U WITH ACUTE
+uppercase \x00dc 12567		LATIN CAPITAL LETTER U WITH DIAERESIS
+uppercase \x00dd 134568		LATIN CAPITAL LETTER Y WITH ACUTE
+lowercase \x00df 234678		LATIN SMALL LETTER SHARP S
+lowercase \x00e1 27		LATIN SMALL LETTER A WITH ACUTE
+lowercase \x00e2 23678		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e4 3458		LATIN SMALL LETTER A WITH DIAERESIS
+lowercase \x00e7 123468		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00e9 1234568		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00eb 12468		LATIN SMALL LETTER E WITH DIAERESIS
+lowercase \x00ed 348		LATIN SMALL LETTER I WITH ACUTE
+lowercase \x00ee 124568		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00f3 267		LATIN SMALL LETTER O WITH ACUTE
+lowercase \x00f4 2568		LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase \x00f6 2468		LATIN SMALL LETTER O WITH DIAERESIS
+punctuation \x00f7 2578		DIVISION SIGN
+lowercase \x00fa 278		LATIN SMALL LETTER U WITH ACUTE
+lowercase \x00fc 12568		LATIN SMALL LETTER U WITH DIAERESIS
+lowercase \x00fd 25678		LATIN SMALL LETTER Y WITH ACUTE
+uppercase \x0102 18		LATIN CAPITAL LETTER A WITH BREVE
+lowercase \x0103 28		LATIN SMALL LETTER A WITH BREVE
+uppercase \x0104 34578		LATIN CAPITAL LETTER A WITH OGONEK
+lowercase \x0105 567		LATIN SMALL LETTER A WITH OGONEK
+uppercase \x0106 1467		LATIN CAPITAL LETTER C WITH ACUTE
+lowercase \x0107 1468		LATIN SMALL LETTER C WITH ACUTE
+uppercase \x010c 167		LATIN CAPITAL LETTER C WITH CARON
+lowercase \x010d 168		LATIN SMALL LETTER C WITH CARON
+uppercase \x010e 1458		LATIN CAPITAL LETTER D WITH CARON
+lowercase \x010f 368		LATIN SMALL LETTER D WITH CARON
+uppercase \x0110 14567		LATIN CAPITAL LETTER D WITH STROKE
+lowercase \x0111 14568		LATIN SMALL LETTER D WITH STROKE
+uppercase \x0118 15678		LATIN CAPITAL LETTER E WITH OGONEK
+lowercase \x0119 268		LATIN SMALL LETTER E WITH OGONEK
+uppercase \x011a 1267		LATIN CAPITAL LETTER E WITH CARON
+lowercase \x011b 238		LATIN SMALL LETTER E WITH CARON
+uppercase \x0139 1238		LATIN CAPITAL LETTER L WITH ACUTE
+lowercase \x013a 237		LATIN SMALL LETTER L WITH ACUTE
+uppercase \x013d 4568		LATIN CAPITAL LETTER L WITH CARON
+lowercase \x013e 128		LATIN SMALL LETTER L WITH CARON
+uppercase \x0141 12368		LATIN CAPITAL LETTER L WITH STROKE
+lowercase \x0142 2378		LATIN SMALL LETTER L WITH STROKE
+uppercase \x0143 13458		LATIN CAPITAL LETTER N WITH ACUTE
+lowercase \x0144 2567		LATIN SMALL LETTER N WITH ACUTE
+uppercase \x0147 124678		LATIN CAPITAL LETTER N WITH CARON
+lowercase \x0148 2358		LATIN SMALL LETTER N WITH CARON
+uppercase \x0150 24678		LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+lowercase \x0151 358		LATIN SMALL LETTER O WITH DOUBLE ACUTE
+uppercase \x0154 12358		LATIN CAPITAL LETTER R WITH ACUTE
+lowercase \x0155 2367		LATIN SMALL LETTER R WITH ACUTE
+uppercase \x0158 24568		LATIN CAPITAL LETTER R WITH CARON
+lowercase \x0159 3568		LATIN SMALL LETTER R WITH CARON
+uppercase \x015a 2348		LATIN CAPITAL LETTER S WITH ACUTE
+lowercase \x015b 357		LATIN SMALL LETTER S WITH ACUTE
+uppercase \x015e 234568		LATIN CAPITAL LETTER S WITH CEDILLA
+lowercase \x015f 35678		LATIN SMALL LETTER S WITH CEDILLA
+uppercase \x0160 1567		LATIN CAPITAL LETTER S WITH CARON
+lowercase \x0161 1568		LATIN SMALL LETTER S WITH CARON
+uppercase \x0162 23458		LATIN CAPITAL LETTER T WITH CEDILLA
+lowercase \x0163 3567		LATIN SMALL LETTER T WITH CEDILLA
+uppercase \x0164 123458		LATIN CAPITAL LETTER T WITH CARON
+lowercase \x0165 23567		LATIN SMALL LETTER T WITH CARON
+uppercase \x016e 3467		LATIN CAPITAL LETTER U WITH RING ABOVE
+lowercase \x016f 3468		LATIN SMALL LETTER U WITH RING ABOVE
+uppercase \x0170 34678		LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+lowercase \x0171 14678		LATIN SMALL LETTER U WITH DOUBLE ACUTE
+uppercase \x0179 13568		LATIN CAPITAL LETTER Z WITH ACUTE
+lowercase \x017a 2678		LATIN SMALL LETTER Z WITH ACUTE
+uppercase \x017b 12678		LATIN CAPITAL LETTER Z WITH DOT ABOVE
+lowercase \x017c 1678		LATIN SMALL LETTER Z WITH DOT ABOVE
+uppercase \x017d 23467		LATIN CAPITAL LETTER Z WITH CARON
+lowercase \x017e 23468		LATIN SMALL LETTER Z WITH CARON
+letter \x02c7 458		CARON
+punctuation \x02d8 467		BREVE
+punctuation \x02d9 67		DOT ABOVE
+punctuation \x02db 58		OGONEK
+punctuation \x02dd 68		DOUBLE ACUTE ACCENT
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis
new file mode 100644
index 0000000..29ba378
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis
@@ -0,0 +1,13 @@
+display " 4
+display 1 16
+display { 12356
+display } 23456
+display q 12345
+display 7 12456
+display 0 346
+display 2 126
+display 9 246
+display | 34
+display z 1356
+display & 12346
+display > 45
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti
new file mode 100644
index 0000000..b394459
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti
@@ -0,0 +1,269 @@
+# liblouis: Hungarian Grade 1 table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2011 by the BRLTTY Team
+#
+#  Copyright (C) 2011-2012, IT Foundation for the Visually Impaired - Hungary. Homepage: www.infoalap.hu 
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+#
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public
+#  License along with this program; see the file COPYING.  If not, write
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by Attila Hammer  hammer.attila@infoalap.hu"
+#
+# If you found bugs with hungarian grade1 table, report it with following address:
+# Attila Hammer <hammer.attila@infoalap.hu
+#If you have a Launchpad account, report table related requests with following bug tracker address: https://bugs.launchpad.net/belin
+
+space \s 0 blank
+space \t 0
+space \x001b 1b escape character for html back-translation
+space   0	be careful of this line, \x00a0 no-break space simbol
+space  0
+space	\s	0	SPACE
+space \x000a 0
+space \x000d 0
+punctuation	!	5	EXCLAMATION MARK
+punctuation	$	46
+punctuation	%	1234567	PERCENT SIGN
+punctuation	'	6	APOSTROPHE
+punctuation	(	236	LEFT PARENTHESIS
+punctuation	)	356	RIGHT PARENTHESIS
+punctuation	*	35	ASTERISK
+punctuation	+	235	PLUS SIGN
+punctuation	,	2	COMMA
+punctuation	-	36	HYPHEN-MINUS
+punctuation	/	256	SOLIDUS
+
+punctuation	.	3	FULL STOP
+sign # 3456
+punctuation	:	25	COLON
+punctuation	;	23	SEMICOLON
+punctuation	<	56	LESS-THAN SIGN
+punctuation	=	2356	EQUALS SIGN
+punctuation @ 45
+punctuation	>	45	GREATER-THAN SIGN
+punctuation	?	26	QUESTION MARK
+
+punctuation	[	123567	LEFT SQUARE BRACKET
+punctuation	\\	347	REVERSE SOLIDUS
+punctuation	]	234567	RIGHT SQUARE BRACKET
+punctuation	~	2346	TILDE
+
+punctuation	^	2346	CIRCUMFLEX ACCENT
+letter  456
+punctuation _ 6-36
+punctuation          _ 456           #95    _  LOW LINE
+punctuation	`	345	GRAVE ACCENT
+
+#Accented letters
+uplow	Áá	4	LATIN SMALL LETTER A WITH ACUTE
+uplow	Éé	16	LATIN SMALL LETTER E WITH ACUTE
+uplow	Íí	34	LATIN SMALL LETTER I WITH ACUTE
+uplow	Óó	246	LATIN SMALL LETTER O WITH ACUTE
+uplow	Úú	346	LATIN SMALL LETTER U WITH ACUTE
+uplow	Üü	12356	LATIN SMALL LETTER U WITH DIAERESIS
+uplow	Őő	12456	LATIN SMALL LETTER O WITH DOUBLE ACUTE
+uplow	Űű	23456	LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+uplow Öö 12345
+uplow Õõ 12456
+lowercase û 23456
+uplow Zz 126
+punctuation & 5-12346
+letter q 12346
+punctuation	{	12356	LEFT CURLY BRACKET
+punctuation	|	34	VERTICAL LINE
+punctuation	}	23456	RIGHT CURLY BRACKET
+punctuation	"	4	QUOTATION MARK
+include latinLetterDef6Dots.uti
+include digits6DotsPlusDot6.uti
+space	 	0	EN SPACE
+space	 	0	EM SPACE
+space	 	0	THREE-PER-EM SPACE
+space	 	0	FOUR-PER-EM SPACE
+space	 	0	SIX-PER-EM SPACE
+punctuation	 	0	FIGURE SPACE
+space	 	0	PUNCTUATION SPACE
+space	 	0	THIN SPACE
+space	 	0	HAIR SPACE
+punctuation	 	0	NARROW NO-BREAK SPACE
+space	 	0	MEDIUM MATHEMATICAL SPACE
+punctuation	─	2356	BOX DRAWINGS LIGHT HORIZONTAL
+punctuation	━	2356	BOX DRAWINGS HEAVY HORIZONTAL
+punctuation	│	123456	BOX DRAWINGS LIGHT VERTICAL
+punctuation	┃	123456	BOX DRAWINGS HEAVY VERTICAL
+punctuation	┄	2356	BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+punctuation	┅	2356	BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+punctuation	┆	123456	BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+punctuation	┇	123456	BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+punctuation	┈	2356	BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+punctuation	┉	2356	BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+punctuation	┊	123456	BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+punctuation	┋	123456	BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+punctuation	┌	2356	BOX DRAWINGS LIGHT DOWN AND RIGHT
+punctuation	┍	2356	BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+punctuation	┎	2356	BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+punctuation	┏	2356	BOX DRAWINGS HEAVY DOWN AND RIGHT
+punctuation	┐	2356	BOX DRAWINGS LIGHT DOWN AND LEFT
+punctuation	┑	2356	BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+punctuation	┒	23567	BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+punctuation	┓	2356	BOX DRAWINGS HEAVY DOWN AND LEFT
+punctuation	└	123456	BOX DRAWINGS LIGHT UP AND RIGHT
+punctuation	┕	123456	BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+punctuation	┖	123456	BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+punctuation	┗	123456	BOX DRAWINGS HEAVY UP AND RIGHT
+punctuation	┘	123456	BOX DRAWINGS LIGHT UP AND LEFT
+punctuation	┙	123456	BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+punctuation	┚	123456	BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+punctuation	┛	123456	BOX DRAWINGS HEAVY UP AND LEFT
+punctuation	├	123456	BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+punctuation	┝	123456	BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+punctuation	┞	123456	BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+punctuation	┟	123456	BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+punctuation	┠	123456	BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+punctuation	┡	123456	BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+punctuation	┢	123456	BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+punctuation	┣	123456	BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+punctuation	┤	123456	BOX DRAWINGS LIGHT VERTICAL AND LEFT
+punctuation	┥	123456	BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+punctuation	┦	123456	BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+punctuation	┧	123456	BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+punctuation	┨	123456	BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+punctuation	┩	123456	BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+punctuation	┪	123456	BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+punctuation	┫	123456	BOX DRAWINGS HEAVY VERTICAL AND LEFT
+punctuation	┬	2356	BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+punctuation	┭	2356	BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+punctuation	┮	2356	BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+punctuation	┯	2356	BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+punctuation	┰	2356	BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+punctuation	┱	2356	BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+punctuation	┲	2356	BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+punctuation	┳	2356	BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+punctuation	┴	123456	BOX DRAWINGS LIGHT UP AND HORIZONTAL
+punctuation	┵	123456	BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+punctuation	┶	123456	BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+punctuation	┷	123456	BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+punctuation	┸	123456	BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+punctuation	┹	123456	BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+punctuation	┺	123456	BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+punctuation	┻	123456	BOX DRAWINGS HEAVY UP AND HORIZONTAL
+punctuation	┼	123456	BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+punctuation	┽	123456	BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+punctuation	┾	123456	BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+punctuation	┿	123456	BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+punctuation	╀	123456	BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+punctuation	╁	123456	BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+punctuation	╂	123456	BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+punctuation	╃	123456	BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+punctuation	╄	123456	BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+punctuation	╅	123456	BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+punctuation	╆	123456	BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+punctuation	╇	123456	BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+punctuation	╈	123456	BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+punctuation	╉	123456	BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+punctuation	╊	123456	BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+punctuation	╋	123456	BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+punctuation	╌	2356	BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+punctuation	╍	2356	BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+punctuation	╎	123456	BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+punctuation	╏	123456	BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+punctuation	═	2356	BOX DRAWINGS DOUBLE HORIZONTAL
+punctuation	║	123456	BOX DRAWINGS DOUBLE VERTICAL
+punctuation	╒	2356	BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+punctuation	╓	2356	BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+punctuation	╔	2356	BOX DRAWINGS DOUBLE DOWN AND RIGHT
+punctuation	╕	2356	BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+punctuation	╖	2356	BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+punctuation	╗	2356	BOX DRAWINGS DOUBLE DOWN AND LEFT
+punctuation	╘	123456	BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+punctuation	╙	123456	BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+punctuation	╚	123456	BOX DRAWINGS DOUBLE UP AND RIGHT
+punctuation	╛	123456	BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+punctuation	╜	123456	BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+punctuation	╝	123456	BOX DRAWINGS DOUBLE UP AND LEFT
+punctuation	╞	123456	BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+punctuation	╟	123456	BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+punctuation	╠	123456	BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+punctuation	╡	123456	BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+punctuation	╢	123456	BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+punctuation	╣	123456	BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+punctuation	╤	2356	BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+punctuation	╥	2356	BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+punctuation	╦	2356	BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+punctuation	╧	123456	BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+punctuation	╨	123456	BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+punctuation	╩	123456	BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+punctuation	╪	123456	BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+punctuation	╫	123456	BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+punctuation	╬	123456	BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+punctuation	╭	2356	BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+punctuation	╮	2356	BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+punctuation	╯	123456	BOX DRAWINGS LIGHT ARC UP AND LEFT
+punctuation	╰	123456	BOX DRAWINGS LIGHT ARC UP AND RIGHT
+punctuation	╱	47	BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+punctuation	╲	18	BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+punctuation	╳	14	BOX DRAWINGS LIGHT DIAGONAL CROSS
+punctuation	╴	2356	BOX DRAWINGS LIGHT LEFT
+punctuation	╵	123456	BOX DRAWINGS LIGHT UP
+punctuation	╶	2356	BOX DRAWINGS LIGHT RIGHT
+punctuation	╷	2356	BOX DRAWINGS LIGHT DOWN
+#punctuation	%	2356	BOX DRAWINGS HEAVY LEFT
+punctuation	╹	123456	BOX DRAWINGS HEAVY UP
+punctuation	╺	2356	BOX DRAWINGS HEAVY RIGHT
+punctuation	╻	2356	BOX DRAWINGS HEAVY DOWN
+punctuation	╼	2356	BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+punctuation	╽	123456	BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+punctuation	╾	2356	BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+punctuation	╿	123456	BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+punctuation – 36
+punctuation … 3-3-3
+punctuation « 26
+punctuation » 26
+punctuation ‘ 23567
+punctuation ’ 47
+punctuation ‚ 26
+punctuation “ 236
+punctuation ” 356
+punctuation „ 1268
+sign • 26
+punctuation ś 26
+letter ź 134568
+punctuation — 36-36
+lowercase ä 26
+punctuation · 3 MIDDLE DOT
+punctuation § 3456-1236
+punctuation … 3-3-3
+letter ç 14
+letter þ 245
+letter ø 12345
+letter ë 12345
+punctuation º 0
+punctuation \x001e 36	If I replace this sequence with normal unicode character, lou_checktable present an error message
+letter è 15
+letter ê 15
+uppercase Æ 4-1 LATIN CAPITAL LETTER AE LATIN CAPITAL LETTER A E 
+sign € 56-15
+letter ff 0
+letter fi 0
+letter fl 0
+letter ffi 0
+letter ffl 0
+letter ţ 0
+letter ş 0
+letter ř 1235
+letter à 4
+letter ñ 1345
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti
new file mode 100644
index 0000000..8170e9d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti
@@ -0,0 +1,864 @@
+# liblouis: Hungarian Grade 1 table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2011 by the BRLTTY Team
+#
+#  Copyright (C) 2011-2012, IT Foundation for the Visually Impaired - Hungary. Homepage: www.infoalap.hu 
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+#
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public
+#  License along with this program; see the file COPYING.  If not, write
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by Attila Hammer  hammer.attila@infoalap.hu"
+#
+# If you found bugs with hungarian grade1 table, report it with following address:
+# Attila Hammer <hammer.attila@infoalap.hu
+#If you have a Launchpad account, report table related requests with following bug tracker address: https://bugs.launchpad.net/belin
+
+#This file containing exception words with different need appliing general hungarian combined braille letters, for example cs, ccs, ty, tty rules
+#cs, ccs related exceptions
+partword arccs 1-1235-14-146	For example arccsont, harccsoport, harccselekmény words
+partword arcsérül =	For example arcsérülés word
+partword habarccs 125-1-12-1-1235-146-146	For example habarccsal word
+begword harcso =	For example harcsor word
+partword árbóc =	For example árbóccsúcs word
+partword árboc =	For example árboccsúcs word
+begword fegyenc 124-15-1456-15-1345-14	For example fegyenccsoport, fegyencsapkát words
+begword filc =	For example filccsizma word
+partword gerinc =	For example gerincsérült, gerincsérv words
+partword kilenc =	For example kilenccsatorna word
+partword kavics 13-1-1236-24-146	For example kavicszápor, kavicszátony, kavicszuzalék, kavicsszerű words
+partword kaviccs 13-1-1236-24-146-146	For example kaviccsá word, only backtranslation affected this exception, normal contracted braille text are Ok
+begword kudarc =	For example kudarcsorozat
+begword különcsé =	For example különcség word
+begword lánc =	For example láncszem, lánccsörgés words
+partword licenc =	For example licencsértés, licenccsalád words
+partword malac =	For example malacság, malacsült words
+begword nerc =	For example nercstóla word
+begword nercsinszk 1345-15-1235-146-24-1345-156-13
+always pácsó =	Pácsó word
+partword polc =	For example polcsor word
+begword ipolcs 24-1234-135-123-146
+partword tapolcsá 2345-1-1234-135-123-146-4
+begword opolcs 135-1234-135-123-146
+partword porcsé =	For example porcsérülés word
+begword szocsegé 156-135-14-234-15-1245-16	For example szocsegély word
+begword kóccs 13-246-14-146	For example kóccsomó word
+
+partword tánc =	For example tánccsoport word
+partword sátáncsap 234-4-2345-4-1345-146-1-1234	For example sátáncsapat word
+partword piac =	For example piaccsarnok word
+always piacson 1234-24-1-146-135-1345
+partword szanitéccs 156-1-1345-24-2345-16-14-146	For example szanitéccsoport word
+partword pokróc =	For example pokróccsík word
+partword cször 146-126-12345-1235	For example kulcszörgés, bilincszörgés, kilincszörgést words
+partword kartács 13-1-1235-2345-4-146	For example kartácszápor word
+partword papucsz 1234-1-1234-136-146-126	For example papucszápor word
+begword ínyencsé 34-1246-15-1345-14-234-16	For example ínyencség word
+begword bohóc =	For example bohócsapkája word
+partword kalapácszen 13-1-123-1-1234-4-146-126-15-1345	For example kalapácszengés word
+begword ákác =	For example ákácsövény word
+begword akác =	For example akácsövény word
+begword viccso =	For example viccsor word need this exception
+begword ércsis =	For example ércsisak word
+always ércsas =	For example ércsas word
+begword virgonc =	For example virgoncság word need this exception
+begword martalóc =
+partword újonc =	For example újoncság word
+begword kuruc =	For example kurucság word
+begword palóc =	For example palócság word
+begword fejléc =
+begword nyolc 1246-135-123-14	For example nyolcsebességes, nyolccsatornás words
+begword bércsüve =	For example bércsüveg word
+begword elméncsé =	For example elméncség word
+begword ércsala =	For example ércsalak word
+partword érccs 16-1235-14-146	For example érccsapadék, érccsengés, érccsatorna words
+begword ércsely 16-1235-14-234-15-456	For example ércselyem word
+begword ércsí =	For example ércsíp, ércsípjába, ércsípláda words
+partword ércsípte 16-1235-146-34-1234-2345-15	For example ércsíptető word an exception
+begword ércsodr =	For example ércsodrony word
+begword garabonc =	For example garaboncsereg word
+begword labanc =
+begword kéjenc 13-16-245-15-1345-14
+partword jegeccsop 245-15-1245-15-14-146-135-1234	For example jegeccsoport word
+partword lazac 123-1-126-1-14	For example lazaccsontváz word
+partword vakarccs 1236-1-13-1-1235-146-146	For example vakarccsal word
+always arcseb =	For example arcseb, arcsebe words
+partword nyargonccs 1246-1-1235-1245-135-1345-14-146	For example nyargonccsizma word
+partword perec =	For example perecsütőnő, vállpereccsontjából words
+always perecse 1234-15-1235-15-146-15
+begword princség =	For example princséged word
+always rácság =	For example rácság, rácságból words
+partword suhanc =	For example suhanccsürhe, suhancsereg word
+partword udvaronc =	For example udvaroncsereg word need this exception
+
+#gy, ggy related exceptions
+#This exception section containing word parts and full words with need marking ggy letter pairs with single g and gy braille dot combination
+partword zálog 126-4-123-135-1245	For example záloggyűrűmet word
+partword szentséggy 156-15-1345-2345-234-16-1245-1456	For example szentséggyalázás word
+partword láng =	For example lánggyújtogató word
+partword lángy 123-4-1345-1456	An exception handling the prewious rule related. Csalángyolcs word is an exception word
+partword kötelesség =	For example kötelességgyakorlás word
+always meggyem 134-15-1456-1456-15-134
+partword sereg =	For example sereggyűjtés, hadsereggyűjtés words
+begword agyaggy 1-1456-1-1245-1456	For example agyaggyűrűiken word
+begword ginzenggy 1245-24-1345-126-15-1345-1245-1456	For example ginzenggyökér word need this exception
+begword ginseng 1245-24-1345-234-15-1345-1245	For example binsenggyökér word
+begword loggyűjt 123-135-1245-1456-23456-245-2345	For example loggyűjtemény word need this exception
+partword nyaggyá 1246-1-1245-1456-4	For example hadianyaggyár word
+partword nyaggyűj 1246-1-1245-1456-23456-245	For example anyaggyűjtés word
+partword nyaggyő 1246-1-1245-1456-12456	For example anyaggyőző word
+partword reggyul 1235-15-1245-1456-136-123	For example arcüreggyulladás word
+partword lyeggyűj 456-15-1245-1456-23456-245	For example bélyeggyűjtemény word
+begword beteggyógy 12-15-2345-15-1245-1456-246-1456	For example beteggyógyász word
+partword döggyapj 145-12345-1245-1456-1-1234-245	For example döggyapjú word
+partword foggyal 124-135-1245-1456-1-123	For example foggyalu word part
+partword oggyö 135-1245-1456-12345	For example foggyökér word
+partword oggyul 135-1245-1456-136-123	For example foggyulladás word
+partword szenggyö 156-15-1345-1245-1456-12345	For example ginszenggyökér word
+begword foggyű 124-135-1245-1456-23456	For example foggyűrű word
+partword jéggyár 245-16-1245-1456-4-1235	For example jéggyártás, műjéggyár word parts
+partword deggyen 145-15-1245-1456-15-1345	For example ideggyengeség word
+partword deggyön 145-15-1245-1456-12345-1345	For example ideggyönge word
+partword deggyullad 145-15-1245-1456-136-123-123-1-145	For example ideggyulladás word
+partword deggyó 145-15-1245-1456-246	For example ideggyógyintézet, ideggyógyászat word
+partword deggyötr 145-15-1245-1456-12345-2345-1235	For example ideggyötrő word
+begword kuplung =	For example kuplunggyár word
+begword leggy 123-15-1245-1456	If a word beginning with leg word and following gy letter, need this exception to produce right literal form
+partword léggyö 123-16-1245-1456-12345	For example léggyök, léggyökér words
+endword meggy 134-15-1456-1456
+partword meggy 134-15-1245-1456	If meg word part following gy letter, always need writing single g and gy combined letters, but will be have some exceptions
+word meggy 134-15-1456-1456	Single meggy word is a fruit, and need writing two combined ggy braille dots
+endword meggy 134-15-1456-1456
+always bonbonmeggy 12-135-1345-12-135-1345-134-15-1456-1456	For example bonbonmeggy word
+word meggyel 134-15-1456-1456-15-123	For example meggyel word
+endword meggyel 134-15-1456-1456-15-123	For example meggyel word
+word meggyen 134-15-1456-1456-15-1345	For example meggyen word
+endword meggyen 134-15-1456-1456-15-1345	For example spanyolmeggyen word
+always meggyes 134-15-1456-1456-15-234	For example meggyes pite, Meggyesi  word parts
+always meggyet 134-15-1456-1456-15-2345	For example meggyet word
+partword meggyb 134-15-1456-1456-12	For example meggybefőtt word
+partword meggyf 134-15-1456-1456-124	For example meggyfa word part
+partword meggyh 134-15-1456-1456-125	For example meggyhez word part
+partword meggyl 134-15-1456-1456-123	For example meggylekvár word
+partword meggyn 134-15-1456-1456-1345	For example meggynek word part
+partword meggym 134-15-1456-1456-134	For example meggymag word
+partword meggyp 134-15-1456-1456-1234	For example meggypiros word
+partword meggyr 134-15-1456-1456-1235	For example meggytől word part
+partword meggysz 134-15-1456-1456-156	For example meggyszín word part
+partword meggyt 134-15-1456-1456-2345	For example meggytől word part
+partword meggyv 134-15-1456-1456-1236	For example meggyvörös word
+partword meggyíz 134-15-1456-1456-34-126	For example meggyízű word
+partword ország 135-1235-156-4-1245
+partword oggyak 135-1245-1456-1-13	For example proggyak word
+begword szöveggy 156-12345-1236-15-1245-1456	For example szöveggyűjtemény word part
+begword régiség =	For example régiséggyűjtő word part
+begword ritkaság =	For example ritkasággyűjtő word part
+partword taggyűl 2345-1-1245-1456-23456-123	For example taggyűlés word part
+partword veggyá 1236-15-1245-1456-4	For example üveggyártás word
+partword veggya 1236-15-1245-1456-1	For example üveggyapot word
+partword veggyö 1236-15-1245-1456-12345	For example üveggyöngy word
+partword ggyalog 1245-1456-1-123-135-1245	For example végiggyalogolhatja word
+partword végiggy 1236-16-1245-24-1245-1456	For example végiggyakorolni word
+begword világ =	For example világgyűlölő word part
+partword bádog =	For example bádoggyűjtemény word
+partword szöggy 156-12345-1245-1456	For example szöggyár word
+partword hanggyak 125-1-1345-1245-1456-1-13	For example hanggyakorlat word
+partword hanggyűjt 125-1-1345-1245-1456-23456-245-2345	For example hanggyűjtemény word
+partword eleséggy 15-123-15-234-16-1245-1456	For example feleséggyilkos, eleséggyűjtés words
+partword elséggyil 15-123-234-16-1245-1456-24-123	For example felséggyilkolás word
+partword hólyaggyul 125-246-456-1-1245-1456-136-123	For example hólyaggyulladás word
+partword mádsággyűj 134-4-145-234-4-1245-1456-23456-245	For example imádsággyűjtemény word
+partword rággyűjt 1235-4-1245-1456-23456-245-2345	For example virággyűjtés, virággyűjtemény words
+partword droggy 145-1235-135-1245-1456	For example droggyanús word
+partword méreg =	For example méreggyökérré, méreggyökeret, méreggyümölccsé words
+partword mérleg =	For example mérleggyár word
+partword nyereggy 1246-15-1235-15-1245-1456	For example nyereggyártók word
+partword üveg =	For example üveggyűrű word
+partword vendég =	For example vendéggyermek, vendéggyülekezet word
+partword világosság =	For example világossággyújtásra word
+partword virág =	For example virággyapjaikat word
+partword csillaggy 146-24-123-123-1-1245-1456	For example csillaggyárnak word
+
+#ny, nny related exceptions
+#Following exception parts need marking nny letter pairs with single n and nny braille dot combinations
+partword mikron =	For example mikronnyi word
+partword pergamennyal 1234-15-1235-1245-1-134-15-1345-1246-1-123	For example pergamennyaláb word
+begword ínnyújt 34-1345-1246-346-245-2345	For example ínnyújtó, ínnyújtót words
+begword ínnyujt 34-1345-1246-136-245-2345	For example ínnyújtó, ínnyújtót words
+partword indiánny 24-1345-145-24-4-1345-1246	For example indiánnyelven, indiánnyelv words
+partword kalánnyel 13-1-123-4-1345-1246-15-123	For example főzőkalánnyelet word
+begword filigránny 124-24-123-24-1245-1235-4-1345-1246	For example filigránnyelű word
+partword lennyil 123-15-1345-1246-24-123	For example ellennyilatkozat word
+partword lennyom 123-15-1345-1246-135-134	For example ellennyomás word
+partword lennyug 123-15-1345-1246-136-1245
+partword nnyol 1345-1246-135-123	For example nyolcvannyolc word
+partword tennyil 2345-15-1345-1246-24-123	For example istennyila word
+partword annyú 1-1345-1246-346
+partword lönnyom 123-12345-1345-1246-135-134
+partword gánnyug 1245-4-1345-1246-136-1245	For example magánnyugdíjpénztár word
+partword gánnyo 1245-4-1345-1246-135
+partword idegen =
+partword ínnyom 34-1345-1246-135-134	For example színnyomás word
+partword annyel 1-1345-1246-15-123
+partword tánnyom 2345-4-1345-1246-135-134	For example utánnyomás word
+begword penny 1234-15-1345-1345-13456
+endword penny 1234-15-1345-1345-13456	For example english penny beginning words need this exception
+word penny 1234-15-1345-1345-13456	For example english penny beginning words need this exception
+word pennys 1234-15-1345-1345-13456-234	For example english pennys beginning words need this exception
+endword pennys 1234-15-1345-1345-13456-234	For example english end of pennys words need this exception
+word pennyt 1234-15-1345-1345-13456-2345	For example english pennyt beginning words need this exception
+endword pennyt 1234-15-1345-1345-13456-2345	For example english end of pennyt beginning words need this exception
+word pennyst 1234-15-1345-1345-13456-234-2345
+endword pennyst 1234-15-1345-1345-13456-234-2345
+partword pennysek 1234-15-1345-1345-13456-234-15-13
+partword pennybe 1234-15-1345-1345-13456-12-15
+partword pennyér 1234-15-1345-1345-13456-16-1235
+partword pennyj 1234-15-1345-1345-13456-245
+partword pennyk 1234-15-1345-1345-13456-13
+partword pennyn 1234-15-1345-1345-13456-1345
+partword pennyre 1234-15-1345-1345-13456-1235-15
+partword pennyve 1234-15-1345-1345-13456-1236-15
+partword pennysért 1234-15-1345-1345-13456-234-16-1235-2345
+partword pennysse 1234-15-1345-1345-13456-234-234-15
+partword trichinny 2345-1235-24-14-125-24-1345-1246	For example trichinnyavalya word
+always company 14-135-134-1234-1-1345-13456	English company word
+begword azonnyom 1-126-135-1345-1246-135-134	For example azonnyomban beginning words
+begword rubinny 1235-136-12-24-1345-1246	For example rubinnyaklánc word
+partword karton =	For example kartonnyi word
+begword lépten =	For example léptennyomon word
+partword agyonny 1-1456-135-1345-1246	For example agyonnyom, agyonnyomja, agyonnyúzott, agyonnyűtt words
+begword börtön =	For example börtönnyelve word
+partword mikrofon =	For example mikrofonnyílás word
+partword szalonnyel 156-1-123-135-1345-1246-15-123	For example szalonnyelv, szalonnyelven words
+partword vagon =	For example vagonnyi word
+partword kamion =	For example kamionnyi word
+partword kabin =	For example kabinnyomás, kabinnyílás words
+partword gallon =	For example tízgallonnyi word
+partword arinnyel 1-1235-24-1345-1246-15-123	For example mandarinnyelv word
+begword bűn =	For example bűnnyomok word
+partword magánnyel 134-1-1245-4-1345-1246-15-123	For example magánnyelvmesterek word
+partword oroszlánnyo 135-1235-135-156-123-4-1345-1246-135	For example oroszlánnyom word
+partword önnyom 12345-1345-1246-135-134	For example önnyomása, önnyomatú words
+partword dizájnny 145-24-126-4-245-1345-1246	For example dizájnnyelv word
+
+#ly related exceptions
+#This exception parts need marking ly letters with two single l and y letter combination
+always hollywood =	English hollywood word need this exception
+partword sually =	For example visually word
+
+#sz letter pair related exceptions
+#This exception list containing words or word parts need using single s and z letter dot combinations
+begmidword alvás =	For example alvászavar word need this exception
+begmidword erőforrás =	For example erőforrászabáló word need this exception
+always evészav 15-1236-16-234-126-1-1236	For example evészavar word need this exception
+begword fáklyás 124-4-13-456-4-234	For example fáklyászene word need this exception
+begword gyalogos 1456-1-123-135-1245-135-234	For example gyalogoszászlóalj, gyalogosszázad words need this exception, gyalogos beginning word parts need handling gyalogos word part with single part
+partword tokoszászl 2345-135-13-135-234-126-4-156-123
+begword hallás =	For example hallászavar word need this exception
+always köröszug 13-12345-1235-12345-234-126-136-1245	For example Köröszug word need this exception
+begword látás =	For example látászavar word need this exception
+begword magatartás =
+always maroszug 134-1-1235-135-234-126-136-1245	For example Maroszug word need this exception
+always működés =	For example működészavar word need this exception
+begword nyílás 1246-34-123-4-234	For example nyílászáró word need this exception
+always ritmus =	For example ritmuszavar word need this exception
+begword vas =	vas beginning words need handling single part the vas word part for braille translation, example words are vaszár, vasszekrény, vasszerkezet words
+begword vaszil 1236-1-156-24-123
+begword vonós =	For example vonószenekar, vonósszerenád words need handlin vonós word part with single part
+begword pénzes 1234-16-1345-126-15-234	For example pénzeszacskó, pénzeszsák words need this exception
+partword viselkedés =	For example viselkedészavar, viselkedésszerű words need this exception to handling this words with two word for braille translation
+always üléssz 12356-123-16-234-156	For example ülésszak word
+partword ugasszer 136-1245-1-234-156-15-1235	For example lugasszerű word
+partword sszekrény 234-156-15-13-1235-16-1246	For example kisszekrény word
+begword pilis =	For example Pilisszántó, Pilisszentkereszt town names
+always hússzag 125-346-234-156-1-1245	For example hússzag, hússzagú, emberhússzagot words
+partword szacsk 234-126-1-146-13	For example chipseszacskó, liszteszacskó, vizeleteszacskó words
+partword keresés =	For example keresésszolgáltató word
+partword szorongássz 156-135-1235-135-1345-1245-4-234-156	For example szorongásszerű, szorongásszint word
+partword identitás =	For example identitászavar word need this exception
+partword gránátos =	For example gránátoszászlóalj word
+begword mágnes =	For example mágneszár, nágnesszalag, mágnesszerű words need this exception
+begword piros =	For example piroszászlós word need this 
+begword vörös =	For example vöröszászló word
+partword típus =	For example típuszubbony word
+begword árgus =	For example árgusszemű word
+partword dragonyos 145-1235-1-1245-135-1246-135-234	For example dragonyoszászlóalj, dragonyosszázad words
+partword egyenes 15-1456-15-1345-15-234	For example egyenesszárnyúak word
+partword képzés 13-16-1234-126-16-234	For example képzésszervezés, képzésszerű words
+partword fuvaros =	For example fuvarosszekér word
+partword koldus =	For example koldusszáj, koldusszakáll, kolduszene words
+begword tetszés 2345-15-2345-156-16-234	For example tetszészaj, tetszészsivaj words need this general exception
+partword járás =	For example járásszerű, járásszékhely, időjárásszolgálat words
+always kiszombor 13-24-234-126-135-134-12-135-1235	For example Kiszombor, Kiszomboron town names
+partword szöld 234-126-12345-123-145	For example haragoszöld, mohaszöld, piszkoszöld word
+partword ozgásza 135-126-1245-4-234-126-1		For example mozgászavar word
+begword pirosszk 1234-24-1235-135-156-156-13	Pirosszka is a movie film name
+partword fedezéssz 124-15-145-15-126-16-234-156	For example felfedezésszámba word
+partword város =	For example városzajon, városzajt, városzsivaj words
+always városzt 1236-4-1235-135-156-2345	Városztályába word is an exception the prewious defined general város words related rule
+always részárás 1235-16-234-126-4-1235-4-234	For example részárás beginning words need this exception
+always légzés 123-16-1245-126-16-234	For example légzésszám, légzésszerű, légzészavar words
+partword szavar 234-126-1-1236-1-1235	General exception with handles more szavar style words
+
+#szs related exceptions
+#This exception list containing some words with need using single s and zs braille dots
+partword szsák 234-345-4-13	This exception needs for szsák word part containing words, for example kenyereszsák, szerszámoszsák, szennyeszsák words
+begword sonkás =	For example sonkászsemle word need this exception
+begword vizeszs 1236-24-126-15-234-345	For example vizeszsemle word need this exception
+partword sertés =	For example sertészsír word
+partword tászsin 2345-4-234-345-24-1345	For example gyújtászsinór word
+partword rvaszsír 1235-1236-1-234-345-34-1235	For example szarvaszsír word
+
+#ssz related exceptions
+#Following exception words and word parts need writing one s and one sz braille letter
+partword sszekér 234-156-15-13-16-1235	For example ekhósszekér, lőporosszekér words, but will be have some exceptions later
+partword sszeker 234-156-15-13-15-1235	For example ekhósszekerek, lőporosszekerek words, but will be have some exceptions later
+begword összek 12345-156-156-15-13	For example összekéregetett, összekéregettek, összekeresgélt words need this exception to prewent affecting the prewious two general rules wrong presenting összek beginning words
+partword plüsszs 1234-123-12356-234-234-345	For example plüsszsölyét, plüsszsák, plüsszsiráf words
+always komisszér 13-135-134-24-156-156-16-1235	For example policájkomisszér word
+partword papirossz 1234-1-1234-24-1235-135-234-156	For example papirosszeletre word
+partword portássz 1234-135-1235-2345-4-234-156	For example portásszoba word
+partword vitorlássz 1236-24-2345-135-1235-123-4-234-156	For example vitorlásszezon word
+partword kaparásszer 13-1-1234-1-1235-4-234-156-15-1235	For example kaparásszerű, macskakaparásszerű words
+partword kihívássz 13-24-125-34-1236-4-234-156	For example kihívásszerű word
+always hússzaft 125-346-234-156-1-124-2345	For example hússzaft, hússzaftba words
+partword kegéssz 13-15-1245-16-234-156	For example brekegésszerű word
+partword kapussz 13-1-1234-136-234-156	For example kapusszoba word
+partword jóssz 245-246-234-156	For example jósszavai, jósszelleme, hajósszemélyzet, hajósszekerce words
+partword jáspisszob 245-4-234-1234-24-234-156-135-12	For example jáspisszobor word
+begword forrássz 124-135-1235-1235-4-234-156	For example forrásszöveg word
+begword inassz 24-1345-1-234-156	For example inasszerep, inasszeretetet, inasszerepet words
+begword hőssz 125-12456-234-156	For example hősszínész, hősszövetség words
+begword hízelkedéssz 125-34-126-15-123-13-15-145-16-234-156	For example hízelkedésszámba word
+begword hússzig 125-346-234-156-24-1245	For example Hússziget word
+begword hűvössz 125-23456-1236-12345-234-156	For example hűvösszemű word
+begword kisszáll 13-24-234-156-4-123-123	For example Kisszállás willage name
+begword gyorssz 1456-135-1235-234-156	For example gyorsszárnyú, gyorsszekér words
+partword versszerz 1236-15-1235-234-156-15-1235-126	For example gúnyversszerző word
+partword dásszün 145-4-234-156-12356-1345	For example adásszünet word
+partword másszür 134-4-234-156-12356-1235	For example almásszürke word
+partword orssze 135-1235-234-156-15	For example borsszem word
+partword borsszór 12-135-1235-234-156-246-1235	For example borsszóró word
+partword losszer 123-135-234-156-15-1235
+partword lusszab 123-136-234-156-1-12
+partword tósszez 2345-246-234-156-15-126
+partword césszer 14-16-234-156-15-1235
+partword nyosszel 1246-135-234-156-15-123
+partword hosszag 125-135-234-156-1-1245
+partword nesszö 1345-15-234-156-12345	For example egyenesszög word
+partword ejtőernyős 15-245-2345-12456-15-1235-1246-12456-234	For example ejtőernyősszázad, ejtőernyősszárnyak, ejtőernyőszászlóalj words
+partword nyősszárny 1246-12456-234-156-4-1235-1246	Single part, for example a hyphenation need this exception
+partword esszáj 15-234-156-4-245	For example édesszájú, éhesszájat words
+partword kesszó 13-15-234-156-246	For example ékesszól[Dás, ékesszóló words
+partword gyosszen 1456-135-234-156-15-1345	For example fagyosszentek word
+begword kasszem 13-1-156-156-15-134	If this word part have beginning of a word, Kasszem is a town name
+partword kassze 13-1-234-156-15	For example farkasszem, farkasszemet words
+partword fásszár 124-4-234-156-4-1235	For example fásszárú word
+partword lesszár 123-15-234-156-4-1235
+partword gásszim 1245-4-234-156-24-134
+partword gosszáz 1245-135-234-156-4-126
+partword tásszer 2345-4-234-156-15-1235	For example hivatásszerűen, ellátásszerű words need this exception
+partword lásszö 123-4-234-156-12345	For example állásszög, hajlásszög words need this exception
+partword állásszek 4-123-123-4-234-156-15-13	For example ellenállásszekrény word
+partword vasszürk 1236-1-234-156-12356-1235-13	For example hamvasszürke word
+partword vasszőke 1236-1-234-156-12456-13-15	For example hamvasszőke word
+partword masszab 134-1-234-156-1-12
+partword masszám 134-1-234-156-4-134	For example hármasszámú word need this exception
+partword tyásszár 1256-4-234-156-4-1235	For example hártyásszárnyú word
+partword gyesszö 1456-15-234-156-12345	For example hegyesszög word
+always mitesszer 134-24-2345-15-156-156-15-1235	For example mitesszer word
+partword tesszer 2345-15-234-156-15-1235
+partword ősszer 12456-234-156-15-1235
+partword ússzűk 346-234-156-23456-13
+partword rásszak 1235-4-234-156-1-13
+partword akasszó 1-13-1-234-156-246	For example kakasszó word
+partword póssz 1234-246-234-156
+partword karossz 13-1-1235-135-234-156	For example karosszék word
+begword szétossz 156-16-2345-135-156-156	For example szétossza, szétosszák words
+partword tosszal 2345-135-156-156-1-123
+partword tossz 2345-135-234-156
+partword kerekesszé 13-15-1235-15-13-15-234-156-16	For example kerekesszék word
+partword kesszür 13-15-234-156-12356-1235	For example kékesszürke word
+partword ésszúr 16-234-156-346-1235	For example késszúrás word
+partword vesszer 1236-15-234-156-15-1235
+partword isszám 24-234-156-4-134	For example kisszámú word
+partword kisszeb 13-24-234-156-15-12	For example Kisszeben willage name
+partword kisszed 13-24-234-156-15-145	For example isszedő word
+partword isszer 24-234-156-15-1235	For example kisszerű word
+partword disszer 145-24-156-156-15-1235	For example disszertáció word
+partword isszé 24-234-156-16	For example kisszék word
+partword dussze 145-136-234-156-15	For example koldusszegény word
+partword nenssze 1345-15-1345-234-156-15
+partword törlessz 2345-12345-1235-123-15-156-156	For example törlesszem word
+partword lesszem 123-15-234-156-15-134	For example élesszemű word
+word élesszem 16-123-15-156-156-15-134
+partword fölélessze 124-12345-123-16-123-15-156-156-15	For example fölélesszem word
+partword dássze 145-4-234-156-15	For example adásszerű word
+partword dásszám 145-4-234-156-4-134	For example adásszerű word
+partword tosszer 2345-135-234-156-15-1235
+partword kásszö 13-4-234-156-12345	For example lakásszövetkezet word
+partword possz 1234-135-234-156	For example laposszárú word
+partword tásszö 2345-4-234-156-12345	For example látásszög word
+partword xussz 1346-136-234-156	For example luxusszálloda word
+partword tésszá 2345-16-234-156-4	For example töltésszám word
+partword nessza 1345-15-234-156-1
+begword barnessz 12-1-1235-1345-15-156-156	For example barnesszal word
+always másszor 134-4-234-156-135-1235	For example másszor word
+partword tésszer 2345-16-234-156-15-1235	For example töltésszerűen word
+partword rosszem 1235-135-234-156-15-134	For example pirosszem word
+partword rosszeml 1235-135-156-156-15-134-123	For example rosszemlékű word
+partword gásszab 1245-4-234-156-1-12	For example forgásszabály word
+partword gásszeg 1245-4-234-156-15-1245
+partword gásszer 1245-4-234-156-15-1235	For example mozgásszerű word
+partword unkás 136-1345-13-4-234	For example munkásszálló word
+partword messzí 134-15-234-156-34
+partword lésszo 123-16-234-156-135
+partword sszül 234-156-12356-123
+partword lásszel 123-4-234-156-15-123
+partword padlás =	For example padlásszoba, padlászugoly word
+partword páncélos =
+partword gógussze 1245-246-1245-136-234-156-15	For example pedagógusszervezet word
+partword lyesszár 456-15-234-156-4-1235
+partword ostásszak 135-234-2345-4-234-156-1-13	For example postásszakszervezet word
+partword russzer 1235-136-234-156-15-1235	For example vírusszerű word
+partword zusszá 126-136-234-156-4	For example pulzusszám word
+partword ütés =	For example ütésszerű, ütészápor words
+partword césszár 14-16-234-156-4-1235	For example recésszárú word
+partword tetéssze 2345-15-2345-16-234-156-15	For example tüntetésszerűen word
+partword gésszá 1245-16-234-156-4	For example égésszám word
+partword gésszag 1245-16-234-156-1-1245	For example égésszag word
+partword gésszig 1245-16-234-156-24-1245	For example égésszigetelés word
+partword gésszab 1245-16-234-156-1-12	For example égésszabály word
+partword musszab 134-136-234-156-1-12	For example ritmusszabályozó word
+partword uhásszek 136-125-4-234-156-15-13	For example ruhásszekrény word
+partword tésszéru 2345-16-234-156-16-1235-136
+partword gosszap 1245-135-234-156-1-1234
+partword énásszek 16-1345-4-234-156-15-13	For example szénásszekér word
+partword ódásszi 246-145-4-234-156-24	For example szódásszifon word
+partword ólásszab 246-123-4-234-156-1-12	For example szólásszabadság word
+partword rösszí 1235-12345-234-156-34	For example vörösszínű word
+partword letésszab 123-15-2345-16-234-156-1-12	For example születésszabályozás word
+partword lásszé 123-4-234-156-16
+partword ársszer 4-1235-234-156-15-1235
+partword lösszáj 123-12345-234-156-4-245	For example tejfölösszájú word
+partword üléssz 12356-123-16-234-156	For example repülésszerű, településszerkezet words
+partword melésszer 134-15-123-16-234-156-15-1235	For example emelésszerű word
+partword itkosszol 24-2345-13-135-234-156-135-123	For example titkosszolgálat word
+partword ojássz 135-245-4-234-156	For example tojásszerű word
+partword övisszú 12345-1236-24-234-156-346	For example tövisszúrás word
+partword kosszel 13-135-234-156-15-123
+partword udásszo 136-145-4-234-156-135	For example tudásszomj word
+partword grássze 1245-1235-4-234-156-15	For example ugrásszerűen word
+partword tasszál 2345-1-234-156-4-123	For example utasszállító word
+partword tasszám 2345-1-234-156-4-134	For example utasszám word
+partword tasszer 2345-1-234-156-15-1235	For example utasszerep word
+partword rémissz 1235-16-134-24-156-156	For example rémisszétek, elrémisszék words
+partword úvósszim 346-1236-246-234-156-24-134	For example fúvósszimfónia word
+partword úvósszer 346-1236-246-234-156-15-1235	For example fúvósszerszám word
+partword fúvószen 124-346-1236-246-234-126-15-1345	For example fúvószenekar word
+partword letesszob 123-15-2345-15-234-156-135-12
+partword léssza 123-16-234-156-1	For example ülésszak word
+partword allásszab 1-123-123-4-234-156-1-12	For example vallásszabadság word
+partword allásszo 1-123-4-234-156-135
+always vasasszak 1236-1-234-1-234-156-1-13	For example vasasszakosztály word
+always sasszár 234-1-234-156-4-1235	For example sasszárnyú word
+partword sassze 234-1-234-156-15	For example sasszeg word
+partword sasszöm 234-1-234-156-12345-134	For example sasszömöd old word
+partword tassztráj 2345-1-234-156-2345-1235-4-245	For example vasutassztrájk word
+partword aversszal 1-1236-15-1235-156-156-1-123	For example Martraversszal word not need wrapping the word with single s and sz braille dots
+partword erssza 15-1235-234-156-1	For example versszak, versszakában words
+partword ersszá 15-1235-234-156-4
+partword lamosszé 123-1-134-135-234-156-16	For example villamosszék word
+partword lamosszí 123-1-134-135-234-156-34
+partword sessző 234-15-234-156-12456	For example vörösesszőke word
+partword desszür 145-15-234-156-12356-1235
+partword ársszöv 4-1235-234-156-12345-1236	For example társszövetség word
+always hússzelet 125-346-234-156-15-123-15-2345	For example hússzelet word
+partword rösszem 1235-12345-234-156-15-134	For example vörösszem word
+partword osszöv 135-234-156-12345-1236	For example orvosszövetség word
+partword osszemély 135-234-156-15-134-16-456	For example orvosszemély word
+partword vosszerű 1236-135-234-156-15-1235-23456	For example orvosszerű word
+begword óriássz 246-1235-24-4-234-156	For example óriásszalamandra word
+partword ésszög 16-234-156-12345-1245	For example dőlésszög word
+partword vosszak 1236-135-234-156-1-13	For example orvosszakértő word
+partword marossz 134-1-1235-135-234-156	For example Marosszék, Marosszentgyörgy words
+partword sszombat 234-156-135-134-12-1-2345	For example Szepesszombat word
+partword sszarv 234-156-1-1235-1236	For example kosszarv word
+partword sszőlő 234-156-12456-123-12456	For example Vértesszőlős village name
+partword levesszed 123-15-1236-15-234-156-15-145	For example levesszedő word
+always levesszag 123-15-1236-15-234-156-1-1245	For example levesszag, levesszagot, húslevesszagot words
+partword farkassz 124-1-1235-13-1-234-156	For example Farkassziget, farkasszáj words
+partword hússzalon 125-346-234-156-1-123-135-1345	For example hússzalonna word
+always versszerű 1236-15-1235-234-156-15-1235-23456	For example versszerű word
+always kosszem 13-135-234-156-15-134	For example kosszem word
+partword kisszob 13-24-234-156-135-12	For example kisszobában word
+always tipusszám 2345-24-1234-136-234-156-4-134	For example tipusszám word
+partword alvásszeg 1-123-1236-4-234-156-15-1245	For example alvásszegény word
+always lakosszám 123-1-13-135-234-156-4-134	For example lakosszám word
+partword adósszám 1-145-246-234-156-4-134	For example adósszámla word
+begword alkalmazássz 1-123-13-1-123-134-1-126-4-234-156	For example alkalmazásszerver, alkalmazásszint words
+begword autósszem 1-136-2345-246-234-156-15-134	For example autósszemüveg word
+begword béléssz 12-16-123-16-234-156	For example bélésszövet word
+begword bőgésszer 12-12456-1245-16-234-156-15-1235	For example bőgésszerű word
+partword csapássz 146-1-1234-4-234-156	For example sorscsapásszerű, csapásszám word
+partword írásszer 34-1235-4-234-156-15-1235	For example írásszeretet, előírásszerű words
+partword kelésszint 13-15-123-16-234-156-24-1345-2345	For example érzékelésszint word
+partword fiókossz 124-24-246-13-135-234-156	Forexample fiókosszekrény word
+begmidword foglalkozássz 124-135-1245-123-1-123-13-135-126-4-234-156	For example foglalkozásszerű word
+always fogasszeg 124-135-1245-1-234-156-15-1245	For example fogasszeg word
+partword gondviseléssz 1245-135-1345-145-1236-24-234-15-123-16-234-156	For example gondviselésszerű word
+partword gyújtássz 1456-346-245-2345-4-234-156	For example gyújtásszabály word
+partword gyorsszűr 1456-135-1235-234-156-23456-1235	For example gyorsszűrő word
+partword tásszün 2345-4-234-156-12356-1345	For example hatásszünet word
+partword hirdetésszöv 125-24-1235-145-15-2345-16-234-156-12345-1236	For example hirdetésszöveg word
+partword hússzekr 125-346-234-156-15-13-1235	For example hússzekrény word
+partword jelenéssze 245-15-123-15-1345-16-234-156-15	For example jelenésszerű wordd
+partword jelzésszer 245-15-123-126-16-234-156-15-1235	For example jelzésszerű, hangjelzésszerű word
+partword kasszé 13-1-234-156-16	For example kasszék word part containing wordsneed this exception
+partword katalógussz 13-1-2345-1-123-246-1245-136-234-156	For example katalógusszám word
+partword kavarásszer 13-1-1236-1-1235-4-234-156-15-1235	For example kavarásszerű word
+partword kitörésszer 13-24-2345-12345-1235-16-234-156-15-1235	For example kitörésszerű word
+always kisszótár 13-24-234-156-246-2345-4-1235	For example kisszótár word
+partword klienssz 13-123-24-15-1345-234-156	For example kliensszoftver word
+partword köhögéssz 13-12345-125-12345-1245-16-234-156 For example köhögésszerű word
+partword könyvessz 13-12345-1246-1236-15-234-156	For example könyvesszekrény word
+partword lakásszen 123-1-13-4-234-156-15-1345	For example lakásszentelő word
+partword másszer 134-4-234-156-15-1235	For example látomásszerű, nyomásszerű, képmásszerű words
+partword frisszöld 124-1235-24-234-234-126-12345-123-145
+partword ésszög 2345-16-234-156-12345-1245	For example lejtésszöge word
+partword lengéssz 123-15-1345-1245-16-234-156	For example lengésszabály word
+partword lépés 123-16-1234-16-234	For example lépésszám, lépészaj words
+partword lökéssz 123-12345-13-16-234-156	For example lökésszám, lökésszerű words
+partword magasszár 134-1-1245-1-234-156-4-1235	For example magasszárú word
+partword másszóv 134-4-234-156-246-1236	For example másszóval word
+partword dörgésszer 145-12345-1235-1245-16-234-156-15-1235	For example dörgésszerű, mennydörgésszerű words
+always motorosszán 134-135-2345-135-1235-135-234-156-4-1345	For example motorosszán word
+partword ökrössz 12345-13-1235-12345-234-156	For example ökrösszekér word
+partword pedagógussztr 1234-15-145-1-1245-246-1245-136-234-156-2345-1235	For example pedagógussztrájk word
+partword plüsszer 1234-123-12356-234-156-15-1235	For example plüsszerű word
+partword rádióssz 1235-4-145-24-246-234-156	For example rádiósszoba word
+partword présszer 1234-1235-16-234-156-15-1235	For example présszerű word
+partword puskás =	For example puskásszázad, puskásszakasz, puskászászlóalj words
+partword kezésszer 13-15-126-16-234-156-15-1235	For example rendelkezésszerű word
+partword robbanás =	For example robbanásszerű, robbanászajt word
+partword sárgássz 234-4-1235-1245-4-234-156	For example sárgásszínű word
+partword szerződéssze 156-15-1235-126-12456-145-16-234-156-15	For example szerződésszegés, szerződésszegő words
+partword szokássz 156-135-13-4-234-156	For example szokásszerű word
+partword úrásszer 346-1235-4-234-156-15-1235	For example szúrásszerű word
+partword úrósszem 346-1235-246-234-156-15-134	For example szúrósszemű word
+partword tágulássz 2345-4-1245-136-123-4-234-156	For example tágulásszabály word
+begword társsz 2345-4-1235-234-156	For example társszekér word
+partword tudásszin 2345-136-145-4-234-156-24-1345	For example tudásszint word
+partword töltésszab 2345-12345-123-2345-16-234-156-1-12	For example töltésszabályozó word
+partword többessz 2345-12345-12-12-15-234-156	For example többesszám word
+begword világos =	For example világosszőke, világosszürke words
+always vörösessz 1236-12345-1235-12345-234-15-234-156	For example vörösesszőke word
+partword zuhanássz 126-136-125-1-1345-4-234-156	For example zuhanásszerű word
+partword zökkenéssz 126-12345-13-13-15-1345-16-234-156	For example zökkenésszerű word
+begword zsírossz 345-34-1235-135-234-156	For example zsírosszén word
+begmidword  lovassz 123-135-1236-1-234-156	For example lovasszázad, lovasszekeret words
+partword vasszállít 1236-1-234-156-4-123-123-34-2345	For example vasszállítmány word
+begword barnásszür 12-1-1235-1345-4-234-156-12356-1235	For example barnásszürke word
+begword kőművessz 13-12456-134-23456-1236-15-234-156	For example kőművesszem, kőművesszerszámait words
+begword lőréssz 123-12456-1235-16-234-156	For example lőrésszerű word
+partword hadásszag 125-1-145-4-234-156-1-1245	For example rothadásszag word
+partword omlásszag 135-134-123-4-234-156-1-1245	for example bomlásszag word
+begword szaglássz 156-1-1245-123-4-156-156	For example szaglásszék word
+word résszerű 1235-16-234-156-15-1235-23456	résszerű is a special exception word
+begword körössz 13-12345-1235-12345-234-156	For example körösszakál, körösszakáli words
+partword csattanásszer 146-1-2345-2345-1-1345-4-234-156-15-1235	For example csattanásszerű word
+partword csikóssz 146-24-13-246-234-156	For example csikósszámadó word
+begword csipkéssz 146-24-1234-13-16-234-156	For example csipkésszélű word
+begword csobbanásszer 146-135-12-12-1-1345-4-234-156-15-1235	For example csobbanásszerű word
+begword csuklássz 146-136-13-123-4-234-156	For example csuklásszerű word
+partword lépcsősszár 123-16-1234-146-12456-234-156-4-1235	For example lépcsősszárnyú word
+partword csavarásszer 146-1-1236-1-1235-4-234-156-15-1235	For example csavarásszerű word
+partword ájulásszer 4-245-136-123-4-234-156-15-1235	For example ájulásszerű word
+partword aranyosszők 1-1235-1-1246-135-234-156-12456-13	For example aranyosszőke word
+begword barnásszők 12-1-1235-1345-4-234-156-12456-13	For example barnásszőke, barnásszőkét word
+partword becslésszer 12-15-146-123-16-234-156-15-1235	For example becslésszerűen word
+partword rendezéssze 1235-15-1345-145-15-126-16-234-156-15	For example berendezésszett, berendezésszerű words
+partword rengésszer 1235-15-1345-1245-16-234-156-15-1235	or example derengésszerű, merengésszerű, rengésszerű words
+partword pergésszer 1234-15-1235-1245-16-234-156-15-1235	For example dobpergésszerűen word
+begword dússzakáll 145-346-234-156-1-13-4-123-123	For example dússzakállú word
+begword édesszesz 16-145-15-234-156-15-156	For example édesszesztestvér word
+partword egyenesszál 15-1456-15-1345-15-234-156-4-123	For example egyenesszálú word
+partword őrsszerű 12456-1235-234-156-15-1235-23456	For example előőrsszerű
+begword ésszer 16-156-156-15-1235	For example ésszerű word
+begword fásszín 124-4-234-156-34-1345
+partword fehéressz 124-15-125-16-1235-15-234-156	For example fehéresszőke, fehéresszürke words
+partword feketésszürk 124-15-13-15-2345-16-234-156-12356-1235-13	For example feketésszürke word
+begword felszerelés 124-15-123-156-15-1235-15-123-16-234	For example felszerelésszettet word need this exception
+begword fertőzéssz 124-15-1235-2345-12456-126-16-234-156	For example fertőzésszerű word
+partword fájásszer 124-4-245-4-234-156-15-1235	For example fogfájásszerű word
+begword fosszín 124-135-234-156-34-1345	For example fosszínű word
+partword csuszamlásszer 146-136-156-1-134-123-4-234-156-15-1235	For example földcsuszamlásszerűen word
+partword fűtéssza 124-23456-2345-16-234-156-1	For example fűtésszag word
+begword habitusszer 125-1-12-24-2345-136-234-156-15-1235	For example habitusszerűen word
+begword halottassz 125-1-123-135-2345-2345-1-234-156	For example halottasszoba, halottasszobába, halottasszekér words
+begword hekussz 125-15-13-136-234-156	For example hekusszagot word
+partword hasissz 125-1-234-24-234-156	For example hasisszagot word
+always hársszén 125-4-1235-234-156-16-1345	For example hársszén word
+partword hársszen 125-4-1235-234-156-15-1345	For example hársszenet word
+partword rándulásszer 1235-4-1345-145-136-123-4-234-156-15-1235	For example rándulásszerűen word
+partword kérésszer 13-16-1235-16-234-156-15-1235	For example kérésszerűen word
+partword villanásszer 1236-24-123-123-1-1345-4-234-156-15-1235	For example villanásszerűen word
+begword hányássz 125-4-1246-4-234-156	For example hányásszag, hányásszerű words
+begword utalásszer 136-2345-1-123-4-234-156-15-1235	For example utalásszerűen word
+partword szorosszerű 156-135-1235-135-234-156-15-1235-23456	For example hegyszorosszerű word
+begword hentesszak 125-15-1345-2345-15-234-156-1-13	For example hentesszaktanfolyamát word
+word hisszék 125-24-156-156-16-13
+partword örgésszerű 12345-1235-1245-16-234-156-15-1235-23456	For example hörgésszerű, zörgésszerű, dörgésszerű words
+partword hússzállít 125-346-234-156-4-123-123-34-2345	For example hússzállító, hússzállítmány words
+begword hússzín 125-346-234-156-34-1345	For example hússzínű word
+always irtásszél 24-1235-2345-4-234-156-16-123	For example irtásszél word
+begword jelentéssz 245-15-123-15-1345-2345-16-234-156	For example jelentésszerű, jelentésszint word
+begword katekizmussz 13-1-2345-15-13-24-126-134-136-234-156	For example katekizmusszerű word
+begword kerítéssz 13-15-1235-34-2345-16-234-156	For example kerítésszaggató word
+partword kevéssz 13-15-1236-16-234-156	For example kevésszer, kevésszavú words
+partword fejlessze 124-15-245-123-15-156-156-15	For example kifejlesszem word
+partword szögellésszer 156-12345-1245-15-123-123-16-234-156-15-1235	For example kiszögellésszerűen word
+begword kitüntetéssz 13-24-2345-12356-1345-2345-15-2345-16-234-156	For example kitüntetésszalagokat word
+partword ációsszob 4-14-24-246-234-156-135-12	For example kommunikációsszoba word
+begword kőrissz 13-12456-1235-24-234-156	For example kőrisszár, kőrisszárat words
+partword küldetéssz 13-12356-123-145-15-2345-16-234-156	For example küldetésszaga word
+partword labirintusszer 123-1-12-24-1235-24-1345-2345-136-234-156-15-1235	For example labirintusszerű word
+partword lejtéssz 123-15-245-2345-16-234-156	For example lejtésszög word
+begword málhássz 134-4-123-125-4-234-156	For example málhásszekér, málhásszekereiket words
+always medresszék 134-15-145-1235-15-234-156-16-13	For example medresszék word
+begword ménessz 134-16-1345-15-234-156	For example ménesszárnyékok word
+begword meszesszürk 134-15-156-15-234-156-12356-1235-13	For example meszesszürke word
+partword mítossz 134-34-2345-135-156-156
+partword mókussz 134-246-13-136-234-156	For example mókusszőr, mókusszerű words
+partword utazássz 136-2345-1-126-4-234-156	For example utazásszerű, utazásszervező, nászutazásszerű words
+partword nedvesszürk 1345-15-145-1236-15-234-156-12356-1235-13	For example nedvesszürke word
+partword nemesszőrm 1345-15-134-15-234-156-12456-1235-134	For example nemesszőrme word
+partword ikkanásszer 24-13-13-1-1345-4-234-156-15-1235	For example nyikkanásszerű word
+partword nyomásszab 1246-135-134-4-234-156-1-12	For example nyomásszabályzó word
+partword oposszu 135-1234-135-156-156-136
+partword orvos =	For example orvosszázados, orvosszereikkel words
+partword vodásszint 1236-135-145-4-234-156-24-1345-2345	For example óvodásszintű word
+begword örvénylésszer 12345-1235-1236-16-1246-123-16-234-156-15-1235	For example örvénylésszerű word
+partword párnássz 1234-4-1235-1345-4-234-156	For example párnásszék word
+begword pátossz 1234-4-2345-135-156-156	For example pátosszal word
+partword pedagógusszob 1234-15-145-1-1245-246-1245-136-234-156-135-12	For example pedagógusszobába word
+partword pirítóssz 1234-24-1235-34-2345-246-234-156	For example pirítósszeleteken word
+begword piszkossz 1234-24-156-13-135-234-156	For example piszkosszőke, piszkosszürke words
+partword lövésszer 123-12345-1236-16-234-156-15-1235	For example pisztolylövésszerűen word
+partword posszibili 1234-135-156-156-24-12-24-123-24
+begword priapossz 1234-1235-24-1-1234-135-156-156	For example priamossza word
+partword repülőssz 1235-15-1234-12356-123-12456-234-156	For example repülősszárny word
+begword selymesszők 234-15-456-134-15-234-156-12456-13	For example selymesszőke word
+begword sertésszűz 234-15-1235-2345-16-234-156-23456-126	For example sertésszűzpecsenyére word
+begword szentségessz 156-15-1345-2345-234-16-1245-15-234-156	For example szentségesszűzmáriám word
+begword szórakozásszám 156-246-1235-1-13-135-126-4-234-156-4-134	For example szórakozásszámba word
+begword társalgássz 2345-4-1235-234-1-123-1245-4-234-156	For example társalgásszámba, társalgásszerű words
+begword templomosszak 2345-15-134-1234-123-135-134-135-234-156-1-13	For example templomosszakértő word
+begword tigrissz 2345-24-1245-1235-24-234-156	For example tigrisszerű, tigrisszemek words
+begword tizedesszál 2345-24-126-15-145-15-234-156-4-123	For example tizedesszállás word
+begword ulánusszáz 136-123-4-1345-136-234-156-4-126	For example ulánusszázad word
+begword utasszin 136-2345-1-234-156-24-1345	For example utasszint word
+begword utasszol 136-2345-1-234-156-135-123	For example utasszolgálat word
+begword vallomássz 1236-1-123-123-135-134-4-234-156	For example vallomásszámba word
+begword vértesszáz 1236-16-1235-2345-15-234-156-4-126	For example vértesszázad, vértesszázadbeli words
+partword visszé 1236-24-156-156-16	For example visszér, visszérműtét words
+begword visszer 1236-24-156-156-15-1235	For example visszeres word
+begword vörhenyesszők 1236-12345-1235-125-15-1246-15-234-156-12456-13	For example vörhenyesszőke word
+begword vörössz 1236-12345-1235-12345-234-156	For example vörösszakállú, vörösszőke word
+begword zavarossz 126-1-1236-1-1235-135-234-156	For example zavarosszürke word
+begword gázspra 1245-4-126-234-1234-1235-1	For example gázspray word
+partword zsugár 126-234-136-1245-4-1235	For example gázsugár word
+begword ágyússz 4-1456-346-234-156	For example ágyússzekerek word
+begword alásszolg 1-123-4-234-156-135-123-1245	For example alásszolgája, alásszolgájuk words
+begword csárdásszól 146-4-1235-145-4-234-156-246-123	For example csárdásszóló word
+begword deposszed 145-15-1234-135-156-156-15-145
+begword kompossze 13-135-134-1234-135-156-156-15	For example komposszesszor, komposszesszorátus words
+partword kormossz 13-135-1235-134-135-234-156	For example kormosszürke word
+partword köntössz 13-12345-1345-2345-12345-234-156	For example köntösszegély word
+partword borzassző 12-135-1235-126-1-234-156-12456	For example borzasszőrű word
+partword harcossz 125-1-1235-14-135-234-156	For example harcosszellem word
+partword mágnássz 134-4-1245-1345-4-234-156	For example mágnásszámba word
+partword másszín 134-4-234-156-34-1345	For example másszínű word
+partword másszőr 134-4-234-156-12456-1235	For example másszőrűek word
+partword mécsessz 134-16-146-15-234-156	For example mécsesszem word
+partword méhessz 134-16-125-15-234-156	For example méhesszín, méhesszínben words
+partword muzsikussz 134-136-345-24-13-136-234-156	For example muzsikusszem word
+partword ordassz 135-1235-145-1-234-156	For example ordasszőrű word
+partword állássz 4-123-123-4-234-156	For example önállásszerű word
+partword őszessz 12456-156-15-234-156
+begword ősszék 12456-234-156-16-13	For example ősszékelyek word
+begword őssz 12456-234-156	For example ősszármazású word, but will be have some exception words this general rule
+always ősszel 12456-156-156-15-123	For example ősszel word
+always ősszé 12456-156-156-16
+partword ősszell 12456-234-156-15-123-123	For example ősszellem word
+partword paprikássz 1234-1-1234-1235-24-13-4-234-156	For example paprikásszalonna-bazár word
+partword rakássz 1235-1-13-4-234-156	For example rakásszámra word
+partword rántássz 1235-4-1345-2345-4-234-156	For example rántásszag, rántásszerű words
+partword rongyossz 1235-135-1345-1456-135-234-156	For example rongyosszélű word
+partword ruhássz 1235-136-125-4-234-156	For example ruhásszobámé word
+begword sássz 234-4-234-156	For example sásszéna, sásszerű words
+begword rózsássz 1235-246-345-4-234-156	For example rózsásszőkés word
+partword nyöklésszél 1246-12345-13-123-16-234-156-16-123	For example könyöklésszéles word
+partword sugárzássz 234-136-1245-4-1235-126-4-234-156	For example sugárzásszintek, sugárzásszerű words
+partword szarvassz 156-1-1235-1236-1-234-156	For example szarvasszív word
+partword szindikátussz 156-24-1345-145-24-13-4-2345-136-234-156	For example szindikátusszervező, szindikátusszerű words
+partword szólássz 156-246-123-4-234-156	For example szólásszapulás word
+begword teásszer 2345-15-4-234-156-15-1235	For example teásszervíz word
+partword tövissz 2345-12345-1236-24-234-156	For example tövisszár word
+partword tükrössz 2345-12356-13-1235-12345-234-156	For example tükrösszélű word
+partword tüzessz 2345-12356-126-15-234-156	For example tüzesszemű word
+partword pótlássz 1234-246-2345-123-4-234-156	For example utánpótlásszállítmánnyal word
+begword veressz 1236-15-1235-15-234-156	For example veresszemű, veresszakállú words
+begword vetéssz 1236-15-2345-16-234-156	For example vetésszalag word
+partword villamossz 1236-24-123-123-1-134-135-234-156	For example villamosszerű word
+partword zsoldossz 345-135-123-145-135-234-156	For example zsoldosszokás word
+partword gyűléssz 1456-23456-123-16-234-156	For example gyűlésszíne word
+begword ikarossz 24-13-1-1235-135-156-156
+partword kattintássz 13-1-2345-2345-24-1345-2345-4-234-156	For example kattintásszám word
+begword rúzsossz 1235-346-345-135-234-156	For example rúzsosszájú word
+partword formánsszint 124-135-1235-134-4-1345-234-156-24-1345-2345	For example formánsszintetizátor word
+partword vírussz 1236-34-1235-136-234-156	For example vírusszűrés word
+partword stílussz 234-2345-34-123-136-234-156	For example stílusszerű, stílusszerkesztő words
+partword hármassz 125-4-1235-134-1-234-156	For example hármasszak, hármassziget word
+begword hússzöv 125-346-234-156-12345-1236	For example Hússzövetség company name or normal hússzövet words need this exception
+partword edzéssz 15-145-126-16-234-156	For example edzésszám word
+begword hamissz 125-1-134-24-234-156	For example hamisszínes word
+
+#ty, lly tty related exceptions
+#This exception part containing english words with need presenting original english braille rules
+partword okréty =	For example Zsámbokrétyvel word
+always iberty =
+always city =
+partword gettysbur =
+always party =
+always amnesty =
+partword curity =
+partword niversity =
+partword tyard =	For example négyzetyardnyi
+always piccadilly =
+always dactylus =
+always curiosity =
+always unity =
+always fifty =
+begword stylis =
+
+#zs, zzs related exceptions
+partword ínházsi 34-1345-125-4-345-24
+always topáz 2345-135-1234-4-126	For example topázsárgája word
+partword víz 1236-34-126	For example árvízsújtotta, vízsodor, vízsáv, vízsivatag words
+always gazság 1245-1-126-234-4-1245	General exception with gazság part containing words, for example gazság, igazság words
+begword gőzs 1245-12456-126-234	For example gőzsugár, gőzsíp words need this exception
+begmidword gőzsz 1245-12456-126-156	For example gőzszivattyú word need this exception
+always ház 125-4-126	This exception prewent wrong present házsor, words
+always házsárt 125-4-345-4-1235-2345	But házsárt word part need using different exception
+always házsad 125-4-345-1-145	An extreeme exception with a Mór Jókai wrote book
+always házsas 125-4-345-1-234	An extreeme exception with a Mór Jókai wrote book
+always házsárkod 125-4-345-4-1235-13-135-145	For example házsárkodását word part need using different exception
+partword házsasod 125-4-345-1-234-135-145
+begword kéz 13-16-126	General exception for kéz beginning words, for example kézsérülés, kézzsibbadás words
+begword kézsm 13-16-345-134	This is an exception the prewious rule, Kézsmárk is a town name
+always kalóz 13-1-123-246-126	for example kalózság, kalózszoftwer, kalózsorsra words
+always kalauz 13-1-123-1-136-126
+partword közsz 13-12345-126-156	This exception need for közsz part containing words
+partword közs 13-12345-126-234
+begword közsepé 13-12345-345-15-1234-16	An extreeme exception with a Mór Jókai wroted book
+begword közsöln 13-12345-345-12345-123-1345	An extreeme exception with a Mór Jókai wroted book
+begword közsr 13-12345-345-1235	An extreeme exception with a Mór Jókai wroted book
+begword ütközse 12356-2345-13-12345-345-15	An extreeme exception with a Mór Jókai wroted book
+begword matróz 134-1-2345-1235-246-126	matróz beginning words need handling single part word, for example matrózsapka word
+always mézsör 134-16-126-234-12345-1235	For example mézsör word need this exception
+partword nehézs 1345-15-125-16-126-234	For example nehézség, nehézsúly beginning words need this exception
+always őzsut 12456-126-234-136-2345	For example őzsuta word need this exception
+begword őzseb 12456-126-234-15-12	For example őzsebesen word need this exception
+always őzsörét 12456-126-234-12345-1235-16-2345	For example őzsörét word need this exception
+partword pénz 1234-16-1345-126	For example pénzsóvár, pénzszűke, pénzzsidóságban words
+always pénzsed 1234-16-1345-345-15-145
+begword pénzseg 1234-16-1345-126-234-15-1245	For example pénzsegély word
+begword prézsmit 1234-1235-16-345-134-24-2345
+begmidword réz 1235-16-126
+always rézsút 1235-16-345-346-2345	But rézsút beginning words need different exception
+partword árazsá 4-1235-1-126-234-4	For example szárazság word need this exception
+partword árazsü 4-1235-1-126-234-12356	For example szárazsült word need this exception
+begword szűzs 156-23456-126-234	For example szűzsült word need this exception
+always torzság 2345-135-1235-126-234-4-1245	For example torzság word need handling torz beginning part with single part
+begword törzs 2345-12345-1235-345	Törzs beginning word pard need handling single part
+always váz 1236-4-126	This exception prewent wrong present for example vázsor words
+always vázsony 1236-4-345-135-1246	But Nagyvázsony is for example an exception
+begword málvázsi 134-4-123-1236-4-345-24 
+partword lázseb 123-4-126-234-15-12	For example lázsebességgel word
+partword lázsóh 123-4-126-234-246-125	For example lázsóhajtás word
+partword itézsé 24-2345-16-126-234-16	This exception prevent wrong presenting for example vitézség word
+partword közsere 13-12345-126-234-15-1235-15	For example közsereg word
+partword közsá 13-12345-126-234-4	For example közsáv containing words
+partword közszer 13-12345-126-156-15-1235
+partword közsor 13-12345-126-234-135-1235	For example eszközsor, eszközsorán word
+partword recízsé 1235-15-14-34-126-234-16	For example precízség word
+partword nzsoroz 1345-126-234-135-1235-135-126	For example pénzsorozat word need this exception
+partword mézsárg 134-16-126-234-4-1235-1245	For example mézsárga word
+always egyezség 15-1456-15-126-234-16-1245	For example egyezség word
+always rézsű 1235-16-345-23456
+partword rozszab 1235-135-345-126-1-12	For example rozszabálás word
+begword borzzsí 12-135-1235-126-345-34	For example borzzsír word
+partword bronz 12-1235-135-1345-126	For example bronzsáska, bronzsáskák, bronzsisak, bronzsasokkal words
+partword tűz 2345-23456-126	For example tűzsugár, tűzsebesség, tűzzsonglőr words
+begword száz 156-4-126
+always százsra 156-4-345-1235-1
+partword nemez 1345-15-134-15-126	For example nemezsapka, nemezsapkát, nemezsátor words
+begword tíz 2345-34-126
+partword lemez 123-15-134-15-126	For example lemezstúdió word
+always mézser 134-16-126-234-15-1235	For example mézser word
+always rézsut 1235-16-345-136-2345	For example rézsut word
+partword dörzször 145-12345-1235-345-126-12345-1235	For example dörzszörej word
+
+#Historical person names related exceptions
+always táncsics 2345-4-1345-146-24-146	Táncsics Mihály is a historical person for 1848. march 15 hungarian revolution
+always batthyány =	Batthyány Lajos was the first hungarian president for 1848 freedom and revolution 
+always thököly =
+always vörösmarty =	Mihály Vörösmarty is a very important author for hungarian literary
+partword indszenty 24-1345-145-156-15-1345-2345-13456
+always anonymu =
+
+#Town names related exceptions
+#Following section containing hungarian town names
+begword agyagossz 1-1456-1-1245-135-234-156	For example Agyagosszergény town name
+begword békéssz 12-16-13-16-234-156	For example Békésszentandrás town name
+begword gombossz 1245-135-134-12-135-234-156	For example Gombosszeg town name
+begword kapossz 13-1-1234-135-234-156	For example Kaposszekcső, Kaposszerdahely town names
+begword kemenessz 13-15-134-15-1345-15-234-156	For example Kemenesszentmárton, Kemenesszentpéter town names
+begword kiszsid 13-24-234-345-24-145	For example Kiszsidány town name
+begword kisszent 13-24-234-156-15-1345-2345	For example Kisszentmárton tow name
+begword kisszig 13-24-234-156-24-1245	For example Kissziget town name
+begword mikossz 134-24-13-135-234-156	For example Mikosszéplak town name
+begword nemessz 1345-15-134-15-234-156	For example Nemesszalók, Nemesszentandrás town names
+begword szamossz 156-1-134-135-234-156	For example Szamosszeg town name
+begword szilvássz 156-24-123-1236-4-234-156	For example Szilvásszentmárton town name
+begword vámossz 1236-4-134-135-234-156	For example Vámosszabadi town name
+always vaszar 1236-1-156-1-1235	For example Vaszar town name
+begword vázsno 1236-4-345-1345-135	For example Vázsnok town name
+
+#After end of number following letters need using different braille markup
+endnum a 6-1
+endnum b 6-12
+endnum c 6-14
+endnum d 6-145
+endnum e 6-15
+endnum f 6-124
+endnum g 6-1245
+endnum h 6-125
+endnum i 6-24
+endnum j 6-245
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb
new file mode 100644
index 0000000..d05ce0b
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb
@@ -0,0 +1,126 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2009 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Hungarian
+#
+# Samuel Thibault <samuel.thibault@ens-lyon.org>
+# 
+# This table is based on the Unesco report on the progress of unification of
+# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
+# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
+# The document is dated 1954, so this table may be quite outdated.
+
+# generated by ttbtest
+space	\s	0	# SPACE
+punctuation	!	235	# EXCLAMATION MARK
+punctuation	"	2356	# QUOTATION MARK
+punctuation	'	3	# APOSTROPHE
+punctuation	(	236	# LEFT PARENTHESIS
+punctuation	)	356	# RIGHT PARENTHESIS
+punctuation	,	2	# COMMA
+punctuation	-	36	# HYPHEN-MINUS
+punctuation	.	256	# FULL STOP
+include digits8Dots.uti
+punctuation	:	25	# COLON
+punctuation	;	23	# SEMICOLON
+punctuation	?	26	# QUESTION MARK
+uppercase	A	17	# LATIN CAPITAL LETTER A
+uppercase	B	127	# LATIN CAPITAL LETTER B
+uppercase	C	147	# LATIN CAPITAL LETTER C
+uppercase	D	1457	# LATIN CAPITAL LETTER D
+uppercase	E	157	# LATIN CAPITAL LETTER E
+uppercase	F	1247	# LATIN CAPITAL LETTER F
+uppercase	G	12457	# LATIN CAPITAL LETTER G
+uppercase	H	1257	# LATIN CAPITAL LETTER H
+uppercase	I	247	# LATIN CAPITAL LETTER I
+uppercase	J	2457	# LATIN CAPITAL LETTER J
+uppercase	K	137	# LATIN CAPITAL LETTER K
+uppercase	L	1237	# LATIN CAPITAL LETTER L
+uppercase	M	1347	# LATIN CAPITAL LETTER M
+uppercase	N	13457	# LATIN CAPITAL LETTER N
+uppercase	O	1357	# LATIN CAPITAL LETTER O
+uppercase	P	12347	# LATIN CAPITAL LETTER P
+uppercase	Q	123457	# LATIN CAPITAL LETTER Q
+uppercase	R	12357	# LATIN CAPITAL LETTER R
+uppercase	S	2347	# LATIN CAPITAL LETTER S
+uppercase	T	23457	# LATIN CAPITAL LETTER T
+uppercase	U	1367	# LATIN CAPITAL LETTER U
+uppercase	V	12367	# LATIN CAPITAL LETTER V
+uppercase	W	24567	# LATIN CAPITAL LETTER W
+uppercase	X	13467	# LATIN CAPITAL LETTER X
+uppercase	Y	134567	# LATIN CAPITAL LETTER Y
+uppercase	Z	13567	# LATIN CAPITAL LETTER Z
+lowercase	a	1	# LATIN SMALL LETTER A
+lowercase	b	12	# LATIN SMALL LETTER B
+lowercase	c	14	# LATIN SMALL LETTER C
+lowercase	d	145	# LATIN SMALL LETTER D
+lowercase	e	15	# LATIN SMALL LETTER E
+lowercase	f	124	# LATIN SMALL LETTER F
+lowercase	g	1245	# LATIN SMALL LETTER G
+lowercase	h	125	# LATIN SMALL LETTER H
+lowercase	i	24	# LATIN SMALL LETTER I
+lowercase	j	245	# LATIN SMALL LETTER J
+lowercase	k	13	# LATIN SMALL LETTER K
+lowercase	l	123	# LATIN SMALL LETTER L
+lowercase	m	134	# LATIN SMALL LETTER M
+lowercase	n	1345	# LATIN SMALL LETTER N
+lowercase	o	135	# LATIN SMALL LETTER O
+lowercase	p	1234	# LATIN SMALL LETTER P
+lowercase	q	12345	# LATIN SMALL LETTER Q
+lowercase	r	1235	# LATIN SMALL LETTER R
+lowercase	s	234	# LATIN SMALL LETTER S
+lowercase	t	2345	# LATIN SMALL LETTER T
+lowercase	u	136	# LATIN SMALL LETTER U
+lowercase	v	1236	# LATIN SMALL LETTER V
+lowercase	w	2456	# LATIN SMALL LETTER W
+lowercase	x	1346	# LATIN SMALL LETTER X
+lowercase	y	13456	# LATIN SMALL LETTER Y
+lowercase	z	1356	# LATIN SMALL LETTER Z
+punctuation	\x00a0	0	# NO-BREAK SPACE
+uppercase	\x00c1	47	# LATIN CAPITAL LETTER A WITH ACUTE
+uppercase	\x00c4	457	# LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase	\x00c9	167	# LATIN CAPITAL LETTER E WITH ACUTE
+uppercase	\x00cd	347	# LATIN CAPITAL LETTER I WITH ACUTE
+uppercase	\x00d3	2467	# LATIN CAPITAL LETTER O WITH ACUTE
+uppercase	\x00d6	123457	# LATIN CAPITAL LETTER O WITH DIAERESIS
+uppercase	\x00da	3467	# LATIN CAPITAL LETTER U WITH ACUTE
+uppercase	\x00dc	123567	# LATIN CAPITAL LETTER U WITH DIAERESIS
+lowercase	\x00e1	4	# LATIN SMALL LETTER A WITH ACUTE
+lowercase	\x00e4	45	# LATIN SMALL LETTER A WITH DIAERESIS
+lowercase	\x00e9	16	# LATIN SMALL LETTER E WITH ACUTE
+lowercase	\x00ed	34	# LATIN SMALL LETTER I WITH ACUTE
+lowercase	\x00f3	246	# LATIN SMALL LETTER O WITH ACUTE
+lowercase	\x00f6	12345	# LATIN SMALL LETTER O WITH DIAERESIS
+lowercase	\x00fa	346	# LATIN SMALL LETTER U WITH ACUTE
+lowercase	\x00fc	12356	# LATIN SMALL LETTER U WITH DIAERESIS
+uppercase	\x0150	124567	# LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+lowercase	\x0151	12456	# LATIN SMALL LETTER O WITH DOUBLE ACUTE
+uppercase	\x0170	234567	# LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+lowercase	\x0171	23456	# LATIN SMALL LETTER U WITH DOUBLE ACUTE
+letter	\x025f	1456	# LATIN SMALL LETTER DOTLESS J WITH STROKE
+space	\x2002	0	# EN SPACE
+space	\x2003	0	# EM SPACE
+space	\x2004	0	# THREE-PER-EM SPACE
+space	\x2005	0	# FOUR-PER-EM SPACE
+space	\x2006	0	# SIX-PER-EM SPACE
+punctuation	\x2007	0	# FIGURE SPACE
+space	\x2008	0	# PUNCTUATION SPACE
+space	\x2009	0	# THIN SPACE
+space	\x200a	0	# HAIR SPACE
+punctuation	\x202f	0	# NARROW NO-BREAK SPACE
+space	\x205f	0	# MEDIUM MATHEMATICAL SPACE
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb
new file mode 100644
index 0000000..4478cd1
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb
@@ -0,0 +1,144 @@
+# liblouis: Hungarian Grade 1 table
+#
+#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2011 by the BRLTTY Team
+#
+#  Copyright (C) 2011-2012, IT Foundation for the Visually Impaired - Hungary. Homepage: www.infoalap.hu 
+#  All rights reserved
+#
+#  This file is free software; you can redistribute it and/or modify it
+#   under the terms of the Lesser or Library GNU General Public License
+#  as published by the
+#  Free Software Foundation; either version 3, or (at your option) any
+#  later version.
+#
+#  This file is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  Library GNU General Public License for more details.
+#
+#  You should have received a copy of the Library GNU General Public
+#  License along with this program; see the file COPYING.  If not, write
+#  to
+#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+#  Boston, MA 02110-1301, USA.
+#
+#  Maintained by Attila Hammer  hammer.attila@infoalap.hu"
+#
+# If you found bugs with hungarian grade1 table, report it with following address:
+# Attila Hammer <hammer.attila@infoalap.hu
+#If you have a Launchpad account, report table related requests with following bug tracker address: https://bugs.launchpad.net/belin
+include hu-backtranslate-correction.dis
+include hu-chardefs.cti
+include hu-exceptionwords.cti
+include braille-patterns.cti
+
+#Braille indicators
+numsign 3456
+capsign 46
+begcaps 46-46
+firstwordital 46-46
+lastworditalbefore 46
+lenitalphrase 4
+firstletterital 46-3
+lastletterital 46-36
+singleletterital 46-25
+firstwordbold 456-456
+lastwordboldbefore 456
+lenboldphrase 4
+begcomp 456-346
+endcomp 456-156
+midnum : 3
+midnum - 36-3456
+hyphen - 36
+decpoint , 2
+midnum . 3-3456
+endnum . 3
+
+#Following part implementing the new braille standard changes
+always . 3
+always ' 6-3
+postpunc . 256
+postpunc ; 23
+word ; 23
+midnum : 25
+postpunc : 25
+always : 25
+always ! 235
+endnum . 3
+always • 6-35
+# literary forms of the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+#Special letter replacements
+always cs 146	General need replacing cs letters with a combined dot combination
+always ccs 146-146	General need replacing ccs letters with a combined dot combination
+always csz 14-156
+always cszs 146-345
+always gy 1456	General need replacing gy letters with a combined dot combination
+always ggy 1456-1456	General need replacing ggy letters with a combined dot combination
+always ly 456
+always lly 456-456	General need replacing ly letters with a combined dot combination
+always ny 1246	General need replacing ny letters with a combined dot combination
+always nny 1246-1246	General need replacing nny letters with a combined dot combination
+always ty 1256	General need replacing ty letter pairs with a combined dot combination
+always tty 1256-1256		General need replacing ty letter pairs with a combined dot combination combined dot combination
+always sz 156	General need replacing sz letters with a combined dot combination
+always ssz 156-156
+always zsz 126-156
+always zszs 345-345
+always zs 345	General need replacing zs letters with a combined dot combination
+always zzs 345-345	General need replacing zs letters with a combined dot combination
+
+#Special punctuation simbols
+prepunc " 236	Opening quotation simbol
+postpunc " 356	Closing quotation simbol
+always " 236	Need this rule to present one left quotation mark if the user firsttyping the " character
+prepunc ( 2346	Opening left parenthese
+postpunc ) 1356	Closing right parenthese
+always ( 2346	Need this rule to the user always see 2346 dot combination if type first ( character a text
+always ) 1356	Need this rule to the user always see 2346 dot combination if type first ) character a text
+prepunc « 236
+postpunc » 356
+prepunc ‘ 236
+postpunc ’ 356
+prepunc ‚ 236
+postpunc ‚ 356
+prepunc “ 236
+prepunc ” 236
+postpunc ” 356
+prepunc „ 236
+postpunc „ 356
+prepunc < 5-13
+postpunc > 46-2
+
+#Other exceptions With need marking different dot combination
+always Q 12346
+always Z 126
+always # 123456
+always $ 5-145
+always % 3456-245-356
+always ~ 5-2345
+always < 5-13
+always > 46-2
+always / 5-2
+always | 45
+always { 12345
+always } 12456
+always [ 12356
+always ] 23456
+always \\ 16
+always ^ 2346
+always ` 4
+always Æ 1
+always lyú 456-346
+always lysz 456-156
+undefined 26
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb
new file mode 100644
index 0000000..6c8ac5e
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb
@@ -0,0 +1,154 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - 8-dot Icelandic
+#
+# originally written by: Samuel Thibault <samuel.thibault@ens-lyon.org>
+# Updated and maintained by Birkir R. Gunnarsson birkir@midstod.is
+# last updated February 16th, 2012
+# Table now compliant with the official IceBraille specifications
+# which can be found at http://www.midstod.is/Pages/239
+
+space \s 0		SPACE
+punctuation ! 2357		EXCLAMATION MARK
+punctuation " 56		QUOTATION MARK
+sign # 3456 number sign
+sign $ 14578 dollar sign
+sign % 46 per cent
+sign & 123468 ampersand
+punctuation ' 5		APOSTROPHE
+punctuation ( 236		LEFT PARENTHESIS
+punctuation ) 356		RIGHT PARENTHESIS
+sign * 35 asterisk
+math + 235 plus sign
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 3		FULL STOP
+math / 34 slash
+include digits8Dots.uti
+punctuation : 25 COLON
+punctuation ; 23 SEMICOLON
+math < 358 less than
+math = 2356 equals
+math > 267 greater than
+punctuation ? 26 ? questionmark
+sign @ 123456 at sign
+punctuation [ 12356 left bracket
+sign \\ 347 backslash
+punctuation ] 23456 right bracket
+sign ^ 346 caret/superscript symbol
+sign _ 3678 hyphen/underline
+punctuation { 123567 left brace
+sign | 4568 vertical bar
+punctuation } 234568 right brace
+
+# misc. punctuation and math symbols, less frequently used
+sign \X2026 6 elipsis
+punctuation \X201E 2378 open quotation symbol, used in Icelandic quotes
+sign ~ 457 tilde
+math ` 4
+math ° 256 degrees
+sign ¨ 38 dieresis
+sign \X2022 37 bullet
+punctuation \x2014 367 em dash
+punctuation \X2013 368 en dash, long dash
+sign © 1478 copyright
+sign \X2122 234578 trademark
+sign ® 123578 registerred
+sign \X20AC 1578 Euro symbol
+sign \x00A3 123478 pound sign
+sign \X00AB 2578 cents
+sign \x00A5 1345678 yen
+math \X00B1 123568 plus or minus
+math \x00F7 2367 divided by
+# English alphabet, Icelandic uses all of these though c, w and z are not used in the Icelandic language
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+# punctuation \x00a0 0		NO-BREAK SPACE
+
+# letters specific to Icelandic (though part of the Windows 1252 set)
+uppercase \x00c1 167		LATIN CAPITAL LETTER A WITH ACUTE
+uppercase \x00c6 3457		LATIN CAPITAL LETTER AE
+uppercase \x00c9 23467		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00cd 1267		LATIN CAPITAL LETTER I WITH ACUTE
+uppercase \x00d0 1567		LATIN CAPITAL LETTER ETH
+uppercase \x00d3 14567		LATIN CAPITAL LETTER O WITH ACUTE
+uppercase \x00d6 2467		LATIN CAPITAL LETTER O WITH DIAERESIS
+uppercase \x00da 124567		LATIN CAPITAL LETTER U WITH ACUTE
+uppercase \x00dd 123467		LATIN CAPITAL LETTER Y WITH ACUTE
+uppercase \x00de 12467		LATIN CAPITAL LETTER THORN
+lowercase \x00e1 16		LATIN SMALL LETTER A WITH ACUTE
+lowercase \x00e6 345		LATIN SMALL LETTER AE
+lowercase \x00e9 2346		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00ed 126		LATIN SMALL LETTER I WITH ACUTE
+lowercase \x00f0 156		LATIN SMALL LETTER ETH
+lowercase \x00f3 1456		LATIN SMALL LETTER O WITH ACUTE
+lowercase \x00f6 246		LATIN SMALL LETTER O WITH DIAERESIS
+lowercase \x00fa 12456		LATIN SMALL LETTER U WITH ACUTE
+lowercase \x00fd 12346		LATIN SMALL LETTER Y WITH ACUTE
+lowercase \x00fe 1246		LATIN SMALL LETTER THORN
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb
new file mode 100644
index 0000000..17bcb11
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb
@@ -0,0 +1,139 @@
+# liblouis: Italiano
+include text_nabcc.dis
+
+#--------------------- All chars definitions ------------------------------
+
+space \t 0 tab            #  9
+space \s 0 blank					# 32
+
+punctuation ! 235						33
+punctuation " 4						34
+sign # 3456								35
+sign $ 46									36
+sign % 123456							37
+sign & 12346							38
+punctuation ' 3	  				39
+punctuation ( 236					40
+punctuation ) 356					41
+punctuation *	35					42
+sign + 235								43
+midnum + 235							43
+punctuation , 2						44
+punctuation ­ 36					45  the hyphen-minus
+punctuation . 256						46
+sign / 256								47
+
+include digits6Dots.uti
+
+punctuation : 25			colon					58		x003A
+punctuation ;	23			semicolon			59		x003B
+math < 56														60		x003C
+math = 2356						equal sign		61		x003D
+math > 45														62		x003E
+punctuation ? 26										63		x003F
+sign @ 345						commercial at	64		x0040
+
+include latinLetterDef6Dots.uti
+punctuation [ 12356			91
+sign \\ 6								92
+punctuation ] 23456			93
+sign ^ 2346							94
+sign _ 456							95 underscore
+sign ` 345							96
+
+# a - z								# 97 - 122							x0061 - x007A
+
+punctuation { 12356			123
+sign | 34				124
+punctuation } 23456			125
+sign ~ 2346			126
+sign \x0080 15-136-1235-135										x0080
+
+space \X00A0 0				# no-break space													x00A0
+sign ¢ 4-14						cent sign																	x00A2
+sign £ 45-123					pound sign																x00A3
+sign ¤ 45-15					currency sign															x00A4
+sign ¥ 45-13456				yen	sign																	x00A5
+sign § 234-234				paragraph	sign														x00A7
+sign © 2356-6-14-2356 copyright																	x00A9
+punctuation « 236		left-pointing double quotation mark				x00AB
+sign ° 356						degree sign																x00B0
+sign ² 4-6-126				superscript 2 sign												x00B2
+sign ³ 4-6-146				superscript 3 sign												x00B3
+sign \x00B4 1256			acute accent
+sign \x00B5 46-134		# 181				µ micro sign									x00B5
+sign \x00B6 4-1234-345						¶ pilcrow sign								x00B6
+sign ¹ 4-6-16					superscript 1 sign												x00B9
+punctuation » 356		right-pointing double quotation mark			x00BB
+sign ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+sign ½ 6-16-34-126		vulgar fraction one half									x00BD
+sign ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+uplow	\x00D3\x00F3 346
+math × 46-16 multiplication sign														hex 0x00d7
+math ÷ 46-34 division sign																	hex 0x00f7
+
+uplow	\x0104\x0105 16
+uplow \x0106\x0107 146
+uplow	\x0118\x0119 156
+uplow	\x0141\x0142 126
+uplow	\x0143\x0144 1456
+uplow \x00C0\x00E0 12356				# a with grave
+uplow \x00C8\x00E8 2346				# e with grave
+uplow \x00C9\x00E9 123456				# e with acute
+uplow \x00CC\x00EC 34				# i with grave above
+uplow \x00D2\x00F2 346			# o with grave above
+uplow \x00DA\x00FA 23456			# u with acute above
+
+#----------------------------------------------------------------------------
+numsign 3456		#	number sign, just one operand
+capsign 46
+begcaps 4-6
+
+repeated *** 16-16-16
+prepunc `` 236
+
+repeated \s 0
+repeated \t 0
+repeated \x00a0 0 no break space
+
+repeated ___ 46-46-46
+
+repeated ::: 25-25-25
+repeated === 46-13-46-13-46-13
+repeated ~~~ 4-156-4-156-4-156
+always \s­\s 36-36
+always \s­\scom 36-36-14-135-134
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+
+repeated ­­­ 36-36-36
+always \s­\s 36-36
+
+
+# mathematical symbols
+midnum ­ 36
+endnum % 46
+# special character sequences
+literal :// URLs
+literal www.
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zip
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb
new file mode 100644
index 0000000..17a7c5e
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb
@@ -0,0 +1,639 @@
+# liblouis: Italiano 8 punti
+
+#  Copyright (C) 2011 by Caterina Avoledo <catery81@yahoo.it>
+#  Copyright (C) 2012 by Simone Dal Maso <simone.dalmaso@juvox.it>
+
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+
+#--------------------- All chars definitions ------------------------------
+
+space \x0000  34578   #NULL
+space \x0001  178 #Start of heading
+space \x0002  1278  #Start of text
+space \x0003  1478  #End of text
+space \x0004  14578 #End of transmission
+space \x0005  1578  #Enquiry
+space \x0006  12478 #Acknowledge
+space \x0007  124578  #Bell
+space \x0008  12578 #Backspace
+#space \x0009  2478
+space \t  0 #Tab  \x0009
+space \x000A  24578 #Line feed
+space \x000B  1378  #Line tabulation
+space \x000C  12378 #Form feed
+space \x000D  13478 #Carriage return
+space \x000E  134578  #Shift out
+space \x000F  13578 #Shift in
+space \x0010  123478    #Data link escape
+space \x0011  1234578   #Device control one
+space \x0012  123578    #Device control two
+space \x0013  23478   #Device control three
+space \x0014  234578    #Device control four
+space \x0015  13678   #Negative acknoledgement
+space \x0016  123678    #Synchronous idle
+space \x0017  245678    #End of transmission block
+space \x0018  134678    #Cancel
+space \x0019  1345678   #End of medium
+space \x001A  135678    #Substitute
+space \x001B  1235678   #Escape
+space \x001C  3478    #Information separator four
+space \x001D  2345678   #Information separator three
+space \x001E  234678    #Information separator two
+space \x001F  45678   #Information separator one
+space \s  0   #blank 32
+punctuation ! 5						#33
+punctuation " 4						#34
+sign # 3456								#35
+sign $ 46									#36
+sign % 123456							#37
+sign & 12346							#38
+punctuation ' 6	  				#39
+punctuation ( 236					#40
+punctuation ) 356					#41
+punctuation *	35					#42
+sign + 235								#43
+punctuation , 2						#44
+punctuation - 36					#45  the hyphen-minus
+punctuation . 3						#46
+sign / 256								#47
+
+include digits6DotsPlusDot6.uti
+
+punctuation : 25			#colon	x003A
+punctuation ;	23			#semicolon x003B
+math < 56							#x003C
+math = 2356						#equal sign	x003D
+math > 45										#x003E
+punctuation ? 26						#x003F
+sign @ 3457						#commercial at x0040
+
+include latinLetterDef8Dots.uti
+punctuation [ 123567			#91
+sign \\ 347								#92
+punctuation ] 234567			#93
+sign ^ 23467							#94
+sign _ 4567							#underscore 95
+sign ` 345							#96
+
+# a - z					97 - 122	x0061 - x007A
+
+punctuation { 12356			#123
+sign  | 34				#124
+punctuation } 23456			#125
+sign ~ 2346			#126
+sign  \x007F  456   #Delete
+
+
+#--- Unicode latin
+#sign  \x0080  8   #Control
+#From \x0080 to \x009F control characters
+
+space \x00A0 0				#no-break space
+punctuation \x00A1  367   #Inverted exclamation mark
+sign \x00A2  58						#cent sign
+sign \x00A3 467 		#pound sign
+sign \x00A4 4678 #¤ currency sign	x00A4
+sign \x00A5 468 #¥ yen	sign			x00A5
+sign  \x00A6  158   #Broken bar
+sign \x00A7 357 #§ paragraph sign	x00A7
+sign  \x00A8  48  #Diaeresis sign
+sign \x00A9 123468 #© copyright			x00A9
+sign  \x00AA  1258    #Feminine ordinal indicator
+punctuation \x00AB 5678 # «		#left-pointing double quotation mark	x00AB
+sign  \x00AC    25678   #Not sign
+sign  \x00AD  368   #Soft hyphen
+sign  \x00AE  12358   #Registered sign
+sign  \x00AF  458   #Macron sign
+sign \x00B0 4568 #° degree sign		x00B0
+sign  \x00B1    23578   #Plus-Minus sign
+sign \x00B2 128 #² 				#superscript 2 sign	x00B2
+sign \x00B3 148 #³superscript 3 sign	x00B3
+sign \x00B4 568			#acute accent
+sign \x00B5 1348		#µ micro sign									x00B5
+sign \x00B6 1458		#¶ pilcrow sign								x00B6
+punctuation \x00B7  37    #Middle dot
+sign \x00B8 68    #Cedilla
+sign \x00B9 18    #¹ superscript 1 sign	x00B9
+sign  \x00BA  2458    #Masculine ordinal indicator
+punctuation \x00BB 4578 #»right-pointing double quotation mark		x00BB
+sign \x00BC 1368 #¼ vulgar fraction one quarter	x00BC
+sign \x00BD 12368 #½vulgar fraction one half	x00BD
+sign \x00BE 13468 #¾ vulgar fraction 3 quarters	x00BE
+punctuation \x00BF  38    #Inverted question mark
+
+uppercase \x00C0 23678    #A with grave above
+uppercase \x00C1  28    #A with acute above
+uppercase \x00C2  167   #A with Circumflex
+uppercase \x00C3  3467    #A with tilde 
+uppercase \x00C4  567   #A with diaeresis
+uppercase \x00C5   34567    #A with ring above
+uppercase \x00C6  47    #AE
+uppercase \x00C7  123467    #C with cedilla
+uppercase \x00C8 3578   #E with grave above
+uppercase \x00C9 1234567    #E with acute above
+uppercase \x00CA  1267    #E with circumflex
+uppercase \x00CB  2358    #E with diaeresis
+uppercase \x00CC  57    #I with grave above
+uppercase \x00CD  258   #I with acute
+uppercase \x00CE  1467    #I with circumflex
+uppercase \x00CF  23568   #I with diaeresis
+uppercase \x00D0  3567    #ETH
+uppercase \x00D1  2567    #N with tilde
+uppercase \x00D2 578    #O with grave
+uppercase	\x00D3  2568    #O with acute
+uppercase \x00D4  14567   #O with circumflex
+uppercase \x00D5  267   #O with tilde
+uppercase \x00D6  358   #O with diaeresis
+math \x00D7  23468   #Multiplication sign \x00d7
+uppercase \x00D8  2467    #O with stroke
+uppercase \x00D9 35678    #U with grave above
+uppercase \x00DA 268    #U with acute above
+uppercase \x00DB  1567    #U with circumflex
+uppercase \x00DC  2368    #U with diaeresis
+uppercase \x00DD  3568    #Y with acute
+uppercase \x00DE  2357    #THORN
+uppercase \x00DF  34568   #sharp s
+lowercase \x00E0 123568				#a with grave
+lowercase \x00E1  168   #a with acute
+lowercase \x00E2  1678    #a with circumflex
+lowercase \x00E3  34678   #a with tilde
+lowercase \x00E4  3458    #a with diaeresis
+lowercase \x00E5  345678    #a with ring above
+lowercase \x00E6  478   #ae
+lowercase \x00E7  1234678   #c with cedilla
+lowercase \x00E8 23468			#e with grave
+lowercase \x00E9 1234568		#e with acute
+lowercase \x00EA  12678   #e with circumflex
+lowercase \x00EB  12468   #e with diaeresis
+lowercase \x00EC 348				#i with grave above
+lowercase \x00ED  1468    #i withacute
+lowercase \x00EE  14678   #i with circumflex
+lowercase \x00EF  124568    #i with diaeresis
+lowercase \x00F0  23458   #eth
+lowercase \x00F1  13458   #n with tilde
+lowercase \x00F2 3468			#o with grave above
+lowercase \x00F3 14568    #o with acute
+lowercase \x00F4  145678    #o with circumflex
+lowercase \x00F5  1358    #o with tilde
+lowercase \x00F6  2468    #o with diaeresis
+math \x00F7 125678    #division sign x00f7
+lowercase \x00F8  24678   #o with stroke
+lowercase \x00F9 234567			#u with grave above
+lowercase \x00FA 1568			#u with acute above
+lowercase \x00FB  15678   #u with circumflex
+lowercase \x00FC  12568   #u with diaeresis
+lowercase \x00FD  24568   #y with acute
+lowercase \x00FE  12348   #thorn
+lowercase \x00FF  134568    #y with diaeresis
+
+#--- Unicode Multilingual
+uppercase \x0100    1678    #A with macron
+lowercase	\x0101   168   #a with macron
+uppercase	\x0102    1235678   #A with breve
+lowercase	\x0103    123568    #a with breve
+uppercase	\x0104    134568    #A with ogonek
+lowercase \x0105 168    #a with ogonek
+uppercase \x0106 14678    #C with acute
+lowercase \x0107 1468   #c with acute
+uppercase	\x0108    14678   #C with circumflex
+lowercase	\x0109    1468    #c with circumflex
+#uppercase \x010A  0   #C with dot above
+#lowercase  \x010B      #c with dot above
+uppercase	\x010C    14678   #C with caron
+lowercase	\x010D    1468    #c with caron
+#uppercase	\x010E       #D with caron
+#lowercase	\x010F       #d with caron
+uppercase \x0110   145678    #D with stroke
+lowercase \x0111    14568   #d with stroke
+uppercase \x0112    15678   #E with macron
+lowercase \x0113    1568    #e with macron
+uppercase	\x0118    12678    #E with ogonek
+lowercase \x0119    1268    #e with ogonek
+uppercase \x011C    1245678     #G with circumflex
+lowercase \x011D    124568    #g with circumflex
+uppercase \x0141  134568    #L with stroke
+lowercase \x0142  1568    #l with stroke
+uppercase \x0143  145678    #N with acute
+lowercase \x0144  14568   #n with acute
+uppercase \x0145 1345678   #N with cedilla
+lowercase \x0146 134568    #n with cedilla
+uppercase \x0150  1245678   #O with double acute
+lowercase \x0151  124568    #o with double acute
+uppercase \x0152  237   #ligature OE
+lowercase \x0153  467   #ligature oe
+uppercase \x0156  1235678   #R with cedilla
+lowercase \x0157  123568    #r with cedilla
+lowercase \x0159 2456    #r with caron
+uppercase \x015A  134568    #S with acute
+lowercase \x015B  134568    #s with acute
+uppercase \x015C  234678    #S with circumflex
+lowercase \x015D  23468    #s with cirumflex
+uppercase \x015E  134568    #S with cedilla
+lowercase \x015F  123468    #s with cedilla
+uppercase \x0160  678   #S with caron
+lowercase \x0161  1568    #s withcaron
+uppercase \x0162  24678   #T with cedilla
+lowercase \x0163  23458   #t with cedilla
+uppercase \x0164  125678    #T with caron
+lowercase \x0165  1256    #t with caron
+uppercase \x016A  34678   #U wtih macron
+lowercase \x016B  3468    #u with macron
+uppercase \x016C  34678   #U with breve
+lowercase \x016D  3468    #u with breve
+lowercase \x016F  23456   #u with ring above
+uppercase \x0170  2345678   #U with double acute
+lowercase \x0171  234568    #u with double acute
+uppercase \x0178  12345678    #Y with diaeresis
+uppercase \x0179  134568    #Z with acute
+lowercase \x017A 134568    #z with acute
+uppercase \x017B  134568    #Z with dot above
+lowercase \x017C  123468    #z with dot above
+uppercase \x017D  12567   #Z with caron
+lowercase \x017E  2346    #z with caron
+lowercase \x0192 78   #f with hook
+lowercase \x025C  13567   #reversed open e
+sign  \x02C6  378   #circumflex accent
+sign  \x02C7  134568    #caron
+sign  \x02D8  134568    #breve
+sign  \x02D9  5    #dot above
+sign  \x02DB 134568    #ogonek
+sign  \x02DC  2578    #small tilde
+
+#--- Unicode Special Symbols
+space	\x2002	0	   #EN space
+space \x2003  0   #EM space
+space	\x2004	0	  #THREE-PER-EM SPACE
+space	\x2005	0	  #FOUR-PER-EM SPACE
+space	\x2006	0	  #SIX-PER-EM SPACE
+punctuation	\x2007	0	  #FIGURE SPACE
+space	\x2008	0	  #PUNCTUATION SPACE
+space	\x2009	0	  #THIN SPACE
+space	\x200A	0	  #HAIR SPACE
+sign  \x2011  36    #Non-breaking hyphen
+sign  \x2013  368   #En dash
+sign  \x2014  36    #EM dash
+sign  \x2015  36    #Horizontal bar
+sign  \x2017  36    #Double low line
+sign  \x2018  6   #Left single quotation mark
+sign  \x2019  6   #Right single quotation mark
+sign  \x201A  3678    #Single low-9 quotation mark
+sign  \x201C  4   #Left double quotation mark
+sign  \x201D  4   #Right double quotation mark
+sign  \x201E  1268  #Double low-9 quotation mark
+sign  \x2020  134568    #Dagger
+sign  \x2021  12458   #Double dagger
+sign  \x2022  35    #Bullet
+sign  \x2026  238   #Horizontal ellipsis
+punctuation	\x202F	0	  #NARROW NO-BREAK SPACE
+sign  \x2030  1345678   #Per mille sign
+sign  \x2039  27    #Single left-pointing quotation mark
+sign  \x203A  23567   #Single right-pointing quotation mark
+space	\x205F	0	  #MEDIUM MATHEMATICAL SPACE
+sign  \x207F  13467   #Superscript n
+sign  \x20AC  457   #Euro sign
+sign  \x20AF  145678    #Drachma sign
+sign  \x2116  3456    #Number sign
+sign  \x2122  1245678   #Trade mark sign
+math  \x2219  48    #Bullet operator
+math  \x221A  1467    #Square root
+math  \x221E  234678    #Infinity
+math  \x2229  578   #Intersection
+math  \x2248  3578    #Almost equal to
+math  \x2261  23568   #Identical to
+math  \x2264  568   #Less-than or equal to
+math  \x2265  458   #Greater-than or equal to
+sign  \x2310  14567   #Reversed not sign
+math  \x2320  347   #Top half integral
+math  \x2321  1567    #Bottom half integral
+sign  \x2500  67    #Box drawings light horizontal
+sign  \x2502  237   #Box drawings light horizontal
+sign  \x250C  257   #Box drawings light down and right
+sign  \x2510  278   #Box drawings light down and left
+sign \x2514 378   #Box drawings light up and right
+sign  \x2518  678   #Box drawings light up and left
+sign  \x251C  2367    #Box drawings light vertical and right
+sign  \x2524  13568   #Box drawings light vertical and left
+sign  \x252C  138 #Box drawings light down and horizontal
+sign  \x2534  27    #Box drawings light up and horizontal
+sign  \x2550  2578    #Box drawings double horizontal
+sign  \x2551  1234568   #Box drawings double vertical
+sign  \x2552  123468    #Box drawings down single and right double
+sign  \x2553  1358    #Box drawings down double and right single
+sign  \x2554  23567   #Box drawings double down and right
+sign  \x2555  148   #Box drawings down single and left double
+sign  \x2556  368   #Box drawings down double and left single
+sign  \x2557  12458   #Box drawings double down left
+sign  \x2558  248   #Box drawings up single and right double
+sign  \x2559  1238    #Box drawings up double and right single
+sign  \x255A  2378    #Box drawings double up and right
+sign  \x255B  34678   #Box drawings up single and left double
+sign  \x255C  4678    #Box drawings up double and left single
+sign  \x255D  2678    #Box drawings double up and left
+sign  \x255E  68    #Box drawings vertical single and right double
+sign  \x255F  257   #Box drawings vertical double and right single
+sign  \x2560  1248    #Box drawings vertical double and right
+sign  \x2561  268   #Box drawings vertical single and left double
+sign  \x2562  24568   #Box drawings vertical double and left single
+sign  \x2563  123567    #Box drawings double vertical and left
+sign  \x2564  3467    #Box drawings down single and horizontal double
+sign  \x2565  28    #Box drawings down double and horizontal single
+sign  \x2566  123458    #Box drawings double down and horizontal
+sign  \x2567  167   #Box drawings up single and horizontal double
+sign  \x2568  57    #Box drawings up double and horizontal single
+sign  \x2569  8   #Box drawings double up and horizontal
+sign  \x256A  3567  #Box drawings vertical single and horizontal double
+sign  \x256B  12358   #Box drawings vertical double and horizontal single
+sign  \x256C  5678    #Box drawings double vertical and horizontal
+sign  \x2580 234567    #Upper half block
+sign  \x2584 1267    #Lower half block
+sign  \x2588 12345678   #Full block
+sign  \x258C  23678   #Left half block
+sign  \x2590  35678   #Right half block
+sign  \x2591  78    #Light shade
+sign  \x2592  3678    #Medium shade
+sign  \x2593  235678    #Dark shade
+sign  \x25A0  1234567   #Black square
+sign  \x25AA  5678   #black small square
+sign  \x25B6  456-135   #Black right-pointing triangle
+sign  \x25CF  35    #Black circle
+sign  \x25E6  35    #White bullet
+sign  \x2665  56-146    #heart
+sign  \x2713  3678    #check mark
+sign  \x2714  235678    #Heavy check mark
+sign  \x2794  25-25-135    #right arrow
+sign  \x2190  25-25-246    #left arrow
+sign  \x2192  25-25-246    #left arrow
+sign  \x25B7  456-135    #white right-pointing triangle
+sign  \xF0B7  35    #bullet
+sign  \xFB00  124-124    #latin small ligature
+
+
+#--- Unicode Greek
+sign	\x0374	3456	#GREEK UPPER NUMERAL SIGN Dexia keraia
+sign	\x0375	5678	#GREEK LOWER NUMERAL SIGN Aristeri keraia
+punctuation	\x037E	26	#GREEK QUESTION MARK
+sign	\x0384	4	#GREEK TONOS
+sign	\x0385	45	#GREEK DIALYTIKA TONOS
+uppercase	\x0386	34578	#Greek letter alpha with tonos
+sign	\x0387	746	#GREEK ANO TELEIA
+uppercase	\x0388	124678	#Greek letter epsilon with tonos
+uppercase	\x0389	12345678	#Greek letter eta with tonos
+uppercase	\x038A	1245678	#Greel letter iota with sonos
+uppercase	\x038C	24678	#Greek letter omicron with tonos
+uppercase	\x038E	125678	#Greek letter upsilon with tonos
+uppercase	\x038F	24578	#Greek letter omega with tonos
+lowercase	\x0390	248	#GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+uppercase	\x0391	178	#GREEK CAPITAL LETTER ALPHA
+uppercase	\x0392	1278	#GREEK CAPITAL LETTER BETA
+uppercase	\x0393	124578	#GREEK CAPITAL LETTER GAMMA
+uppercase	\x0394	14578	#GREEK CAPITAL LETTER DELTA
+uppercase	\x0395	1578	#GREEK CAPITAL LETTER EPSILON
+uppercase	\x0396	135678	#GREEK CAPITAL LETTER ZETA
+uppercase	\x0397	15678	#GREEK CAPITAL LETTER ETA
+uppercase	\x0398	145678	#GREEK CAPITAL LETTER THETA
+uppercase	\x0399	248	#GREEK CAPITAL LETTER IOTA
+uppercase	\x039A	1378	#GREEK CAPITAL LETTER KAPPA
+uppercase	\x039B	12378	#GREEK CAPITAL LETTER LAMDA
+uppercase	\x039C	13478	#GREEK CAPITAL LETTER MU
+uppercase	\x039D	134578	#GREEK CAPITAL LETTER NU
+uppercase	\x039E	134678	#GREEK CAPITAL LETTER XI
+uppercase	\x039F	13578	#GREEK CAPITAL LETTER OMICRON
+uppercase	\x03A0	123478	#GREEK CAPITAL LETTER PI
+uppercase	\x03A1	123578	#GREEK CAPITAL LETTER RHO
+uppercase	\x03A3	23478	#GREEK CAPITAL LETTER SIGMA
+uppercase \x03A4	234578	#GREEK CAPITAL LETTER TAU
+uppercase	\x03A5	13678	#GREEK CAPITAL LETTER UPSILON
+uppercase	\x03A6	12478	#GREEK CAPITAL LETTER PHI
+uppercase	\x03A7	1234678	#GREEK CAPITAL LETTER CHI
+uppercase	\x03A8	1345678	#GREEK CAPITAL LETTER PSI
+uppercase	\x03A9	245678	#GREEK CAPITAL LETTER OMEGA
+uppercase	\x03AA	2478	#GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+uppercase	\x03AB	1345678	#GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+lowercase	\x03AC	3458	#Greek letter alpha with tonos
+lowercase	\x03AD	12468	#Greek letter epsilon with tonos
+lowercase	\x03AE	1234568	#Greek letter eta with tonos
+lowercase	\x03AF	124568	#Greel letter iota with sonos
+lowercase	\x03B0	134568	#GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+lowercase	\x03B1	18	#GREEK SMALL LETTER ALPHA
+lowercase	\x03B2	128	#GREEK SMALL LETTER BETA
+lowercase	\x03B3	12458	#GREEK SMALL LETTER GAMMA
+lowercase	\x03B4	1458	#GREEK SMALL LETTER DELTA
+lowercase	\x03B5	158	#GREEK SMALL LETTER EPSILON
+lowercase	\x03B6	13568	#GREEK SMALL LETTER ZETA
+lowercase	\x03B7	1568	#GREEK SMALL LETTER ETA
+lowercase	\x03B8	14568	#GREEK SMALL LETTER THETA
+lowercase	\x03B9	248	#GREEK SMALL LETTER IOTA
+lowercase	\x03BA	138	#GREEK SMALL LETTER KAPPA
+lowercase	\x03BB	1238	#GREEK SMALL LETTER LAMDA
+lowercase	\x03BC	1348	#GREEK SMALL LETTER MU
+lowercase	\x03BD	13458	#GREEK SMALL LETTER NU
+lowercase	\x03BE	13468	#GREEK SMALL LETTER XI
+lowercase	\x03BF	1358	#GREEK SMALL LETTER OMICRON
+lowercase	\x03C0	12348	#GREEK SMALL LETTER PI
+lowercase	\x03C1	12358	#GREEK SMALL LETTER RHO
+lowercase	\x03C2	2348	#GREEK SMALL LETTER FINAL SIGMA
+lowercase	\x03C3	2348	#GREEK SMALL LETTER FINAL SIGMA
+lowercase	\x03C4	23458	#GREEK SMALL LETTER TAU
+lowercase	\x03C5	1368	#GREEK SMALL LETTER UPSILON
+lowercase	\x03C6	1248	#GREEK SMALL LETTER PHI
+lowercase	\x03C7	123468	#GREEK SMALL LETTER CHI
+lowercase	\x03C8	13456	#GREEK SMALL LETTER PSI
+lowercase	\x03C9	24568	#GREEK SMALL LETTER OMEGA
+lowercase	\x03CA	348	#GREEK SMALL LETTER IOTA WITH DIALYTIKA
+lowercase	\x03CB	234568	#GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+lowercase	\x03CC	2468	#Greek letter omicron with tonos
+lowercase	\x03CD	12568	#Greek letter upsilon with tonos
+lowercase	\x03CE	2458	#Greek letter omega with tonos
+sign	\x03D0	1278	#GREEK BETA SYMBOL
+sign	\x03D1	145678	#GREEK THETA SYMBOL
+letter	\x03D2	12368	#GREEK UPSILON WITH HOOK SYMBOL
+letter	\x03D3	23456	#GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+letter	\x03D4	1368	#GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+sign	\x03D5	12478	#GREEK PHI SYMBOL
+sign	\x03D6	123478	#GREEK PI SYMBOL
+sign	\x03D7	12346	#GREEK KAI SYMBOL
+uppercase	\x03D8	1234578	#GREEK LETTER ARCHAIC KOPPA
+lowercase	\x03D9	123458	#GREEK SMALL LETTER ARCHAIC KOPPA
+uppercase	\x03DA	123678	#GREEK CAPITAL LETTER STIGMA
+lowercase	\x03DB	12368	#GREEK SMALL LETTER STIGMA
+uppercase	\x03DC	145678	#GREEK CAPITAL LETTER DIGAMMA
+lowercase	\x03DD	12368	#GREEK SMALL LETTER DIGAMMA
+uppercase	\x03DE	1234578	#GREEK CAPITAL LETTER KOPPA
+lowercase	\x03DF	123458	#GREEK SMALL LETTER KOPPA
+uppercase	\x03E0	234678	#GREEK CAPITAL LETTER SAMPI
+lowercase	\x03E1	23468	#GREEK SMALL LETTER SAMPI
+sign	\x03F0	1234578	#GREEK KAPPA SYMBOL
+sign	\x03F1	123578	#GREEK RHO SYMBOL
+sign	\x03F2	23478	#GREEK LUNATE SIGMA SYMBOL
+sign	\x03F4	145678	#GREEK CAPITAL THETA SYMBOL
+sign	\x03F5	1578	#GREEK LUNATE EPSILON SYMBOL
+uppercase	\x03FA	234678	#GREEK CAPITAL LETTER SAN
+lowercase	\x03FB	23468	#GREEK SMALL LETTER SAN
+
+#--- Unicode Cyrillic
+uppercase \x0401 1678   #CYRILLIC CAPITAL LETTER IO
+uppercase \x0404 34578    #CYRILLIC CAPITAL LETTER UKRAINIAN IE
+uppercase \x0406 1345678    #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+uppercase \x0407 145678   #CYRILLIC CAPITAL LETTER YI
+uppercase \x0410 178   #CYRILLIC CAPITAL LETTER A
+uppercase \x0411 1278  #CYRILLIC CAPITAL LETTER BE
+uppercase \x0412 245678  #CYRILLIC CAPITAL LETTER VE
+uppercase \x0413 124578   #CYRILLIC CAPITAL LETTER GHE
+uppercase \x0414 14578    #CYRILLIC CAPITAL LETTER DE
+uppercase \x0415 157    #CYRILLIC CAPITAL LETTER IE
+uppercase \x0416 24578   #CYRILLIC CAPITAL LETTER ZHE
+uppercase \x0417 135678   #CYRILLIC CAPITAL LETTER ZE
+uppercase \x0418 2478    #CYRILLIC CAPITAL LETTER I
+uppercase \x0419 1234678    #CYRILLIC CAPITAL LETTER SHORT I
+uppercase \x041A 1378   #CYRILLIC CAPITAL LETTER KA
+uppercase \x041B 12378    #CYRILLIC CAPITAL LETTER EL
+uppercase \x041C 13478    #CYRILLIC CAPITAL LETTER EM
+uppercase \x041D 134578   #CYRILLIC CAPITAL LETTER EN
+uppercase \x041E 13578    #CYRILLIC CAPITAL LETTER O
+uppercase \x041F 123478   #CYRILLIC CAPITAL LETTER PE
+uppercase \x0420 123578   #CYRILLIC CAPITAL LETTER ER
+uppercase \x0421 23478   #CYRILLIC CAPITAL LETTER ES
+uppercase \x0422 234578   #CYRILLIC CAPITAL LETTER TE
+uppercase \x0423 13678    #CYRILLIC CAPITAL LETTER U
+uppercase \x0424 12478    #CYRILLIC CAPITAL LETTER EF
+uppercase \x0425 12578    #CYRILLIC CAPITAL LETTER HA
+uppercase \x0426 1478   #CYRILLIC CAPITAL LETTER TSE
+uppercase \x0427 1234578    #CYRILLIC CAPITAL LETTER CHE
+uppercase \x0428 15678    #CYRILLIC CAPITAL LETTER SHA
+uppercase \x0429 134678   #CYRILLIC CAPITAL LETTER SHCHA
+uppercase \x042A 1235678    #CYRILLIC CAPITAL LETTER HARD SIGN
+uppercase \x042B 234678   #CYRILLIC CAPITAL LETTER YERU
+uppercase \x042C 2345678    #CYRILLIC CAPITAL LETTER SOFT SIGN
+uppercase \x042D 24678    #CYRILLIC CAPITAL LETTER E
+uppercase \x042E 125678     #CYRILLIC CAPITAL LETTER YU
+uppercase \x042F 124678   #CYRILLIC CAPITAL LETTER YA
+lowercase \x0430 18   #CYRILLIC SMALL LETTER A
+lowercase \x0431 128    #CYRILLIC SMALL LETTER BE
+lowercase \x0432 24568   #CYRILLIC SMALL LETTER VE
+lowercase \x0433 12458    #CYRILLIC SMALL LETTER GHE
+lowercase \x0434 1458   #CYRILLIC SMALL LETTER DE
+lowercase \x0435 158    #CYRILLIC SMALL LETTER IE
+lowercase \x0436 2458   #CYRILLIC SMALL LETTER ZHE
+lowercase \x0437 13568   #CYRILLIC SMALL LETTER ZE
+lowercase \x0438 248    #CYRILLIC SMALL LETTER I
+lowercase \x0439 123468   #CYRILLIC SMALL LETTER SHORT I
+lowercase \x043A 138   #CYRILLIC SMALL LETTER KA
+lowercase \x043B 1238   #CYRILLIC SMALL LETTER EL
+lowercase \x043C 1348   #CYRILLIC SMALL LETTER EM
+lowercase \x043D 13458   #CYRILLIC SMALL LETTER EN
+lowercase \x043E 1358   #CYRILLIC SMALL LETTER O
+lowercase \x043F 12348   #CYRILLIC SMALL LETTER PE
+lowercase \x0440 12358    #CYRILLIC SMALL LETTER ER
+lowercase \x0441 2348   #CYRILLIC SMALL LETTER ES
+lowercase \x0442 23458   #CYRILLIC SMALL LETTER TE
+lowercase \x0443 1368   #CYRILLIC SMALL LETTER U
+lowercase \x0444 1248   #CYRILLIC SMALL LETTER EF
+lowercase \x0445 1258   #CYRILLIC SMALL LETTER HA
+lowercase \x0446 148   #CYRILLIC SMALL LETTER TSE
+lowercase \x0447 123458   #CYRILLIC SMALL LETTER CHE
+lowercase \x0448 1568   #CYRILLIC SMALL LETTER SHA
+lowercase \x0449 13468    #CYRILLIC SMALL LETTER SHCHA
+lowercase \x044A 123568   #CYRILLIC SMALL LETTER HARD SIGN
+lowercase \x044B 23468    #CYRILLIC SMALL LETTER YERU
+lowercase \x044C 234568   #CYRILLIC SMALL LETTER SOFT SIGN
+lowercase \x044D 2468   #CYRILLIC SMALL LETTER E
+lowercase \x044E 12568    #CYRILLIC SMALL LETTER YU
+lowercase \x044F 12468    #CYRILLIC SMALL LETTER YA
+lowercase \x0451 168    #CYRILLIC SMALL LETTER IO
+lowercase \x0452 1468   #CYRILLIC SMALL LETTER DJE Serbocroatian
+lowercase \x0454 3458   #CYRILLIC SMALL LETTER UKRAINIAN IE
+lowercase \x0455 12368    #CYRILLIC SMALL LETTER DZE
+lowercase \x0456 134568   #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+lowercase \x0457 14568    #CYRILLIC SMALL LETTER YI
+lowercase \x0458 3458   #CYRILLIC SMALL LETTER JE
+lowercase \x0459 1268   #CYRILLIC SMALL LETTER LJE
+lowercase \x045A 12468    #CYRILLIC SMALL LETTER NJE
+lowercase \x045B 1468   #CYRILLIC SMALL LETTER TSHE Serbocroatian
+lowercase \x045E 3468   #CYRILLIC SMALL LETTER SHORT U
+uppercase \x0462 3457		#CYRILLIC CAPITAL LETTER YAT
+lowercase \x0463 3458   #CYRILLIC SMALL LETTER YAT
+lowercase \x0467 18   #CYRILLIC SMALL LETTER LITTLE YUS
+uppercase \x046A 2467		#CYRILLIC CAPITAL LETTER BIG YUS
+lowercase \x046B 124568   #CYRILLIC SMALL LETTER BIG YUS
+lowercase \x0479 3468   #CYRILLIC SMALL LETTER UK DIGRAPH
+sign \x0484 478    #CYRILLIC NON-SPACING PALATALIZATION
+uppercase \x0490 1245678    #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+lowercase \x0491 124568   #CYRILLIC SMALL LETTER GHE WITH UPTURN
+lowercase \x04A3 13458    #CYRILLIC SMALL LETTER EN WITH DESCENDER
+lowercase \x04AF 12568    #CYRILLIC SMALL LETTER STRAIGHT U
+lowercase \x04BB 128    #CYRILLIC SMALL LETTER SHHA
+lowercase \x04D9 2468   #CYRILLIC SMALL LETTER SCHWA
+
+#---- Hebrew Unicode
+punctuation	\x05B0	3	#HEBREW POINT SHEVA
+punctuation	\x05B1	26	#HEBREW POINT HATAF SEGOL
+punctuation	\x05B2	25	#HEBREW POINT HATAF PATAH
+punctuation	\x05B3	345	#HEBREW POINT HATAF QAMATS
+punctuation	\x05B4	24	#HEBREW POINT HIRIQ
+punctuation	\x05B5	34	#HEBREW POINT TSERE
+punctuation	\x05B6	15	#HEBREW POINT SEGOL
+punctuation	\x05B7	14	#HEBREW POINT PATAH
+punctuation	\x05B8	126	#HEBREW POINT QAMATS
+punctuation	\x05B9	135	#HEBREW POINT HOLAM
+punctuation	\x05BB	136	#HEBREW POINT QUBUTS
+punctuation	\x05BC	5	#HEBREW POINT DAGESH OR MAPIQ 
+punctuation	\x05BD	4	#HEBREW POINT METEG
+punctuation	\x05C1	1568	#HEBREW POINT SHIN DOT
+punctuation	\x05C2	2348	#HEBREW POINT SIN DOT
+letter	\x05D0	1	#HEBREW LETTER ALEF
+letter	\x05D1	1236	#HEBREW LETTER BET
+letter	\x05D2	1245	#HEBREW LETTER GIMEL
+letter	\x05D3	145	#HEBREW LETTER DALET
+letter	\x05D4	125	#HEBREW LETTER HE
+letter	\x05D5	2456	#HEBREW LETTER VAV
+letter	\x05D6	1356	#HEBREW LETTER ZAYIN
+letter	\x05D7	1346	#HEBREW LETTER HET
+letter	\x05D8	2345	#HEBREW LETTER TET
+letter	\x05D9	245	#HEBREW LETTER YOD
+letter	\x05DA	16	#HEBREW LETTER FINAL KAF
+letter	\x05DB	16	#HEBREW LETTER KAF
+letter	\x05DC	123	#HEBREW LETTER LAMED
+letter	\x05DD	134	#HEBREW LETTER FINAL MEM
+letter	\x05DE	134	#HEBREW LETTER MEM
+letter	\x05DF	1345	#HEBREW LETTER FINAL NUN
+letter	\x05E0	1345	#HEBREW LETTER NUN
+letter	\x05E1	234	#HEBREW LETTER SAMEKH
+letter	\x05E2	1246	#HEBREW LETTER AYIN
+letter	\x05E3	124	#HEBREW LETTER FINAL PE
+letter	\x05E4	124	#HEBREW LETTER PE
+letter	\x05E5	2346	#HEBREW LETTER FINAL TSADI
+letter	\x05E6	2346	#HEBREW LETTER TSADI
+letter	\x05E7	12345	#HEBREW LETTER QOF
+letter	\x05E8	1235	#HEBREW LETTER RESH
+letter	\x05E9	146	#HEBREW LETTER SHIN
+letter	\x05EA	1456	#HEBREW LETTER TAV
+letter	\xFB1D	35   #HEBREW LETTER YOD WITH HIRIQ
+letter	\xFB2A	146	  #HEBREW LETTER SHIN WITH SHIN DOT
+letter	\xFB2B	156	  #HEBREW LETTER SHIN WITH SIN DOT
+letter	\xFB31	12	#HEBREW LETTER BET WITH DAGESH
+letter	\xFB35	346	#HEBREW LETTER VAV WITH DAGESH
+letter	\xFB3A	13	#HEBREW LETTER FINAL KAF WITH DAGESH
+letter	\xFB3B	13	#HEBREW LETTER KAF WITH DAGESH
+letter	\xFB43	1234	#HEBREW LETTER FINAL PE WITH DAGESH
+letter	\xFB44	1234	#HEBREW LETTER PE WITH DAGESH
+letter	\xFB4A	1256	#HEBREW LETTER TAV WITH DAGESH
+
+#---- Special Signs
+sign \xFEFF 0   #Zero width no-break Space
+include braille-patterns.cti
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti
new file mode 100644
index 0000000..3a84dc9
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti
@@ -0,0 +1,31 @@
+# Latin letters a-z where capitals are defined as equivalent to the lowercase. 
+# This table is usually used by 6 dot tables. To distinguish between 
+# capitals and lowercase, the language table should make use of the 
+# capsign and begcaps opcodes.
+
+uplow Aa 1
+uplow Bb 12
+uplow Cc 14
+uplow Dd 145
+uplow Ee 15
+uplow Ff 124
+uplow Gg 1245
+uplow Hh 125
+uplow Ii 24
+uplow Jj 245
+uplow Kk 13
+uplow Ll 123
+uplow Mm 134
+uplow Nn 1345
+uplow Oo 135
+uplow Pp 1234
+uplow Qq 12345
+uplow Rr 1235
+uplow Ss 234
+uplow Tt 2345
+uplow Uu 136
+uplow Vv 1236
+uplow Ww 2456
+uplow Xx 1346
+uplow Yy 13456
+uplow Zz 1356
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti
new file mode 100644
index 0000000..0df39ae
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti
@@ -0,0 +1,29 @@
+# Latin letters a-z with dot 7 as capital indicator.
+# Usually included to form a 8 dots table.
+
+uplow Aa 17,1
+uplow Bb 127,12
+uplow Cc 147,14
+uplow Dd 1457,145
+uplow Ee 157,15
+uplow Ff 1247,124
+uplow Gg 12457,1245
+uplow Hh 1257,125
+uplow Ii 247,24
+uplow Jj 2457,245
+uplow Kk 137,13
+uplow Ll 1237,123
+uplow Mm 1347,134
+uplow Nn 13457,1345
+uplow Oo 1357,135
+uplow Pp 12347,1234
+uplow Qq 123457,12345
+uplow Rr 12357,1235
+uplow Ss 2347,234
+uplow Tt 23457,2345
+uplow Uu 1367,136
+uplow Vv 12367,1236
+uplow Ww 24567,2456
+uplow Xx 13467,1346
+uplow Yy 134567,13456
+uplow Zz 13567,1356
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti
new file mode 100644
index 0000000..6598c19
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti
@@ -0,0 +1,10 @@
+digit 0 356
+digit 1 2
+digit 2 23
+digit 3 25
+digit 4 256
+digit 5 26
+digit 6 235
+digit 7 2356
+digit 8 236
+digit 9 35
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti b/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti
new file mode 100644
index 0000000..9cdc8c0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti
@@ -0,0 +1,10 @@
+digit 0 3568
+digit 1 28
+digit 2 238
+digit 3 258
+digit 4 2568
+digit 5 268
+digit 6 2358
+digit 7 23568
+digit 8 2368
+digit 9 358
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb
new file mode 100644
index 0000000..0d312be
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb
@@ -0,0 +1,98 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Lituanian
+#
+# Samuel Thibault <samuel.thibault@ens-lyon.org>
+# 
+# This table is based on the Unesco report on the progress of unification of
+# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
+# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
+# The document is dated 1954, so this table may be quite outdated.
+
+# generated by ttbtest
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation ' 3		APOSTROPHE
+punctuation ( 236		LEFT PARENTHESIS
+punctuation ) 356		RIGHT PARENTHESIS
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+include digits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation ? 236		QUESTION MARK
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation \x00a0 0		NO-BREAK SPACE
+uppercase \x010c 1467		LATIN CAPITAL LETTER C WITH CARON
+lowercase \x010d 146		LATIN SMALL LETTER C WITH CARON
+uppercase \x0160 23467		LATIN CAPITAL LETTER S WITH CARON
+lowercase \x0161 2346		LATIN SMALL LETTER S WITH CARON
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb
new file mode 100644
index 0000000..d33211a
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb
@@ -0,0 +1,217 @@
+# liblouis: Norwegian Grade 0 Braille Table, uncontracted braille
+# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
+# help and guidance from Lars Bjørndal <lars@handytech.no>
+# Updated June 2009 by Lars Bjørndal <lars@handytech.no>
+
+#include no-no-generic.dis # e.g. for printing with embosser set up for Euro braille
+
+space \s 0 blank							x0020
+space \x001b 1b escape character for html back-translation # dec 27
+
+# The following three line should work for liblouis with Handy Tech HTCom:
+#space \t 9 tab	x0009
+#space \x000D 1d \r
+#space \x000A 1a \n
+
+# With liblouisxml, use the following three lines instead:
+space \t 9 tab	x0009
+space \x000D 0 \r
+space \x000A 0 \n
+
+# space \x000c 0 # dec 12
+
+space \x00A0 a NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE # dec 160
+punctuation ! 235	exclamation mark							x0021
+punctuation " 256	double quote									x0022
+sign # 3456				number sign										x0023
+sign $ 256				dollar sign										x0024
+sign % 46 				percent sign									x0025
+# sign & 12346			ampersand											z0026
+uplow \x00C8\x00E8 2346		e with grave è					x00C8 / 00E8
+uplow \x00C9\x00E9 123456 e with acute é					x00C9 / 00E9
+uplow \x00CA\x00EA 126		e with circumflex				x00CA /	00EA
+uplow \x00CB\x00EB 1246		e with diaeresis ë			x00CB	/	00EB
+
+
+
+
+uplow \x00CE\x00EE 146		i with circumflex				x00CE	/ 00EE
+uplow \x00CF\x00EF 12456	i with diaeresis				x00CF	/ 00EF
+uplow \x00D3\x00F3 346		o with acute ó					x00D3 / 00F3
+uplow \x00D4\x00F4 1456		o with circumflex ô			x00D4 / 00F4
+
+sign & 346				ampersand											z0026
+punctuation ' 5		apostrophe										x0027
+punctuation ( 236	left parenthesis							x0028
+punctuation ) 356	right parenthesis							x0029
+sign * 35					asterisk											x002A
+math + 235				plus													x002B
+punctuation , 2		coma													x002C
+punctuation - 36	hyphen-minus									x002D
+punctuation . 3		point													x002E
+
+uplow \x00CD\x00ED 34			i with acute						x00CD	/ 00ED
+math / 34					solidus x002F
+#punctuation / 34					solidus												x002F
+
+
+include digits8Dots.uti
+
+punctuation : 25	colon													x003A
+punctuation ; 23	semicolon											x003B
+# math < 5-256			less-than sign								x003C
+math < 126				less-than sign								x003C
+math = 2356				equal sign										x003D
+uplow \x00C6\x00E6 345		ae											x00C6 / 00E6
+
+math > 345				greater-than sign							x003E
+punctuation ? 26	question mark									x003F
+sign @ 4					commercial at									x0040
+
+include latinLetterDef6Dots.uti
+
+uplow \x00C1\x00E1 12356	a with acute						x00C1 / 00E1
+
+punctuation [ 12356		left square bracket				x005B
+sign \\ 2							reverse solidus						x005C
+#uplow \xFFD8\xFFF8 246		o with stroke
+uplow \x00D8\x00F8 246		o with stroke
+#uplow \xFFD8\xFFF8 246		o with stroke
+uplow \X00DA\x00FA 23456		u with acute						x00DA / 00FA
+uplow \x00DB\x00FB 156		u with circumflex				x00FB
+uplow \x00DC\x00FC 1256		u with diaeresis				x00FC
+uplow \x00DD\x00FD 12346		y with acute						x00FD
+
+punctuation ] 23456		right square bracket			x005D
+sign ^ 5							circumflex accent					x005E
+sign _ 456						low line									x005F
+sign ` 45							grave accent							x0060
+
+# a - z																					x0061 - x007A
+
+uplow Åå 16								A with ring above				x00C5 / 00E5
+
+punctuation { 246			left curly bracket				x007B
+sign | 56							vertical line							x007C
+
+punctuation } 12456		right curly bracket				x007D
+sign ~ 256						tilde											x007E
+
+sign \x0080 15-136-1235-135	Euro sign						x0080
+
+# sign \X00A1					inverted exclamation mark									x00A1
+sign ¢ 4-14						cent sign																	x00A2
+sign £ 45-123					pound sign																x00A3
+sign ¤ 45-15					currency sign																x00A4
+sign ¥ 45-13456				yen	sign																		x00A5
+sign § 346						section sign																x00A7
+sign © 236-14-356		copyright			x00A9
+# sign « 45-2356				left-pointing double angle quotation mark		x00AB
+sign « 256				left-pointing double angle quotation mark		x00AB
+sign ° 5-356					degree sign																	x00B0
+
+sign ² 4-6-126				superscript 2 sign													x00B2
+sign ³ 4-6-146				superscript 3 sign													x00B3
+sign \x00B4 6					acute sign dec-180
+sign ¹ 1-27						superscript 1 sign													x00B9
+# sign » 2356-12				right-pointing double angle quotation mark	x00BB
+sign » 256				right-pointing double angle quotation mark	x00BB
+math ¼ 6-16-34-1456		vulgar fraction one quarter								x00BC
+
+math ½ 6-16-34-126		vulgar fraction one half									x00BD
+math ¾ 6-126-34-1456	vulgar fraction 3 quarters								x00BE
+
+uplow \x00C0\x00E0 12356	a with grave						x00C0 / 00E0
+
+uplow \x00C2\x00E2 16			a with circumflex				x00C2 / 00E2
+uplow \x00CA\x00EA 126		e with circumflex						x00CA / 00EA
+uplow \x00C3\x00E3 126		a with tilde   x00C3 / 00E3
+uplow Ää 345							A with diaeresis				x00C4 / 00E4
+uplow \x00C7\x00E7 12346	c with cedilla ç				x00C7 / 00E7
+uplow \x00D5\x00F5 246		o with tilde						x00D5 / 00F5
+uplow Öö 246						O with diaeresis				x00D6 / 00F6
+math × 236						multiplication sign			x00D7
+math ÷ 256								division sign									 x00F7
+
+punctuation	\x2010 46		 # 8208			hyphen
+punctuation	\x2011 46		 # 8209			non-breaking hyphen
+math	\x2013 36					 # 8211			en dash (smart minus sign)
+lowword \x2013 36-36			 make double when surrounded by white spaces
+punctuation \x2013 36
+punctuation \x2014 36								em dash
+punctuation	\x2018 5		 # 8216			smart single left quotation mark
+punctuation	\x2019 5		 # 8217			smart single right quotation mark
+
+punctuation	\x201C 256					# 8220	smart opening double quote
+punctuation	\x201D 256					# 8221	smart closing double quote
+punctuation	\x201E 256					# 8222	smart double low quotation mark
+punctuation	\x201F 256					# 8223	smart double high reverse quotation mark
+punctuation \x2026 3-3-3				# 8230	smart ellipsis
+
+sign \x20AC 15-136-1235-135			Euro sign						x0080
+
+
+uplow \x00D2\x00F2 4-135 DEC 242 ò
+lowercase \x00F3 4-135 DEC 243 ó
+lowercase \x00F4 4-135 DEC 244 ô
+
+
+# ------------------- End char definitions --------------------
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# unicode braille
+include braille-patterns.cti
+
+lowword - 36-36		make double when hyphen surrounded by white spaces
+
+numsign 3456
+capsign 6							# single capital letter indicator
+begcaps 6-6						# a block of consecutive capital letters indicator
+endcaps 56
+
+begital 23
+begbold 23
+begunder 456
+endital 56
+endbold 56
+endunder 456
+
+midnum , 2
+midnum . 3
+midnum + 235
+midnum - 36-36-3456
+midnum / 34-3456
+midnum : 25
+midnum = 2356
+
+endnum # 56-3456
+always # 3456
+endnum a 56-1
+endnum b 56-12
+endnum c 56-14
+endnum d 56-145
+endnum e 56-15
+endnum f 56-124
+endnum g 56-1245
+endnum h 56-125
+endnum i 56-24
+endnum j 56-245
+repeated \s 0		espaces
+repeated \t 0		tabulations
+repeated \x00a0 0		espaces insécables
+
+repeated ... 3-3-3		points de suite
+repeated --- 36-36-36
+repeated ___ 456-456-456
+
+# always \s--\s 36-36	tiret
+noback always ;\s; 0
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb
new file mode 100644
index 0000000..4880f72
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb
@@ -0,0 +1,111 @@
+# liblouis: Norwegian contracted braille, level 1.
+
+# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
+# help and guidance from Lars Bjørndal <lars@handytech.no>.
+
+# Modified Sep 30, 2005 by LU
+
+# Heavily overworked by lars@handytech.no, 2009.
+
+include no-no-g0.utb
+
+#------------------------------------------------------
+# -------------- level 1 contractions -----------------
+#------------------------------------------------------
+endword ar 3456
+word at 1
+word ble 12
+word de 1456
+endword de 1456
+word du 145
+word eg 1245
+word eller 15
+word ellers 15-234
+word en 126
+endword en 126
+word ende 126-1456
+endword ende 126-1456
+word er 156
+endword er 156
+word et 346
+endword et 346
+word etter 1356
+begword etter 1356
+word etterat 1356-1
+word ettersom 1356-234
+word etterpå 1356-1234
+
+word for 1246											# level 1 contractions
+endword for 1246
+begword for 1246
+word forat 1246-1
+word forfra 1246-124
+word forover 1246-1346
+word forlike 1246-123
+
+word forhold 12346
+endword forhold 12346
+begword forhold 12346
+
+word forholdsvis 12346-1236
+
+word fra 124											# level 1 contractions
+word før 246
+word gjennom 12456
+begword gjennom 12456
+endword gjennom 12456
+word gjennomfør 12456-246
+
+word han 125
+word hans 125-234
+word har 1235
+word hun 136
+word hvor 2456
+begword hvor 2456
+
+word ikke 24-13										# level 1 contractions
+word ikkje 24-13-245
+word jeg 245
+word kan 13
+word like 123
+word mange 134
+word med 146
+word mye 13456
+word når 1345
+
+word og 14												# level 1 contractions
+word også 14-234
+word oss 135										
+word over 1346
+begword over 1346
+word overfor 1346-1246
+word overpå 1346-1234
+word overunder 1346-12345
+word overfør 1346-246
+word overvære 1346-345
+word overvar 1346-3456
+
+word på 1234
+word som 234
+word til 2345
+word under 12345
+begword under 12345
+word underer 12345-345
+word underet 12345-346
+word underfra 12345-124
+word undersom 12345-234
+word undertil 12345-2345
+
+word var 3456
+word ved 1236
+word være 345											# level 1 contractions
+
+letsign 56
+noletsign i
+noletsign I
+noletsign å
+noletsign Å
+#noletsignbefore '.
+noletsignafter .
+
+# -------------------------------------------------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb
new file mode 100644
index 0000000..150b8ab
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb
@@ -0,0 +1,479 @@
+# liblouis: Norwegian contracted braille, level 2.
+# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
+# help and guidance from Lars Bjørndal <lars@handytech.no>.
+# Modified Sep 30, 2005 by LU
+
+# Heavily overworked by lars@handytech.no, 2009.
+
+include no-no-g1.ctb
+
+#------------------------------------------------------
+# -------------- level 1 contractions -----------------
+#------------------------------------------------------
+endword ar 3456
+word at 1
+word ble 12
+word de 1456
+endword de 1456
+word du 145
+word eg 1245
+word eller 15
+word ellers 15-234
+word en 126
+endword en 126
+word ende 126-1456
+endword ende 126-1456
+word er 156
+endword er 156
+word et 346
+endword et 346
+word etter 1356
+begword etter 1356
+word etterat 1356-1
+word ettersom 1356-234
+word etterpå 1356-1234
+
+word for 1246											# level 1 contractions
+endword for 1246
+begword for 1246
+word forat 1246-1
+word forfra 1246-124
+word forover 1246-1346
+
+word forhold 12346
+endword forhold 12346
+begword forhold 12346
+
+word forholdsvis 12346-1236
+
+word fra 124											# level 1 contractions
+word fram 124-134
+begword fram 124-134
+word før 246
+word gjennom 12456
+begword gjennom 12456
+endword gjennom 12456
+word gjennomfør 12456-246
+
+#word han 125
+word hans 125-234
+word har 1235
+word hun 136
+word hvor 2456
+begword hvor 2456
+
+word ikke 24-13										# level 1 contractions
+word ikkje 24-13-245
+word jeg 245
+word kan 13
+word like 123
+word mange 134
+word med 146
+word mye 13456
+word når 1345
+
+word og 14												# level 1 contractions
+word også 14-234
+word oss 135										
+word over 1346
+begword over 1346
+word overfor 1346-1246
+word overpå 1346-1234
+word overunder 1346-12345
+word overfør 1346-246
+word overvære 1346-345
+word overvar 1346-3456
+
+word på 1234
+word som 234
+word til 2345
+word under 12345
+begword under 12345
+word underer 12345-345
+word underet 12345-346
+word underfra 12345-124
+word undersom 12345-234
+word undertil 12345-2345
+
+word var 3456
+word ved 1236
+word være 345											# level 1 contractions
+
+# -------------------------------------------------------------------
+
+# -------------- level 2 contractions -----------------
+word aldri 1-24
+word alle 1-15
+word alles 1-15-234
+word allerede 1-123-1235
+word alltid 1-2345-145
+word altfor 1-1246
+word altså 1-16
+
+word andre 1-12356
+word andres 1-12356-234
+begword andre 1-12356
+
+word annen 1-126
+begword annen 1-126
+
+word annerledes 1-1345-1235
+word annet 1-346
+begword annet 1-346
+word annleis 1-1345-123
+
+endword ar 3456
+endword arde 3456-1456
+endword ars 3456-234
+endword art 3456-2345
+endword arte 3456-1256
+endword arne 3456-2346
+
+word begge 12-1245
+word begges 12-1245-234
+word blant 12-123									# level 2 contractions
+word blir 12-1235
+word blitt 12-2345
+
+word bruk 12-13
+begword bruk 12-13
+begword ubruk 136-12-13
+endword bruk 12-13
+
+# de															# defined in level 1 contractions
+begword de 1456
+begword ude 136-1456
+endword des 1456-234
+
+word deg 145-1245									# level 2 contractions
+word dem 145-134
+word denne 145-2346
+word dennes 145-2346-234
+word der 23456
+word derat 23456-1
+word derblant 23456-12-123
+word deriblant 23456-24-12-123
+word deretter 23456-1356
+word derfra 23456-124
+word derfør 23456-246
+word dergjennom 23456-12456
+word derover 23456-1346
+word derpå 23456-1234
+word dersom 23456-234
+word dertil 23456-2345
+word derunder 23456-12345
+word derved 23456-1236
+word deretter 23456-1356
+
+begword der 23456
+word dere 145-12356
+word deres 145-12356-234
+word desse 1456-234
+word dessuten 145-234-136
+word dessverre 145-234-1236
+word dette 145-1256
+word dettes 145-1256-234
+word din 145-1345
+word disse 145-234
+word ditt 145-2345
+word diverre 145-1236
+
+word dykk 145-13
+begword dykk 145-13
+
+word eg 1245											# level 2 contractions
+
+# en															# defined in level 1
+word ens 126-234									# level 2 contractions
+endword ens 126-234
+endword ent 126-2345
+endword enne 126-2346
+endword ende 126-1456
+endword ente 126-1256
+
+word enda 15-1
+word ende 126-1456
+word endes 126-1456-234
+word enno 15-135
+word ennå 15-16
+
+# er															# defined in level 1
+endword ers 156-234								# level 2 contractions
+endword ert 156-2345
+endword erne 156-2346
+endword erde 156-1456
+endword erte 156-1256
+
+# et															# defined in level 1
+endword ets 346-234								# level 2 contractions
+endword ett 346-2345
+endword etne 346-2346
+endword ette 346-1256
+
+# word etter 1356									# defined in level 1
+begword uetter 136-1356
+word ettergjorde 1356-1245-245-1456
+word ettergikk 1356-1245-13
+
+word felles 124-123-234
+begword felles 124-123-234
+word fikk 124-13
+
+# word for 1246										# defined in level 1
+begword ufor 136-1246
+
+# forhold 12346										# defined in level 1
+begword uforhold 136-12346
+word forholda 12346-1
+endword forholda 12346-1
+word forholdene 12346-15-2346
+endword forholdene 12346-15-346
+word forholdet 12346-346
+endword forholdet 12346-346
+
+# word forholdsvis 12346-1236	# defined in level 1
+
+word forskjell 1246-14
+endword forskjell 1246-14
+begword forskjell 1246-14
+word forskjellane 1246-14-1-2346
+endword forskjellane 1246-14-1-2346
+word forskjellene 1246-14-15-2346
+endword forskjellene 1246-14-15-2346
+word forskjellen 1246-14-126
+endword forskjellen 1246-14-126
+word forskjeller 1246-14-156
+endword forskjeller 1246-14-156
+word forskjellar 1246-14-3456
+endword forskjellar 1246-14-3456
+
+# word fra 124												# defined in level 1
+
+word fulgte 124-1245-1256
+word følg 124-1245
+begword følg 124-1245
+
+word følge 124-1245-15
+begword følge 124-1245-15
+endword følge 124-1245-15
+word følgende 124-1245-126-1456
+begword følgende 124-1245-126-1456
+
+word først 124-234-2345
+begword først 124-234-2345
+word første 124-234-1256
+begword første 124-234-1256
+word fått 124-2345
+
+word gang 1245-1245								# level 2 contractions
+begword gang 1245-1245
+word gikk 1245-13
+word gjekk 1245-245-13
+
+# word gjennom 12456
+begword ugjennom 136-12456
+word gjennomgang 12456-1245-1245
+word gjennomgikk 12456-1245-13
+
+word gjorde 1245-245-1456
+endword gjorde 1245-245-1456
+word gjort 1245-245-2345
+endword gjort 1245-245-2345
+word gjør 1245-245
+
+word hadde 125-1456								# level 2 contractions
+# word han 125
+# word hans 125-234
+# word har 1235										# already in level 1
+word hatt 125-2345
+word hennar 15-3456
+word henne 15-15
+word hennes 15-15-234
+word heller 125-123-156
+word helst 125-123
+# word hun 136										# already in level 1
+word hverandre 2456-1-12356
+word hverandres 2456-1-12356-234
+word hvilke 2456-13-15
+word hvilken 2456-13-126
+word hvilket 2456-13-346
+word hvis 2456-234
+word hvordan 2456-145
+word hvoretter 2456-1356
+word hvorfra 2456-124
+word hvorledes 2456-123
+word hvorpå 2456-1234
+word hvorved 2456-1236
+
+
+word iallfall 24-1-124						# level 2 contractions
+word iblant 24-12-123
+# word ikke 24-13									# already in level 1
+word imidlertid 24-24
+word inga 24-1
+
+word ingen 24-15
+word ingens 24-15-234
+begword ingen 24-15
+
+word ingenting 24-15-2345
+word innenfor 24-1246
+word innenfra 24-124
+
+word kanskje 13-13								# level 2 contractions
+word komme 13-134
+word kommer 13-134-156
+word kommet 13-134-346
+word korleis 13-234
+word kunne 13-1345
+word kunnet 13-1345-346
+word kvarandre 1-1-12356
+word kvarandres 1-1-12356-234
+word kvifor 13-1246
+
+word likedan 123-145							# level 2 contractions
+word likesom 123-234
+word liketil 123-2345
+word likevel 123-123
+word liksom 123-13-234
+
+# word mange 134									# defined in level 1
+word manges 134-234
+# word med 146										# defined in level 1
+endword med 146
+begword med 146
+begword umed 136-146
+
+word meg 134-1245									# level 2 contractions
+word meget 134-346
+word mellom 134-123
+endword mellom 134-123
+begword mellom 134-123
+word min 134-1345
+word mitt 134-2345
+word mye 13456
+word mykje 134-13
+word måtta 134-2345-1
+word måtte 134-1256
+word måttet 134-2345-346
+
+word natur 1345-2345
+begword natur 1345-2345
+word unatur 136-1345-2345
+begword unatur 136-1345-2345
+
+word ne 2346
+word nes 2346-234
+endword ne 2346
+endword nes 2346-234
+
+word nedenfor 1345-1246						# level 2 contractions
+word nedenfra 1345-124
+word neppe 1345-1234
+word noen 1345-1345
+begword noen 1345-1345
+
+word noko 1345-13
+word nokon 1345-13-1345
+word nokre 1345-13-12356
+# word når 1345
+
+# word og 14											# defined in level 1
+# word også												# defined in level 1
+# word oss												# defined in level 1
+word ovenfor 135-1246
+word ovenfra 135-124
+
+# word over 1346								  # defined in level 1
+word overgikk 1346-1245-13
+word overgang 1346-1245-1245
+word overs 1346-234
+begword uover 136-1346
+
+begword overgang 1346-1245-1245
+
+word punkt 1234-13-2345
+begword punkt 1234-13-2345
+endword punkt 1234-13-2345
+# word på 1234										# defined in level 1
+
+word re 12356
+word res 12356-234
+endword re 12356
+endword res 12356-234
+
+word samme 234-134								# level 2 contractions
+
+word sammen 234-134-126
+begword usammen 136-234-134-126
+begword sammen 234-134-126
+
+word seg 234-1245
+word selv 234-1236
+word sin 234-1345
+word sitt 234-2345
+word sjøl 234-245
+
+word sjølv 234-245-1236
+word sjølve 234-245-1236-15
+begword sjølv 234-245-1236
+begword usjølv 136-234-245-1236
+
+word skal 123456									# level 2 contractions
+word skulla 123456-1
+word skulle 123456-15
+word skullet 123456-346
+word snart 234-1235
+word spørsmål 234-1234-134
+begword spørsmål 234-1234-134
+endword spørsmål 234-1234-134
+
+word takk 2345-13									# level 2 contractions
+begword utakk 136-2345-13
+begword takk 2345-13
+
+word tatt 2345-2345
+
+word te 1256
+endword te 1256
+endword tes 1256-234
+
+word tilbake 2345-12
+begword tilbake 2345-12
+word tilfeldig 2345-124-1245
+begword tilfeldig 2345-124-1245
+
+begword tilfell 2345-124
+word tilgang 2345-1245-1245
+begword tilgang 2345-1245-1245
+word undergikk 12345-1245-13
+
+word undergang 12345-1245-1245			# level 2 contractions
+begword undergang 12345-1245-1245			# level 2 contractions
+word utenfor 136-1246
+word utenfra 136-124
+word vil 1236-123
+word ville 1236-123-15
+word villet 1236-123-146
+
+word viss 1236-234
+word uviss 136-1236-234
+begword uviss 136-1236-234
+begword viss 1236-234
+
+word vært 1236-2345
+
+# ------------------------------------------------------
+# Words with problems - should be converted this way:
+
+word det 145-346
+word dets 145-346-234
+word den 145-126
+word dens 145-236-234
+word dent 145-126-2345
+word dente 145-126-1256
+word dert 145-156-2345
+word dett 145-346-2345
+word fores 124-135-12356-234
+word mede 134-15-1456
+word noens 1345-135-126-234
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb
new file mode 100644
index 0000000..cc20c13
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb
@@ -0,0 +1,589 @@
+# liblouis: Norwegian contracted braille, level 3.
+# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
+# help and guidance from Lars Bjørndal <lars@handytech.no>.
+# Modified October 25, 2005
+# Last modified July 2012, by lars@lamasti.net
+
+include no-no-g2.ctb
+
+# -------------- level 3 contractions -----------------
+word absolutt 1-12-234
+word akkurat 1-13-1235
+endword aktig 25-13
+endword aktige 26-13
+endword aktigere 26-13-12356
+endword aktigeres 26-13-12356-234
+# word aldri 1-24									# defined in level 2
+# alle														# defined in level 2
+# word allerede 1-123-1235				# defined in level 2
+# word alltid 1-2345-145					# defined in level 2
+
+word alminneleg 1-123-134-25-1245
+begword alminneleg 1-123-134-25-1245
+word ualminneleg 136-1-123-134-25-1245
+begword ualminneleg 136-1-123-134-25-1245
+
+word alminnelege 1-123-134-26-1245
+word ualminnelege 136-1-123-134-26-1245
+word alminnelig 1-123-134-25-123
+word ualminnelig 136-1-123-134-25-123
+begword alminnelig 1-123-134-25-123
+begword ualminnelig 136-1-123-134-25-123
+
+word alminnelige 1-123-134-26-123
+word ualminnelige 136-1-123-134-26-123
+
+# word altfor 1-1246							# defined in level 2
+# word altså 1-16                 # defined in level 2
+# begword andre 1-12356						# defined in level 2
+# word andres 1-12356-234					# defined in level 2
+
+# begword annen 1-126							# defined in level 2
+# word annens 1-126-234						# defined in level 2
+
+# word annerledes 1-1345-1235			# defined in level 2
+# begword annet 1-346							# defined in level 2
+# endword ar 3456									# defined in level 1
+# endword ars 3456-234						# defined in level 1
+# word at 1												# defined in level 1
+
+# begge														# defined in level 2
+# word blant 12-123								# defined in level 2
+# word ble 12											# defined in level 1
+# word blir 12-1235								# defined in level 2
+# word blitt 12-2345							# defined in level 2
+# bruk														# defined in level 2
+word burde 12-1456											# level 3 contractions
+word både 12-145
+
+# de															# defined in level 2
+# word deg 145-1245								# defined in level 2
+# word dem 145-134								# defined in level 2
+# denne														# defined in level 2
+# begword der 23456								# defined in level 2
+# dere														# defined in level 2
+# word desse 1456-234							# defined in level 2
+# word dessuten 145-234-136				# defined in level 2
+# word dessverre 145-234-1236			# defined in level 2
+# dette														# defined in level 2
+# word din 145-1345								# defined in level 2
+# word disse 145-234							# defined in level 2
+# word ditt 145-2345							# defined in level 2
+# word diverre 145-1236						# defined in level 2
+
+endword dom 25-145
+endword domde 25-145-1456
+endword domen 25-145-126
+endword domens 25-145-126-234
+endword domer 25-145-156
+endword domers 25-145-156-234
+endword domet 25-145-346
+endword domets 25-145-346-234
+endword domane 25-145-1-2346
+endword domme 26-145
+endword dommene 26-145-2346
+endword dommenes 26-145-2346-234
+endword dommen 26-145-1345
+
+endword dommer 26-145-1235
+
+# word du 145											# defined in level 2
+# begword dykk 145-13							# defined in level 2
+
+endword els 25-15
+endword elsar 25-15-3456
+endword elsars 25-15-3456-234
+endword elsde 25-15-1456
+
+endword elser 25-15-156
+endword elsers 25-15-156-234
+endword elsen 25-15-126
+endword elsens 25-15-126-234
+endword elset 25-15-346
+endword elsets 25-15-346-234
+endword elsne 25-15-2346
+endword elsnes 25-15-2346-234
+endword elste 25-15-1256
+endword elstes 25-15-1256-234
+endword else 26-15
+endword elsede 26-15-1456
+endword elsene 26-15-2346
+endword elsenes 26-15-2346-234
+endword elsete 26-15-1256
+
+always enb 126-12
+always enc 126-14
+always end 126-145
+always enf 126-124
+always eng 126-1245
+always enh 126-125
+always enj 126-245
+always enk 126-13
+always enl 126-123
+always enm 126-134
+always enn 126-1345
+always enp 126-1234
+always enq 126-12345
+always enr 126-1235
+always ens 126-234
+always ent 126-2345
+always env 126-1236
+always enw 126-23456
+always enx 126-1346
+always enz 126-1356
+always erb 156-12
+always erc 156-14
+always erd 156-145
+always erf 156-124
+always erg 156-1245
+always erh 156-125
+always erj 156-245
+always erk 156-13
+always erl 156-123
+always erm 156-134
+always ern 156-1345
+always erp 156-1234
+always erq 156-12345
+always err 156-1235
+always ers 156-234
+always ert 156-2345
+always erv 156-1236
+always erw 156-23456
+always erx 156-1346
+always erz 156-1356
+
+always enbruk 126-12-13
+always ensom 126-25-234
+always ensomme 126-26-234
+word erte 156-1256
+begword erte 156-1256
+endword erte 156-1256
+word ertes 156-1256-234
+endword ertes 156-1256-234
+word erne 156-2346
+begword erne 156-2346
+endword erne 156-2346
+endword ernes 156-2346-234
+word enhet 126-236
+word enheten 126-236-126
+word enheter 126-236-156
+word enhetene 126-236-15-2346
+endword enhet 126-236
+endword enheten 126-236-126
+endword enheter 126-236-156
+endword enhetene 126-236-15-2346
+endword erdom 156-25-145
+endword erdomar 156-25-145-3456
+endword erdomen 156-25-145-126
+endword erdomens 156-25-145-126-234
+endword erdomane 156-25-145-1-2346
+endword erdomanes 156-25-145-1-2346-234
+endword erdommen 156-26-145-1356
+endword erdommer 156-26-145-1235
+endword endom 126-25-145
+endword endomane 126-25-145-1-2346
+endword endommen 126-26-145-1345
+endword endommer 126-26-145-1235
+
+begword et 346
+
+word forresten 1246-1235-234						# level 3 contractions
+word forrige 1246-1235-1245
+# word fra 124										# defined in level 1
+always fra\sog\smed 124-14-146
+
+word frametter 124-1356									# level 3 contractions
+word framfor 124-1246
+# word fulgte 124-1245-1256				# defined in level 2
+# word følg 124-1245							# defined in level 2
+# begword følg 124-1245
+# always følge 124-1245-15
+# word før 246										# defined in level 1
+always først\sog\sfremst 124-14-124			# level 3 contractions
+
+begword grupp 1245-1234									# level 3 contractions
+word gruppa 1245-1234-1
+endword gruppa 1245-1234-1
+word gruppe 1245-1234-15
+begword gruppe 1245-1234-15
+endword gruppe 1245-1234-15
+word gruppene 1245-1234-15-2346
+begword gruppene 1245-1234-15-2346
+endword gruppene 1245-1234-15-2346
+word gruppenes 1245-1234-15-2346-234
+endword gruppenes 1245-1234-15-2346-234
+word gruppen 1245-1234-126
+begword gruppen 1245-1234-126
+endword gruppen 1245-1234-126
+word gruppens 1245-1234-126-234
+begword gruppens 1245-1234-126-234
+endword gruppens 1245-1234-126-234
+word grupper 1245-1234-156
+begword grupper 1245-1234-156
+endword grupper 1245-1234-156
+word gruppers 1245-1234-156-234
+endword gruppers 1245-1234-156-234
+
+word går 1245-1235								
+word gått 1245-2345											# level 3 contractions
+
+word heldig 125-145											# level 3 contractions
+word uheldig 136-125-145
+begword heldig 125-145									# level 3 contractions
+begword uheldig 136-125-145
+
+endword het 236													# level 3 contractions
+endword heten 236-126
+endword heter 236-156
+endword hetene 236-15-2346
+
+# word hun 136										# already in level 1
+# hverandre												# defined in level 2
+begword hvor 23456
+
+endword ing 25-24
+always ings 25-24-234
+endword ingar 25-24-3456
+endword ingars 25-24-3456-234
+endword ingde 25-24-1456
+endword ingen 25-24-126
+endword ingens 25-24-126-234
+endword inger 25-24-156
+endword ingers 25-24-156-234
+endword inget 25-24-346
+endword ingets 25-24-346-234
+endword ingte 25-24-1256
+endword ingets 25-24-346-234
+endword inga 25-24-1
+endword ingade 25-24-1-1456
+endword ingaen 25-24-1-126
+endword ingaens 25-24-1-126-234
+endword ingaer 25-24-1-156
+endword ingaers 25-24-1-156-234
+endword ingaet 25-24-1-346
+endword ingaets 25-24-1-346-234
+endword ingate 25-24-1-1256
+endword ingane 25-24-1-2346
+endword inganes 25-24-1-2346-234
+
+endword inge 26-24
+endword ingene 26-24-2346
+endword ingenes 26-24-2346-234
+
+word istedenfor 24-356-1246
+word jamvel 245-1236
+endword leg 25-1245
+endword legar 25-1245-3456
+endword legars 25-1245-3456-234
+endword legde 25-1245-1456
+endword legdes 25-1245-1456-234
+endword legen 25-1245-126
+endword legens 25-1245-126-234
+endword leger 25-1245-156
+endword legers 25-1245-156-234
+endword leget 25-1245-346
+endword legets 25-1245-346-234
+endword legne 25-1245-2346
+endword legnes 25-1245-2346-234
+endword legte 25-1245-1256
+endword legtes 25-1245-1256-234
+endword lege 26-1245
+endword legene 26-1245-2346
+endword legenes 26-1245-2346-234
+endword legere 26-1245-12356
+endword legeres 26-1245-12356-234
+endword legete 26-1245-1256
+endword legetes 26-1245-1256-234
+endword lig 25-123
+endword ligar 25-123-3456
+endword ligde 25-123-1456
+endword ligdes 25-123-1456-234
+endword ligen 25-123-126
+endword ligens 25-123-126-234
+endword liger 25-123-156
+endword ligers 25-123-156-234
+endword liget 25-123-346
+endword ligets 25-123-346-234
+endword ligne 25-123-2346
+endword lignes 25-123-2346-234
+endword ligte 25-123-1256
+endword ligtes 25-123-1256-234
+endword lighet 25-123-236
+endword ligheten 25-123-236-126
+endword lighetens 25-123-236-126-234
+endword lighetene 25-123-236-15-2346
+
+endword lige 26-123
+endword ligene 26-123-2346
+endword ligenes 26-123-2346-234
+endword ligete 26-123-1256
+endword ligetes 26-123-1256-234
+endword ligere 26-123-12356
+endword ligeres 26-123-12356-234
+
+# word mange 134										# defined in level 1 contractions
+# word manges 134-234								# defined in level 2 contractions
+# word med 146											# defined in level 1 contractions
+# word meg 134-1245									# defined in level 2 contractions
+# word meget 134-346								# -
+# word mellom 134-123								# -
+
+endword ment 25-2345
+endword mentar 25-2345-3456
+endword mentars 25-2345-3456-234
+endword mentde 25-2345-1456
+endword menten 25-2345-126
+endword mentens 25-2345-126-234
+endword menter 25-2345-156
+endword menters 25-2345-156-234
+endword mentet 25-2345-346
+endword mentets 25-2345-346-234
+endword mentne 25-2345-2346
+endword mentnes 25-2345-2346-234
+endword mentte 25-2345-1256
+endword menta 25-2345-1
+
+endword mente 26-2345
+endword mentene 26-2345-2346
+endword mentenes 26-2345-2346-234
+endword messig 25-134
+endword messige 26-134
+endword messigere 26-134-12356
+
+# word min 134-1345									# defined in level 2 contractions
+
+endword nad 25-1246
+endword nadar 25-1246-3456
+endword nadars 25-1246-3456-234
+endword naden 25-1246-126
+endword nadens 25-1246-126-234
+endword nader 25-1246-156
+endword naders 25-1246-156-234
+endword nadet 25-1246-346
+endword nadets 25-1246-346-234
+endword nadne 25-1246-2346
+endword nade 26-1246
+endword nadene 26-1246-2346
+endword nadenes 26-1246-2346-234
+endword nadere 26-1246-12356
+endword nadere 26-1246-12356-234
+
+# word natur 1345-2345							# defined in level 2 contractions
+# begword unatur 136-1345-2345						# level 3 contractions
+
+word naturligvis 1345-2345-1236
+
+# word nedenfor 1345-1246						# defined in level 2 contractions
+# word nedenfra 1345-124            # defined in level 2 contractions
+
+begword une 136-2346
+begword ne 2346
+word nemlig 1345-123				
+# word neppe 1345-1234							# defined in level 2 contractions
+word nettopp 1345-2345-1234
+# begword noen 1345-1345						# defined in level 2 contractions
+word noenlunde 1345-1345-123
+word noensinne 1345-1345-234
+# word noko 1345-13									# defined in level 2 contractions
+# word nokon 1345-13-1345						# defined in level 2 contractions
+# word nokre 1345-13-12356					# defined in level 2 contractions
+
+word nødvendig 1345-1236
+begword nødvendig 1345-1236
+word unødvendign 136-1345-1236
+begword unødvendig 136-1345-1236
+
+
+# word når 1345										# defined in level 2 contractions
+# word og 14											# defined in level 1
+# word også												# defined in level 1
+
+word omkring 135-134-13											# level 3 contractions
+word omtrent 135-134-2345
+
+# word oss												# defined in level 1
+# word og 14											# defined in level 1
+# word også												# defined in level 1
+# word oss												# defined in level 1
+# word ovenfor 135-1246						# defined in level 2 contractions
+# word ovenfra 135-124						# defined in level 2 contractions
+# word over												# defined in level 1
+# over														# defined in level 2 contractions
+# begword overgang 1346-1245-1245 # defined in level 2 contractions
+word oppmerksom 135-1234-134
+word uoppmerksom 136-135-1234-134
+
+word pakk 1234-13
+begword pakk 1234-13
+endword pakk 1234-13
+word plutselig 1234-25-123
+begword pr 25
+
+# always punkt 1234-13-2345				# defined in level 2 contractions
+# word på 1234										# defined in level 1
+# re															# defined in level 2 contractions
+
+word riktig 1235-1245
+word uriktig 136-1235-1245
+begword riktig 1235-1245
+begword uriktig 136-1235-1245
+
+endword sam 25-146
+endword samar 25-146-3456
+endword samars 25-146-3456-234
+endword samen 25-146-126
+endword samens 25-146-126-234
+endword samer 25-146-156
+endword samers 25-146-156-234
+endword samet 25-146-346
+endword samets 25-146-346-234
+endword samne 25-146-2346
+endword samnes 25-146-2346-234
+endword samte 25-146-1256
+endword samtes 25-146-1256-234
+endword samre 25-146-12356
+endword samres 25-146-12356-234
+endword samt 25-146-2345
+endword same 26-146
+endword samene 26-146-2346
+endword samenes 26-146-2346-234
+endword samere 26-146-12356
+
+# word samme 234-134							# defined level 2 contractions
+# sammen													# defined level 2 contractions
+
+begword sannsyn 234-234									# level 3 contractions
+begword usannsyn 136-234-234
+begword sannsynleg 234-234-25-1245
+begword usannsynleg 136-234-234-25-1245
+begword sannsynlig 234-234-25-123
+begword usannsynlig 136-234-234-25-123
+word sannsynligvis 234-234-1236					# level 3 contractions
+
+# word seg 234-1245								# defined level 2 contractions
+# word selv 234-1236							# defined level 2 contractions
+
+word sidan 234-145											# level 3 contractions
+word simpelthen 234-1234-125
+
+# word sin 234-1345								# defined level 2 contractions
+# word sitt 234-2345							# defined level 2 contractions
+
+word sjeldan 234-245-145								# level 3 contractions
+word sjelden 234-245-145-126
+word sjeldne 234-245-145-2346
+endword sjon 25-1345
+endword sjonar 25-1345-3456
+endword sjonars 25-1345-3456-234
+endword sjonen 25-1345-126
+endword sjonens 25-1345-126-234
+endword sjoner 25-1345-156
+endword sjoners 25-1345-156-234
+endword sjonet 25-1345-346
+endword sjonane 25-1345-1-2346
+endword sjonanes 25-1345-1-2346-234
+endword sjone 26-1345
+endword sjonene 26-1345-2346
+endword sjonenes 26-1345-2346-234
+
+# word sjøl 234-245								# defined level 2 contractions
+# sjølv														# defined level 2 contractions
+begword sk 2356
+endword sk 2356
+# word skal 123456								# defined level 2 contractions
+endword skap 25-1234
+endword skaps 25-1234-234
+endword skapar 25-1234-3456
+endword skapars 25-1234-3456-234
+endword skapen 25-1234-126
+endword skapens 25-1234-126-234
+endword skaper 25-1234-156
+endword skapers 25-1234-156-234
+endword skapet 25-1234-346
+endword skapets 25-1234-346-234
+endword skape 26-1234
+endword skapene 26-1234-2346
+endword skapenes 26-1234-2346-234
+endword enskap 126-25-1234
+endword enskapar 126-25-1234-3456
+endword enskapars 126-25-1234-3456-234
+endword enskapen 126-25-1234-126
+endword enskapens 126-25-1234-126-234
+endword enskaper 126-25-1234-156
+endword enskapers 126-25-1234-156-234
+endword enskapet 126-25-1234-346
+endword enskapets 126-25-1234-346-234
+endword enskape 126-26-1234
+endword enskapene 126-26-1234-2346
+endword enskapenes 126-26-1234-2346-234
+endword erskap 156-25-1234
+endword erskapar 156-25-1234-3456
+endword erskapars 156-25-1234-3456-234
+endword erskapen 156-25-1234-126
+endword erskapens 156-25-1234-126-234
+endword erskaper 156-25-1234-156
+endword erskapers 156-25-1234-156-234
+endword erskapet 156-25-1234-346
+endword erskapets 156-25-1234-346-234
+endword erskape 156-26-1234
+endword erskapene 156-26-1234-2346
+endword erskapenes 156-26-1234-2346-234
+
+begword skr 123456
+# word skulla 123456-1						# defined level 2 contractions
+# word skulle 123456-15						# defined level 2 contractions
+# word skullet 123456-346					# defined level 2 contractions
+# word snart 234-1235							# defined level 2 contractions
+# word som 234										# defined in level 1
+
+endword som 25-234											# level 3 contractions
+endword somt 25-234-2345
+endword somme 26-234
+endword sommere 26-234-12356
+endword sommene 26-234-2346
+begword sp 235													# level 3 contractions
+
+# always spørsmål 234-1234-134		# defined level 2 contractions
+
+begword st 356													# level 3 contractions
+
+# word tatt 2345-2345							# defined level 2 contractions
+
+word te 1256
+begword te 1256
+
+begword ute 136-1256
+word uten 136-2345-126
+endword uten 136-2345-126
+
+word temmelig 2345-134									# level 3 contractions
+
+always til\sog\smed 2345-14-146
+begword tr 26
+
+word vanske 1236-14
+begword vanske 1236-14
+begword vanskeleg 1236-14-25-1245
+begword vanskelig 1236-14-25-123
+
+word vedtatt 1236-2345-2345							# level 3 contractions
+word verken 1236-13
+endword vis 25-1236
+endword visar 25-1236-3456
+endword visars 25-1236-3456-234
+endword visen 25-1236-126
+endword visens 25-1236-126-234
+endword viser 25-1236-156
+endword visers 25-1236-156-234
+endword viset 25-1236-346
+endword visets 25-1236-346-234
+endword visne 25-1236-2346
+endword visnes 25-1236-2346-234
+endword viste 25-1236-1256
+endword vistes 25-1236-1256-234
+endword vist 25-1236-2345
+
+# word viss 1236-234							# defined level 2 contractions
+# word uviss 136-1236-234					# defined level 2 contractions
+
+# --------------------- End level 3 contracions ---------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb
new file mode 100644
index 0000000..38c6ba0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb
@@ -0,0 +1,314 @@
+# File: no-no.ctb
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com .
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# This is to be used with Norwegian translation tables.
+
+# BRLTTY Text Translation Table - Norwegian (iso-8859-1), based on the
+# Offentlig Utvalg for Blindeskrift (Public Commission for Braille)
+# translation table for Windows 1252.
+# Updated January 2008.
+
+# display \X0000 4578 	# 000 null
+# display \X0000 0 	# 000 null
+sign \X0001 178 	# 001 start of heading
+sign \X0002 1278 	# 002 start of text
+sign \X0003 1478 	# 003 end of text
+sign \X0004 14578 	# 004 end of transmission
+sign \X0005 1578 	# 005 enquiry
+sign \X0006 12478 	# 006 acknowledge
+sign \X0007 124578 	# 007 bell
+sign \X0008 12578 	# 008 backspace
+sign \X0009 2478 	# 009 horizontal tabulation
+sign \X000A 24578 	# 010 line feed
+sign \X000B 1378 	# 011 vertical tabulation
+sign \X000C 12378 	# 012 form feed
+sign \X000D 13478 	# 013 carriage return
+sign \X000E 134578 	# 014 shift out
+sign \X000F 13578 	# 015 shift in
+sign \X0010 123478 	# 016 data link escape
+sign \X0011 1234578	# 017 device control one
+sign \X0012 123578 	# 018 device control two
+sign \X0013 23478 	# 019 device control three
+sign \X0014 234578 	# 020 device control four
+sign \X0015 13678 	# 021 negative acknowledge
+sign \X0016 123678 	# 022 synchronous idle
+sign \X0017 245678 	# 023 end of transmission block
+sign \X0018 134678 	# 024 cancel
+sign \X0019 1345678 	# 025 end of medium
+sign \X001A 135678 	# 026 substitute
+sign \X001B 12348 	# 027 escape
+sign \X001C 123458 	# 028 file separator
+sign \X001D 1368 	# 029 group separator
+sign \X001E 24568 	# 030 record separator
+sign \X001F 13568 	# 031 unit separator
+sign \X0020 0 	# 032 space
+sign \X0021 235 	# 033 exclamation mark
+sign \X0022 256 	# 034 quotation mark
+sign \X0023 3456 	# 035 number sign
+sign \X0024 25678 	# 036 dollar sign
+sign \X0025 46 	# 037 percent sign
+sign \X0026 578 	# 038 ampersand
+sign \X0027 5 	# 039 apostrophe
+sign \X0028 236 	# 040 left parenthesis
+sign \X0029 356 	# 041 right parenthesis
+sign \X002A 35 	# 042 asterisk
+sign \X002B 2357 	# 043 plus sign
+sign \X002C 2 	# 044 comma
+sign \X002D 36 	# 045 hyphen-minus
+sign \X002E 3 	# 046 full stop
+sign \X002F 57 	# 047 solidus
+sign \X0030 2458 	# 048 digit zero
+sign \X0031 18 	# 049 digit one
+sign \X0032 128 	# 050 digit two
+sign \X0033 148 	# 051 digit three
+sign \X0034 1458 	# 052 digit four
+sign \X0035 158 	# 053 digit five
+sign \X0036 1248 	# 054 digit six
+sign \X0037 12458 	# 055 digit seven
+sign \X0038 1258 	# 056 digit eight
+sign \X0039 248 	# 057 digit nine
+sign \X003A 25 	# 058 colon
+sign \X003B 23 	# 059 semicolon
+sign \X003C 358 	# 060 less-than sign
+sign \X003D 2356 	# 061 equals sign
+sign \X003E 267 	# 062 greater-than sign
+sign \X003F 26 	# 063 question mark
+sign \X0040 4 	# 064 commercial at
+sign \X0041 17 	# 065 latin capital letter a
+sign \X0042 127 	# 066 latin capital letter b
+sign \X0043 147 	# 067 latin capital letter c
+sign \X0044 1457 	# 068 latin capital letter d
+sign \X0045 157 	# 069 latin capital letter e
+sign \X0046 1247 	# 070 latin capital letter f
+sign \X0047 12457 	# 071 latin capital letter g
+sign \X0048 1257 	# 072 latin capital letter h
+sign \X0049 247 	# 073 latin capital letter i
+sign \X004A 2457 	# 074 latin capital letter j
+sign \X004B 137 	# 075 latin capital letter k
+sign \X004C 1237 	# 076 latin capital letter l
+sign \X004D 1347 	# 077 latin capital letter m
+sign \X004E 13457 	# 078 latin capital letter n
+sign \X004F 1357 	# 079 latin capital letter o
+sign \X0050 12347 	# 080 latin capital letter p
+sign \X0051 123457 	# 081 latin capital letter q
+sign \X0052 12357 	# 082 latin capital letter r
+sign \X0053 2347 	# 083 latin capital letter s
+sign \X0054 23457 	# 084 latin capital letter t
+sign \X0055 1367 	# 085 latin capital letter u
+sign \X0056 12367 	# 086 latin capital letter v
+sign \X0057 24567 	# 087 latin capital letter w
+sign \X0058 13467 	# 088 latin capital letter x
+sign \X0059 134567 	# 089 latin capital letter y
+sign \X005A 13567 	# 090 latin capital letter z
+sign \X005B 23678 	# 091 left square bracket
+sign \X005C 28 	# 092 reverse solidus
+sign \X005D 35678 	# 093 right square bracket
+sign \X005E 58 	# 094 circumflex accent
+sign \X005F 456 	# 095 low line
+sign \X0060 45 	# 096 grave accent
+sign \X0061 1 	# 097 latin small letter a
+sign \X0062 12 	# 098 latin small letter b
+sign \X0063 14 	# 099 latin small letter c
+sign \X0064 145 	# 100 latin small letter d
+sign \X0065 15 	# 101 latin small letter e
+sign \X0066 124 	# 102 latin small letter f
+sign \X0067 1245 	# 103 latin small letter g
+sign \X0068 125 	# 104 latin small letter h
+sign \X0069 24 	# 105 latin small letter i
+sign \X006A 245 	# 106 latin small letter j
+sign \X006B 13 	# 107 latin small letter k
+sign \X006C 123 	# 108 latin small letter l
+sign \X006D 134 	# 109 latin small letter m
+sign \X006E 1345 	# 110 latin small letter n
+sign \X006F 135 	# 111 latin small letter o
+sign \X0070 1234 	# 112 latin small letter p
+sign \X0071 12345 	# 113 latin small letter q
+sign \X0072 1235 	# 114 latin small letter r
+sign \X0073 234 	# 115 latin small letter s
+sign \X0074 2345 	# 116 latin small letter t
+sign \X0075 136 	# 117 latin small letter u
+sign \X0076 1236 	# 118 latin small letter v
+sign \X0077 2456 	# 119 latin small letter w
+sign \X0078 1346 	# 120 latin small letter x
+sign \X0079 13456 	# 121 latin small letter y
+sign \X007A 1356 	# 122 latin small letter z
+sign \X007B 238 	# 123 left curly bracket
+sign \X007C 56 	# 124 vertical line
+sign \X007D 567 	# 125 right curly bracket
+sign \X007E 38 	# 126 tilde
+sign \X007F 3578 	# 127 delete
+sign \X0080 2678 	# 128 <control>
+sign \X0081 13458 	# 129 <control>
+sign \X0082 67 	# 130 break permitted here
+sign \X0083 45678 	# 131 no break here
+sign \X0084 3567 	# 132 <control>
+sign \X0085 37 	# 133 next line
+sign \X0086 47 	# 134 start of selected area
+sign \X0087 457 	# 135 end of selected area
+sign \X0088 468 	# 136 character tabulation set
+sign \X0089 4568 	# 137 character tabulation with justification
+sign \X008A 15678 	# 138 line tabulation set
+sign \X008B 378 	# 139 partial line down
+sign \X008C 12345678	# 140 partial line up
+sign \X008D 478 	# 141 reverse line feed
+sign \X008E 234678 	# 142 single shift two
+sign \X008F 2367 	# 143 single shift three
+sign \X0090 2368 	# 144 device control string
+sign \X0091 367 	# 145 private use one
+sign \X0092 368 	# 146 private use two
+sign \X0093 23567 	# 147 set transmit state
+sign \X0094 23568 	# 148 cancel character
+sign \X0095 3678 	# 149 message waiting
+sign \X0096 68 	# 150 start of guarded area
+sign \X0097 568 	# 151 end of guarded area
+sign \X0098 2568 	# 152 start of string
+sign \X0099 23458 	# 153 <control>
+sign \X009A 1568 	# 154 single character introducer
+sign \X009B 678 	# 155 control sequence introducer
+sign \X009C 1234568 	# 156 string terminator
+sign \X009D 235678 	# 157 operating system command
+sign \X009E 23468 	# 158 privacy message
+sign \X009F 125678 	# 159 application program command
+sign \X00A0 8 	# 160 no-break space
+sign \X00A1 2358 	# 161 inverted exclamation mark
+sign \X00A2 2578 	# 162 cent sign
+sign \X00A3 1238 	# 163 pound sign
+sign \X00A4 12368 	# 164 currency sign
+sign \X00A5 134568 	# 165 yen sign
+sign \X00A6 4567 	# 166 broken bar
+sign \X00A7 4678 	# 167 section sign
+sign \X00A8 258 	# 168 diaeresis
+sign \X00A9 138 	# 169 copyright sign
+sign \X00AA 278 	# 170 feminine ordinal indicator
+sign \X00AB 2378 	# 171 left-pointing double angle quotation mark
+sign \X00AC 357 	# 172 not sign
+sign \X00AD 78 	# 173 soft hyphen
+sign \X00AE 12358 	# 174 registered sign
+sign \X00AF 458 	# 175 macron
+sign \X00B0 3568 	# 176 degree sign
+sign \X00B1 23578 	# 177 plus-minus sign
+sign \X00B2 237 	# 178 superscript two
+sign \X00B3 257 	# 179 superscript three
+sign \X00B4 6 	# 180 acute accent
+sign \X00B5 1348 	# 181 micro sign
+sign \X00B6 467 	# 182 pilcrow sign
+sign \X00B7 7 	# 183 middle dot
+sign \X00B8 48 	# 184 cedilla
+sign \X00B9 27 	# 185 superscript one
+sign \X00BA 1358 	# 186 masculine ordinal indicator
+sign \X00BB 5678 	# 187 right-pointing double angle quotation mark
+sign \X00BC 34568 	# 188 vulgar fraction one quarter
+sign \X00BD 34567 	# 189 vulgar fraction one half
+sign \X00BE 345678 	# 190 vulgar fraction three quarters
+sign \X00BF 268 	# 191 inverted question mark
+sign \X00C0 1235678 	# 192 latin capital letter a with grave
+sign \X00C1 123567 	# 193 latin capital letter a with acute
+sign \X00C2 1678 	# 194 latin capital letter a with circumflex
+sign \X00C3 12678 	# 195 latin capital letter a with tilde
+sign \X00C4 34578 	# 196 latin capital letter a with diaeresis
+sign \X00C5 167 	# 197 latin capital letter a with ring above
+sign \X00C6 3457 	# 198 latin capital letter ae
+sign \X00C7 1234678 	# 199 latin capital letter c with cedilla
+sign \X00C8 23467 	# 200 latin capital letter e with grave
+sign \X00C9 1234567 	# 201 latin capital letter e with acute
+sign \X00CA 1267 	# 202 latin capital letter e with circumflex
+sign \X00CB 12467 	# 203 latin capital letter e with diaeresis
+sign \X00CC 3478 	# 204 latin capital letter i with grave
+sign \X00CD 347 	# 205 latin capital letter i with acute
+sign \X00CE 1467 	# 206 latin capital letter i with circumflex
+sign \X00CF 124567 	# 207 latin capital letter i with diaeresis
+sign \X00D0 145678 	# 208 latin capital letter eth
+sign \X00D1 1245678 	# 209 latin capital letter n with tilde
+sign \X00D2 34678 	# 210 latin capital letter o with grave
+sign \X00D3 3467 	# 211 latin capital letter o with acute
+sign \X00D4 14567 	# 212 latin capital letter o with circumflex
+sign \X00D5 14678 	# 213 latin capital letter o with tilde
+sign \X00D6 24678 	# 214 latin capital letter o with diaeresis
+sign \X00D7 13468 	# 215 multiplication sign
+sign \X00D8 2467 	# 216 latin capital letter o with stroke
+sign \X00D9 2345678 	# 217 latin capital letter u with grave
+sign \X00DA 234567 	# 218 latin capital letter u with acute
+sign \X00DB 1567 	# 219 latin capital letter u with circumflex
+sign \X00DC 12567 	# 220 latin capital letter u with diaeresis
+sign \X00DD 123467 	# 221 latin capital letter y with acute
+sign \X00DE 124678 	# 222 latin capital letter thorn
+sign \X00DF 2348 	# 223 latin small letter sharp s
+sign \X00E0 123568 	# 224 latin small letter a with grave
+sign \X00E1 12356 	# 225 latin small letter a with acute
+sign \X00E2 168 	# 226 latin small letter a with circumflex
+sign \X00E3 1268 	# 227 latin small letter a with tilde
+sign \X00E4 3458 	# 228 latin small letter a with diaeresis
+sign \X00E5 16 	# 229 latin small letter a with ring above
+sign \X00E6 345 	# 230 latin small letter ae
+sign \X00E7 123468 	# 231 latin small letter c with cedilla
+sign \X00E8 2346 	# 232 latin small letter e with grave
+sign \X00E9 123456 	# 233 latin small letter e with acute
+sign \X00EA 126 	# 234 latin small letter e with circumflex
+sign \X00EB 1246 	# 235 latin small letter e with diaeresis
+sign \X00EC 348 	# 236 latin small letter i with grave
+sign \X00ED 34 	# 237 latin small letter i with acute
+sign \X00EE 146 	# 238 latin small letter i with circumflex
+sign \X00EF 12456 	# 239 latin small letter i with diaeresis
+sign \X00F0 14568 	# 240 latin small letter eth
+sign \X00F1 124568 	# 241 latin small letter n with tilde
+sign \X00F2 3468 	# 242 latin small letter o with grave
+sign \X00F3 346 	# 243 latin small letter o with acute
+sign \X00F4 1456 	# 244 latin small letter o with circumflex
+sign \X00F5 1468 	# 245 latin small letter o with tilde
+sign \X00F6 2468 	# 246 latin small letter o with diaeresis
+sign \X00F7 2567 	# 247 division sign
+sign \X00F8 246 	# 248 latin small letter o with stroke
+sign \X00F9 234568 	# 249 latin small letter u with grave
+sign \X00FA 23456 	# 250 latin small letter u with acute
+sign \X00FB 156 	# 251 latin small letter u with circumflex
+sign \X00FC 1256 	# 252 latin small letter u with diaeresis
+sign \X00FD 12346 	# 253 latin small letter y with acute
+sign \X00FE 12468 	# 254 latin small letter thorn
+sign \X00FF 12568 	# 255 latin small letter y with diaeresis
+
+# Added 21.02.2012
+
+sign \x20ac 2678	# Euro-tegn       \200
+sign \x201a 67		# Enkelt nedre anførselstegn      \202
+sign \x0192 45678	# Liten latinsk bokstav f med krok        \203
+sign \x200e 0		# left to right marker
+sign \x200f 0		# right to left marker
+sign \x201e 3567 	# Dobbelt nedre anførselstegn    \204
+sign \x2026 37		# Horisontal ellipse (tre prikker)        \205
+sign \x2020 47		# Dagger  \206
+sign \x2021 457		# Dobbel dagger   \207
+sign \x02c6 468		# Liten cirkumfleks (over bokstav)        \210
+sign \x2030 4568	# Promille-tegn   \211
+sign \x0160 15678	# Stor latinsk bokstav S med caron        \212
+sign \x2039 378		# Enkelt anførselstegn med vinkelen mot venstre    \213
+sign \x0152 12345678	# Stor latinsk bokstav OE \214
+sign \x017d 234678	# Stor latinsk bokstav Z med caron        \216
+sign \x2018 367		# Enkelt øvre anførselstegn    \221
+sign \x2019 368		# Enkelt øvre anførselstegn    \222
+sign \x201c 23567	# Dobbelt øvre anførselstegn   \223
+sign \x201d 23568	# Dobbelt øvre anførselstegn   \224
+sign \x2022 3678	# Kulepunkt       \225
+sign \x2013 68		# En dash (n-tankestrek)  \226
+sign \x2014 568		# Em dash (m-tankestrek)  \227
+sign \x02dc 2568	# Liten tilde (over bokstav)      \230
+sign \x2122 23458	# Trademark-tegn (varemerke)      \231
+sign \x0161 1568	# Liten latinsk bokstav s med caron       \232
+sign \x203a 678		# Enkelt anførselstegn med vinkelen mot høyre     \233
+sign \x0153 1234568	# Liten latinsk bokstav oe        \234
+sign \x017e 23468	# Liten latinsk bokstav z med caron       \236
+sign \x0178 125678	# Stor latinsk bokstav Y med trema        \237
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb
new file mode 100644
index 0000000..78843a0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb
@@ -0,0 +1,88 @@
+# liblouis:  Portuguese 8 dot Computer braille table
+# Copyright (C) 2012 Rui Fontes <rui.fontes@tiflotecnia.com>
+# Copyright (C) 2012 Mesar Hameed <mhameed@src.gnome.org>
+#
+#  This file is part of liblouis.
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the Lesser GNU General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser
+#  GNU General Public License for more details.
+
+#  You should have received a copy of the Lesser GNU General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+space \t 9 tab
+space \s 0 blank
+space \x00a0 a unbreakable space
+sign \x000a 78 newline
+space \x000d 0 carriage return
+include digits8Dots.uti
+include latinLetterDef8Dots.uti
+punctuation , 2
+punctuation ; 23
+punctuation : 25
+punctuation . 3
+punctuation ! 2358
+punctuation " 236
+punctuation ' 6
+punctuation ( 1268
+punctuation ) 3458
+punctuation - 36
+sign _ 367
+math < 2468
+math = 2356
+math > 1358
+sign % 35678
+math + 1235
+math ~ 2346
+sign ` 14678
+sign & 123468
+sign $ 46
+punctuation ? 26
+punctuation { 1238
+punctuation [ 123568
+punctuation } 4567
+punctuation ] 234568
+sign ^ 234678
+sign @ 156
+sign # 3456
+sign \\ 38
+sign | 456
+math / 256
+sign * 35
+uplow \x00c0\x00e0 12467,1246 # Àà
+uplow \x00c1\x00e1 123567,12356 # Áá
+uplow \x00c2\x00e2 167,16 # Ââ
+uplow \x00c3\x00e3 3457,345 # Ãã
+uplow \x00c4\x00e4 34578,3458 # Ää
+uplow \x00c7\x00e7 123467,12346 # Çç
+uplow \x00c8\x00e8 234678,23468 # Èè
+uplow \x00c9\x00e9 1234567,123456 # Éé
+uplow \x00ca\x00ea 1267,126 # Êê
+uplow \x00cc\x00ec 14678,1468 # Ìì
+uplow \x00cd\x00ed 347,34 # Íí
+uplow \x00ce\x00ee 1467,146 # Îî 
+uplow \x00d2\x00f2 245678,24568 # Òò
+uplow \x00d3\x00f3 3467,346 # Óó
+uplow \x00d4\x00f4 14567,1456 # Ôô
+uplow \x00d5\x00f5 2467,246 # Õõ
+uplow \x00d6\x00f6 2467,246 # Öö
+uplow \x00d9\x00f9 15678,1568 # Ùù
+uplow \x00da\x00fa 234567,23456 # Úú
+uplow \x00dc\x00fc 12567,1256 # Üü
+sign \x00ba 13578 # 
+sign \x00aa 178 # ª
+sign \x20ac 1578
+sign \x00ae 12358
+sign \x2122 1348
+sign \x00ab 1235678 # «
+sign \x00bb 2345678 # »
+sign \x00a3 12378 # £
+sign \x00a7 2348 # §
+uplow \x00d1\x00f1 134578,13458 # Ññ
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb
new file mode 100644
index 0000000..e569b91
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb
@@ -0,0 +1,190 @@
+# liblouis: Portuguese Grade 1 Braille Table
+# Created by Leon Ungier <Leon.Ungier@ViewPlus.com>.
+#
+#  Copyright (C) 2009 ViewPlus Technologies, Inc. www.viewplus.com and
+#  JJB Software, Inc. www.jjb-software.com
+#
+#  This file is part of liblouis.
+
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the Lesser GNU General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser
+#  GNU General Public License for more details.
+
+#  You should have received a copy of the Lesser GNU General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+locale Portugal
+
+include text_nabcc.dis
+
+#--------------------- All chars definitions ------------------------------
+
+space \t 0 tab            #  9
+space \s 0 blank					# 32
+
+punctuation ! 235				exclamation mark	33
+punctuation " 236				double quote			34
+sign # 3456-13					number sign				35
+sign $ 56								dollar						36						x0024
+sign % 456-356					percent						37
+sign & 12346						ampersand					38
+punctuation ' 3					apostrophe				39
+punctuation ( 126-3			left parenthesis  40
+punctuation ) 6-345			right parenthesis	41
+punctuation * 35				asterisk					42
+math + 235							plus							43
+punctuation , 2					coma							44
+punctuation - 36				hyphen-minus			45
+punctuation . 3					point							46
+math / 6-2							solidus						47
+include digits6Dots.uti
+punctuation : 25			colon					58		x003A
+punctuation ;	23			semicolon			59		x003B
+math < 246													60		x003C
+math = 2356						equal sign		61		x003D
+math > 135													62		x003E
+punctuation ? 26										63		x003F
+sign @ 156						commercial at	64		x0040
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 12356-3		left square bracket			x005B
+sign \\ 5-3							reverse solidus					x005C
+punctuation ] 6-23456		right square bracket		x005D
+sign ^ 4							circumflex accent				x005E
+sign _ 46-36						low line								x005F
+sign ` 26								grave accent						x0060
+
+# a - z								# 97 - 122							x0061 - x007A
+
+punctuation { 5-123		left curly bracket			x007B
+sign | 456						vertical line						x007C
+punctuation } 456-2		right curly bracket			x007D
+sign ~ 5						tilde										x007E
+sign \x0080 15-136-1235-135										x0080
+
+space \X00A0 0				# no-break space													x00A0
+sign ¢ 4-14						cent sign																	x00A2
+sign £ 4-123					pound sign																x00A3
+sign ¤ 45-15					currency sign															x00A4
+sign ¥ 45-13456				yen	sign																	x00A5
+sign § 234-234				paragraph	sign														x00A7
+sign © 6-14-135-1234-13456-1235-24-1245-125-2345		copyright		x00A9
+sign \x00AA 1					feminine ordinal indicator
+punctuation « 6-236		left-pointing double quotation mark			x00AB
+sign ° 356						degree sign																x00B0
+sign ² 16-3456-12				superscript 2 sign												x00B2
+sign ³ 16-3456-14				superscript 3 sign												x00B3
+# sign \x00B4 35			acute accent
+sign \x00B4 35					acute accent
+sign \x00B5 46-134		# 181				µ micro sign									x00B5
+sign \x00B6 346				#						¶ pilcrow sign								x00B6
+sign ¹ 16-3456-1					superscript 1 sign												x00B9
+sign \x00BA 135				masculine ordinal indicator
+punctuation » 6-236		right-pointing double quotation mark		x00BB
+sign ¼ 3456-2-145			vulgar fraction one quarter								x00BC
+sign ½ 3456-2-12			vulgar fraction one half									x00BD
+sign ¾ 3456-25-145		vulgar fraction 3 quarters				x00BE
+
+uplow \x00C0\x00E0 1246			a with grave						x00C0 / 00E0
+uplow Áá 12356							A with acute						x00C1 / 00E1
+uplow Ââ 16									a with circumflex				x00C2 / 00E2
+uplow \x00C3\x00E3 345			a with tilde						x00C3 / 00E3
+uplow Åå 16									A with ring above				x00C5 / 00C4
+uplow Ää 345								A with diaeresis				x00C4 / 00E4
+uplow Çç 12346							letter c with cedilla		x00C7 / 00E7
+uplow \x00C8\x00E8 2346		e with grave è					x00C8 / 00E8
+uplow \x00C9\x00E9 123456		e with acute é					x00C9 / 00E9
+uplow \x00CA\x00EA 126			e with circumflex				x00CA /	00EA
+uplow \x00CC\x00EC 146				i with grave						x00CC	/ 00EC
+uplow \x00CD\x00ED 34				i with acute						x00CD	/ 00ED
+uplow \x00D2\x00F2 2456			o with grave ò					x00D2 / 00F2
+uplow \x00D3\x00F3 346			o with acute ó					x00D3 / 00F3
+uplow \x00D4\x00F4 1456			o with circumflex ô			x00D4 / 00F4
+uplow \x00D5\x00F5 246			o with tilde						x00D5 / 00F5
+uplow Öö 246								O with diaeresis				x00D6 / 00F6
+uplow \X00DA\x00FA 23456		u with acute						x00DA / 00FA
+uplow \x00DC\x00FC 1256			u with diaeresis				x00FC
+
+uplow \x00D1\x00F1 12456			n with tilde
+
+
+math ÷ 256			division sign															x00F7
+math × 236			multiplication sign												x00D7
+
+# this is for compiler
+uplow \x0104\x0105 6			# a with ogonek
+uplow \x0118\x0119 3456		# the letter e with ogonek
+
+
+punctuation	\x2010 36						# 8208			hyphen
+punctuation	\x2011 36						# 8209			non-breaking hyphen
+punctuation	\x2012 36												figure dash
+math	\x2013 36						# 8211			en dash (smart minus sign)
+punctuation	\x2013 36-36				# 8211			en dash (smart minus sign)
+punctuation	\x2014 36-36										em dash
+sign \x2015 4-14														horizontal bar
+punctuation	\x2018 56-236						# 8216			smart single left quotation mark
+punctuation	\x2019 56-236						# 8217			smart single right quotation mark
+sign \x20AC 4-15														Euro sign				x0080
+punctuation	\x201C 56-236					# 8220			smart opening double quote
+punctuation	\x201D 56-236					# 8221			smart closing double quote
+punctuation	\x201E 56-236					# 8222			smart double low quotation mark
+punctuation	\x201F 56-236					# 8223			double high reverse quotation mark
+
+sign \x2022 246-135											bullet
+punctuation \x2026 35-26-35	# 8230	smart ellipsis
+sign \x2030 456-356-356									per mile sign
+sign \x2190	246-25											leftwards arrow
+sign \x2192 25-135											rightwards arrow
+sign \x2194 246-25-135									left right arrow
+sign \x2260 45-2356											not equal to
+#-------------- end defintions ------------------------------------------
+
+
+capsign 46
+# begcaps 46-46-136			# uncomment if you don't want capitalization
+begcaps 46-46
+
+begital 35
+begbold 35
+begunder 35
+endital 35
+endbold 35
+endunder 35
+begcomp 5-2
+endcomp 5-2
+
+begnum ( 126
+endnum ) 345
+begnum [ 12356
+endnum ] 23456
+endnum \x00AA 1
+endnum \x00BA 135
+numsign 3456
+midnum , 2
+midnum . 3
+midnum + 235-3456
+midnum - 36-3456
+midnum / 6-2-3456
+midnum : 25-3456
+
+endnum # 56-3456
+repeated \s 0		spaces
+
+repeated \t 0		tabulations
+repeated \x00a0 0		espaces insécables
+
+repeated ... 3-3-3		points de suite
+repeated --- 36-36-36
+repeated ___ 46-36
+
+always \s--\s 36-36	tiret
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb
new file mode 100644
index 0000000..5a625ed
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb
@@ -0,0 +1,875 @@
+# liblouis: Portuguese Grade 2 Braille Contraction Table
+#
+#  Copyright (C) 2009 Carlos Ferreira <cferreira9886@gmail.com>
+#
+#  This file is part of liblouis.
+ 
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the Lesser GNU General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser
+#  GNU General Public License for more details.
+
+#  You should have received a copy of the Lesser GNU General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+
+
+include pt-pt-g1.utb
+
+word actividade 1-2345-1236-145
+word actividades 1-2345-1236-145-234
+word agora 1245
+midword airr 1-24-1235-1235
+endword al 13
+begmidword alb 13-12
+begmidword alc 13-14
+midword alcont 13-25-2345
+begmidword ald 13-145
+endword aldade 13-46-145
+endword aldades 13-46-145-234
+begmidword alf 13-124
+begmidword alfr 13-16
+begmidword alg 13-1245
+word algum 1-1245
+word alguma 1-1245-1
+word algumas 1-1245-146
+word alguns 1-1245-234
+word aliás 1-12356
+begmidword alj 13-245
+begmidword alm 13-134
+endword almente 13-56-134
+midword aln 13-1345
+begmidword alp 13-1234
+begmidword alqu 13-12345
+midword alr 13-1235
+begmidword als 13-234
+begmidword alt 13-2345
+begmidword altr 13-356
+begmidword alv 13-1236
+begmidword alz 13-1356
+begmidword alç 13-12346
+word além 1-123456
+begmidword amb 345-12
+begmidword ambr 345-23
+begmidword amp 345-1234
+begmidword ampl 345-1246
+midword ampr 345-235
+begmidword anc 2-14
+begmidword and 2-145
+endword andade 2-46-145
+endword andades 2-46-145-234
+begmidword anf 2-124
+begmidword anfr 2-16
+begmidword ang 2-1245
+begmidword angr 2-12456
+begmidword anj 2-245
+begmidword anqu 2-12345
+begmidword ans 2-234
+begmidword ant 2-2345
+word ante 2456
+begword ante 2456
+endword ante 2456
+word antes 2456-234
+endword antes 2456-234
+endword anticamente 2-5-2345-56-134
+begmidword antr 2-356
+begmidword anz 2-1356
+midword anç 2-12346
+word apenas 1-1234-1345
+word aquela 1-12345-1
+word aquelas 1-12345-146
+word aquele 1-12345-15
+word aqueles 1-12345-156
+endword ar 4
+midword arb 4-12
+midword arc 4-14
+midword ard 4-145
+midword arf 4-124
+midword arg 4-1245
+endword arica 1-5-1235
+endword aricamente 1-5-1235-56-134
+endword aricas 1-5-1235-234
+endword arico 1-4-1235
+endword aricos 1-4-1235-234
+midword arj 4-245
+midword arl 4-123
+midword arm 4-134
+endword armente 4-56-134
+midword arn 4-1345
+midword arp 4-1234
+midword arqu 4-12345
+midword arr 4-1235
+endword arrica 4-5-1235
+endword arricas 4-5-1235-234
+endword arrico 1-1235-4-1235
+endword arricos 1-1235-4-1235-234
+midword ars 4-234
+midword art 4-2345
+midword artr 4-356
+midword arv 4-1236
+midword arx 4-1346
+midword arz 4-1356
+midword arç 4-12346
+word as 146
+endword as 146
+midword asb 146-12
+begmidword asc 146-14
+midword asconc 146-25-14 
+begword asd 146-145
+begmidword asf 146-124
+midword asg 146-1245
+midword asl 146-123
+begmidword asm 146-134
+endword asmente 146-56-134
+begmidword asn 146-1345
+begmidword asp 146-1234
+begmidword asqu 146-12345
+begmidword ass 146-234
+begmidword ast 146-2345
+endword astica 146-5-2345
+endword asticamente 146-5-2345-56-134
+endword asticas 146-5-2345-234
+endword astico 146-4-2345
+begmidword astr 146-356
+midword asç 146-12346
+word através 1-356-1236
+word base 12-15
+word bases 12-156
+word bem 12
+word bens 12-234
+begmidword br 23
+word braille 23-123
+word cada 14-145
+word campo 14-135
+word campos 14-13456
+word capaz 14-1356
+word capazes 14-1356-234
+word casa 14-234-1
+word casas 14-234-146
+word caso 14-234
+word casos 14-234-234
+word cega 14-1245-1
+word cegas 14-1245-146
+word cego 14-1245
+word cegos 14-1245-234
+word coisa 14-1
+word coisas 14-146
+word com 14
+word como 14-134
+begmidword conc 25-14
+begmidword cond 25-145
+word condições 25-145-234
+word condição 25-145
+begmidword conf 25-124
+begmidword confr 25-16
+begmidword cong 25-1245
+begmidword congr 25-12456
+begmidword conj 25-245
+begmidword conl 25-123
+begword conn 25-1345
+begmidword conqu 25-12345
+begmidword cons 25-234
+begmidword cont 25-2345
+begmidword contr 25-356
+begmidword conv 25-1236
+word corpo 14-1234
+word corpos 14-1234-234
+endword dade 46-145
+endword dades 46-145-234
+word de 145
+word depois 145-1234
+word desde 145-145
+word deseja 145-245-1
+word desejas 145-245-146
+word desejo 145-245
+word desejos 145-245-234
+begword dextr 145-1346-356
+word diferente 145-124-1235-2345
+word diferentes 145-124-1235-2345-234
+word diferença 145-124-1235
+word diferenças 145-124-1235-234
+word dificuldade 145-124-145
+word dificuldades 145-124-145-234
+word difíceis 145-124-234
+word difícil 145-124
+word diversa 145-1236-1
+word diversas 145-1236-146
+word diverso 145-1236
+word diversos 145-1236-234
+word efeito 15-124
+word efeitos 15-124-234
+word eira 5-15
+endword eira 5-15
+endword eiramente 5-15-56-134
+word eiras 5-15-234
+endword eiras 5-15-234
+endword eiro 4-15
+endword eiros 4-15-234
+word ele 123
+word eles 123-234
+endword em 256
+begmidword emb 256-12
+word embora 256-12
+begmidword embr 256-23
+begmidword emp 256-1234
+begmidword empl 256-1246
+begmidword empr 256-235
+begmidword enc 26-14
+begmidword encontr 26-25-356
+word encontrem 26-25-356-15-134
+begmidword end 26-145
+begmidword enf 26-124
+begmidword enfr 26-16
+begmidword eng 26-1245
+begmidword engr 26-12456
+begmidword enj 26-245
+begmidword enl 26-123
+begmidword enqu 26-12345
+word enquanto 26-12345-2345
+begmidword enr 26-1235
+always ens 26-234
+begmidword ent 26-2345
+endword entica 26-5-2345
+endword enticamente 26-5-2345-56-134
+endword enticas 26-5-2345-234
+endword entico 26-4-2345
+begmidword entr 26-356
+word entre 26-15
+word entrem 26-356-15-134
+begmidword env 26-1236
+begmidword enx 26-1346
+begmidword enz 26-1356
+midword enç 26-12346
+midword erb 236-12
+midword erc 236-14
+midword ercont 236-25-2345
+midword ercontr 236-25-356
+midword erd 236-145
+endword erdade 236-46-145
+endword erdades 236-46-145-234
+midword erf 236-124
+midword erg 236-1245
+endword erica 15-5-1235
+endword ericamente 15-5-1235-56-134
+endword ericas 15-5-1235-234
+endword erico 15-4-1235
+endword ericos 15-4-1235-234
+midword erj 236-245
+midword erl 236-123
+midword erm 236-134
+endword ermenta 236-5-134
+endword ermentas 236-5-134-234
+endword ermento 236-4-134
+endword ermentos 236-4-134-234
+midword ern 236-1345
+midword erp 236-1234
+midword erpl 236-1246
+midword erpr 236-235
+midword erqu 236-12345
+midword err 236-1235
+midword ers 236-234
+midword ert 236-2345
+midword erv 236-1236
+midword erx 236-1346
+midword erz 236-1356
+midword erç 236-12346
+endword es 156
+begmidword esb 156-12
+begmidword  esbr 156-23
+begmidword esc 156-14
+midword esconc 156-25-14
+begmidword escond 156-25-145
+midword esconf 156-25-124
+midword escong 156-25-1245
+begmidword esconj 156-25-245
+midword escons 156-25-234
+midword escont 156-25-2345
+midword escontr 156-25-356
+midword esconv 156-25-1236
+midword esd 156-145
+begmidword esf 156-124
+begmidword esfr 156-16
+begmidword esg 156-1245
+begmidword esgr 156-12456
+begmidword esl 156-123
+begmidword esm 156-134
+endword esmente 156-56-134
+midword esn 156-1345
+begmidword esp 156-1234
+word especiais 15-14-2346
+word especial 15-14-123
+word especialmente 15-14-123-134
+begmidword espl 156-1246
+begmidword espr 156-235
+word espécie 15-14
+word espécies 15-14-234
+begmidword esqu 156-12345
+begmidword ess 156-234
+begmidword est 156-2345
+word esta 15-1
+word estas 15-146
+word este 15-15
+word estes 15-156
+endword estica 156-5-2345
+endword esticamente 156-5-2345-56-134
+endword esticas 156-5-2345-234
+endword estico 156-4-2345
+endword esticos 156-4-2345-234
+begmidword estr 156-356
+begmidword esv 156-1236
+midword esç 156-12346
+endword eu 5
+midword eub 5-12
+midword euc 5-14
+midword eud 5-145
+midword euf 5-124
+midword eug 5-1245
+midword euj 5-245
+midword eul 5-123
+midword eum 5-134
+midword eun 5-1345
+midword eup 5-1234
+midword euqu 5-12345
+midword eur 5-1235
+midendword eus 5-234
+midword eut 5-2345
+midword eutr 5-356
+midword euv 5-1236
+word evidência 15-1236-14
+word evidências 15-1236-14-234
+begword exc 1346-14   *1
+word exemplo 15-1246
+word exemplos 15-1246-234
+begword exp 1346-1234   *2
+word experiência 1346-1234-14
+word experiências 1346-1234-14-234
+begword expl 1346-1246   *3
+begword expr 1346-235   *4
+begmidword ext 1346-2345
+begmidword extr 1346-356
+word facto 124-2345
+word factos 124-2345-234
+word fica 5-124
+endword fica 5-124
+endword ficamente 5-124-56-134
+word ficas 5-124-234
+endword ficas 5-124-234
+word fico 4-124
+endword fico 4-124
+endword ficos 4-124-234
+word filha 124-125-1
+word filhas 124-125-146
+word filho 124-125
+word filhos 124-125-234
+word fim 124
+word fins 124-234
+word fora 124-1
+word forma 124-134
+word formas 124-134-234
+word formações 124-134-12346-234
+word formação 124-134-12346
+word força 124-135
+word forças 124-135-234
+begmidword fr 16
+midword frâ 124-1235-16
+word fáceis 124-14-234
+word fácil 124-14
+word fundamentais 124-145-134-2345-2346
+word fundamental 124-145-134-2345-123  
+endword gica 5-1245
+endword gicamente 5-1245-56-134
+endword gicas 5-1245-234
+endword gico 4-1245
+endword gicos 4-1245-234
+word governa 1245-1236-1345-1
+word governas 1245-1236-1345-146
+word governo 1245-1236-1345
+word governos 1245-1236-1345-234
+begmidword gr 12456
+word grupo 12456-1234
+word grupos 12456-1234-234
+word hoje 125-245
+word homem 125-134
+word homens 125-134-234
+word ideia 24-145
+word ideias 24-145-234
+endword im 246
+begmidword imb 246-12
+begmidword imbr 246-23
+word imediata 24-134-1
+word imediatamente 24-134-134
+word imediatas 24-134-146
+word imediato 24-134
+word imediatos 24-134-234
+begmidword imp 246-1234
+begmidword impl 246-1246
+begmidword impr 246-235
+begword inexc 24-1345-1346-14
+begword inexp 24-1345-1346-1234
+begword inexpl 24-1345-1346-1246
+begword inexpr 24-1345-1346-235
+begword inext 24-1345-1346-2345
+begword inextr 24-1345-1346-356
+endword ir 46
+midword irb 46-12
+midword irc 46-14
+midword irg 46-1245
+endword irica 24-5-1235
+endword iricamente 24-5-1235-56-134
+endword iricas 24-5-1235-234
+endword irico 24-4-1235
+endword iricos 24-4-1235-234
+midword irl 46-123
+midword irm 46-134
+midword irn 46-1345
+midword irp 46-1234
+midword irr 46-1235
+midword irs 46-234
+midword irt 46-2345
+midword irv 46-1236
+endword is 2346
+midword isb 2346-12
+begmidword isc 2346-14
+midword iscond 2346-25-145
+midword iscons 2346-25-234
+midword isf 2346-124
+midword isfr 2346-16
+midword isg 2346-1245
+midword isj 2346-245
+begmidword isl 2346-123
+begmidword ism 2346-134
+midword isn 2346-1345
+midword isp 2346-1234
+midword ispl 2346-1246
+begmidword isqu 2346-12345
+begmidword isr 2346-1235
+begmidword iss 2346-234
+begmidword ist 2346-2345
+endword isticamente 2346-5-2345-56-134
+word isto 24-2345
+midword istr 2346-356
+word jovem 245-1236
+word jovens 245-1236-234
+word já 245
+word juízo 245-1356
+word juízos 245-1356-234
+word lado 123-145
+word lados 123-145-234
+midword lh 125
+word lhe 125-15
+word lhes 125-156
+endword loga 5-123
+endword logamente 5-123-56-134
+endword logas 5-123-234
+word logo 4-123
+endword logo 4-123
+endword logos 4-123-234
+word longa 123-1245-1
+word longas 123-1245-146
+word longo 123-1245
+word longos 123-1245-234
+word lugar 123-1235
+word lugares 123-1235-234
+word maior 1235
+word maiores 1235-234
+word materiais 134-2345-1235-2346
+word material 134-2345-1235-123
+word matéria 134-2345-1235
+word matérias 134-2345-1235-234
+word me 134
+word melhor 134-1235
+word melhores 134-1235-234
+word menos 134-1345
+word menta 5-134
+endword menta 5-134
+endword mentas 5-134-234
+word mente 56-134
+endword mente 56-134
+word mentes 56-134-234
+endword mentes 56-134-234
+word mento 4-134
+endword mento 4-134
+word mentos 4-134-234
+endword mentos 4-134-234
+word moda 134-145-1
+word modas 134-145-146
+word modo 134-145
+word modos 134-145-234
+word movimenta 134-1236-134-2345-1
+word movimentas 134-1236-134-2345-146
+word movimento 134-1236-134-2345
+word movimentos 134-1236-134-2345-234
+word muita 134-2345-1
+word muitas 134-2345-146
+word muito 134-2345
+word muitos 134-2345-234
+word mulher 134-125
+word mulheres 134-125-234
+word número 1345-1235
+word números 1345-1235-234
+word nada 1345-145
+word nadas 1345-145-234
+word naturais 1345-2345-2346
+word natural 1345-2345-123
+word natureza 1345-2345-1356
+word naturezas 1345-2345-1356-234
+word necessariamente 1345-14-1235-134
+word necessidade 1345-14-145
+word necessidades 1345-14-145-234
+word necessária 1345-14-1235-1
+word necessárias 1345-14-1235-146
+word necessário 1345-14-1235
+word necessários 1345-14-1235-234
+word nenhum 1345-1345
+word nenhuma 1345-1345-1
+word nenhumas 1345-1345-146
+word nenhuns 1345-1345-234
+midword nh 2356
+word nica 5-1345
+endword nica 5-1345
+endword nicamente 5-1345-56-134
+word nicas 5-1345-234
+endword nicas 5-1345-234
+word nico 4-1345
+endword nico 4-1345
+word nicos 4-1345-234
+endword nicos 4-1345-234
+word não 1345
+word nossa 1345-234-1
+word nossas 1345-234-146
+word nosso 1345-234
+word nossos 1345-234-234
+word nova 1345-1236-1
+word novas 1345-1236-146
+word novo 1345-1236
+word novos 1345-1236-234
+word numa 1345-134
+word numas 1345-134-234
+word nunca 1345-14
+word objecta 135-245-2345-1
+word objectas 135-245-2345-146
+word objectiva 135-245-2345-1236-1
+word objectivas 135-245-2345-1236-146
+word objectivo 135-245-2345-1236
+word objectivos 135-245-2345-1236-234
+word objecto 135-245-2345
+word objectos 135-245-2345-234
+word observações 135-12-1236-12346-234
+word observação 135-12-1236-12346
+word onde 135-15
+word opiniões 135-1234-234
+word opinião 135-1234
+endword or 56
+midword orb 56-12
+midword orc 56-14
+midword ord 56-145
+word ordem 135-145
+word ordens 135-145-234
+midword orf 56-124
+midword org 56-1245
+endword orica 135-5-1235
+endword oricamente 135-5-1235-56-134
+endword oricas 135-5-1235-234
+endword orico 135-4-1235
+endword oricos 135-4-1235-234
+midword orj 56-245
+midword orl 56-123
+midword orm 56-134
+endword ormenta 56-5-134
+endword ormentas 56-5-134-234
+endword ormento 56-4-134
+endword ormentos 56-4-134-234
+midword orn 56-1345
+midword orp 56-1234
+midword orqu 56-12345
+midword orr 56-1235
+midword ors 56-234
+midword ort 56-2345
+begmidword orv 56-1236
+midword orz 56-1356
+begmidword orç 56-12346
+word os 13456
+endword os 13456
+begmidword osc 13456-14
+midword osf 13456-124
+begmidword osg 13456-1245
+begmidword osl 13456-123
+begmidword osm 13456-134
+midword osn 13456-1345
+midword osp 13456-1234
+midword osqu 13456-12345
+begmidword oss 13456-234
+begmidword ost 13456-2345
+endword ostica 13456-5-2345
+endword osticamente 13456-5-2345-56-134
+endword osticas 13456-5-2345-234
+endword ostico 13456-4-2345
+endword osticos 13456-4-2345-234
+begmidword ostr 13456-356
+begmidword osv 13456-1236
+always ou 1256
+word outra 1256-1
+word outras 1256-146
+word outro 1256-135
+word outros 1256-13456
+word palavra 1234-1
+word palavras 1234-146
+word papel 1234-1234
+word papéis 1234-1234-234
+word para 1234-1235
+word parte 1234-15
+word partes 1234-156
+word pela 1234-123-1
+word pelas 1234-123-146
+word pelo 1234-123
+word pelos 1234-123-234
+word pensamento 1234-234-134-2345
+word pensamentos 1234-234-134-2345-234
+word pequena 1234-12345-1345-1
+word pequenas 1234-12345-1345-146
+word pequeno 1234-12345-1345
+word pequenos 1234-12345-1345-234
+begmidword pl 1246
+word ponta 1234-2345-1
+word pontas 1234-2345-146
+word ponto 1234-2345
+word pontos 1234-2345-234
+word por 1234
+word porque 1234-12345
+word portanto 1234-2345-2345
+word portugal 1234-2345-1245-123
+word portuguesa 1234-2345-1245-1
+word portuguesas 1234-2345-1245-146
+word portugueses 1234-2345-1245-234
+word português 1234-2345-1245
+word porém 1234-134
+word posições 1234-12346-234
+word posição 1234-12346
+word possibilidade 1234-12-145
+word possibilidades 1234-12-145-234
+word possíveis 1234-1236-2346
+word possível 1234-1236-123
+word pouca 1234-14-1
+word poucas 1234-14-146
+word pouco 1234-14
+word poucos 1234-14-234
+begmidword pr 235
+word própria 235-235-1
+word próprias 235-235-146
+word próprio 235-235-135
+word próprios 235-235-13456
+begword prerr 235-15-1235-1235
+word primeira 235-1235-1
+word primeiras 235-1235-146
+word primeiro 235-1235
+word primeiros 235-1235-234
+word principais 235-14-2346
+word principal 235-14-123
+word princípio 235-14
+word princípios 235-14-234
+word produções 235-145-12346-234
+word produção 235-145-12346
+word produto 235-145
+word produtos 235-145-234
+word projecta 235-245-2345-1
+word projectas 235-245-2345-146
+word projecto 235-245-2345
+word projectos 235-245-2345-234
+word propriedade 235-235-145
+word propriedades 235-235-145-234
+begword prorr 235-135-1235-1235
+word que 12345
+begmidword qu 12345
+word qualquer 12345-12345
+word quando 12345-145
+word quanta 12345-2345-1
+word quantas 12345-2345-146
+word quantidade 12345-2345-145
+word quantidades 12345-2345-145-234
+word quanto 12345-2345
+word quantos 12345-2345-234
+word quase 12345-234
+word quer 12345-1235
+word razões 1235-1356-234
+word razão 1235-1356
+begword re 3
+word realidade 1235-123-145
+word realidades 1235-123-145-234
+word realizações 1235-123-1356-12346-234
+word realização 1235-123-1356-12346
+word reencontrem 3-26-25-356-15-134
+word reentrem 3-26-356-15-134
+word relações 3-123-12346-234
+word relação 3-123-12346
+begword rend 1235-26-145
+begword renqu 1235-26-12345
+begword rent 1235-26-2345
+begword resc 1235-156-14
+begword resf 1235-156-124
+begword resfr 1235-156-16
+begword resg 1235-156-1245
+begword resm 1235-156-134
+begword resp 1235-156-1234
+word respeita 1235-1234-2345-1
+word respeitas 1235-1234-2345-146
+word respeito 1235-1234-2345
+word respeitos 1235-1234-2345-234
+begword respl 1235-156-1246
+begword resqu 1235-156-12345
+begword ress 1235-156-234
+begword rest 1235-156-2345
+begword restr 1235-156-356
+begword resv 1235-156-1236
+begword reum 1235-5-134
+word rica 5-1235
+endword rica 5-1235
+word ricamente 5-1235-56-134
+endword ricamente 5-1235-56-134
+word ricas 5-1235-234
+endword ricas 5-1235-234
+word rico 4-1235
+endword rico 4-1235
+word ricos 4-1235-234
+endword ricos 4-1235-234
+word se 234
+word seguinte 234-1245-2345
+word seguintes 234-1245-2345-234
+word segunda 234-1245-1
+word segundas 234-1245-146
+word segundo 234-1245
+word segundos 234-1245-234
+word sempre 234-1234
+word senhor 234-1235
+word senhora 234-1235-1
+word senhoras 234-1235-146
+word senhores 234-1235-234
+word sentida 234-2345-145-1
+word sentidas 234-2345-145-146
+word sentido 234-2345-145-135
+word sentidos 234-2345-145-13456
+begword sext 234-1346-2345
+word simples 234-1246
+word sistema 234-2345-134
+word sistemas 234-2345-134-234
+word sobretudo 234-2345
+word sua 234-1
+word suas 234-146
+word século 234-14-123
+word séculos 234-14-123-234
+word sujeita 234-245-2345-1
+word sujeitas 234-245-2345-146
+word sujeito 234-245-2345
+word sujeitos 234-245-2345-234
+word talvez 2345-1236
+word também 2345-12
+word tanta 2345-2345-1
+word tantas 2345-2345-146
+word tanto 2345-2345
+word tantos 2345-2345-234
+word te 2345
+word tempo 2345-1234
+word tempos 2345-1234-234
+begword text 2345-1346-2345
+endword tica 5-2345
+endword ticamente 5-2345-56-134
+endword ticas 5-2345-234
+endword tico 4-2345
+endword ticos 4-2345-234
+word toda 2345-145-1
+word todas 2345-145-146
+word todavia 2345-145-1236
+word todo 2345-145
+word todos 2345-145-234
+begmidword tr 356
+word trabalha 356-125-1
+word trabalhas 356-125-146
+word trabalho 356-125
+word trabalhos 356-125-234
+word trem 356-15-134
+word um 136
+word uma 136-1
+word umas 136-146
+word uns 136-234
+endword urica 136-5-1235
+endword uricamente 136-5-1235-56-134
+endword uricas 136-5-1235-234
+endword urico 136-4-1235
+endword uricos 136-4-1235-234
+endword urrica 136-1235-5-1235
+endword urricas 136-1235-5-1235-234
+endword urrico 136-1235-4-1235
+endword urricos 136-1235-4-1235-234
+word valor 1236-123
+word valores 1236-123-234
+word vantagem 1236-2345-1245
+word vantagens 1236-2345-1245-234
+word verdade 1236-145
+word verdadeira 1236-145-1235-1
+word verdadeiras 1236-145-1235-146
+word verdadeiro 1236-145-1235
+word verdadeiros 1236-145-1235-234
+word verdades 1236-145-234
+word vez 1236-1356
+word vezes 1236-1356-234
+word vida 1236-1
+word vidas 1236-146
+word vista 1236-2345-1
+word vistas 1236-2345-146
+word visto 1236-2345
+word vistos 1236-2345-234
+word écloga 123456-14-123-135-1245-1
+word éclogas 123456-14-123-135-1245-146
+word égloga 123456-1245-123-135-1245-1
+word églogas 123456-1245-123-135-1245-146
+endword éria 5-123456
+endword érias 5-123456-234
+endword érica 123456-5-1235
+endword éricas 123456-5-1235-234
+endword érico 123456-4-1235
+endword éricos 123456-4-1235-234
+endword ério 4-123456
+endword érios 4-123456-234
+word ária 5-12356
+endword ária 5-12356
+word árias 5-12356-234
+endword árias 5-12356-234
+endword árica 12356-5-1235
+endword áricas 12356-5-1235-234
+endword árico 12356-4-1235
+endword áricos 12356-4-1235-234
+endword ário 4-12356
+endword ários 4-12356-234
+word última 23456-2345-134-1
+word últimas 23456-2345-134-146
+word último 23456-2345-134
+word últimos 23456-2345-134-234
+endword úrica 23456-5-1235
+endword úricas 23456-5-1235-234
+endword úrico 23456-4-1235
+endword úricos 23456-4-1235-234
+endword ância 5-16
+endword âncias 5-16-234
+endword âncio 4-16
+endword ência 5-126
+endword ências 5-126-234
+endword êncio 4-126
+endword êncios 4-126-234
+endword írica 34-5-1235
+endword íricas 34-5-1235-234
+endword írico 34-4-1235
+endword íricos 34-4-1235-234
+midendword ão 3456
+endword ãos 3456-234
+endword ória 5-346
+endword órias 5-346-234
+endword órica 346-5-1235
+endword óricas 346-5-1235-234
+endword órico 346-4-1235
+endword óricos 346-4-1235-234
+endword ório 4-346
+endword órios 4-346-234
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb
new file mode 100644
index 0000000..e93a5e1
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb
@@ -0,0 +1,125 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Romanian
+#
+# Samuel Thibault <samuel.thibault@ens-lyon.org>
+# 
+# Updated by Stefan Moisei <vortex37 {at} gmail {dot} com>
+#
+# This table is based on the Unesco report on the progress of unification of
+# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
+# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
+# The document is dated 1954, so this table may be quite outdated.
+
+# generated by ttbtest
+space \s 0		SPACE
+punctuation ~ 45		TILDE
+punctuation | 4568		VERTICAL LINE
+punctuation _ 456		LOW LINE
+punctuation [ 12356		LEFT SQUARE BRACKET
+punctuation \\ 176		REVERSE SOLIDUS
+punctuation ] 23456		RIGHT SQUARE BRAKET
+punctuation @ 47		COMMERCIAL AT
+punctuation = 2356		EQUALS SIGN
+punctuation # 3456		NUMBER SIGN
+punctuation / 34		SOLIDUS
+punctuation * 26		ASTERISK
+punctuation + 235		PLUS SIGN
+punctuation % 356		PERCENT SIGN
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation \x201e 236		LEFT QUOTE
+punctuation \x201d 356		RIGHT QUOTE
+punctuation ' 3		APOSTROPHE
+punctuation ( 126		LEFT PARENTHESIS
+punctuation ) 345		RIGHT PARENTHESIS
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+include digits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation ? 26		QUESTION MARK
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation \x00a0 0		NO-BREAK SPACE
+uppercase \x00c2 1267		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00ce 1467		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+lowercase \x00e2 126		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00ee 146		LATIN SMALL LETTER I WITH CIRCUMFLEX
+uppercase \x0102 167		LATIN CAPITAL LETTER A WITH BREVE
+lowercase \x0103 16		LATIN SMALL LETTER A WITH BREVE
+uppercase \x015e 1567		LATIN CAPITAL LETTER S WITH CEDILLA
+lowercase \x015f 156		LATIN SMALL LETTER S WITH CEDILLA
+uppercase \x0162 2467		LATIN CAPITAL LETTER T WITH CEDILLA
+lowercase \x0163 246		LATIN SMALL LETTER T WITH CEDILLA
+uppercase \x0218 1567		LATIN CAPITAL LETTER S WITH COMMA BELOW
+lowercase \x0219 156		LATIN CAPITAL LETTER S WITH COMMA BELOW
+uppercase \x021a 2467		LATIN CAPITAL LETTER T WITH COMMA BELOW
+lowercase \x021b 246		LATIN SMALL LETTER T WITH COMMA BELLOW
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb
new file mode 100644
index 0000000..42d6430
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb
@@ -0,0 +1,345 @@
+# Russian Braille Table for TSS
+# by Mike Sivill <mike.sivill@viewplus.com>
+
+#include text_nabcc.dis All display opcodes
+include ru-ru.dis All display opcodes	#replace text_nabcc.dis Yuemei Sun 03/12/08
+
+
+# ----------- define all chars --------------------------------------
+
+space \t 0
+space \x000A 0
+space \x000D 0
+space \s 0 blank	
+replace \x0007
+punctuation ! 2346				# 33
+punctuation " 5						# 34
+sign # 3456								# 35
+sign $ 1246								# 36
+sign % 146		# 37
+sign & 12346							# 38
+punctuation ' 3						# 39 apostrophe
+punctuation ( 12356				# 40
+punctuation ) 23456				# 41
+sign * 16									# 42
+math + 346								# 43
+punctuation , 6						# 44
+punctuation - 36					# 45
+punctuation . 46					# 46
+math / 34									# 47
+punctuation \x00AB 236
+punctuation \x00BB 356
+include loweredDigits6Dots.uti
+punctuation : 156					# 58
+punctuation ; 56					# 59
+math < 126								# 60
+math = 123456							# 61
+math > 345								# 62
+punctuation ? 1456				# 63
+sign @ 47									# 64
+
+
+# The Alphabet
+uplow \x0410\x0430 1
+uplow \x0411\x0431 12
+uplow \x0412\x0432 2456
+uplow \x0413\x0433 1245
+uplow \x0414\x0434 145
+uplow \x0415\x0435 15
+uplow \x0416\x0436 245
+uplow \x0417\x0437 1356
+uplow \x0418\x0438 24
+uplow \x0419\x0439 12346
+uplow \x041A\x043A 13
+uplow \x041B\x043B 123
+uplow \x041C\x043C 134
+uplow \x041D\x043D 1345
+uplow \x041E\x043E 135
+uplow \x041F\x043F 1234
+uplow \x0420\x0440 1235
+uplow \x0421\x0441 234
+uplow \x0422\x0442 2345
+uplow \x0423\x0443 136
+uplow \x0424\x0444 124
+uplow \x0425\x0445 125
+uplow \x0426\x0446 14
+uplow \x0427\x0447 12345
+uplow \x0428\x0448 156
+uplow \x0429\x0449 1346
+uplow \x042A\x044A 12356
+uplow \x042B\x044B 2346
+uplow \x042C\x044C 23456
+uplow \x042D\x044D 246
+uplow \x042E\x044E 1256
+uplow \x042F\x044F 1246 
+uplow \x0401\x0451 16 
+
+punctuation [ 2467				# 91
+sign \\ 12567							# 92
+punctuation ] 124567			# 93
+sign ^ 457								# 94 circumflex accent
+sign _ 456								# 95 underscore
+sign ` 4									# 96 grave accent
+# a - z										# 97 - 122
+punctuation { 246					# 123
+sign | 1256								# 124
+punctuation } 12456				# 125
+math ~ 45									# 126
+
+space \X00A0 0						# 160 no-break space
+sign \x00A2 4-14					# 162 ¢ cents sign
+sign \x00A3 4-123					# 163 £ pounds sign
+
+sign \x00A5 4-13456				#	165 ¥ yen sign
+
+sign § 4-234-3						# 167 section sign \x00A7
+
+sign \x00A9 2356-6-14-2356 # 169	© copyright sign
+sign \x00AE 2356-6-1235-2356	# Registered
+sign \X2116 1345 NUMERO SIGN 
+punctuation \x00Ad 36			# 173	  soft hyphen
+sign \x00B0 356 degrees
+sign \x00B4 4
+always \x00B4 4 # acute accent sign
+sign \x00B5 2-134 # micro sign, (mu)
+sign \x00B6 4-1234-345		#	182	  ¶ pilcrow sign
+math \x00D7 56-236				# 215		× multiplication sign
+
+math \x00F7 56-256				# 247		÷ division sign
+
+punctuation \x2010 36			# 8208  hyphen
+punctuation \x2011 23478	# 8209  non-breaking hyphen
+
+punctuation \x2013 36-36		# 8211	en dash
+punctuation \x2014 36-36		# em dash
+punctuation	\x2018 6-236			# 8216	smart single left quotation mark
+punctuation	\x2019 356-3			# 8217	smart single right quotation mark
+
+punctuation	\x201C 236		# 8220	smart opening double quote
+punctuation	\x201D 356		# 8221	smart closing double quote
+punctuation	\x201E 236		# 8222	smart double low quotation mark
+punctuation	\x201F 356		# 8223	smart double high reverse quotation mark
+
+punctuation \x2026 256-256-256 	# 8230 smart ellipsis
+sign \x20AC 4-15					# 8364 Euro sign anywhere else
+
+# --------------------------- end definitions ---------------------------------
+
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+capsign 45
+begital 456 
+firstwordital 456
+
+# the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Letters are defined in en-chardefs
+include chardefs.cti
+
+
+# accented letters
+
+uplow \x00C0\x00E0 1				# a with grave
+uplow \x00C1\x00E1 1				# a with acute
+uplow \x00C2\x00E2 1				# a with circumflex
+uplow \x00C3\x00E3 1				# a with tilde
+uplow \x00C4\x00E4 1				# a with dieresis
+uplow \x00C5\x00E5 1				# a with ring above
+uplow \x00C6\x00E6 1				# letter ae
+uplow \x00C7\x00E7 14				# c with cedilla
+uplow \x00C8\x00E8 15				# e with grave
+uplow \x00C9\x00E9 15				# e with acute
+uplow \x00CA\x00EA 15				# e with circumflex
+uplow \x00CB\x00EB 15				# e with dieresis
+uplow \x00CC\x00EC 24				# i with grave above
+uplow \x00CD\x00ED 24				# i with acute above
+uplow \x00CE\x00EE 24				# i with circumflex
+uplow \x00CF\x00EF 24				# i with dieresis
+uplow \x00D0\x00F0 15				# letter eth
+uplow \x00D1\x00F1 1345			# n with tilde
+uplow \x00D2\x00F2 135			# o with grave above
+uplow \x00D3\x00F3 135			# o with acute above
+uplow \x00D4\x00F4 135			# o with circumflex
+uplow \x00D5\x00F5 135			# o with tilde
+uplow \x00D6\x00F6 135			# o with dieresis
+# \x00D7	× multiplication sign	----------------------
+uplow \x00D8\x00F8 135			# o with stroke
+uplow \x00D9\x00F9 136			# u with grave above
+uplow \x00DA\x00FA 136			# u with acute above
+uplow \x00DB\x00FB 136			# u with circumflex above
+uplow \x00DC\x00FC 136				# u with dieeresis
+uplow \x00DD\x00FD 13456		# y with acute above
+uplow \x00DE\x00FE 4-1456                 # letter thorn
+letter \x00DF 2346		# small sharp s
+uplow \x0174\x0175 4-2456 w with circumflex
+uplow \x0176\x0177 4-13456 # y with circumflex
+uplow \x0178\x00ff 4-13456 # y with diaeresis
+uplow \x1ef2\x1ef3 4-13456 # y with grave
+largesign \x00C0 4-1      [C0] upper a grave
+largesign \x00E0   4-1      [E0] lower a grave
+largesign \x00C1 4-1      [C1] upper a acute
+largesign \x00E1   4-1      [E1] lower a acute
+largesign \x00C2 4-1      [C2] upper a circumflex
+largesign \x00E2   4-1      [E2] lower a circumflex
+largesign \x00C3 4-1      [C3] upper a tilde
+largesign \x00E3   4-1      [E3] lower a tilde
+largesign \x00C4 4-1      [C4] upper a dieresis
+largesign \x00E4   4-1      [E4] lower a dieresis
+
+largesign \x00C5 4-1      [C5] upper a ring
+largesign \x00E5   4-1      [E5] lower a ring
+
+largesign \x00C6 1-15     [C6] upper ae
+largesign \x00E6   1-15			[E6] lower ae
+
+largesign \x00C7 4-14     [C7] upper c cedilla
+largesign \x00E7   4-14     [E7] lower c cedilla
+
+largesign \x00C8 4-15     [C8] upper e grave
+largesign \x00E8   4-15     [E8] lower e grave
+
+largesign \x00C9 4-15     [C9] upper e acute
+largesign \x00E9   4-15     [E9] lower e acute
+
+largesign \x00CA 4-15     [CA] upper e circumflex
+largesign \x00EA   4-15     [EA] lower e circumflex
+
+largesign \x00CB 4-15     [CB] upper e dieresis
+largesign \x00EB   4-15     [EB] lower e dieresis
+
+largesign \x00CC 4-24     [CC] upper i grave
+largesign \x00EC   4-24     [EC] lower i grave
+
+largesign \x00CD 4-24     [CD] upper i acute
+largesign \x00ED   4-24     [ED] lower i acute
+
+largesign \x00CE 4-24     [CE] upper i circumflex
+largesign \x00EE   4-24     [EE] lower i circumflex
+
+largesign \x00CF 4-24     [CF] upper i dieresis
+largesign \x00EF   4-24     [EF] lower i dieresis
+
+largesign \x00D0 4-15     [D0] upper eth
+largesign \x00F0   4-15     [F0] lower eth
+
+largesign \x00D1 4-1345   [D1] upper n tilde
+largesign \x00F1   4-1345   [F1] lower n tilde
+
+largesign \x00D2 4-135    [D2] upper o grave
+largesign \x00F2   4-135    [F2] lower o grave
+
+largesign \x00D3 4-135    [D3] upper o acute
+largesign \x00F3   4-135    [F3] lower o acute
+
+largesign \x00D4 4-135    [D4] upper o circumflex
+largesign \x00F4   4-135    [F4] lower o circumflex
+
+largesign \x00D5 4-135    [D5] upper o tilde
+largesign \x00F5   4-135    [F5] lower o tilde
+
+largesign \x00D6 4-135    [D6] upper o dieresis
+largesign \x00F6   4-135			[F6] lower o dieresis
+
+largesign \x00D8 4-135    [D8] upper o slash
+largesign \x00f8   4-135    [F8] lower o slash
+
+largesign \x00D9 4-136    [D9] upper u grave
+largesign \x00F9   4-136    [F9] lower u grave
+
+largesign \x00DA 4-136    [DA] upper u acute
+largesign \x00FA   4-136    [FA] lower u acute
+
+largesign \x00DB 4-136    [DB] upper u circumflex
+largesign \x00FB   4-136    [FB] lower u circumflex
+
+largesign \x00DC 4-136    [DC] upper u dieresis
+largesign \x00FC   4-136    [FC] lower u dieresis
+
+largesign \x00DD 4-13456  [DD] upper y acute
+largesign \x00FD   4-13456  [FD] lower y acute
+
+largesign \x00DE 4-2345   [DE] upper t horn
+largesign \x00FE   4-2345   [FE] lower t horn
+
+largesign \x00DF 234-234 (DF) lower ss
+
+largesign \x0174 4-2456 lower w circumflex
+largesign \x0175 4-2456 upper w circumflex
+
+largesign \x0176 4-13456 upper y circumflex
+largesign \x0177 4-13456 lower y circumflex
+
+largesign \x0178 4-13456 upper y with dieresis
+largesign \x00FF 4-13456 lower y with dieresis
+
+largesign \x1EF2 4-13456 upper y with grave
+largesign \x1EF3 4-13456 lower y with grave
+
+# punctuation
+punctuation \x2013 36-36		# 8211	en dash
+punctuation \x2014 36-36		# em dash
+prepunc ( 126
+postpunc ) 345
+begword ` 6-236
+prepunc " 236
+postpunc " 356
+always \x00AB 236 (opening quotation mark) 
+always \x00BB 356 (closing quotation mark)
+prepunc ' 6-236
+postpunc ' 356-3
+word 'em = 
+word 'tis =
+word 'twas =
+begnum # 1345 print number sign before number
+begnum ° 145-1245 degrees sign
+endnum ° 56-145-1245 ;dg degrees sign
+begnum  \x20AC 15       # euro sign at beginning of number
+endnum  \x20AC 4-15       # euro sign atend  of number
+postpunc , 2
+hyphen - 36
+#capsnocont
+postpunc . 256
+postpunc ; 23
+postpunc : 25
+postpunc ! 235
+always / 34
+always < 5-13
+always > 46-2
+postpunc ? 26
+midnum + 0-235-3456
+always + 235
+endnum % 3456-245-356 
+always ^ 4
+always ~ 12456
+always & 12346
+always * 35
+midword \x2019 3	# stupid smart apostrophe
+always [ 45
+always ] 3456
+always { 46
+always } 6
+prepunc ` 6-236
+always @ 146
+always \\ 456-16
+always | 456
+repeated \s 0
+repeated \t 0
+always ... 256-256-256
+always .\s.\s. 256-256-256 . . .
+always $ 256-3456
+
+# special character sequences
+sign \x00BD 3456-1-34-12	# 1/2 fraction
+sign \x00BC 3456-1-34-145	# 1/4 fraction
+sign \x00BE 3456-14-34-145	# 3/4 fraction
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis
new file mode 100644
index 0000000..2ba7fd7
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis
@@ -0,0 +1,314 @@
+# Russian  display codes
+# by Mike Sivill <mike.sivill@viewplus.com
+# Updated 12-10-07
+
+# 03/12/08 Yuemei Sun
+# commented out entries \x0021 to \x0027
+# replaced them with new display code
+# the new display code were added according to
+# the "Russian Braille Font Specification.doc"
+# which was sent by Holly Stowell on 03/11/08
+
+#display \x0021 235
+#display \x0022 236
+#display \x0023 1345
+#display \x0024 56
+#display \x0025 356
+#display \x0026 1456
+#display \x0027 3
+
+display \x0021 5
+display \x0022 4
+display \x0023 3456
+display \x0024 467
+display \x0025 146
+display \x0026 1234678
+display \x0027 47
+
+display \x0028 126
+display \x0029 345
+display \x002A 35
+display \x002B 235
+
+#display \x002C 2	#commented out by Yuemei Sun on 03/12/08
+display \x002C 6	#replacing the above commented line by Yuemei Sun on 03/12/08
+
+display \x002D 36
+
+#display \x002E 256	#commented out by Yuemei Sun on 03/12/08
+display \x002E 3	#replacing the above commented line by Yuemei Sun on 03/12/08
+
+display \x002F 34
+display \x0030 356
+display \x0031 2
+display \x0032 23
+display \x0033  25
+display \x0034 256
+display \x0035 26
+display \x0036 235
+display \x0037 2356
+display \x0038 236
+display \x0039 35
+
+# 03/12/08 Yuemei Sun
+# commented out entries \x003A to \x007D
+# replaced them with new display code
+# the new display code were added according to
+# the "Russian Braille Font Specification.doc"
+# which was sent by Holly Stowell on 03/11/08
+
+#display \x003A 25	
+#display \x003B 23
+#display \x003C 246
+#display \x003D 2356
+#display \x003E 135
+#display \x003F 26
+#display \x0040 146
+#display \x0041  1
+#display \x0042 12
+#display \x0043 14
+#display \x0044 145
+#display \x0045 15
+#display \x0046 124
+#display \x0047 1245
+#display \x0048 125
+#display \x0049 24
+#display \x004A 245
+#display \x004B 13
+#display \x004C 123
+#display \x004D 134
+#display \x004E 1345
+#display \x004F 135
+#display \x0050 1234
+#display \x0051 12345
+#display \x0052 1235
+#display \x0053 234
+#display \x0054 2345
+#display \x0055 136
+#display \x0056 1236
+#display \x0057 2456
+#display \x0058 1346
+#display \x0059 13456
+#display \x005A 1356
+#display \x005B 45
+#display \x005C 346
+#display \x005D 3456
+#display \x005E 4
+#display \x005F 5
+#display \x0060 123456
+#display \x0061 1
+#display \x0062 12
+#display \x0063 34
+#display \x0064 345
+#display \x0065 15
+#display \x0066 124
+#display \x0067 1245
+#display \x0068 125
+#display \x0069 24
+#display \x006A 245
+#display \x006B 13
+#display \x006C 123
+#display \x006D 134
+#display \x006E 1345
+#display \x006F 135
+#display \x0070 1234
+#display \x0071 12345
+#display \x0072 1235 
+#display \x0073 234
+#display \x0074 2345
+#display \x0075 136
+#display \x0076 1236
+#display \x0077 2456
+#display \x0078 1346
+#display \x0079 13456
+#display \x007A 1356
+#display \x007B 46
+#display \x007C 456
+#display \x007D 6
+
+display \x003A 46		
+display \x003B 237
+display \x003C 56
+display \x003D 123456
+display \x003E 45
+display \x003F 1456
+display \x0040 3457
+display \x0041  178
+display \x0042 1278
+display \x0043 1478
+display \x0044 14578
+display \x0045 1578
+display \x0046 12478
+display \x0047 124578
+display \x0048 12578
+display \x0049 2478
+display \x004A 24578
+display \x004B 1378
+display \x004C 12378
+display \x004D 13478
+display \x004E 134578
+display \x004F 13578
+display \x0050 123478
+display \x0051 1234578
+display \x0052 123578
+display \x0053 23478
+display \x0054 234578
+display \x0055 13678
+display \x0056 123678
+display \x0057 245678
+display \x0058 134678
+display \x0059 1345678
+display \x005A 135678
+display \x005B 123456
+display \x005C 34
+display \x005D 2345678	#78 added on 05/05/08 according to Russian dealer's request
+display \x005E 45
+display \x005F 456
+display \x0060 346
+display \x0061 18
+display \x0062 128
+display \x0063 148
+display \x0064 1458
+display \x0065 158
+display \x0066 1248
+display \x0067 12458
+display \x0068 1258
+display \x0069 248
+display \x006A 2458
+display \x006B 138
+display \x006C 1238
+display \x006D 1348
+display \x006E 13458
+display \x006F 1358
+display \x0070 12348
+display \x0071 123458
+display \x0072 12358
+display \x0073 2348
+display \x0074 23458
+display \x0075 1368
+display \x0076 12368
+display \x0077 24568
+display \x0078 13468
+display \x0079 134568
+display \x007A 13568
+display \x007B 126
+display \x007C 345
+display \x007D 345
+
+display \x007E 12456
+display \x007F 4568	#added by Yuemei Sun on 03/12/08
+display \x0401 167
+display \x0402 1567	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x0403 1267	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x0404 3457
+display \x0405 123467	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x0406 134567
+display \x0407 14567
+display \x0408 13467	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x0409 347	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x040A 3467	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x040B 12567	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x040C 123567	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x040E 2357	#does not exist in the spec 03/12/08 Yuemei Sun
+display \x040F 13567	#does not exist in the spec 03/12/08 Yuemei Sun
+
+# the upper case cyrillic letters (410 to 42F)
+# all have a dot 7 in the spec.  However, leaving
+# them out here is fine, since in 6-dot braille
+# the upper case and lower case are the same
+#
+
+display \x0410 1
+display \x0411 12
+display \x0412 2456
+display \x0413 1245
+display \x0414 145
+display \x0415 15
+display \x0416 245
+display \x0417 1356
+display \x0418 24
+display \x0419 12346
+display \x041A 13
+display \x041B 123
+display \x041C 134
+display \x041D 1345
+display \x041E 135
+display \x041F 1234
+display \x0420 1235
+display \x0421 234
+display \x0422 2345
+display \x0423 136
+display \x0424 124
+display \x0425 125
+display \x0426 14
+display \x0427 12345
+display \x0428 156
+display \x0429 1346
+display \x042A 12356
+display \x042B 2346
+display \x042C 234567	#7 added on 05/05/08 according to dealer 's request
+display \x042D 246
+display \x042E 1256
+display \x042F 1246
+display \x0430 1
+display \x0431 12
+display \x0432 2456
+display \x0433 1245
+display \x0434 145
+display \x0435 15
+display \x0436 245
+display \x0437 1356
+display \x0438 24
+display \x0439 12346
+display \x043A 13
+display \x043B 123
+display \x043C 134
+display \x043D 1345
+display \x043E 135
+display \x043F 1234
+display \x0440 1235
+display \x0441 234
+display \x0442 2345
+display \x0443 136
+display \x0444 124
+display \x0445 125
+display \x0446 14
+display \x0447 12345
+display \x0448 156
+display \x0449 1346
+display \x044A 12356
+display \x044B 2346
+display \x044C 23456
+display \x044D 246
+display \x044E 1256
+display \x044F 1246
+display \x0451 16
+display \x0452 1456	#added by Yuemei Sun on 03/12/08
+display \x0453 23568
+#display \x0454 35	#commented out by Yuemei Sun on 03/12/08
+display \x0454 345	#added by Yuemei Sun on 03/12/08
+display \x0457 1456
+display \x0458 13456	#added by Yuemei Sun on 03/12/08
+display \x0459 126	#added by Yuemei Sun on 03/12/08
+display \x045A 1246	#added by Yuemei Sun on 03/12/08
+display \x045E 346	#added by Yuemei Sun on 03/12/08
+display \x0490 124567	#added by Yuemei Sun on 03/12/08
+display \x0491 12456	#added by Yuemei Sun on 03/12/08
+
+display \x00Ab 246
+display \x00Bb 135
+display \x00A9 34
+display \x2013 36
+display \x00Ae 1235
+display \x00B6 1458
+display \x2021 12458
+display \x2020 134568
+display \x00A6 1568
+display \x2022 2356
+display \x00B7 6
+display \x2026 237
+display \x2122 2345
+display \x2014 36
+display \x00B1 23578
+display \x00A7 3468
+display \x2116 1345
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb
new file mode 100644
index 0000000..85a389c
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb
@@ -0,0 +1,267 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Russian (koi8-r)
+# by Hans Schou <chlor@schou.dk> and Dave Mielke <dave@mielke.cc>
+
+# This is the Russian braille table. It is based on the KOI8-R character set
+# which to our knowledge is the most used in Russia.
+
+# As the Russian cyrillic definition conflicts with the latin definition, some
+# decisions had to be taken. Russians need to type both latin for the command
+# prompt and cyrillic while reading and writing documents and mail.
+
+# In the following, latin letters are quoted with apostrophes like in 'a', and
+# cyrillic letters are enclosed within brackets like in [a].
+
+# Dot 1 in the cyrillic definition is the cyrillic letter which looks and
+# sounds like 'a'. The problem is that in the KOI8-R character set, there is
+# both a latin 'a' and a cyrillic [a]. In decimal, their character numbers are
+# 97 and 193 respectively.  To handle conflicts like these, we have prioritized
+# which characters are most important to match the standard.
+
+# RULES:
+# 1. All cyrillic characters must follow the Russian standard. KOI8-R character 
+#    193 [a] must be dot-1, and so on.
+# 2. Capital cyrillic letters have dot 7 on.
+# 3. The latin alphabet is implemented to follow the international standard
+#    except it has dot 8 on.
+# 4. Capital latin letters have dots 7 and 8 on.
+# 5. Numbers are defined as in the American standard. This means dot-2 for
+#    number '1', and so on. This will conflict with the cyrillic comma which is
+#    also dot-2.
+# 4. Special characters like !"#¤%&/()=? follow the American standard if 
+#    possible.
+# 2. Control characters are often used on Linux. These are not very well 
+#    implemented. More work should be done.
+
+# Comments from Russians are very welcome as neither Hans Schou nor Dave Mielke
+# understand a single word in Russian.
+
+# generated by ttbtest
+letter \x0000 12345678		NULL
+letter \x0001 1678		START OF HEADING
+letter \x0002 124678		START OF TEXT
+letter \x0003 14678		END OF TEXT
+letter \x0004 1467		END OF TRANSMISSION
+letter \x0005 15678		ENQUIRY
+letter \x0006 2358		ACKNOWLEDGE
+letter \x0007 235678		BELL
+letter \x0008 378		BACKSPACE
+space \t 2468		CHARACTER TABULATION
+space \n 678		LINE FEED (LF)
+space \v 345678		LINE TABULATION
+space \f 12367		FORM FEED (FF)
+space \r 458		CARRIAGE RETURN (CR)
+letter \x000e 134567		SHIFT OUT
+letter \x000f 1235678		SHIFT IN
+letter \x0010 34568		DATA LINK ESCAPE
+letter \x0011 124568		DEVICE CONTROL ONE
+letter \x0012 23468		DEVICE CONTROL TWO
+letter \x0013 4578		DEVICE CONTROL THREE
+letter \x0014 3458		DEVICE CONTROL FOUR
+letter \x0015 23578		NEGATIVE ACKNOWLEDGE
+letter \x0016 1236		SYNCHRONOUS IDLE
+letter \x0017 25678		END OF TRANSMISSION BLOCK
+letter \x0018 3478		CANCEL
+letter \x0019 13456		END OF MEDIUM
+letter \x001a 4678		SUBSTITUTE
+letter \x001b 24678		ESCAPE
+letter \x001c 125678		INFORMATION SEPARATOR FOUR
+letter \x001d 1245678		INFORMATION SEPARATOR THREE
+letter \x001e 1234678		INFORMATION SEPARATOR TWO
+letter \x001f 45678		INFORMATION SEPARATOR ONE
+space \s 0		SPACE
+punctuation ! 2357		EXCLAMATION MARK
+punctuation " 5		QUOTATION MARK
+punctuation # 3456		NUMBER SIGN
+punctuation $ 57		DOLLAR SIGN
+punctuation % 146		PERCENT SIGN
+punctuation & 2578		AMPERSAND
+punctuation ' 3		APOSTROPHE
+punctuation ( 478		LEFT PARENTHESIS
+punctuation ) 578		RIGHT PARENTHESIS
+punctuation * 12678		ASTERISK
+punctuation + 346		PLUS SIGN
+punctuation , 6		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 46		FULL STOP
+punctuation / 34		SOLIDUS
+include loweredDigits6Dots.uti
+punctuation : 237		COLON
+punctuation ; 56		SEMICOLON
+punctuation < 126		LESS-THAN SIGN
+punctuation = 123456		EQUALS SIGN
+punctuation > 345		GREATER-THAN SIGN
+punctuation ? 1456		QUESTION MARK
+punctuation @ 47		COMMERCIAL AT
+uppercase A 178		LATIN CAPITAL LETTER A
+uppercase B 1278		LATIN CAPITAL LETTER B
+uppercase C 1478		LATIN CAPITAL LETTER C
+uppercase D 14578		LATIN CAPITAL LETTER D
+uppercase E 1578		LATIN CAPITAL LETTER E
+uppercase F 12478		LATIN CAPITAL LETTER F
+uppercase G 124578		LATIN CAPITAL LETTER G
+uppercase H 12578		LATIN CAPITAL LETTER H
+uppercase I 2478		LATIN CAPITAL LETTER I
+uppercase J 24578		LATIN CAPITAL LETTER J
+uppercase K 1378		LATIN CAPITAL LETTER K
+uppercase L 12378		LATIN CAPITAL LETTER L
+uppercase M 13478		LATIN CAPITAL LETTER M
+uppercase N 134578		LATIN CAPITAL LETTER N
+uppercase O 13578		LATIN CAPITAL LETTER O
+uppercase P 123478		LATIN CAPITAL LETTER P
+uppercase Q 1234578		LATIN CAPITAL LETTER Q
+uppercase R 123578		LATIN CAPITAL LETTER R
+uppercase S 23478		LATIN CAPITAL LETTER S
+uppercase T 234578		LATIN CAPITAL LETTER T
+uppercase U 13678		LATIN CAPITAL LETTER U
+uppercase V 123678		LATIN CAPITAL LETTER V
+uppercase W 245678		LATIN CAPITAL LETTER W
+uppercase X 134678		LATIN CAPITAL LETTER X
+uppercase Y 1345678		LATIN CAPITAL LETTER Y
+uppercase Z 135678		LATIN CAPITAL LETTER Z
+punctuation [ 234678		LEFT SQUARE BRACKET
+punctuation \\ 3567		REVERSE SOLIDUS
+punctuation ] 124567		RIGHT SQUARE BRACKET
+punctuation ^ 457		CIRCUMFLEX ACCENT
+punctuation _ 456		LOW LINE
+punctuation ` 4		GRAVE ACCENT
+lowercase a 18		LATIN SMALL LETTER A
+lowercase b 128		LATIN SMALL LETTER B
+lowercase c 148		LATIN SMALL LETTER C
+lowercase d 1458		LATIN SMALL LETTER D
+lowercase e 158		LATIN SMALL LETTER E
+lowercase f 1248		LATIN SMALL LETTER F
+lowercase g 12458		LATIN SMALL LETTER G
+lowercase h 1258		LATIN SMALL LETTER H
+lowercase i 248		LATIN SMALL LETTER I
+lowercase j 2458		LATIN SMALL LETTER J
+lowercase k 138		LATIN SMALL LETTER K
+lowercase l 1238		LATIN SMALL LETTER L
+lowercase m 1348		LATIN SMALL LETTER M
+lowercase n 13458		LATIN SMALL LETTER N
+lowercase o 1358		LATIN SMALL LETTER O
+lowercase p 12348		LATIN SMALL LETTER P
+lowercase q 123458		LATIN SMALL LETTER Q
+lowercase r 12358		LATIN SMALL LETTER R
+lowercase s 2348		LATIN SMALL LETTER S
+lowercase t 23458		LATIN SMALL LETTER T
+lowercase u 1368		LATIN SMALL LETTER U
+lowercase v 12368		LATIN SMALL LETTER V
+lowercase w 24568		LATIN SMALL LETTER W
+lowercase x 13468		LATIN SMALL LETTER X
+lowercase y 134568		LATIN SMALL LETTER Y
+lowercase z 13568		LATIN SMALL LETTER Z
+punctuation { 23678		LEFT CURLY BRACKET
+punctuation | 34567		VERTICAL LINE
+punctuation } 12456		RIGHT CURLY BRACKET
+punctuation ~ 45		TILDE
+letter \x007f 4567		DELETE
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a9 34678		COPYRIGHT SIGN
+punctuation \x00b0 23567		DEGREE SIGN
+punctuation \x00b2 268		SUPERSCRIPT TWO
+punctuation \x00b7 34578		MIDDLE DOT
+punctuation \x00f7 145678		DIVISION SIGN
+uppercase \x0401 167		CYRILLIC CAPITAL LETTER IO
+uppercase \x0410 17		CYRILLIC CAPITAL LETTER A
+uppercase \x0411 127		CYRILLIC CAPITAL LETTER BE
+uppercase \x0412 24567		CYRILLIC CAPITAL LETTER VE
+uppercase \x0413 12457		CYRILLIC CAPITAL LETTER GHE
+uppercase \x0414 1457		CYRILLIC CAPITAL LETTER DE
+uppercase \x0415 157		CYRILLIC CAPITAL LETTER IE
+uppercase \x0416 2457		CYRILLIC CAPITAL LETTER ZHE
+uppercase \x0417 13567		CYRILLIC CAPITAL LETTER ZE
+uppercase \x0418 247		CYRILLIC CAPITAL LETTER I
+uppercase \x0419 123467		CYRILLIC CAPITAL LETTER SHORT I
+uppercase \x041a 137		CYRILLIC CAPITAL LETTER KA
+uppercase \x041b 1237		CYRILLIC CAPITAL LETTER EL
+uppercase \x041c 1347		CYRILLIC CAPITAL LETTER EM
+uppercase \x041d 13457		CYRILLIC CAPITAL LETTER EN
+uppercase \x041e 1357		CYRILLIC CAPITAL LETTER O
+uppercase \x041f 12347		CYRILLIC CAPITAL LETTER PE
+uppercase \x0420 12357		CYRILLIC CAPITAL LETTER ER
+uppercase \x0421 2347		CYRILLIC CAPITAL LETTER ES
+uppercase \x0422 23457		CYRILLIC CAPITAL LETTER TE
+uppercase \x0423 1367		CYRILLIC CAPITAL LETTER U
+uppercase \x0424 1247		CYRILLIC CAPITAL LETTER EF
+uppercase \x0425 1257		CYRILLIC CAPITAL LETTER HA
+uppercase \x0426 147		CYRILLIC CAPITAL LETTER TSE
+uppercase \x0427 123457		CYRILLIC CAPITAL LETTER CHE
+uppercase \x0428 1567		CYRILLIC CAPITAL LETTER SHA
+uppercase \x0429 13467		CYRILLIC CAPITAL LETTER SHCHA
+uppercase \x042a 123567		CYRILLIC CAPITAL LETTER HARD SIGN
+uppercase \x042b 23467		CYRILLIC CAPITAL LETTER YERU
+uppercase \x042c 234567		CYRILLIC CAPITAL LETTER SOFT SIGN
+uppercase \x042d 2467		CYRILLIC CAPITAL LETTER E
+uppercase \x042e 12567		CYRILLIC CAPITAL LETTER YU
+uppercase \x042f 12467		CYRILLIC CAPITAL LETTER YA
+lowercase \x0430 1		CYRILLIC SMALL LETTER A
+lowercase \x0431 12		CYRILLIC SMALL LETTER BE
+lowercase \x0432 2456		CYRILLIC SMALL LETTER VE
+lowercase \x0433 1245		CYRILLIC SMALL LETTER GHE
+lowercase \x0434 145		CYRILLIC SMALL LETTER DE
+lowercase \x0435 15		CYRILLIC SMALL LETTER IE
+lowercase \x0436 245		CYRILLIC SMALL LETTER ZHE
+lowercase \x0437 1356		CYRILLIC SMALL LETTER ZE
+lowercase \x0438 24		CYRILLIC SMALL LETTER I
+lowercase \x0439 12346		CYRILLIC SMALL LETTER SHORT I
+lowercase \x043a 13		CYRILLIC SMALL LETTER KA
+lowercase \x043b 123		CYRILLIC SMALL LETTER EL
+lowercase \x043c 134		CYRILLIC SMALL LETTER EM
+lowercase \x043d 1345		CYRILLIC SMALL LETTER EN
+lowercase \x043e 135		CYRILLIC SMALL LETTER O
+lowercase \x043f 1234		CYRILLIC SMALL LETTER PE
+lowercase \x0440 1235		CYRILLIC SMALL LETTER ER
+lowercase \x0441 234		CYRILLIC SMALL LETTER ES
+lowercase \x0442 2345		CYRILLIC SMALL LETTER TE
+lowercase \x0443 136		CYRILLIC SMALL LETTER U
+lowercase \x0444 124		CYRILLIC SMALL LETTER EF
+lowercase \x0445 125		CYRILLIC SMALL LETTER HA
+lowercase \x0446 14		CYRILLIC SMALL LETTER TSE
+lowercase \x0447 12345		CYRILLIC SMALL LETTER CHE
+lowercase \x0448 156		CYRILLIC SMALL LETTER SHA
+lowercase \x0449 1346		CYRILLIC SMALL LETTER SHCHA
+lowercase \x044a 12356		CYRILLIC SMALL LETTER HARD SIGN
+lowercase \x044b 2346		CYRILLIC SMALL LETTER YERU
+lowercase \x044c 23456		CYRILLIC SMALL LETTER SOFT SIGN
+lowercase \x044d 246		CYRILLIC SMALL LETTER E
+lowercase \x044e 1256		CYRILLIC SMALL LETTER YU
+lowercase \x044f 1246		CYRILLIC SMALL LETTER YA
+lowercase \x0451 16		CYRILLIC SMALL LETTER IO
+uppercase \x0462 3457		CYRILLIC CAPITAL LETTER YAT
+lowercase \x0463 345		CYRILLIC SMALL LETTER YAT
+uppercase \x046a 2467		CYRILLIC CAPITAL LETTER BIG YUS
+lowercase \x046b 246		CYRILLIC SMALL LETTER BIG YUS
+punctuation \x2219 238		BULLET OPERATOR
+punctuation \x221a 568		SQUARE ROOT
+punctuation \x2248 358		ALMOST EQUAL TO
+punctuation \x2264 4568		LESS-THAN OR EQUAL TO
+punctuation \x2265 35678		GREATER-THAN OR EQUAL TO
+punctuation \x2320 2568		TOP HALF INTEGRAL
+punctuation \x2321 258		BOTTOM HALF INTEGRAL
+punctuation \x2580 348		UPPER HALF BLOCK
+punctuation \x2584 468		LOWER HALF BLOCK
+punctuation \x2588 68		FULL BLOCK
+punctuation \x258c 278		LEFT HALF BLOCK
+punctuation \x2590 2378		RIGHT HALF BLOCK
+punctuation \x2591 3578		LIGHT SHADE
+punctuation \x2592 267		MEDIUM SHADE
+punctuation \x2593 3568		DARK SHADE
+punctuation \x25a0 23568		BLACK SQUARE
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis
new file mode 100644
index 0000000..dd1a4a0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis
@@ -0,0 +1,331 @@
+# This file is obsolete. Do not use!
+
+# liblouis: Se-Se.dis
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com .
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+
+# This is to used with Swedish translation tables.
+
+
+        #Hex   Dots				Dec		Char Description
+display \X0020 0					#32					space
+display \X0021  235				#33		!			exclamation mark
+display \X0022    56			#34		"			quotation mark
+display \X0023  3456			#35		#			number sign
+display \X0024 1246				#36		$			dollar sign
+display \X0025 146				#37		%			percent sign
+# display \X0026 12346			#38		&			ampersand
+display \X0026 346				#38		&			ampersand
+display \X0027  5					#39		'			apostrophe
+display \X0028	236		#40	(			left parenthesis
+display \X0029  356		#41	)			right parenthesis
+display \X002A  35		#42	*			asterisk
+display \X002B	256		#43	+			plus sign
+display \X002C      2		#44 ,			comma
+display \X002D	36		#45	-			hyphen-minus
+display \X002E	3			#46 .			full stop
+display \X002F	34		#47	/			solidus
+
+display \X0030	356		#480			digit zero
+display \X0031  2	 		#491			digit one
+display \X0032	126		#502			digit two
+display \X0033	146		#513			digit three
+display \X0034  1456	#524			digit four
+display \X0035  156		#535			digit five
+display \X0036  1246	#546			digit six
+display \X0037  12456 #557			digit seven
+display \X0038  236		#568			digit eight
+display \X0039	35		#579			digit nine
+display \X003A	25		#58 :			colon
+display \X003B  23		#59 ;			semicolon
+display \X003C  56			#60  <	less-than sign
+# display \X003D 156		#61  =	equals sign
+display \X003D 2356		#61  =	equals sign
+# display \X003E 45			#62  >	greater-than sign
+display \X003F  26		#63 ?			question mark
+
+# display \X0040   4				#64  @	commercial at
+display \X0040 123567			#64  @	commercial at
+
+        #Hex   Dots		Dec	Char Description
+display \X0041 17				#65	A Latin capital letter a
+display \X0042 127			#66	B Latin capital letter b
+display \X0043 147			#67	C Latin capital letter c
+display \X0044 1457			#68	D Latin capital letter d
+display \X0045 157			#69	E Latin capital letter e
+display \X0046 1247			#70	F Latin capital letter f
+display \X0047 12457		#71	G Latin capital letter g
+display \X0048 1257			#72	H Latin capital letter h
+display \X0049 247			#73	I Latin capital letter i
+display \X004A 2457			#74	J Latin capital letter j
+display \X004B 137			#75	K Latin capital letter k
+display \X004C 1237			#76	L Latin capital letter l
+display \X004D 1347			#77	M Latin capital letter m
+display \X004E 13457		#78	N Latin capital letter n
+display \X004F 1357			#79	O Latin capital letter o
+display \X0050 12347		#80	P Latin capital letter p
+display \X0051 123457		#81	Q Latin capital letter q
+display \X0052 12357		#82	R Latin capital letter r
+display \X0053 2347			#83	S Latin capital letter s
+display \X0054 23457		#84	T Latin capital letter t
+display \X0055 1367			#85	U Latin capital letter u
+display \X0056 12367		#86	V Latin capital letter v
+display \X0057 24567		#87	W Latin capital letter w
+display \X0058 13467		#88	X Latin capital letter x
+display \X0059 134567		#89	Y Latin capital letter y
+display \X005A 13567		#90	Z Latin capital letter z
+
+display \X005B 12356	#	91  [	left square bracket
+display \X005C 347		#	92	\	reverse solidus
+display \X005D 23456	# 93  ]	right square bracket
+display \X005E 4		# 94 ^	circumflex accent
+display \X005F 6		# 95 _	low line
+display \X0060 46		# 96 `	grave accent
+
+display \X0061 1			#97  a  Latin small letter a
+display \X0062 12			#98  b Latin small letter b
+display \X0063 14			#99  c Latin small letter c
+display \X0064 145		#100 d Latin small letter d
+display \X0065 15			#101 e Latin small letter e
+display \X0066 124		#102 f Latin small letter f
+display \X0067 1245		#103 g Latin small letter g
+display \X0068 125		#104 h Latin small letter h
+display \X0069  24		#105 i Latin small letter i
+display \X006A  245		#106 j Latin small letter j
+display \X006B 13			#107 k Latin small letter k
+display \X006C 123		#108 l Latin small letter l
+display \X006D 134		#109 m Latin small letter m
+display \X006E 1345		#110 n Latin small letter n
+display \X006F 135		#111 o Latin small letter o
+display \X0070 1234		#112 p Latin small letter p
+display \X0071 12345	#113 q Latin small letter q
+display \X0072 1235		#114 r Latin small letter r
+display \X0073 234		#115 s Latin small letter s
+display \X0074  2345	#116 t Latin small letter t
+display \X0075 136		#117 u Latin small letter u
+display \X0076 1236		#118 v Latin small letter v
+display \X0077  2456	#119 w Latin small letter w
+display \X0078 1346		#120 x Latin small letter x
+display \X0079 13456	#121 y Latin small letter y
+display \X007A 1356		#122 z Latin small letter z
+
+display \X007B  12356			# 123 {		left curly bracket
+display \X007C 456					# 124 |		vertical line
+display \X007D 23456			#	125 }		right curly bracket
+# display \X007E   2356     #	126 ~   tilde
+display \X007E  45				#	126 ~   tilde
+display \X007F 4					# 127	^		?delete
+
+#Hex Dots Dec Char Description
+display \X0080 48					# Eurosign
+display \X0081 18 # 129~A<control>
+display \X0082 128 # 130~Bbreak permitted here
+display \X0083 148 # 131~Cno break here
+display \X0084 1458 # 132~D<control>
+display \X0085 158 # 133~Enext line
+display \X0086 1248 # 134~Fstart of selected area
+display \X0087 12458 # 135~Gend of selected area
+display \X0088 1258 # 136~Hcharacter tabulation set
+display \X0089  248 # 137~Icharacter tabulation with justification
+display \X008A  2458 # 138~Jline tabulation set
+display \X008B 138 # 139~Kpartial line down
+display \X008C 1238 # 140~Lpartial line up
+display \X008D 1348 # 141~Mreverse line feed
+display \X008E 13458 # 142~Nsingle shift two
+display \X008F 1358 # 143~Osingle shift three
+display \X0090 12348 # 144~Pdevice control string
+display \X0091 123458 # 145~Qprivate use one
+display \X0092 12358 # 146~Rprivate use two
+display \X0093 2348 # 147~Sset transmit state
+display \X0094  23458 # 148~Tcancel character
+display \X0095 1368 # 149~Umessage waiting
+display \X0096 12368 # 150~Vstart of guarded area
+display \X0097  24568 # 151~Wend of guarded area
+display \X0098 13468 # 152~Xstart of string
+display \X0099 134568 # 153~Y<control>
+display \X009A 13568 # 154~Zsingle character introducer
+display \X009B  2468 # 155~[control sequence introducer
+display \X009C 12568 # 156~\string terminator
+display \X009D 124568 # 157~]operating system command
+display \X009E 458 # 158~^privacy message
+display \X009F 4568		# 159				~_application program command
+display \X00A0 0			#160			no-break space
+
+#Hex Dots Dec Char Description
+display \X0000 478 #0^@null
+display \X0001 178 #1^Astart of heading
+display \X0002 1278 #2^Bstart of text
+display \X0003 1478 #3^Cend of text
+display \X0004 14578 #4^Dend of transmission
+display \X0005 1578 #5^Eenquiry
+display \X0006 12478 #6^Facknowledge
+display \X0007 124578 #7^Gbell
+display \X0008 12578 #8^Hbackspace
+display \X0009  2478 #9^Ihorizontal tabulation
+display \X000A  24578 #10^Jline feed
+display \X000B 1378 #11^Kvertical tabulation
+display \X000C 12378 #12^Lform feed
+display \X000D 13478 #13^Mcarriage return
+display \X000E 134578 #14^Nshift out
+display \X000F 13578 #15^Oshift in
+display \X0010 123478 #16^Pdata link escape
+display \X0011 1234578 #17^Qdevice control one
+display \X0012 123578 #18^Rdevice control two
+display \X0013 23478 #19^Sdevice control three
+display \X0014  234578 #20^Tdevice control four
+display \X0015 13678 #21^Unegative acknowledge
+display \X0016 123678 #22^Vsynchronous idle
+display \X0017  245678 #23^Wend of transmission block
+#display \X0018 134678 #24^Xcancel
+display \X0019 1345678 #25^Yend of medium
+display \X001A 135678 #26^Zsubstitute
+display \X001B  24678 #27^[escape
+display \X001C 125678 #28^\file separator
+display \X001D 1245678 #29^]group separator
+display \X001E 4578 #30^^record separator
+display \X001F 45678 #31^_unit separator
+
+				#Hex	 Dots			Dec	Char	Description
+display \X00A1 23467  #	161 ¡			inverted exclamation mark
+display \X00A2 58			#162	¢			cent sign 
+display \X00A3 34567  # 163	£			pound sign
+display \X00A4 1467		# 164	¤			currency sign
+display \X00A5 123467 # 165	¥			yen sign
+display \X00A6 1567		# 166	¦			broken bar
+display \X00A7 346		# 167	§			section sign
+display \X00A8  57		# 168	¨			diaeresis
+display \X00A9  23567 # 169	©			copyright sign
+display \X00AA 8			# 170	ª			feminine ordinal indicator
+display \X00AB 1267		# 171	«			left-pointing double angle quotation mark
+display \X00AC  2567  # 172	¬			not sign
+display \X00AD 367		# 173	­			soft hyphen
+display \X00AE  2367  # 174	®			registered sign
+display \X00AF  267		# 175	¯			macron
+display \X00B0 3567		# 176	°			degree sign
+
+display \X00C0  23578		# 192		À		Latin capital letter a with grave
+display \X00C1	1678		# 193		Á		Latin capital letter a with acute
+display \X00C2	1678		# 194		Â		Latin capital letter a with circumflex
+display \X00C3	578 # 195Ã Latin capital letter a with tilde
+display \X00C4	1234678 # 196Ä Latin capital letter a with diaeresis
+display \X00C5	34578 # 197Å Latin capital letter a with ring above
+display \X00C6	378 # 198Æ Latin capital letter ae
+display \X00C7	34678 # 199Ç Latin capital letter c with cedilla
+display \X00C8  23567		#	200		È		Latin capital letter e with grave
+display \X00C9	12678		# 201É Latin capital letter e with acute
+display \X00CA  2378	# 202		Ê		Latin capital letter e with circumflex
+display \X00CB 12345678 # 203Ë Latin capital letter e with diaeresis
+display \X00CC  23678 # 204Ì Latin capital letter i with grave
+display \X00CD 14678 # 205Í Latin capital letter i with acute
+display \X00CE  2578	# 206		Î		Latin capital letter i with circumflex
+display \X00CF 1235678 # 207Ï Latin capital letter i with diaeresis
+display \X00D0 678 # 208Ð Latin capital letter eth
+display \X00D1 4678 # 209Ñ Latin capital letter n with tilde
+display \X00D2 3578 # 210Ò Latin capital letter o with grave
+display \X00D3 145678 # 211Ó Latin capital letter o with acute
+display \X00D4  25678 # 212		Ô		Latin capital letter o with circumflex
+display \X00D5  5678 # 213Õ Latin capital letter o with tilde
+display \X00D6  234678 # 214Ö Latin capital letter o with diaeresis
+display \X00D7 167  # 215×multiplication sign
+display \X00D8 3478 # 216Ø Latin capital letter o with stroke
+display \X00D9 35678 # 217Ù Latin capital letter u with grave
+display \X00DA 15678 # 218Ú Latin capital letter u with acute
+display \X00DB  2678	# 219		Û		Latin capital letter u with circumflex
+display \X00DC  2345678 # 220Ü Latin capital letter u with diaeresis
+display \X00DD 124678 # 221Ý Latin capital letter y with acute
+display \X00DE 3678 # 222Þ Latin capital letter thorn
+display \X00DF 345678 # 223ß Latin small letter sharp s
+display \X00E0  2358 # 224à Latin small letter a with grave
+display \X00E1 168 # 225á Latin small letter a with acute
+display \X00E2	168		# 226		â		Latin small letter a with circumflex
+display \X00E3 58 # 227ã Latin small letter a with tilde
+display \X00E4 345 # 228ä Latin small letter a with diaeresis
+display \X00E5 16						# 229å Latin small letter a with ring above
+display \X00E6 38 # 230æ Latin small letter ae
+display \X00E7 3468 # 231ç Latin small letter c with cedilla
+display \X00E8  23568 # 232è Latin small letter e with grave
+display \X00E9 123456					# 233é Latin small letter e with acute
+display \X00EA  238		# 234		ê		Latin small letter e with circumflex
+display \X00EB 1234568 # 235ë Latin small letter e with diaeresis
+display \X00EC  2368 # 236ì Latin small letter i with grave
+display \X00ED 1468 # 237í Latin small letter i with acute
+display \X00EE  258		# 238		î		Latin small letter i with circumflex
+display \X00EF 123568 # 239ï Latin small letter i with diaeresis
+display \X00F0 68 # 240ð Latin small letter eth
+display \X00F1 468 # 241ñ Latin small letter n with tilde
+display \X00F2 358 # 242ò Latin small letter o with grave
+display \X00F3 14568 # 243ó Latin small letter o with acute
+display \X00F4  2568	# 244		ô		Latin small letter o with circumflex
+display \X00F5  568 # 245õ Latin small letter o with tilde
+display \X00F6  246 # 246ö Latin small letter o with diaeresis
+display \X00F7 347  # 247÷division sign
+display \X00F8 348 # 248ø Latin small letter o with stroke
+display \X00F9 3568 # 249ù Latin small letter u with grave
+display \X00FA 1568 # 250ú Latin small letter u with acute
+display \X00FB  268		# 251		û		Latin small letter u with circumflex
+display \X00FC 1256				# 252 ü Latin small letter u with diaeresis
+display \X00FD 12468 # 253ý Latin small letter y with acute
+display \X00FE 368 # 254þ Latin small letter thorn
+display \X00FF 34568 # 255ÿ Latin small letter y with diaeresis
+
+
+display \X00BB 3457  # 187»right-pointing double angle quotation mark
+display \X00B9  27  # 185¹superscript one
+display \X00B2 237  # 178²superscript two
+display \X00B3 257  # 179³superscript three
+display \X00B1 3467  # 177±plus-minus sign
+display \X00D7 167  # 215×multiplication sign
+
+display \X00B7 467  # 183·middle dot
+
+display \X00BF 14567  # 191¿inverted question mark
+
+
+display \X00B6  2357  # 182¶pilcrow sign
+
+
+#Hex Dots Dec Char Description
+display \X00BC 123567  # 188¼vulgar fraction one quarter
+display \X00BD 1234567  # 189½vulgar fraction one half
+display \X00BE  234567  # 190¾vulgar fraction three quarters
+
+# Each of the three extended accent characters is the same as its conventional
+# compose character but with dot7 added:
+
+#Hex Dots Dec Char Description
+display \X00B4 37  # 180´acute accent
+display \X00B8 67  # 184¸cedilla
+
+
+# The two gender symbols are:
+
+#Hex Dots Dec Char Description
+display \X00BA 7  # 186ºmasculine ordinal indicator
+
+
+# The three remaining characters are:
+
+#Hex Dots Dec Char Description
+
+display \X00B5  567  # 181µmicro sign
+
+
+# The nonbreaking space is dots 7 and 8 because this presents a sequence of
+# nonbreaking spaces as a smooth low line segment.
+
+#Hex Dots Dec Char Description
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb
new file mode 100644
index 0000000..2518ba5
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb
@@ -0,0 +1,175 @@
+# Slovak Braille Table
+# Created by Mike Sivill #<mike.sivill@viewplus.com>
+
+#**** Display Codes
+ include text_nabcc.dis
+
+#**** Character Definitions
+space \s 0 blank
+space \t 9 tab
+space \x000a 0 newline
+space \x000c 0
+space \x000d 0 carriage return
+space \x001b 1b escape character for html back-translation
+space \x00A0 a NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE 
+include loweredDigits6Dots.uti
+
+include latinLetterDef8Dots.uti
+
+punctuation ( 12356
+punctuation } 12456
+punctuation ] 124567
+punctuation ? 1456
+punctuation : 156
+punctuation ) 23456
+punctuation ! 2346
+punctuation { 246
+punctuation [ 2467
+punctuation ' 3
+punctuation - 36
+punctuation . 46
+punctuation " 5
+punctuation ; 56
+punctuation , 6
+sign & 12346
+sign $ 1246
+sign | 1256
+sign \\ 12567
+sign % 146
+sign * 16
+sign # 3456
+punctuation ` 4
+sign _ 456
+sign ^ 457
+sign @ 47
+math = 123456
+math < 126
+math / 34
+math > 345
+math + 346
+math ~ 45
+
+
+# Miscellaneous
+math \x00B1 346-36 PLUS-MINUS SIGN PLUS-OR-MINUS SIGN 
+math \x00B7 16 MIDDLE DOT 
+math \x00BC 1456-2-34-256-3456 VULGAR FRACTION ONE QUARTER No 0031 2044 
+math \x00BD 1456-2-34-23-3456 VULGAR FRACTION ONE HALF No 0031 2044 0032 
+math \x00BE 1456-25-34-23-3456 VULGAR FRACTION THREE QUARTERS No 0033 
+math \x00D7 4-16 MULTIPLICATION SIGN 
+math \x00F7 46-34 DIVISION SIGN 
+punctuation \x0092 3
+punctuation \x0097 36-36
+punctuation \x00A1 235 INVERTED EXCLAMATION MARK 
+punctuation \x00ad 36
+punctuation \x00BF 236 INVERTED QUESTION MARK 
+punctuation \x2011 36
+punctuation \x2013 36-36
+punctuation \x2014 36-36
+punctuation \x2018 6-236
+punctuation \x2019 3
+punctuation \x2019 356-3
+punctuation \x201c 236
+punctuation \x201d 356
+punctuation \x2026 3
+sign \x2122 45-2345 trademark sign
+sign \x00A2 4-14 CENT SIGN 
+sign \x00A3 3456 POUND SIGN 
+sign \x00A4 1246 CURRENCY SIGN 
+sign \x00A7 4-234 SECTION SIGN 
+sign \x00A9 45-14 COPYRIGHT SIGN 
+sign \x00AE 45-1235 REGISTERED SIGN REGISTERED TRADE MARK SIGN 
+sign \x00B0 56-145-1245 DEGREE SIGN 
+sign \x00B4 b4 ACUTE ACCENT 0020 0301 SPACING ACUTE 
+sign \x00B5 46-134 MICRO SIGN 03BC 039C 039C
+sign \x00A5 4-13456 YEN SIGN 
+punctuation \x00A6 456-1256 BROKEN BAR BROKEN VERTICAL BAR 
+# sign \x00A8 DIAERESIS 0020 0308 SPACING DIAERESIS 
+# sign \x00AA FEMININE ORDINAL INDICATOR 0061 
+# punctuation \x00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK LEFT 
+# sign \x00AC NOT SIGN 
+# sign \x00AF MACRON 0020 0304 SPACING MACRON 
+# math \x00B2 SUPERSCRIPT TWO 0032 2 2 SUPERSCRIPT DIGIT TWO 
+# math \x00B3 SUPERSCRIPT THREE 0033 3 3 SUPERSCRIPT DIGIT THREE 
+sign \x00B6 1234-345 PILCROW SIGN PARAGRAPH SIGN 
+# sign \x00B8 CEDILLA 0020 0327 SPACING CEDILLA 
+# math \x00B9 SUPERSCRIPT ONE 0031 1 1 SUPERSCRIPT DIGIT ONE 
+sign \x00BA 145-1245 MASCULINE ORDINAL INDICATOR 006F 
+# punctuation \x00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK Pf Y 
+
+punctuation \x2010 36			# 8208  hyphen
+punctuation	\x201F 356		# 8223	smart double high reverse quotation mark
+punctuation	\x201E 236		# 8222	smart double low quotation mark
+
+
+# Numbers
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+# Alphabet
+uplow \x00C1\x00E1 16
+uplow \x010C\x010D 146 c with caron
+uplow \x010E\x010F 1456 D with caron
+uplow \x00C9\x00E9 345
+uplow \x00C4\x00E4 4 a with daeresis
+uplow \x00CD\x00ED 34 I with acute
+uplow \x013B\x013C 46 l with cedilla
+uplow \x013D\x013E 456 l with caron
+uplow \X0139\X013A 46 l with acute
+uplow \x0147\x0148 1246 n with caron
+uplow \x00D3\x00f3 246 O with acute
+uplow \X00D4\x00F4 23456 o with circumflex
+ uplow \x0154\x0155 12356 r with acute
+uplow \x0160\x0161 156 s with caron
+uplow \x0164\x0165 1256 t with caron
+uplow \X00DA\X00FA 346 U WITH ACUTE
+uplow  \x00DD\x00FD 12346 Y WITH ACUTE
+include latinLetterDef6Dots.uti
+uplow \x017d\x017E 2346 z with caron
+
+#**** Braille Indicators
+numsign 3456
+capsign 6
+begcaps 6-6
+
+# Punctuation
+punctuation ! 235
+punctuation " 2356
+punctuation ' 3
+punctuation ( 236
+punctuation ) 356
+midnum * 35
+math + 235
+punctuation , 2
+punctuation - 36
+punctuation . 256
+punctuation / 25
+punctuation : 25
+punctuation * 0-3
+punctuation ; 23
+math < 126
+math > 345
+math = 2356
+punctuation ? 26
+punctuation [ 6-236
+punctuation  ] 6-356
+always \\ 3456-1256
+punctuation { 5-236
+punctuation } 5-356
+always _ 456
+always | 3456-123
+always ~ 56-26
+always # 56-3456
+always $ 3456-1246
+always & 3456-12346
+always @ 3456-12456
+always % 3456-1234
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb b/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb
new file mode 100644
index 0000000..49bc5f4
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb
@@ -0,0 +1,341 @@
+# Slovene braille translation table
+# by Mike Sivill
+# <Mike.Sivill@viewplus.com>
+
+include text_nabcc.dis Alldisplay opcodes
+
+
+# ----------- define all chars --------------------------------------
+
+space \t 0
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+replace \x0007
+punctuation ! 2346				# 33
+punctuation " 5						# 34
+sign # 3456								# 35
+sign $ 1246								# 36
+sign % 146								# 37
+sign & 12346							# 38
+punctuation ' 3						# 39 apostrophe
+punctuation ( 12356				# 40
+punctuation ) 23456				# 41
+sign * 16									# 42
+math + 346								# 43
+punctuation , 6						# 44
+punctuation - 36					# 45
+punctuation . 46					# 46
+math / 34									# 47
+include loweredDigits6Dots.uti
+punctuation : 156					# 58
+punctuation ; 56					# 59
+math < 126								# 60
+math = 2356
+math > 345								# 62
+punctuation ? 1456				# 63
+sign @ 47									# 64
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 2467				# 91
+sign \\ 12567							# 92
+punctuation ] 124567			# 93
+sign ^ 457								# 94 circumflex accent
+sign _ 456								# 95 underscore
+sign ` 4									# 96 grave accent
+# a - z										# 97 - 122
+punctuation { 246					# 123
+sign | 1256								# 124
+punctuation } 12456				# 125
+math ~ 45									# 126
+
+space \X00A0 0						# 160 no-break space
+sign \x00A2 4-14					# 162 ¢ cents sign
+sign \x00A3 4-123					# 163 £ pounds sign
+sign \x20A4 4-123  # lira sign
+sign \x00A5 4-13456				#	165 ¥ yen sign
+sign § 4-234-3                                          # 167 
+begnum § 234-3						# 167
+always § 4-234-3                                          # 167 
+sign \x2022 36-36-0 # bullet
+sign \x00A9 45-14 # 169        © copyright sign
+sign \x00AE 45-1235    # Registered
+sign \x2665 2356-125-15-345-2345-2356 # heart symbol
+sign \x21FD 246-25-25 # LEFTWARDS OPEN-HEADED ARROW 
+sign \x21FE 25-25-135 # RIGHTWARDS OPEN-HEADED ARROW 
+sign \x21FF 246-25-25-135 # LEFT RIGHT OPEN-HEADED ARROW 
+always \x21FD 246-25-25 # LEFTWARDS OPEN-HEADED ARROW 
+always \x21FE 25-25-135 # RIGHTWARDS OPEN-HEADED ARROW 
+always \x21FF 246-25-25-135 # LEFT RIGHT OPEN-HEADED ARROW 
+sign \x00BA 145-1245 MASCULINE ORDINAL INDICATOR 006F 
+punctuation \x00Ad 36			# 173	  soft hyphen
+sign \x00B0 56-145-1245 degrees
+sign \x00B4 4
+always \x00B4 4 # acute accent sign
+sign \x00B5 2-134 # micro sign, (mu)
+sign \x00B6 4-1234-345		#	182	  ¶ pilcrow sign
+math \x00D7 4-16				# 215		× multiplication sign
+midnum \x00D7 4-16
+
+math \x00F7 46-34                              # 247           ÷ division sign
+midnum \x00F7 46-34
+punctuation \x2010 36			# 8208  hyphen
+punctuation \x2011 23478	# 8209  non-breaking hyphen
+
+punctuation \x2013 36-36		# 8211	en dash
+punctuation \x2014 36-36		# em dash
+punctuation	\x2018 6-236			# 8216	smart single left quotation mark
+punctuation	\x2019 356-3			# 8217	smart single right quotation mark
+
+punctuation	\x201C 236		# 8220	smart opening double quote
+punctuation	\x201D 356		# 8221	smart closing double quote
+punctuation	\x201E 236		# 8222	smart double low quotation mark
+punctuation	\x201F 356		# 8223	smart double high reverse quotation mark
+
+punctuation \x2026 3-3-3	# 8230 smart ellipsis
+sign \x20AC 4-15					# 8364 Euro sign anywhere else
+
+# --------------------------- end definitions ---------------------------------
+
+include countries.cti
+
+
+# Braille indicators
+numsign 3456  number sign, just a dots operand
+capsign 46
+
+# the decimal digits
+litdigit 1 1
+litdigit 2 12
+litdigit 3 14
+litdigit 4 145
+litdigit 5 15
+litdigit 6 124
+litdigit 7 1245
+litdigit 8 125
+litdigit 9 24
+litdigit 0 245
+
+
+# special accented chars 
+uplow \x0160\x0161 156
+uplow \x010C\x010D 16
+uplow \x0106\x0107 146
+uplow \x017D\x017E 2346
+uplow \x00D0\x00F0 1456
+
+
+# accented letters
+
+uplow \x00C0\x00E0 1				# a with grave
+uplow \x00C1\x00E1 1				# a with acute
+uplow \x00C2\x00E2 1				# a with circumflex
+uplow \x00C3\x00E3 1				# a with tilde
+uplow \x00C4\x00E4 1				# a with dieresis
+uplow \x00C5\x00E5 1				# a with ring above
+uplow \x00C6\x00E6 1				# letter ae
+uplow \x00C7\x00E7 14				# c with cedilla
+uplow \x00C8\x00E8 15				# e with grave
+uplow \x00C9\x00E9 15				# e with acute
+uplow \x00CA\x00EA 15				# e with circumflex
+uplow \x00CB\x00EB 15				# e with dieresis
+uplow \x00CC\x00EC 24				# i with grave above
+uplow \x00CD\x00ED 24				# i with acute above
+uplow \x00CE\x00EE 24				# i with circumflex
+uplow \x00CF\x00EF 24				# i with dieresis
+uplow \x00D0\x00F0 15				# letter eth
+uplow \x00D1\x00F1 1345			# n with tilde
+uplow \x00D2\x00F2 135			# o with grave above
+uplow \x00D3\x00F3 135			# o with acute above
+uplow \x00D4\x00F4 135			# o with circumflex
+uplow \x00D5\x00F5 135			# o with tilde
+uplow \x00D6\x00F6 135			# o with dieresis
+# \x00D7	× multiplication sign	----------------------
+uplow \x00D8\x00F8 135			# o with stroke
+uplow \x00D9\x00F9 136			# u with grave above
+uplow \x00DA\x00FA 136			# u with acute above
+uplow \x00DB\x00FB 136			# u with circumflex above
+uplow \x00DC\x00FC 136				# u with dieeresis
+uplow \x00DD\x00FD 13456		# y with acute above
+uplow \x00DE\x00FE 4-1456                 # letter thorn
+letter \x00DF 2346		# small sharp s
+uplow \x0174\x0175 4-2456 w with circumflex
+uplow \x0176\x0177 4-13456 # y with circumflex
+uplow \x0178\x00ff 4-13456 # y with diaeresis
+uplow \x1ef2\x1ef3 4-13456 # y with grave
+largesign \x00C0 4-1      [C0] upper a grave
+largesign \x00E0   4-1      [E0] lower a grave
+largesign \x00C1 4-1      [C1] upper a acute
+largesign \x00E1   4-1      [E1] lower a acute
+largesign \x00C2 4-1      [C2] upper a circumflex
+largesign \x00E2   4-1      [E2] lower a circumflex
+largesign \x00C3 4-1      [C3] upper a tilde
+largesign \x00E3   4-1      [E3] lower a tilde
+largesign \x00C4 4-1      [C4] upper a dieresis
+largesign \x00E4   4-1      [E4] lower a dieresis
+
+largesign \x00C5 4-1      [C5] upper a ring
+largesign \x00E5   4-1      [E5] lower a ring
+
+largesign \x00C6 1-15     [C6] upper ae
+largesign \x00E6   1-15			[E6] lower ae
+
+largesign \x00C7 4-14     [C7] upper c cedilla
+largesign \x00E7   4-14     [E7] lower c cedilla
+
+largesign \x00C8 4-15     [C8] upper e grave
+largesign \x00E8   4-15     [E8] lower e grave
+
+largesign \x00C9 4-15     [C9] upper e acute
+largesign \x00E9   4-15     [E9] lower e acute
+
+largesign \x00CA 4-15     [CA] upper e circumflex
+largesign \x00EA   4-15     [EA] lower e circumflex
+
+largesign \x00CB 4-15     [CB] upper e dieresis
+largesign \x00EB   4-15     [EB] lower e dieresis
+
+largesign \x00CC 4-24     [CC] upper i grave
+largesign \x00EC   4-24     [EC] lower i grave
+
+largesign \x00CD 4-24     [CD] upper i acute
+largesign \x00ED   4-24     [ED] lower i acute
+
+largesign \x00CE 4-24     [CE] upper i circumflex
+largesign \x00EE   4-24     [EE] lower i circumflex
+
+largesign \x00CF 4-24     [CF] upper i dieresis
+largesign \x00EF   4-24     [EF] lower i dieresis
+
+largesign \x00D0 4-15     [D0] upper eth
+largesign \x00F0   4-15     [F0] lower eth
+
+largesign \x00D1 4-1345   [D1] upper n tilde
+largesign \x00F1   4-1345   [F1] lower n tilde
+
+largesign \x00D2 4-135    [D2] upper o grave
+largesign \x00F2   4-135    [F2] lower o grave
+
+largesign \x00D3 4-135    [D3] upper o acute
+largesign \x00F3   4-135    [F3] lower o acute
+
+largesign \x00D4 4-135    [D4] upper o circumflex
+largesign \x00F4   4-135    [F4] lower o circumflex
+
+largesign \x00D5 4-135    [D5] upper o tilde
+largesign \x00F5   4-135    [F5] lower o tilde
+
+largesign \x00D6 4-135    [D6] upper o dieresis
+largesign \x00F6   4-135			[F6] lower o dieresis
+
+largesign \x00D8 4-135    [D8] upper o slash
+largesign \x00f8   4-135    [F8] lower o slash
+
+largesign \x00D9 4-136    [D9] upper u grave
+largesign \x00F9   4-136    [F9] lower u grave
+
+largesign \x00DA 4-136    [DA] upper u acute
+largesign \x00FA   4-136    [FA] lower u acute
+
+largesign \x00DB 4-136    [DB] upper u circumflex
+largesign \x00FB   4-136    [FB] lower u circumflex
+
+largesign \x00DC 4-136    [DC] upper u dieresis
+largesign \x00FC   4-136    [FC] lower u dieresis
+
+largesign \x00DD 4-13456  [DD] upper y acute
+largesign \x00FD   4-13456  [FD] lower y acute
+
+largesign \x00DE 4-2345   [DE] upper t horn
+largesign \x00FE   4-2345   [FE] lower t horn
+
+largesign \x00DF 234-234 (DF) lower ss
+
+largesign \x0174 4-2456 lower w circumflex
+largesign \x0175 4-2456 upper w circumflex
+
+letter \x0176 4-13456 upper y circumflex
+letter \x0177 4-13456 lower y circumflex
+
+largesign \x0178 4-13456 upper y with dieresis
+largesign \x00FF 4-13456 lower y with dieresis
+
+largesign \x1EF2 4-13456 upper y with grave
+largesign \x1EF3 4-13456 lower y with grave
+
+# punctuation
+prepunc ( 236
+postpunc ) 356
+begword ` 6-236
+prepunc " 2356
+postpunc " 2356
+prepunc ' 6-236
+postpunc ' 356-3
+sign # 456-1456  #  Pound, number sign, hash
+always # 456-1456
+sign \x20AC 4-15       # euro sign atend  of number
+midnum , 2
+postpunc , 2
+decpoint . 256
+midnum - 36
+hyphen - 36
+#capsnocont
+postpunc . 256
+postpunc ; 23
+midnum : 25
+postpunc : 25
+postpunc ! 235
+midnum / 34
+always / 34
+always < 5-13
+always > 46-2
+punctuation ? 26
+sign % 123456
+endnum % 123456
+midnum ^ 45
+always ^ 45
+always ~ 456-45
+always & 12346
+midnum * 35
+midnum + 235
+always * 35-35
+midword \x2019 3	# stupid smart apostrophe
+always [ 156
+always ] 146
+always { 56-236
+always } 56-356
+prepunc ` 6-236
+always @ 4-1-2345
+always \\ 456-16
+always | 456-1256
+repeated \s 0
+repeated \t 0
+always \s-\s 36-36
+always ... 3-3-3
+always .\s.\s. 3-3-3 . . .
+begnum $ 46
+always $ 4-256
+endword (s) 2356-234-2356
+
+# Vulgar Fractions
+sign \x00BD 3456-1-34-12 # one half
+sign \x00BC 3456-1-34-145 # one fourth
+sign \x00BE 3456-14-34-145 # three fourths
+sign \x2153  3456-1-34-14 # one third
+sign \x2154  3456-12-34-14 # two thirds
+sign \x215B 3456-1-34-125 # one eighth
+sign \x215C 3456-14-34-125 # three eighths
+sign \x215D 3456-15-34-125 # five eighths
+sign \x215E  3456-1245-34-125 # seven eighths
+
+sign \x00B1 346-36 # plus or minus
+sign \x00B2 45-23
+sign \x00B3 45-25
+postpunc \x00B2 45-23-456
+sign \x00B3 45-25-456
+always \x00B2 45-23
+always \x00B2 45-25
+always \x00BA 56-145-1245
+sign \x2122 45-2345   # trade mark symbol
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti
new file mode 100644
index 0000000..7fd9ddd
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti
@@ -0,0 +1,170 @@
+#
+#  Copyright (C) 2011 by Peter Engström <peter.engstrom@indexbraille.com>
+#  Copyright (C) 2011 by Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# -----------------------------------------------------------------------------
+#
+# 	SERBIAN
+#	=======
+# 	Authors:	Peter Engström, Index Braille <peter.engstrom@indexbraille.com>
+#				Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+# 	Date: 		Note:
+#	2011-03-28	Initial release
+#	2011-04-04	Added more signs.
+#
+#---------------------------------------------------------------------------------------
+
+#--------------------- ALL CHARS DEFINITIONS -------------------------------------------
+
+space \t 0 tab            			# HORIZONTAL TABULATION
+space \s 0 blank					# SPACE
+space \X00A0 0						# NO-BREAK SPACE
+
+punctuation ! 235					# EXCLAMATION MARK
+sign + 235							# PLUS SIGN
+midnum + 235						# PLUS SIGN
+punctuation ? 26					# QUESTION MARK
+punctuation . 256					# FULL STOP
+sign \x2026 3-3-3					# HORIZONTAL ELLIPSIS
+punctuation , 2						# COMMA
+punctuation ;	23					# SEMICOLON
+punctuation : 25					# COLON
+punctuation ­ 36					# HYPHEN-MINUS
+punctuation ' 3	  					# APOSTROPHE
+punctuation *	35					# ASTERISK
+sign / 34							# SOLIDUS
+sign \\ 16							# REVERSE SOLIDUS
+punctuation ( 2356					# LEFT PARENTESIS
+punctuation ) 2356					# RIGHT PARENTESIS
+punctuation " 2356					# QUOTATION MARK
+punctuation \x201E 236				# DOUBLE LOW-9 QUOTATION MARK
+punctuation \x201C 356				# LEFT DOUBLE QUOTATION MARK
+
+
+
+
+sign # 3456							# NUMBER SIGN
+sign $ 256							# DOLLAR SIGN
+sign & 4-12346						# AMPERSAND
+sign < 5-246						# LESS-THAN SIGN
+sign = 2356							# EQUAL SIGN
+sign > 135-2						# GREATER-THAN SIGN
+sign @ 345							# COMMERCIAL AT
+punctuation [ 2356-3				# LEFT SQUARE BRACKET
+punctuation ] 6-2356				# RIGHT SQUARE BRACKET
+sign ^ 56							# CIRCUMFLEX ACCENT
+sign _ 6-36							# LOW LINE (UNDERSCORE)
+sign ` 4							# GRAVE ACCENT
+punctuation { 2356-23				# LEFT CURLY BRACKET
+sign | 4-123						# VERTICAL LINE
+punctuation } 56-2356				# RIGHT CURLY BRACKET
+sign ~ 56							# TILDE
+sign \x00A2 4						# CENT SIGN
+sign \x00A3 6-123					# POUND SIGN
+sign \x00A4 2356-1236-2356			# CURRENCY SIGN
+sign \x00A7 346						# PARAGRAPH SIGN
+sign \x00A9 12356-14-23456			# COPYRIGHT
+punctuation \x00AB 2346-14-3		# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+sign \x00B0 356						# DEGREE SIGN
+sign % 3456-245-356					# PERCENT SIGN
+sign \x2030	3456-245-356-356		# PER MILL SIGN
+sign \x00B2 34-23					# SUPERSCRIPT 2 SIGN
+sign \x00B3 34-25					# SUPERSCRIPT 3 SIGN
+sign \x00B9 34-2					# SUPERSCRIPT 1 SIGN
+punctuation \x00BB 6-2356-2356		# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+sign \x00BC 3456-1-1256-145			# VULGAR FRACTION ONE QUARTER
+sign \x00BD 3456-1-1256-12			# VULGAR FRACTION ONE HALF
+sign \x00BE 3456-14-1256-145		# VULGAR FRACTION 3 QUARTERS
+math \x00D7 56-36 					# MULTIPLICATION SIGN
+math \x00F7 1256 					# DIVISION SIGN
+
+#------------- NOT ASSIGNED ---------------------------------- 
+#sign \x00A5 45-13456					# YEN SIGN
+#sign \x00B4 1256						# ACUTE ACCENT
+#sign \x00B5 46-134						# µ MICRO SIGN
+#sign \x00B6 4-1234-345					# ¶ PILCROW SIGN
+#uplow	\x00D3\x00F3 346				# LATIN CAPITAL LETTER O WITH ACUTE
+
+
+include digits6Dots.uti
+
+include latinLetterDef6Dots.uti
+uplow \x010C\x010D 16				# LATIN LETTER C WITH CARON
+uplow \x0106\x0107 146				# LATIN LETTER C WITH ACUTE
+uplow \x0110\x0111 1456				# LATIN LETTER D WITH STROKE
+uplow \x0160\x0161 156				# LATIN LETTER S WITH CARON
+uplow \x017D\x017E 2346				# LATIN LETTER Z WITH CARON
+uplow \x008E\x009E 2346				# LATIN LETTER Z WITH CARON (ASCII)
+
+
+#uplow \x00C0\x00E0 				# LATIN LETTER A WITH GRAVE
+#uplow \x00C8\x00E8 				# LATIN LETTER E WITH GRAVE
+#uplow \x00C9\x00E9 				# LATIN LETTER E WITH ACUTE
+#uplow \x00CC\x00EC 				# LATIN LETTER I WITH GRAVE
+#uplow \x00D2\x00F2 				# LATIN LETTER O WITH GRAVE
+#uplow \x00DA\x00FA 				# LATIN LETTER U WITH ACUTE
+
+
+#-------- SERBIAN CYRILLIC LETTERS -----------------------------------------------------
+
+
+uplow \x0410\x0430 1				# CYRILLIC LETTER A
+uplow \x0411\x0431 12				# CYRILLIC LETTER BE
+uplow \x0426\x0446 14				# CYRILLIC LETTER TSE
+uplow \x0427\x0447 16				# CYRILLIC LETTER CHE
+uplow \x040B\x045B 146				# CYRILLIC LETTER TSHE
+uplow \x0414\x0434 145				# CYRILLIC LETTER DE
+uplow \x040F\x045F 12456			# CYRILLIC LETTER DZHE
+uplow \x0402\x0452 1456				# CYRILLIC LETTER DJE
+uplow \x0415\x0435 15				# CYRILLIC LETTER IE
+uplow \x0424\x0444 124				# CYRILLIC LETTER EF
+uplow \x0413\x0433 1245				# CYRILLIC LETTER GHE
+uplow \x0425\x0445 124				# CYRILLIC LETTER HA
+uplow \x0418\x0438 24				# CYRILLIC LETTER I
+uplow \x0408\x0458 245				# CYRILLIC LETTER JE
+uplow \x041A\x043A 13				# CYRILLIC LETTER KA
+uplow \x041B\x043B 123				# CYRILLIC LETTER EL
+uplow \x0409\x0459 126				# CYRILLIC LETTER LJE
+uplow \x041C\x043C 134				# CYRILLIC LETTER EM
+uplow \x041D\x043D 1345				# CYRILLIC LETTER EN
+uplow \x040A\x045A 1246				# CYRILLIC LETTER NJE
+uplow \x041E\x043E 135				# CYRILLIC LETTER O
+uplow \x041F\x043F 1234				# CYRILLIC LETTER PE
+uplow \x0420\x0440 1235				# CYRILLIC LETTER ER
+uplow \x0421\x0441 234				# CYRILLIC LETTER ES
+uplow \x0428\x0448 156				# CYRILLIC LETTER SHA
+uplow \x0422\x0442 2345				# CYRILLIC LETTER TE
+uplow \x0423\x0443 136				# CYRILLIC LETTER U
+uplow \x0412\x0432 1236				# CYRILLIC LETTER VE
+uplow \x0417\x0437 1356				# CYRILLIC LETTER ZE
+uplow \x0416\x0436 2346				# CYRILLIC LETTER ZHE
+
+
+#uplow \x0419\x0439 12346			# CYRILLIC LETTER SHORT I
+#uplow \x0429\x0449 1346			# CYRILLIC LETTER SHCHA
+#uplow \x042A\x044A 12356			# CYRILLIC LETTER HARD SIGN
+#uplow \x042B\x044B 2346			# CYRILLIC LETTER YERU
+#uplow \x042C\x044C 23456			# CYRILLIC LETTER SOFT SIGN
+#uplow \x042D\x044D 246				# CYRILLIC LETTER E
+#uplow \x042E\x044E 1256			# CYRILLIC LETTER YU
+#uplow \x042F\x044F 1246 			# CYRILLIC LETTER YA
+#uplow \x0401\x0451 16 				# CYRILLIC LETTER IO
+
+#---------------------------------------------------------------------------------------
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb
new file mode 100644
index 0000000..8e0157d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb
@@ -0,0 +1,37 @@
+#
+#  Copyright (C) 2011 by Peter Engström <peter.engstrom@indexbraille.com>
+#  Copyright (C) 2011 by Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# -----------------------------------------------------------------------------
+#
+# 	SERBIAN
+#	=======
+# 	Authors:	Peter Engström, Index Braille <peter.engstrom@indexbraille.com>
+#				Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+# 	Date: 		Note:
+#	2011-03-28	Initial release
+#
+# ---------------------------------------------------------------------------------------
+
+include sr-chardefs.cti
+include braille-patterns.cti
+include sr-translation.ctb
+
+# ---------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb
new file mode 100644
index 0000000..c3dfd8d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb
@@ -0,0 +1,110 @@
+#
+#  Copyright (C) 2011 by Peter Engström <peter.engstrom@indexbraille.com>
+#  Copyright (C) 2011 by Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+#  This file is part of liblouis.
+#
+#  liblouis is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as
+#  published by the Free Software Foundation, either version 3 of the
+#  License, or (at your option) any later version.
+#
+#  liblouis is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with liblouis. If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+# -----------------------------------------------------------------------------
+#
+# 	SERBIAN
+#	=======
+# 	Authors:	Peter Engström, Index Braille <peter.engstrom@indexbraille.com>
+#				Monk Jeremiah, Manastir Decani <visokidecani@gmail.com>
+#
+# 	Date: 		Note:
+#	2011-03-28	Initial release
+#
+# ---------------------------------------------------------------------------------------
+
+numsign 3456								# number sign
+capsign 46
+begcaps 4-6
+
+
+prepunc `` 236
+
+repeated \s 0
+repeated \t 0
+repeated \x00a0 0 							# no break space
+
+repeated ... 256-256-256
+
+
+always \s­\s 36-36
+always \s­\scom 36-36-14-135-134
+
+always ... 256-256-256
+always .\s.\s. 256-256-256 . . .
+#always \s­\s 36-36
+
+#----------- SPECIAL SYLLABLES ------------------------------------------------
+always \x0044\x017D 12456			# LATIN CAPITAL LETTER D + LATIN CAPITAL LETTER Z WITH CARON
+always \x0044\x017E 12456			# LATIN CAPITAL LETTER D + LATIN SMALL LETTER Z WITH CARON
+always \x0064\x017E 12456			# LATIN SMALL LETTER D + LATIN SMALL LETTER Z WITH CARON
+always LJ 126						# LJ
+always Lj 126						# Lj
+always lj 126						# lj
+always NJ 1246						# NJ
+always Nj 1246						# Nj
+always nj 1246						# nj
+#-----------------------------------------------------------------------------
+
+#----------- SPECIAL WORDS ---------------------------------------------------
+word injekc 24-1345-245-15-13-14
+word injekt 24-1345-245-15-13-2345
+word konjunk 13-135-1345-245-136-1345-13
+word konjug 13-135-1345-245-136-1245
+word nad¾iv 1345-1-145-2346-24-1236
+word od¾iv 135-145-2346-24-1236
+word pred¾ivot 1234-1235-15-145-2346-24-1236-135-2345
+word tanjug 2345-1-1345-245-136-1245
+#-----------------------------------------------------------------------------
+
+# mathematical symbols
+midnum ­ 36
+endnum % 3456-245-356 #46
+
+
+# special character sequences
+literal :// URLs
+literal www.
+
+literal .com
+literal .edu
+literal .gov
+literal .mil
+literal .net
+literal .org
+
+literal .doc
+literal .htm
+literal .html
+literal .tex
+literal .txt
+
+literal .gif
+literal .jpg
+literal .png
+literal .wav
+
+literal .tar
+literal .zip
+
+# Local Variables:
+# coding: latin-2
+# End:
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb
new file mode 100644
index 0000000..aa5e763
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb
@@ -0,0 +1,158 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2009 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Swedish (1996 standard)
+
+# This file contains the ISO-8859-1 compatible version of the Swedish 8-dot
+# braille standard as it was defined by the Swedish Braille Authority
+# (www.punktskriftsnamnden.se) on October 8, 1996. As of December 2005, this
+# is the most current braille standard in Sweden.
+
+space	\s	0	SPACE
+punctuation	!	235	EXCLAMATION MARK
+punctuation	"	56	QUOTATION MARK
+punctuation	#	3456	NUMBER SIGN
+punctuation	$	2358	DOLLAR SIGN
+punctuation	%	4678	PERCENT SIGN
+punctuation	&	3468	AMPERSAND
+punctuation	'	5	APOSTROPHE
+punctuation	(	236	LEFT PARENTHESIS
+punctuation	)	356	RIGHT PARENTHESIS
+punctuation	*	35	ASTERISK
+punctuation	+	256	PLUS SIGN
+punctuation	,	2	COMMA
+punctuation	-	36	HYPHEN-MINUS
+punctuation	.	3	FULL STOP
+punctuation	/	34	SOLIDUS
+include digits8Dots.uti
+punctuation	:	25	COLON
+punctuation	;	23	SEMICOLON
+punctuation	<	358	LESS-THAN SIGN
+punctuation	=	2356	EQUALS SIGN
+punctuation	>	267	GREATER-THAN SIGN
+punctuation	?	26	QUESTION MARK
+punctuation	@	48	COMMERCIAL AT
+
+include latinLetterDef8Dots.uti
+
+punctuation	[	123568	LEFT SQUARE BRACKET
+punctuation	\\	168	REVERSE SOLIDUS
+punctuation	]	234568	RIGHT SQUARE BRACKET
+punctuation	^	578	CIRCUMFLEX ACCENT
+punctuation	_	6	LOW LINE
+punctuation	`	46	GRAVE ACCENT
+punctuation	{	23678	LEFT CURLY BRACKET
+punctuation	|	4568	VERTICAL LINE
+punctuation	}	35678	RIGHT CURLY BRACKET
+punctuation	~	268	TILDE
+punctuation	\x00a0	0	NO-BREAK SPACE
+punctuation	\x00a1	367	INVERTED EXCLAMATION MARK
+punctuation	\x00a2	23468	CENT SIGN
+punctuation	\x00a3	1238	POUND SIGN
+punctuation	\x00a4	2478	CURRENCY SIGN
+punctuation	\x00a5	24678	YEN SIGN
+punctuation	\x00a6	12678	BROKEN BAR
+punctuation	\x00a7	346	SECTION SIGN
+punctuation	\x00a8	3678	DIAERESIS
+punctuation	\x00a9	14568	COPYRIGHT SIGN
+letter	\x00aa	2345678	FEMININE ORDINAL INDICATOR
+punctuation	\x00ab	2378	LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation	\x00ac	13458	NOT SIGN
+punctuation	\x00ad	23568	SOFT HYPHEN
+punctuation	\x00ae	12468	REGISTERED SIGN
+punctuation	\x00af	1578	MACRON
+punctuation	\x00b0	15678	DEGREE SIGN
+punctuation	\x00b1	123468	PLUS-MINUS SIGN
+punctuation	\x00b2	37	SUPERSCRIPT TWO
+punctuation	\x00b3	2567	SUPERSCRIPT THREE
+punctuation	\x00b4	258	ACUTE ACCENT
+lowercase	\x00b5	13478	MICRO SIGN
+punctuation	\x00b6	1267	PILCROW SIGN
+punctuation	\x00b7	8	MIDDLE DOT
+punctuation	\x00b8	12568	CEDILLA
+punctuation	\x00b9	1468	SUPERSCRIPT ONE
+letter	\x00ba	1358	MASCULINE ORDINAL INDICATOR
+punctuation	\x00bb	5678	RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation	\x00bc	12358	VULGAR FRACTION ONE QUARTER
+punctuation	\x00bd	1368	VULGAR FRACTION ONE HALF
+punctuation	\x00be	3578	VULGAR FRACTION THREE QUARTERS
+punctuation	\x00bf	38	INVERTED QUESTION MARK
+uppercase	\x00c0	1467	LATIN CAPITAL LETTER A WITH GRAVE
+uppercase	\x00c1	135678	LATIN CAPITAL LETTER A WITH ACUTE
+uppercase	\x00c2	24578	LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase	\x00c3	13578	LATIN CAPITAL LETTER A WITH TILDE
+uppercase	\x00c4	3457	LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase	\x00c5	167	LATIN CAPITAL LETTER A WITH RING ABOVE
+uppercase	\x00c6	34578	LATIN CAPITAL LETTER AE
+uppercase	\x00c7	123467	LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase	\x00c8	12378	LATIN CAPITAL LETTER E WITH GRAVE
+uppercase	\x00c9	1234567	LATIN CAPITAL LETTER E WITH ACUTE
+uppercase	\x00ca	68	LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uppercase	\x00cb	27	LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase	\x00cc	457	LATIN CAPITAL LETTER I WITH GRAVE
+uppercase	\x00cd	1348	LATIN CAPITAL LETTER I WITH ACUTE
+uppercase	\x00ce	458	LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase	\x00cf	67	LATIN CAPITAL LETTER I WITH DIAERESIS
+uppercase	\x00d0	23467	LATIN CAPITAL LETTER ETH
+uppercase	\x00d1	124567	LATIN CAPITAL LETTER N WITH TILDE
+uppercase	\x00d2	123478	LATIN CAPITAL LETTER O WITH GRAVE
+uppercase	\x00d3	178	LATIN CAPITAL LETTER O WITH ACUTE
+uppercase	\x00d4	124578	LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase	\x00d5	23478	LATIN CAPITAL LETTER O WITH TILDE
+uppercase	\x00d6	2467	LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation	\x00d7	13468	MULTIPLICATION SIGN
+uppercase	\x00d8	1567	LATIN CAPITAL LETTER O WITH STROKE
+uppercase	\x00d9	14578	LATIN CAPITAL LETTER U WITH GRAVE
+uppercase	\x00da	12578	LATIN CAPITAL LETTER U WITH ACUTE
+uppercase	\x00db	245678	LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase	\x00dc	12567	LATIN CAPITAL LETTER U WITH DIAERESIS
+uppercase	\x00dd	12478	LATIN CAPITAL LETTER Y WITH ACUTE
+uppercase	\x00de	1234678	LATIN CAPITAL LETTER THORN
+lowercase	\x00df	1278	LATIN SMALL LETTER SHARP S
+lowercase	\x00e0	12356	LATIN SMALL LETTER A WITH GRAVE
+lowercase	\x00e1	1235678	LATIN SMALL LETTER A WITH ACUTE
+lowercase	\x00e2	1678	LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase	\x00e3	13678	LATIN SMALL LETTER A WITH TILDE
+lowercase	\x00e4	345	LATIN SMALL LETTER A WITH DIAERESIS
+lowercase	\x00e5	16	LATIN SMALL LETTER A WITH RING ABOVE
+lowercase	\x00e6	3458	LATIN SMALL LETTER AE
+lowercase	\x00e7	12346	LATIN SMALL LETTER C WITH CEDILLA
+lowercase	\x00e8	2346	LATIN SMALL LETTER E WITH GRAVE
+lowercase	\x00e9	123456	LATIN SMALL LETTER E WITH ACUTE
+lowercase	\x00ea	126	LATIN SMALL LETTER E WITH CIRCUMFLEX
+lowercase	\x00eb	1246	LATIN SMALL LETTER E WITH DIAERESIS
+lowercase	\x00ec	3478	LATIN SMALL LETTER I WITH GRAVE
+lowercase	\x00ed	348	LATIN SMALL LETTER I WITH ACUTE
+lowercase	\x00ee	146	LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase	\x00ef	12456	LATIN SMALL LETTER I WITH DIAERESIS
+lowercase	\x00f0	568	LATIN SMALL LETTER ETH
+lowercase	\x00f1	124568	LATIN SMALL LETTER N WITH TILDE
+lowercase	\x00f2	34678	LATIN SMALL LETTER O WITH GRAVE
+lowercase	\x00f3	3467	LATIN SMALL LETTER O WITH ACUTE
+lowercase	\x00f4	1456	LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase	\x00f5	2348	LATIN SMALL LETTER O WITH TILDE
+lowercase	\x00f6	246	LATIN SMALL LETTER O WITH DIAERESIS
+punctuation	\x00f7	2568	DIVISION SIGN
+lowercase	\x00f8	4578	LATIN SMALL LETTER O WITH STROKE
+lowercase	\x00f9	23456	LATIN SMALL LETTER U WITH GRAVE
+lowercase	\x00fa	25678	LATIN SMALL LETTER U WITH ACUTE
+lowercase	\x00fb	156	LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase	\x00fc	1256	LATIN SMALL LETTER U WITH DIAERESIS
+lowercase	\x00fd	34568	LATIN SMALL LETTER Y WITH ACUTE
+lowercase	\x00fe	234578	LATIN SMALL LETTER THORN
+lowercase	\x00ff	1268	LATIN SMALL LETTER Y WITH DIAERESIS
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis
new file mode 100644
index 0000000..282453d
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis
@@ -0,0 +1,417 @@
+# This file is obsolete. Do not use!
+
+# liblouis: text.nabcc.dis
+#
+# Based on the braille contraction modules in BRLTTY
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com .
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+
+# This is a description of the default text translation table used by BRLTTY.  
+# It's based on the North American Braille Computer Code, but defines the full
+# Latin1 (ISO-8859-1) character set.
+
+# The 95 printable characters of the standard 7-bit US-ASCII character set
+# (32-126) are identical to their representations within the North American
+# Braille Computer Code (these are the only characters which the NABCC actually
+# defines). Characters from literary braille, symbols from The Nemeth Braille
+# Code for Mathematics and Science Notation, and a bit of human imagination
+# have all been combined to create an easy-to-remember, one-to-one mapping
+# between each character and its braille counterpart. All possible combinations
+# involving only the original 6 braille dots are used, but that only allows for
+# 64 out of the required 95 character representations. The presence or absence
+# of dot 7 is used to differentiate between pairs of characters which either
+# are very closely related in meaning or, in a few cases where a more intuitive
+# reason couldn't be found, have a very close logical relationship within the
+# US-ASCII code. Dot 8 isn't used at all.
+
+# The space and the 26 lowercase letters (a-z) are the same as in literary 
+# braille:
+
+        #Hex   Dots   Dec  Char Description
+display \X0020 0			#32  space
+display \X0061 1			#97  a  Latin small letter a
+display \X0062 12			#98  b Latin small letter b
+display \X0063 14			#99  c Latin small letter c
+display \X0064 145		#100 d Latin small letter d
+display \X0065 15			#101 e Latin small letter e
+display \X0066 124		#102 f Latin small letter f
+display \X0067 1245		#103 g Latin small letter g
+display \X0068 125		#104 h Latin small letter h
+display \X0069  24		#105 i Latin small letter i
+display \X006A  245		#106 j Latin small letter j
+display \X006B 13			#107 k Latin small letter k
+display \X006C 123		#108 l Latin small letter l
+display \X006D 134		#109 m Latin small letter m
+display \X006E 1345		#110 n Latin small letter n
+display \X006F 135		#111 o Latin small letter o
+display \X0070 1234		#112 p Latin small letter p
+display \X0071 12345	#113 q Latin small letter q
+display \X0072 1235		#114 r Latin small letter r
+display \X0073 234		#115 s Latin small letter s
+display \X0074  2345	#116 t Latin small letter t
+display \X0075 136		#117 u Latin small letter u
+display \X0076 1236		#118 v Latin small letter v
+display \X0077  2456	#119 w Latin small letter w
+display \X0078 1346		#120 x Latin small letter x
+display \X0079 13456	#121 y Latin small letter y
+display \X007A 1356		#122 z Latin small letter z
+
+# The 26 uppercase letters A-Z) are the same as their lowercase counterparts 
+# except that dot7 is added:
+
+        #Hex   Dots		Dec	Char Description
+display \X0041 1			#65	A Latin capital letter a
+display \X0042 12			#66	B Latin capital letter b
+display \X0043 14			#67	C Latin capital letter c
+display \X0044 145		#68	D Latin capital letter d
+display \X0045 15			#69	E Latin capital letter e
+display \X0046 124		#70	F Latin capital letter f
+display \X0047 1245		#71	G Latin capital letter g
+display \X0048 125		#72	H Latin capital letter h
+display \X0049 24			#73	I Latin capital letter i
+display \X004A 245		#74	J Latin capital letter j
+display \X004B 13			#75	K Latin capital letter k
+display \X004C 123		#76	L Latin capital letter l
+display \X004D 134		#77	M Latin capital letter m
+display \X004E 1345		#78	N Latin capital letter n
+display \X004F 135		#79	O Latin capital letter o
+display \X0050 1234		#80	P Latin capital letter p
+display \X0051 12345	#81	Q Latin capital letter q
+display \X0052 1235		#82	R Latin capital letter r
+display \X0053 234		#83	S Latin capital letter s
+display \X0054 2345		#84	T Latin capital letter t
+display \X0055 136		#85	U Latin capital letter u
+display \X0056 1236		#86	V Latin capital letter v
+display \X0057 2456		#87	W Latin capital letter w
+display \X0058 1346		#88	X Latin capital letter x
+display \X0059 13456  #89	Y Latin capital letter y
+display \X005A 1356		#90	Z Latin capital letter z
+
+# The 10 decimal digits 0-9) are the same as in the Nemeth Code:
+
+#Hex Dots Dec Char Description
+display \X0030 356 #480digit zero
+display \X0031 2 #491digit one
+display \X0032 23 #502digit two
+display \X0033 25 #513digit three
+display \X0034  256 #524digit four
+display \X0035  26 #535digit five
+display \X0036  235 #546digit six
+display \X0037  2356 #557digit seven
+display \X0038  236 #568digit eight
+display \X0039 35 #579digit nine
+
+# Common symbols used within mathematical expressions by popular computer
+# programming languages are the same as in the Nemeth Code:
+
+#Hex Dots Dec Char Description
+display \X002E 46 #46.full stop
+display \X002B 346 #43+plus sign
+display \X002D 36 #45-hyphen-minus
+display \X002A 16 #42*asterisk
+display \X002F 34  #47/solidus
+display \X0028 12356 #40left parenthesis
+display \X0029  23456 #41)right parenthesis
+
+# With all of these major considerations having been taken into account, 
+# convenient representations were still available, and are used, for some of 
+# the remaining characters:
+
+				#Hex		Dots	Dec Char Description
+display \X0026 12346	#38 &		 ampersand
+display \X0023   3456	#35	#		 number sign
+
+# The remaining characters are what they are. Dot 7 isn't used either within 
+# the number block 32-63) or, with the exception of the DEL control character
+# 127), within the lowercase block 96-127). With the exception of the
+# underscore 95), dot 7 is used for every character within the uppercase block
+#64-95). Adding dot7 to any character within the lowercase block 96-127)
+# yields its corresponding character within the uppercase block 64-95) except
+# that removing dot7 from the DEL control character yields the underscore.
+
+				#Hex			Dots Dec	Char	Description
+display \X002C      6		#44 ,			comma
+display \X003B     56		#59 ;			semicolon
+display \X003A	156			#58 :			colon
+display \X0021   2346		#33 !			exclamation mark
+display \X003F  1456		#63 ?			question mark
+display \X0022    5			#34 "			quotation mark
+display \X0027  3				#39 '			apostrophe
+display \X0060   4			#96 `			grave accent
+display \X005E   457		#94 ^			circumflex accent
+display \X007E   45     #126 ~    tilde
+
+display \X005B  246			#91  [	left square bracket
+display \X005D 12456		#93  ]	right square bracket
+display \X007B  256			#123 {	left curly bracket
+display \X007D 12456		#125 }	right curly bracket
+display \X003D 123456		#61  =	equals sign
+display \X003C 126			#60  <	less-than sign
+display \X003E 345			#62  >	greater-than sign
+display \X0024 1246			#36  $	dollar sign
+display \X0025 146			#37  %	percent sign
+display \X0040 47				#64  @	commercial at
+display \X007C 1256 # 124|vertical line
+display \X005C 12567  #92\reverse solidus
+display \X005F 456 #95_low line
+
+# Each of the characters within the basic control character block 0-31) is the
+# same as its corresponding character within both the uppercase block64-95)
+# and the lowercase block 96-127) except that dots7 and8 are both used.
+
+#Hex Dots Dec Char Description
+display \X0000 478 #0^@null
+display \X0001 178 #1^Astart of heading
+display \X0002 1278 #2^Bstart of text
+display \X0003 1478 #3^Cend of text
+display \X0004 14578 #4^Dend of transmission
+display \X0005 1578 #5^Eenquiry
+display \X0006 12478 #6^Facknowledge
+display \X0007 124578 #7^Gbell
+display \X0008 12578 #8^Hbackspace
+display \X0009  2478 #9^Ihorizontal tabulation
+display \X000A  24578 #10^Jline feed
+display \X000B 1378 #11^Kvertical tabulation
+display \X000C 12378 #12^Lform feed
+display \X000D 13478 #13^Mcarriage return
+display \X000E 134578 #14^Nshift out
+display \X000F 13578 #15^Oshift in
+display \X0010 123478 #16^Pdata link escape
+display \X0011 1234578 #17^Qdevice control one
+display \X0012 123578 #18^Rdevice control two
+display \X0013 23478 #19^Sdevice control three
+display \X0014  234578 #20^Tdevice control four
+display \X0015 13678 #21^Unegative acknowledge
+display \X0016 123678 #22^Vsynchronous idle
+display \X0017  245678 #23^Wend of transmission block
+display \X0018 134678 #24^Xcancel
+display \X0019 1345678 #25^Yend of medium
+display \X001A 135678 #26^Zsubstitute
+display \X001B  24678 #27^[escape
+display \X001C 125678 #28^\file separator
+display \X001D 1245678 #29^]group separator
+display \X001E 4578 #30^^record separator
+display \X001F 45678 #31^_unit separator
+
+# Each of the characters within the extended control character block 128-159)
+# is the same as its corresponding character within the basic control character
+# block 0-31) except that only dot8 is used.
+
+#Hex Dots Dec Char Description
+display \X0080 48 # 128~@<control>
+display \X0081 18 # 129~A<control>
+display \X0082 128 # 130~Bbreak permitted here
+display \X0083 148 # 131~Cno break here
+display \X0084 1458 # 132~D<control>
+display \X0085 158 # 133~Enext line
+display \X0086 1248 # 134~Fstart of selected area
+display \X0087 12458 # 135~Gend of selected area
+display \X0088 1258 # 136~Hcharacter tabulation set
+display \X0089  248 # 137~Icharacter tabulation with justification
+display \X008A  2458 # 138~Jline tabulation set
+display \X008B 138 # 139~Kpartial line down
+display \X008C 1238 # 140~Lpartial line up
+display \X008D 1348 # 141~Mreverse line feed
+display \X008E 13458 # 142~Nsingle shift two
+display \X008F 1358 # 143~Osingle shift three
+display \X0090 12348 # 144~Pdevice control string
+display \X0091 123458 # 145~Qprivate use one
+display \X0092 12358 # 146~Rprivate use two
+display \X0093 2348 # 147~Sset transmit state
+display \X0094  23458 # 148~Tcancel character
+display \X0095 1368 # 149~Umessage waiting
+display \X0096 12368 # 150~Vstart of guarded area
+display \X0097  24568 # 151~Wend of guarded area
+display \X0098 13468 # 152~Xstart of string
+display \X0099 134568 # 153~Y<control>
+display \X009A 13568 # 154~Zsingle character introducer
+display \X009B  2468 # 155~[control sequence introducer
+display \X009C 12568 # 156~\string terminator
+display \X009D 124568 # 157~]operating system command
+display \X009E 458 # 158~^privacy message
+
+
+# Representations for the uppercase accented letters are drawn from the
+# remaining combinations which use both dots 7 and 8. The representation for a
+# lowercase accented letter is the same as its uppercase counterpart except
+# that dot 7 isn't used. This scheme retains the use of dot 7 as the modifier
+# for a capitalized letter. The only exception to these rules is that, due to
+# the nature of the  Latin 1 character set, the German lowercase double-s is
+# treated as though it were an uppercase y-dieresis neither has an uppercase
+# definition). These representations have been gathered, as much as possible,
+# into logical groupings.
+
+# The 5 letters with a circumflex accent ^) use the [1-5] dot combinations:
+
+				#Hex	 Dots		Dec	Char	Description
+display \X009F 4568 # 159				~_application program command
+display \X00A0 0				#160			no-break space
+display \X00A1 23467  #161 ¡		inverted exclamation mark
+display \X00A2 4	   #162 ¢		cent sign
+display \X00A3 34567  # 163£pound sign
+display \X00A4 1467  # 164¤currency sign
+display \X00A5 123467  # 165¥yen sign
+display \X00A6 1567  # 166¦broken bar
+display \X00A7 357  # 167§section sign
+display \X00A8  57  # 168¨diaeresis
+display \X00A9  23567  # 169©copyright sign
+display \X00AA 8 # 170ªfeminine ordinal indicator
+display \X00AB 1267  # 171«left-pointing double angle quotation mark
+display \X00AC  2567  # 172¬not sign
+display \X00AD 367  # 173­soft hyphen
+display \X00AE  2367  # 174®registered sign
+display \X00AF  267  # 175¯macron
+display \X00B0 3567  # 176°degree sign
+
+display \X00C0  23578		# 192		À		Latin capital letter a with grave
+display \X00C1	1678		# 193		Á		Latin capital letter a with acute
+display \X00C2	16			# 194		Â		Latin capital letter a with circumflex
+display \X00C3	578 # 195Ã Latin capital letter a with tilde
+display \X00C4	1234678 # 196Ä Latin capital letter a with diaeresis
+display \X00C5	34578 # 197Å Latin capital letter a with ring above
+display \X00C6	378 # 198Æ Latin capital letter ae
+display \X00C7	34678 # 199Ç Latin capital letter c with cedilla
+display \X00C8  23567		#	200		È		Latin capital letter e with grave
+display \X00C9	12678		# 201É Latin capital letter e with acute
+display \X00CA  2378	# 202		Ê		Latin capital letter e with circumflex
+display \X00CB 12345678 # 203Ë Latin capital letter e with diaeresis
+display \X00CC  23678 # 204Ì Latin capital letter i with grave
+display \X00CD 14678 # 205Í Latin capital letter i with acute
+display \X00CE  2578	# 206		Î		Latin capital letter i with circumflex
+display \X00CF 1235678 # 207Ï Latin capital letter i with diaeresis
+display \X00D0 678 # 208Ð Latin capital letter eth
+display \X00D1 4678 # 209Ñ Latin capital letter n with tilde
+display \X00D2 3578 # 210Ò Latin capital letter o with grave
+display \X00D3 145678 # 211Ó Latin capital letter o with acute
+display \X00D4  25678 # 212		Ô		Latin capital letter o with circumflex
+display \X00D5  5678 # 213Õ Latin capital letter o with tilde
+display \X00D6  234678 # 214Ö Latin capital letter o with diaeresis
+display \X00D7 167  # 215×multiplication sign
+display \X00D8 3478 # 216Ø Latin capital letter o with stroke
+display \X00D9 35678 # 217Ù Latin capital letter u with grave
+display \X00DA 15678 # 218Ú Latin capital letter u with acute
+display \X00DB  2678	# 219		Û		Latin capital letter u with circumflex
+display \X00DC  2345678 # 220Ü Latin capital letter u with diaeresis
+display \X00DD 124678 # 221Ý Latin capital letter y with acute
+display \X00DE 3678 # 222Þ Latin capital letter thorn
+display \X00DF 345678 # 223ß Latin small letter sharp s
+display \X00E0  2358 # 224à Latin small letter a with grave
+display \X00E1 168 # 225á Latin small letter a with acute
+display \X00E2	16		# 226		â		Latin small letter a with circumflex
+display \X00E3 58 # 227ã Latin small letter a with tilde
+display \X00E4 123468 # 228ä Latin small letter a with diaeresis
+display \X00E5 3458 # 229å Latin small letter a with ring above
+display \X00E6 38 # 230æ Latin small letter ae
+display \X00E7 3468 # 231ç Latin small letter c with cedilla
+display \X00E8  23568 # 232è Latin small letter e with grave
+display \X00E9 1268 # 233é Latin small letter e with acute
+display \X00EA  238		# 234		ê		Latin small letter e with circumflex
+display \X00EB 1234568 # 235ë Latin small letter e with diaeresis
+display \X00EC  2368 # 236ì Latin small letter i with grave
+display \X00ED 1468 # 237í Latin small letter i with acute
+display \X00EE  258		# 238		î		Latin small letter i with circumflex
+display \X00EF 123568 # 239ï Latin small letter i with diaeresis
+display \X00F0 68 # 240ð Latin small letter eth
+display \X00F1 468 # 241ñ Latin small letter n with tilde
+display \X00F2 358 # 242ò Latin small letter o with grave
+display \X00F3 14568 # 243ó Latin small letter o with acute
+display \X00F4  2568	# 244		ô		Latin small letter o with circumflex
+display \X00F5  568 # 245õ Latin small letter o with tilde
+display \X00F6  23468 # 246ö Latin small letter o with diaeresis
+display \X00F7 347  # 247÷division sign
+display \X00F8 348 # 248ø Latin small letter o with stroke
+display \X00F9 3568 # 249ù Latin small letter u with grave
+display \X00FA 1568 # 250ú Latin small letter u with acute
+display \X00FB  268		# 251		û		Latin small letter u with circumflex
+display \X00FC  234568 # 252ü Latin small letter u with diaeresis
+display \X00FD 12468 # 253ý Latin small letter y with acute
+display \X00FE 368 # 254þ Latin small letter thorn
+display \X00FF 34568 # 255ÿ Latin small letter y with diaeresis
+
+
+# Some characters are the same as other characters which they resemble but with
+# dot 7 added:
+
+#Hex Dots Dec Char Description
+
+
+display \X00BB 3457  # 187»right-pointing double angle quotation mark
+display \X00B9  27  # 185¹superscript one
+display \X00B2 237  # 178²superscript two
+display \X00B3 257  # 179³superscript three
+display \X00B1 3467  # 177±plus-minus sign
+display \X00D7 167  # 215×multiplication sign
+
+display \X00B7 467  # 183·middle dot
+
+display \X00BF 14567  # 191¿inverted question mark
+
+
+
+# A few more characters follow this same convention but they're relationships
+# to their base characters is a bit obscure:
+
+#Hex Dots Dec Char Description
+
+
+
+# Some characters are represented by the first letters of their names lowered
+# by one row of dots:
+
+#Hex Dots Dec Char Description
+
+display \X00B6  2357  # 182¶pilcrow sign
+
+
+
+
+
+# The three fraction characters use combinations of dots 1 and 4 which
+# progress from left to right as the value of the fraction increases) together
+# with dots 2,3,5,6,7:
+
+#Hex Dots Dec Char Description
+display \X00BC 123567  # 188¼vulgar fraction one quarter
+display \X00BD 1234567  # 189½vulgar fraction one half
+display \X00BE  234567  # 190¾vulgar fraction three quarters
+
+# Each of the three extended accent characters is the same as its conventional
+# compose character but with dot7 added:
+
+#Hex Dots Dec Char Description
+display \X00B4 37  # 180´acute accent
+display \X00B8 67  # 184¸cedilla
+
+
+# The two gender symbols are:
+
+#Hex Dots Dec Char Description
+display \X00BA 7  # 186ºmasculine ordinal indicator
+
+
+# The three remaining characters are:
+
+#Hex Dots Dec Char Description
+
+display \X00B5  567  # 181µmicro sign
+
+
+# The nonbreaking space is dots 7 and 8 because this presents a sequence of
+# nonbreaking spaces as a smooth low line segment.
+
+#Hex Dots Dec Char Description
+display \X007F 4567  # 127^?delete
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb
new file mode 100644
index 0000000..5a676d0
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb
@@ -0,0 +1,112 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Turkish
+#
+# Samuel Thibault <samuel.thibault@ens-lyon.org>
+# 
+# This table is based on the Unesco report on the progress of unification of
+# braille writing « L'ÉCRITURE BRAILLE DANS LE MONDE », by Sir Clutha
+# MACKENZIE: http://unesdoc.unesco.org/images/0013/001352/135251fo.pdf
+# The document is dated 1954, so this table may be quite outdated.
+
+# generated by ttbtest
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 2356		QUOTATION MARK
+punctuation ' 3		APOSTROPHE
+punctuation ( 236		LEFT PARENTHESIS
+punctuation ) 356		RIGHT PARENTHESIS
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+include digits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation ? 26		QUESTION MARK
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 1457		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 357		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 145		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation \x00a0 0		NO-BREAK SPACE
+uppercase \x00c2 3457		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c7 167		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00ce 347		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00d6 2467		LATIN CAPITAL LETTER O WITH DIAERESIS
+uppercase \x00db 1567		LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase \x00dc 12567		LATIN CAPITAL LETTER U WITH DIAERESIS
+lowercase \x00e2 345		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e7 16		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00ee 34		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00f6 246		LATIN SMALL LETTER O WITH DIAERESIS
+lowercase \x00fb 156		LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase \x00fc 1256		LATIN SMALL LETTER U WITH DIAERESIS
+uppercase \x011e 1267		LATIN CAPITAL LETTER G WITH BREVE
+lowercase \x011f 126		LATIN SMALL LETTER G WITH BREVE
+uppercase \x0130 247		LATIN CAPITAL LETTER I WITH DOT ABOVE
+lowercase \x0131 35		LATIN SMALL LETTER DOTLESS I
+uppercase \x015e 1467		LATIN CAPITAL LETTER S WITH CEDILLA
+lowercase \x015f 146		LATIN SMALL LETTER S WITH CEDILLA
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti b/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti
new file mode 100644
index 0000000..410ae06
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti
@@ -0,0 +1,83 @@
+# Attributes and dot patterns for the printable ASCII characters
+
+space \t 0 tab            #  9
+space \x000A 0
+space \x000D 0
+space \s 0 blank					# 32
+punctuation ! 2346				# 33
+punctuation " 5						# 34
+sign # 3456								# 35
+sign $ 1246								# 36
+sign % 146								# 37
+sign & 12346							# 38
+punctuation ' 3						# 39 apostrophe
+punctuation ( 12356				# 40
+punctuation ) 23456				# 41
+sign * 16									# 42
+math + 346								# 43
+punctuation , 6						# 44
+punctuation - 36					# 45
+punctuation . 46					# 46
+math / 34									# 47
+include loweredDigits6Dots.uti
+punctuation : 156					# 58
+punctuation ; 56					# 59
+math < 126								# 60
+math = 123456							# 61
+math > 345								# 62
+punctuation ? 1456				# 63
+sign @ 47									# 64
+
+include latinLetterDef6Dots.uti
+
+punctuation [ 2467				# 91
+sign \\ 12567							# 92
+punctuation ] 124567			# 93
+sign ^ 457								# 94 circumflex accent
+sign _ 456								# 95 underscore
+sign ` 4									# 96 grave accent
+# a - z										# 97 - 122
+punctuation { 246					# 123
+sign | 1256								# 124
+punctuation } 12456				# 125
+math ~ 45									# 126
+
+space \X00A0 0						# 160 no-break space
+sign \x00A2 4-14					# 162 ¢ cents sign
+sign \x00A3 4-123					# 163 £ pounds sign
+
+sign \x00A5 4-13456				#	165 ¥ yen sign
+
+sign § 4-234-3					# 167 section sign \x00A7
+
+sign \x00A9 2356-6-14-2356 # 169	© copyright sign
+
+punctuation \x00Ad 36			# 173	  soft hyphen
+
+sign \x00B0 356						# 176	  ° degrees sign
+
+sign \x00B5 46-134				# 181		µ micro sign
+sign \x00B6 4-1234-345		#	182	  ¶ pilcrow sign
+
+math \x00D7 56-236				# 215		× multiplication sign
+
+math \x00F7 56-256				# 247		÷ division sign
+
+punctuation \x2010 36			# 8208  hyphen
+punctuation \x2013 6-36		# 8211	en dash
+
+
+punctuation	\x2018 3			# 8216	smart single left quotation mark
+punctuation	\x2019 3			# 8217	smart single right quotation mark
+
+punctuation	\x201C 236		# 8220	smart opening double quote
+punctuation	\x201D 356		# 8221	smart closing double quote
+punctuation	\x201E 236		# 8222	smart double low quotation mark
+punctuation	\x201F 356		# 8223	smart double high reverse quotation mark
+
+punctuation \x2026 3-3-3	# 8230 smart ellipsis
+
+sign \x20AC 4-15					# 8364 Euro sign
+
+
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis b/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis
new file mode 100644
index 0000000..e3727c5
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis
@@ -0,0 +1,327 @@
+# This file is obsolete. Do not use!
+
+# liblouis: uni-text.dis
+#
+# Original copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
+#
+# liblouis copyright 2004 by 
+# ViewPlus Technologies, inc.,  www.viewplustech.com .
+# and
+# Computers to Help People, Inc., www.chpi.org  
+# All rights reserved.
+#
+# liblouis  comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU General Public License, as published by the Free Software
+# Foundation.  Please see the file COPYING for details.
+#
+# Maintained by John J. Boyer, director@chpi.org, www.chpi.org
+
+# This is a description of the default text translation table used by BRLTTY.  
+
+
+        #Hex   Dots				Dec		Char Description
+display \X0020 0					#32					space
+display \X0021  2346			#33		!			exclamation mark
+display \X0022    5				#34		"			quotation mark
+display \X0023   3456			#35		#			number sign
+display \X0024 1246				#36		$			dollar sign
+display \X0025 146				#37		%			percent sign
+display \X0026 12346			#38		&			ampersand
+display \X0027  3					#39		'			apostrophe
+display \X0028	12356			#40		(			left parenthesis
+display \X0029   23456		#41		)			right parenthesis
+display \X002A 16					#42		*			asterisk
+display \X002B	346				#43		+			plus sign
+display \X002C    6				#44		,			comma
+display \X002D	36				#45		-			hyphen-minus
+display \X002E	46				#46		.			full stop
+display \X002F	34				#47		/			solidus
+
+display \X0030	356		#480			digit zero
+display \X0031	2			#491			digit one
+display \X0032	23		#502			digit two
+display \X0033	25		#513			digit three
+display \X0034  256		#524			digit four
+display \X0035  26		#535			digit five
+display \X0036  235		#546			digit six
+display \X0037  2356	#557			digit seven
+display \X0038  236		#568			digit eight
+display \X0039	35		#579			digit nine
+
+display \X003A	156			#58		:		colon
+display \X003B   56			#59		;		semicolon
+display \X003C 126			#60		<		less-than sign
+display \X003D 123456		#61		=		equals sign
+display \X003E 345			#62		>		greater-than sign
+display \X003F 1456			#63		?		question mark
+display \X0040  47			#64		@	commercial at
+
+        #Hex   Dots		Dec	Char Description
+display \X0041 1				#65	A Latin capital letter a
+display \X0042 12				#66	B Latin capital letter b
+display \X0043 14				#67	C Latin capital letter c
+display \X0044 145			#68	D Latin capital letter d
+display \X0045 15				#69	E Latin capital letter e
+display \X0046 124			#70	F Latin capital letter f
+display \X0047 1245			#71	G Latin capital letter g
+display \X0048 125			#72	H Latin capital letter h
+display \X0049 24				#73	I Latin capital letter i
+display \X004A 245			#74	J Latin capital letter j
+display \X004B 13				#75	K Latin capital letter k
+display \X004C 123			#76	L Latin capital letter l
+display \X004D 134			#77	M Latin capital letter m
+display \X004E 1345			#78	N Latin capital letter n
+display \X004F 1357			#79	O Latin capital letter o
+display \X0050 1234			#80	P Latin capital letter p
+display \X0051 12345		#81	Q Latin capital letter q
+display \X0052 1235			#82	R Latin capital letter r
+display \X0053 234			#83	S Latin capital letter s
+display \X0054 2345			#84	T Latin capital letter t
+display \X0055 136			#85	U Latin capital letter u
+display \X0056 1236			#86	V Latin capital letter v
+display \X0057 2456			#87	W Latin capital letter w
+display \X0058 1346			#88	X Latin capital letter x
+display \X0059 13456		#89	Y Latin capital letter y
+display \X005A 1356			#90	Z Latin capital letter z
+
+display \X005B 246			#	91  [		left square bracket
+display \X005C 12567		#	92	\		reverse solidus
+display \X005D 12456		# 93  ]		right square bracket
+display \X005E 2346		# 94 ^	circumflex accent
+display \X005F 456		# 95 _	low line
+display \X0060 345		# 96 `	grave accent
+
+display \X0061 1			#97  a  Latin small letter a
+display \X0062 12			#98  b Latin small letter b
+display \X0063 14			#99  c Latin small letter c
+display \X0064 145		#100 d Latin small letter d
+display \X0065 15			#101 e Latin small letter e
+display \X0066 124		#102 f Latin small letter f
+display \X0067 1245		#103 g Latin small letter g
+display \X0068 125		#104 h Latin small letter h
+display \X0069  24		#105 i Latin small letter i
+display \X006A  245		#106 j Latin small letter j
+display \X006B 13			#107 k Latin small letter k
+display \X006C 123		#108 l Latin small letter l
+display \X006D 134		#109 m Latin small letter m
+display \X006E 1345		#110 n Latin small letter n
+display \X006F 135		#111 o Latin small letter o
+display \X0070 1234		#112 p Latin small letter p
+display \X0071 12345	#113 q Latin small letter q
+display \X0072 1235		#114 r Latin small letter r
+display \X0073 234		#115 s Latin small letter s
+display \X0074  2345	#116 t Latin small letter t
+display \X0075 136		#117 u Latin small letter u
+display \X0076 1236		#118 v Latin small letter v
+display \X0077  2456	#119 w Latin small letter w
+display \X0078 1346		#120 x Latin small letter x
+display \X0079 13456	#121 y Latin small letter y
+display \X007A 1356		#122 z Latin small letter z
+
+display \X007B  12356			# 123 {		left curly bracket
+display \X007C 34					# 124 |		vertical line
+display \X007D 23456			#	125 }		right curly bracket
+display \X007E   45				#	126 ~   tilde
+display \X007F 4568				# 127	^		?delete
+
+					#Hex Dots Dec Char Description
+display \X0080 48			# 128		~@<control>
+display \X0081 18			# 129		~A<control>
+display \X0082 128		# 130		~Bbreak permitted here
+display \X0083 148		# 131		~Cno break here
+display \X0084 1458		# 132		~D<control>
+display \X0085 158		# 133		~Enext line
+display \X0086 1248		# 134		~Fstart of selected area
+display \X0087 12458	# 135		~Gend of selected area
+display \X0088 1258		# 136		~Hcharacter tabulation set
+display \X0089  248		# 137		~Icharacter tabulation with justification
+display \X008A  2458	# 138		~Jline tabulation set
+display \X008B 138	# 139~Kpartial line down
+display \X008C 1238 # 140~Lpartial line up
+display \X008D 1348 # 141~Mreverse line feed
+display \X008E 13458 # 142~Nsingle shift two
+display \X008F 1358 # 143~Osingle shift three
+display \X0090 12348 # 144~Pdevice control string
+display \X0091 123458 # 145~Qprivate use one
+display \X0092 12358 # 146~Rprivate use two
+display \X0093 2348 # 147~Sset transmit state
+display \X0094  23458 # 148~Tcancel character
+display \X0095 1368 # 149~Umessage waiting
+display \X0096 12368 # 150~Vstart of guarded area
+display \X0097  24568 # 151~Wend of guarded area
+display \X0098 13468 # 152~Xstart of string
+display \X0099 134568 # 153~Y<control>
+display \X009A 13568 # 154~Zsingle character introducer
+display \X009B  2468 # 155~[control sequence introducer
+display \X009C 12568 # 156~\string terminator
+display \X009D 124568 # 157~]operating system command
+display \X009E 458 # 158~^privacy message
+display \X009F 4568		# 159				~_application program command
+display \X00A0 0			#160			no-break space
+
+#Hex Dots Dec Char Description
+display \X0000 478 #0^@null
+display \X0001 178 #1^Astart of heading
+display \X0002 1278 #2^Bstart of text
+display \X0003 1478 #3^Cend of text
+display \X0004 14578 #4^Dend of transmission
+display \X0005 1578 #5^Eenquiry
+display \X0006 12478 #6^Facknowledge
+display \X0007 124578 #7^Gbell
+display \X0008 12578 #8^Hbackspace
+display \X0009  2478 #9^Ihorizontal tabulation
+display \X000A  24578 #10^Jline feed
+display \X000B 1378 #11^Kvertical tabulation
+display \X000C 12378 #12^Lform feed
+display \X000D 13478 #13^Mcarriage return
+display \X000E 134578 #14^Nshift out
+display \X000F 13578 #15^Oshift in
+display \X0010 123478 #16^Pdata link escape
+display \X0011 1234578 #17^Qdevice control one
+display \X0012 123578 #18^Rdevice control two
+display \X0013 23478 #19^Sdevice control three
+display \X0014  234578 #20^Tdevice control four
+display \X0015 13678 #21^Unegative acknowledge
+display \X0016 123678 #22^Vsynchronous idle
+display \X0017  245678 #23^Wend of transmission block
+display \X0018 134678 #24^Xcancel
+display \X0019 1345678 #25^Yend of medium
+display \X001A 135678 #26^Zsubstitute
+display \X001B  24678 #27^[escape
+display \X001C 125678 #28^\file separator
+display \X001D 1245678 #29^]group separator
+display \X001E 4578 #30^^record separator
+display \X001F 45678 #31^_unit separator
+
+				#Hex	 Dots			Dec	Char	Description
+display \X00A1 23467  #	161 ¡			inverted exclamation mark
+display \X00A2 58			#162	¢			cent sign 
+display \X00A3 34567  # 163	£			pound sign
+display \X00A4 1467		# 164	¤			currency sign
+display \X00A5 123467 # 165	¥			yen sign
+display \X00A6 1567		# 166	¦			broken bar
+display \X00A7 357		# 167	§			section sign
+display \X00A8  57		# 168	¨			diaeresis
+display \X00A9  23567 # 169	©			copyright sign
+display \X00AA 8			# 170	ª			feminine ordinal indicator
+display \X00AB 1267		# 171	«			left-pointing double angle quotation mark
+display \X00AC  2567  # 172	¬			not sign
+display \X00AD 367		# 173	­			soft hyphen
+display \X00AE  2367  # 174	®			registered sign
+display \X00AF  267		# 175	¯			macron
+display \X00B0 3567		# 176	°			degree sign
+
+display \X00C0  23578		# 192		À		Latin capital letter a with grave
+display \X00C1	1678		# 193		Á		Latin capital letter a with acute
+display \X00C2	16			# 194		Â		Latin capital letter a with circumflex
+display \X00C3	578 # 195Ã Latin capital letter a with tilde
+display \X00C4	1234678 # 196Ä Latin capital letter a with diaeresis
+display \X00C5	34578 # 197Å Latin capital letter a with ring above
+display \X00C6	378 # 198Æ Latin capital letter ae
+display \X00C7	34678 # 199Ç Latin capital letter c with cedilla
+display \X00C8  23567		#	200		È		Latin capital letter e with grave
+display \X00C9	12678		# 201É Latin capital letter e with acute
+display \X00CA  2378	# 202		Ê		Latin capital letter e with circumflex
+display \X00CB 12345678 # 203Ë Latin capital letter e with diaeresis
+display \X00CC  23678 # 204Ì Latin capital letter i with grave
+display \X00CD 14678 # 205Í Latin capital letter i with acute
+display \X00CE  2578	# 206		Î		Latin capital letter i with circumflex
+display \X00CF 1235678 # 207Ï Latin capital letter i with diaeresis
+display \X00D0 678 # 208Ð Latin capital letter eth
+display \X00D1 4678 # 209Ñ Latin capital letter n with tilde
+display \X00D2 3578 # 210Ò Latin capital letter o with grave
+display \X00D3 145678 # 211Ó Latin capital letter o with acute
+display \X00D4  25678 # 212		Ô		Latin capital letter o with circumflex
+display \X00D5  5678 # 213Õ Latin capital letter o with tilde
+display \X00D6  234678 # 214Ö Latin capital letter o with diaeresis
+display \X00D7 167  # 215×multiplication sign
+display \X00D8 3478 # 216Ø Latin capital letter o with stroke
+display \X00D9 35678 # 217Ù Latin capital letter u with grave
+display \X00DA 15678 # 218Ú Latin capital letter u with acute
+display \X00DB  2678	# 219		Û		Latin capital letter u with circumflex
+display \X00DC  2345678 # 220Ü Latin capital letter u with diaeresis
+display \X00DD 124678 # 221Ý Latin capital letter y with acute
+display \X00DE 3678 # 222Þ Latin capital letter thorn
+display \X00DF 345678 # 223ß Latin small letter sharp s
+display \X00E0  2358 # 224à Latin small letter a with grave
+display \X00E1 168 # 225á Latin small letter a with acute
+display \X00E2	16		# 226		â		Latin small letter a with circumflex
+display \X00E3 58 # 227ã Latin small letter a with tilde
+display \X00E4 123468 # 228ä Latin small letter a with diaeresis
+display \X00E5 3458 # 229å Latin small letter a with ring above
+display \X00E6 38 # 230æ Latin small letter ae
+display \X00E7 3468 # 231ç Latin small letter c with cedilla
+display \X00E8  23568 # 232è Latin small letter e with grave
+display \X00E9 1268 # 233é Latin small letter e with acute
+display \X00EA  238		# 234		ê		Latin small letter e with circumflex
+display \X00EB 1234568 # 235ë Latin small letter e with diaeresis
+display \X00EC  2368 # 236ì Latin small letter i with grave
+display \X00ED 1468 # 237í Latin small letter i with acute
+display \X00EE  258		# 238		î		Latin small letter i with circumflex
+display \X00EF 123568 # 239ï Latin small letter i with diaeresis
+display \X00F0 68 # 240ð Latin small letter eth
+display \X00F1 468 # 241ñ Latin small letter n with tilde
+display \X00F2 358 # 242ò Latin small letter o with grave
+display \X00F3 14568 # 243ó Latin small letter o with acute
+display \X00F4  2568	# 244		ô		Latin small letter o with circumflex
+display \X00F5  568 # 245õ Latin small letter o with tilde
+display \X00F6  23468 # 246ö Latin small letter o with diaeresis
+display \X00F7 347  # 247÷division sign
+display \X00F8 348 # 248ø Latin small letter o with stroke
+display \X00F9 3568 # 249ù Latin small letter u with grave
+display \X00FA 1568 # 250ú Latin small letter u with acute
+display \X00FB  268		# 251		û		Latin small letter u with circumflex
+display \X00FC  234568 # 252ü Latin small letter u with diaeresis
+display \X00FD 12468 # 253ý Latin small letter y with acute
+display \X00FE 368 # 254þ Latin small letter thorn
+display \X00FF 34568 # 255ÿ Latin small letter y with diaeresis
+
+
+display \X00BB 3457  # 187»right-pointing double angle quotation mark
+display \X00B9  27  # 185¹superscript one
+display \X00B2 237  # 178²superscript two
+display \X00B3 257  # 179³superscript three
+display \X00B1 3467  # 177±plus-minus sign
+display \X00D7 167  # 215×multiplication sign
+
+display \X00B7 467  # 183·middle dot
+
+display \X00BF 14567  # 191¿inverted question mark
+
+
+display \X00B6  2357  # 182	¶		pilcrow sign
+
+
+#Hex Dots Dec Char Description
+display \X00BC 123567  # 188¼vulgar fraction one quarter
+display \X00BD 1234567  # 189½vulgar fraction one half
+display \X00BE  234567  # 190¾vulgar fraction three quarters
+
+# Each of the three extended accent characters is the same as its conventional
+# compose character but with dot7 added:
+
+#Hex Dots Dec Char Description
+display \X00B4 37  # 180´acute accent
+display \X00B8 67  # 184¸cedilla
+
+
+# The two gender symbols are:
+
+#Hex Dots Dec Char Description
+display \X00BA 7  # 186ºmasculine ordinal indicator
+
+
+# The three remaining characters are:
+
+#Hex Dots Dec Char Description
+
+display \X00B5  567  # 181µmicro sign
+
+
+# The nonbreaking space is dots 7 and 8 because this presents a sequence of
+# nonbreaking spaces as a smooth low line segment.
+
+#Hex Dots Dec Char Description
+
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb
new file mode 100644
index 0000000..ddd7ccc
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb
@@ -0,0 +1,268 @@
+###############################################################################
+# BRLTTY - A background process providing access to the console screen (when in
+#          text mode) for a blind person using a refreshable braille display.
+#
+# Copyright (C) 1995-2008 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://mielke.cc/brltty/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+# BRLTTY Text Table - Vietnamese (iso-8859-1)
+
+# generated by ttbtest
+letter \x0000 478		NULL
+letter \x0001 178		START OF HEADING
+letter \x0002 1278		START OF TEXT
+letter \x0003 1478		END OF TEXT
+letter \x0004 14578		END OF TRANSMISSION
+letter \x0005 1578		ENQUIRY
+letter \x0006 12478		ACKNOWLEDGE
+letter \x0007 124578		BELL
+letter \x0008 12578		BACKSPACE
+space \t 2478		CHARACTER TABULATION
+space \n 24578		LINE FEED (LF)
+space \v 1378		LINE TABULATION
+space \f 12378		FORM FEED (FF)
+space \r 13478		CARRIAGE RETURN (CR)
+letter \x000e 134578		SHIFT OUT
+letter \x000f 13578		SHIFT IN
+letter \x0010 123478		DATA LINK ESCAPE
+letter \x0011 1234578		DEVICE CONTROL ONE
+letter \x0012 123578		DEVICE CONTROL TWO
+letter \x0013 23478		DEVICE CONTROL THREE
+letter \x0014 234578		DEVICE CONTROL FOUR
+letter \x0015 13678		NEGATIVE ACKNOWLEDGE
+letter \x0016 123678		SYNCHRONOUS IDLE
+letter \x0017 245678		END OF TRANSMISSION BLOCK
+letter \x0018 134678		CANCEL
+letter \x0019 1345678		END OF MEDIUM
+letter \x001a 135678		SUBSTITUTE
+letter \x001b 24678		ESCAPE
+letter \x001c 125678		INFORMATION SEPARATOR FOUR
+letter \x001d 1245678		INFORMATION SEPARATOR THREE
+letter \x001e 4578		INFORMATION SEPARATOR TWO
+letter \x001f 45678		INFORMATION SEPARATOR ONE
+space \s 0		SPACE
+punctuation ! 235		EXCLAMATION MARK
+punctuation " 678		QUOTATION MARK
+punctuation # 3456		NUMBER SIGN
+punctuation $ 345		DOLLAR SIGN
+punctuation % 246		PERCENT SIGN
+punctuation & 3468		AMPERSAND
+punctuation ' 3		APOSTROPHE
+punctuation ( 123567		LEFT PARENTHESIS
+punctuation ) 234567		RIGHT PARENTHESIS
+punctuation * 35		ASTERISK
+punctuation + 346		PLUS SIGN
+punctuation , 2		COMMA
+punctuation - 36		HYPHEN-MINUS
+punctuation . 256		FULL STOP
+punctuation / 34		SOLIDUS
+include loweredDigits8Dots.uti
+punctuation : 25		COLON
+punctuation ; 23		SEMICOLON
+punctuation < 236		LESS-THAN SIGN
+punctuation = 2356		EQUALS SIGN
+punctuation > 356		GREATER-THAN SIGN
+punctuation ? 26		QUESTION MARK
+punctuation @ 47		COMMERCIAL AT
+uppercase A 17		LATIN CAPITAL LETTER A
+uppercase B 127		LATIN CAPITAL LETTER B
+uppercase C 147		LATIN CAPITAL LETTER C
+uppercase D 13567		LATIN CAPITAL LETTER D
+uppercase E 157		LATIN CAPITAL LETTER E
+uppercase F 1247		LATIN CAPITAL LETTER F
+uppercase G 12457		LATIN CAPITAL LETTER G
+uppercase H 1257		LATIN CAPITAL LETTER H
+uppercase I 247		LATIN CAPITAL LETTER I
+uppercase J 2457		LATIN CAPITAL LETTER J
+uppercase K 137		LATIN CAPITAL LETTER K
+uppercase L 1237		LATIN CAPITAL LETTER L
+uppercase M 1347		LATIN CAPITAL LETTER M
+uppercase N 13457		LATIN CAPITAL LETTER N
+uppercase O 1357		LATIN CAPITAL LETTER O
+uppercase P 12347		LATIN CAPITAL LETTER P
+uppercase Q 123457		LATIN CAPITAL LETTER Q
+uppercase R 12357		LATIN CAPITAL LETTER R
+uppercase S 2347		LATIN CAPITAL LETTER S
+uppercase T 23457		LATIN CAPITAL LETTER T
+uppercase U 1367		LATIN CAPITAL LETTER U
+uppercase V 12367		LATIN CAPITAL LETTER V
+uppercase W 24567		LATIN CAPITAL LETTER W
+uppercase X 13467		LATIN CAPITAL LETTER X
+uppercase Y 134567		LATIN CAPITAL LETTER Y
+uppercase Z 13567		LATIN CAPITAL LETTER Z
+punctuation [ 123568		LEFT SQUARE BRACKET
+punctuation \\ 168		REVERSE SOLIDUS
+punctuation ] 234568		RIGHT SQUARE BRACKET
+punctuation ^ 457		CIRCUMFLEX ACCENT
+punctuation _ 4567		LOW LINE
+punctuation ` 4		GRAVE ACCENT
+lowercase a 1		LATIN SMALL LETTER A
+lowercase b 12		LATIN SMALL LETTER B
+lowercase c 14		LATIN SMALL LETTER C
+lowercase d 1356		LATIN SMALL LETTER D
+lowercase e 15		LATIN SMALL LETTER E
+lowercase f 124		LATIN SMALL LETTER F
+lowercase g 1245		LATIN SMALL LETTER G
+lowercase h 125		LATIN SMALL LETTER H
+lowercase i 24		LATIN SMALL LETTER I
+lowercase j 245		LATIN SMALL LETTER J
+lowercase k 13		LATIN SMALL LETTER K
+lowercase l 123		LATIN SMALL LETTER L
+lowercase m 134		LATIN SMALL LETTER M
+lowercase n 1345		LATIN SMALL LETTER N
+lowercase o 135		LATIN SMALL LETTER O
+lowercase p 1234		LATIN SMALL LETTER P
+lowercase q 12345		LATIN SMALL LETTER Q
+lowercase r 1235		LATIN SMALL LETTER R
+lowercase s 234		LATIN SMALL LETTER S
+lowercase t 2345		LATIN SMALL LETTER T
+lowercase u 136		LATIN SMALL LETTER U
+lowercase v 1236		LATIN SMALL LETTER V
+lowercase w 2456		LATIN SMALL LETTER W
+lowercase x 1346		LATIN SMALL LETTER X
+lowercase y 13456		LATIN SMALL LETTER Y
+lowercase z 1356		LATIN SMALL LETTER Z
+punctuation { 1235678		LEFT CURLY BRACKET
+punctuation | 4568		VERTICAL LINE
+punctuation } 2345678		RIGHT CURLY BRACKET
+punctuation ~ 45		TILDE
+letter \x007f 456		DELETE
+letter \x0080 48		<control-0080>
+letter \x0081 18		<control-0081>
+letter \x0082 128		BREAK PERMITTED HERE
+letter \x0083 148		NO BREAK HERE
+letter \x0084 1458		<control-0084>
+letter \x0085 158		NEXT LINE (NEL)
+letter \x0086 1248		START OF SELECTED AREA
+letter \x0087 12458		END OF SELECTED AREA
+letter \x0088 1258		CHARACTER TABULATION SET
+letter \x0089 248		CHARACTER TABULATION WITH JUSTIFICATION
+letter \x008a 2458		LINE TABULATION SET
+letter \x008b 138		PARTIAL LINE FORWARD
+letter \x008c 1238		PARTIAL LINE BACKWARD
+letter \x008d 1348		REVERSE LINE FEED
+letter \x008e 13458		SINGLE SHIFT TWO
+letter \x008f 1358		SINGLE SHIFT THREE
+letter \x0090 12348		DEVICE CONTROL STRING
+letter \x0091 123458		PRIVATE USE ONE
+letter \x0092 12358		PRIVATE USE TWO
+letter \x0093 2348		SET TRANSMIT STATE
+letter \x0094 23458		CANCEL CHARACTER
+letter \x0095 1368		MESSAGE WAITING
+letter \x0096 12368		START OF GUARDED AREA
+letter \x0097 24568		END OF GUARDED AREA
+letter \x0098 13468		START OF STRING
+letter \x0099 134568		<control-0099>
+letter \x009a 13568		SINGLE CHARACTER INTRODUCER
+letter \x009b 2468		CONTROL SEQUENCE INTRODUCER
+letter \x009c 12568		STRING TERMINATOR
+letter \x009d 124568		OPERATING SYSTEM COMMAND
+letter \x009e 458		PRIVACY MESSAGE
+letter \x009f 4568		APPLICATION PROGRAM COMMAND
+punctuation \x00a0 0		NO-BREAK SPACE
+punctuation \x00a1 12345678		INVERTED EXCLAMATION MARK
+punctuation \x00a2 12345678		CENT SIGN
+punctuation \x00a3 12345678		POUND SIGN
+punctuation \x00a4 12345678		CURRENCY SIGN
+punctuation \x00a5 12345678		YEN SIGN
+punctuation \x00a6 12345678		BROKEN BAR
+punctuation \x00a7 12345678		SECTION SIGN
+punctuation \x00a8 12345678		DIAERESIS
+punctuation \x00a9 147		COPYRIGHT SIGN
+letter \x00aa 12345678		FEMININE ORDINAL INDICATOR
+punctuation \x00ab 2367		LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00ac 12345678		NOT SIGN
+punctuation \x00ad 12345678		SOFT HYPHEN
+punctuation \x00ae 12347		REGISTERED SIGN
+punctuation \x00af 12345678		MACRON
+punctuation \x00b0 12345678		DEGREE SIGN
+punctuation \x00b1 12345678		PLUS-MINUS SIGN
+punctuation \x00b2 12345678		SUPERSCRIPT TWO
+punctuation \x00b3 12345678		SUPERSCRIPT THREE
+punctuation \x00b4 12345678		ACUTE ACCENT
+lowercase \x00b5 12345678		MICRO SIGN
+punctuation \x00b6 12345678		PILCROW SIGN
+punctuation \x00b7 35		MIDDLE DOT
+punctuation \x00b8 12345678		CEDILLA
+punctuation \x00b9 12345678		SUPERSCRIPT ONE
+letter \x00ba 12345678		MASCULINE ORDINAL INDICATOR
+punctuation \x00bb 3567		RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+punctuation \x00bc 12345678		VULGAR FRACTION ONE QUARTER
+punctuation \x00bd 12345678		VULGAR FRACTION ONE HALF
+punctuation \x00be 12345678		VULGAR FRACTION THREE QUARTERS
+punctuation \x00bf 12345678		INVERTED QUESTION MARK
+uppercase \x00c0 567		LATIN CAPITAL LETTER A WITH GRAVE
+uppercase \x00c1 357		LATIN CAPITAL LETTER A WITH ACUTE
+uppercase \x00c2 7		LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+uppercase \x00c3 367		LATIN CAPITAL LETTER A WITH TILDE
+uppercase \x00c4 67		LATIN CAPITAL LETTER A WITH DIAERESIS
+uppercase \x00c5 267		LATIN CAPITAL LETTER A WITH RING ABOVE
+uppercase \x00c6 267		LATIN CAPITAL LETTER AE
+uppercase \x00c7 123467		LATIN CAPITAL LETTER C WITH CEDILLA
+uppercase \x00c8 568		LATIN CAPITAL LETTER E WITH GRAVE
+uppercase \x00c9 358		LATIN CAPITAL LETTER E WITH ACUTE
+uppercase \x00ca 8		LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+uppercase \x00cb 68		LATIN CAPITAL LETTER E WITH DIAERESIS
+uppercase \x00cc 567		LATIN CAPITAL LETTER I WITH GRAVE
+uppercase \x00cd 357		LATIN CAPITAL LETTER I WITH ACUTE
+uppercase \x00ce 1234567		LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+uppercase \x00cf 6		LATIN CAPITAL LETTER I WITH DIAERESIS
+uppercase \x00d0 12345678		LATIN CAPITAL LETTER ETH
+uppercase \x00d1 1457		LATIN CAPITAL LETTER N WITH TILDE
+uppercase \x00d2 67		LATIN CAPITAL LETTER O WITH GRAVE
+uppercase \x00d3 367		LATIN CAPITAL LETTER O WITH ACUTE
+uppercase \x00d4 2467		LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+uppercase \x00d5 36		LATIN CAPITAL LETTER O WITH TILDE
+uppercase \x00d6 12567		LATIN CAPITAL LETTER O WITH DIAERESIS
+punctuation \x00d7 35		MULTIPLICATION SIGN
+uppercase \x00d8 56		LATIN CAPITAL LETTER O WITH STROKE
+uppercase \x00d9 35		LATIN CAPITAL LETTER U WITH GRAVE
+uppercase \x00da 268		LATIN CAPITAL LETTER U WITH ACUTE
+uppercase \x00db 26		LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+uppercase \x00dc 368		LATIN CAPITAL LETTER U WITH DIAERESIS
+uppercase \x00dd 134567		LATIN CAPITAL LETTER Y WITH ACUTE
+uppercase \x00de 12345678		LATIN CAPITAL LETTER THORN
+lowercase \x00df 234		LATIN SMALL LETTER SHARP S
+lowercase \x00e0 567		LATIN SMALL LETTER A WITH GRAVE
+lowercase \x00e1 357		LATIN SMALL LETTER A WITH ACUTE
+lowercase \x00e2 7		LATIN SMALL LETTER A WITH CIRCUMFLEX
+lowercase \x00e3 367		LATIN SMALL LETTER A WITH TILDE
+lowercase \x00e4 67		LATIN SMALL LETTER A WITH DIAERESIS
+lowercase \x00e5 267		LATIN SMALL LETTER A WITH RING ABOVE
+lowercase \x00e6 26		LATIN SMALL LETTER AE
+lowercase \x00e7 12346		LATIN SMALL LETTER C WITH CEDILLA
+lowercase \x00e8 568		LATIN SMALL LETTER E WITH GRAVE
+lowercase \x00e9 358		LATIN SMALL LETTER E WITH ACUTE
+lowercase \x00ea 8		LATIN SMALL LETTER E WITH CIRCUMFLEX
+lowercase \x00eb 68		LATIN SMALL LETTER E WITH DIAERESIS
+lowercase \x00ec 56		LATIN SMALL LETTER I WITH GRAVE
+lowercase \x00ed 35		LATIN SMALL LETTER I WITH ACUTE
+lowercase \x00ee 123456		LATIN SMALL LETTER I WITH CIRCUMFLEX
+lowercase \x00ef 6		LATIN SMALL LETTER I WITH DIAERESIS
+lowercase \x00f0 12345678		LATIN SMALL LETTER ETH
+lowercase \x00f1 145		LATIN SMALL LETTER N WITH TILDE
+lowercase \x00f2 6		LATIN SMALL LETTER O WITH GRAVE
+lowercase \x00f3 36		LATIN SMALL LETTER O WITH ACUTE
+lowercase \x00f4 246		LATIN SMALL LETTER O WITH CIRCUMFLEX
+lowercase \x00f5 36		LATIN SMALL LETTER O WITH TILDE
+lowercase \x00f6 1256		LATIN SMALL LETTER O WITH DIAERESIS
+punctuation \x00f7 34		DIVISION SIGN
+lowercase \x00f8 56		LATIN SMALL LETTER O WITH STROKE
+lowercase \x00f9 35		LATIN SMALL LETTER U WITH GRAVE
+lowercase \x00fa 268		LATIN SMALL LETTER U WITH ACUTE
+lowercase \x00fb 26		LATIN SMALL LETTER U WITH CIRCUMFLEX
+lowercase \x00fc 368		LATIN SMALL LETTER U WITH DIAERESIS
+lowercase \x00fd 13456		LATIN SMALL LETTER Y WITH ACUTE
+lowercase \x00fe 12345678		LATIN SMALL LETTER THORN
+lowercase \x00ff 13456		LATIN SMALL LETTER Y WITH DIAERESIS
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb
new file mode 100644
index 0000000..3386faf
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb
@@ -0,0 +1,10429 @@
+# liblouis: Chinese Hong Kong Cantonese braille Translation Table
+# Created by KM Yuen, Keny Yuen, Alex Ho and Eric Yip (16 July 2009)
+#
+# include:
+include en-us-comp8.ctb
+# The following table has 4 columns,
+# the first column is Opcode,
+# the second one is "\x" follow by Hexadecimal Value of the Chinese word,
+# the third one is braille dot pattern of the Chinese word
+# the fourth one (optional) is the Chinese word actually.
+
+sign \x003E 345
+sign \x00A7 35-35
+sign \x00AF 456-36
+sign \x00B0 356
+sign \x00B1 56-235-36
+sign \x00F7 56-256
+sign \x02C7 56-2345-24-14-13
+sign \x03A9 456-135
+sign \x03B1 456-1
+sign \x03B2 46-12
+sign \x03B8 46-1
+sign \x03C0 56-1234-24-15
+sign \x2013 36-36
+sign \x2014 36-36
+sign \x2018 6-236
+sign \x2019 356-3
+sign \x201D 356
+sign \x2022 456-256
+sign \x2023 2345-1235-24
+sign \x2025 3-3
+sign \x2026 3-3-3
+sign \x2027 56-23
+sign \x2032 356-3
+sign \x2035 6-236
+sign \x203B 35-35
+sign \x2043 36
+sign \x204C 123-1-1235-1235
+sign \x204D 1235-1-1235-1235
+sign \x2103 356-6-14
+sign \x2105 14-135
+sign \x2109 356-6-124
+sign \x2160 56-6-24
+sign \x2161 56-6-24-24
+sign \x2162 56-6-24-24-24
+sign \x2163 56-6-24-1236
+sign \x2164 56-6-1236
+sign \x2165 56-6-1236-24
+sign \x2166 56-6-1236-24-24
+sign \x2167 56-6-1236-24-24-24
+sign \x2168 56-6-24-1346
+sign \x2169 56-6-1346
+sign \x2190 2456-25
+sign \x2191 345-1235-246-1234-135-35-2345-234-235-6-1345
+sign \x2192 25-1235
+sign \x2193 345-1235-246-1234-135-35-2345-234-235-6-234
+sign \x2196 345-1235-246-1234-135-35-2345-234-235-6-1345-2456
+sign \x2197 345-1235-246-1234-135-35-2345-234-235-6-1345-15
+sign \x2198 345-1235-246-1234-135-35-2345-234-235-6-234-15
+sign \x2199 345-1235-246-1234-135-35-2345-234-235-6-234-2456
+sign \x2215 34
+sign \x221A 56-346
+sign \x2223 456-123
+sign \x2225 456-123
+sign \x222A 124-136
+sign \x2260 5-2356
+sign \x2266 56-126-123456
+sign \x2267 56-345-123456
+sign \x2295 56-14-1235-135-234-234-35-14-123
+sign \x2500 25-25
+sign \x2502 456-123
+sign \x250C 236
+sign \x2514 456-125
+sign \x251C 456-1235
+sign \x2524 2456-123
+sign \x253C 56-14-1235-135-234-234
+sign \x2573 56-14-1235-135-234-234
+sign \x2581 456-36
+sign \x2582 456-36
+sign \x2583 456-36
+sign \x2584 456-36
+sign \x2585 456-36
+sign \x2586 456-36
+sign \x2587 456-36
+sign \x2588 456-36
+sign \x2589 456-123
+sign \x258A 456-123
+sign \x258B 456-123
+sign \x258C 456-123
+sign \x258D 456-123
+sign \x258E 456-123
+sign \x258F 456-123
+sign \x2594 456-36
+sign \x25A0 456-234
+sign \x25A1 456-234
+sign \x25B2 456-145
+sign \x25B3 456-145
+sign \x25BC 456-2345
+sign \x25BD 456-2345
+sign \x25C6 456-2345
+sign \x25C7 456-2345
+sign \x25C9 245-2345
+sign \x25CB 123-356-3
+sign \x25CE 456-135
+sign \x25CF 25
+sign \x25E3 456-2345
+sign \x25E4 456-2345
+sign \x25E5 456-2345
+sign \x25E6 2456-1235-1345-145
+sign \x2605 35-35
+sign \x2606 35-35
+sign \x2619 1235-125
+sign \x2640 345-1235-246-123456-124-15-134-1-123-15
+sign \x2642 345-1235-246-123456-134-1-123-15
+sign \x3001 45
+sign \x3002 123456-0
+sign \x3008 126
+sign \x3009 345
+sign \x300A 126-126
+sign \x300B 345-345
+sign \x300C 0-236
+sign \x300D 356-0
+sign \x300E 6-236
+sign \x300F 356-3
+sign \x3010 6-2356
+sign \x3011 2356-3
+sign \x3014 6-2356
+sign \x3015 2356-3
+sign \x301D 236
+sign \x301E 356
+sign \x3029 134-1246-3
+sign \x32A3 14-356-4
+sign \x338E 56-134-1245
+sign \x338F 56-13-1245
+sign \x339C 56-134-134
+sign \x339D 56-14-134
+sign \x339E 56-13-134
+sign \x33A1 56-134-23
+sign \x33C4 56-14-14
+sign \x33CE 56-6-13-134
+sign \x33D5 56-134-24-123
+sign \x347A 14-234-4
+sign \x34E4 13-35 㓤
+sign \x35A1 15-2 㖡
+sign \x35AD 23456-235 㖭
+sign \x35BF 245-15-6 㖿
+sign \x35CE 13-12-4 㗎
+sign \x35F3 2345-26 㗳
+sign \x35FE 125-156 㗾
+sign \x3609 14-23456-5 㘉
+sign \x3836 124-45-3
+sign \x39F8 12346-14 㧸
+sign \x39FE 124-35 㧾
+sign \x3A18 234-1245-4 㨘
+sign \x3A52 13-456-2 㩒
+sign \x3A67 1234-12456 㩧
+sign \x3B39 14-14 㬹
+sign \x3BBE 123-56-6
+sign \x3C0D 123-236-3
+sign \x3DE7 23-3 㷧
+sign \x3DEB 125-356-4 㷫
+sign \x3E74 13-1245 㹴
+sign \x3F06 245-356-3
+sign \x4065 1345-1235 䁥
+sign \x406A 14-345-1 䁪
+sign \x40BB 14-14-2 䂻
+sign \x40D8 125-1245
+sign \x44EA 245-1235-3 䓪
+sign \x4606 125-23-1 䘆
+sign \x47F4 1245-1245-4 䟴
+sign \x4C7D 1346-56 䱽
+sign \x4E00 245-35 一
+sign \x4E01 2345-356 丁
+sign \x4E03 1346-35 七
+sign \x4E07 134-45-2 万
+sign \x4E08 14-25-2 丈
+sign \x4E09 234-345 三
+sign \x4E0A 234-25-2 上
+sign \x4E0B 125-12-2 下
+sign \x4E0C 13-125 丌
+sign \x4E0D 1234-35 不
+sign \x4E0E 1456-6 与
+sign \x4E0F 134-256-6 丏
+sign \x4E10 1235-126-4 丐
+sign \x4E11 1346-16-1 丑
+sign \x4E14 1346-15-1 且
+sign \x4E15 12346-125 丕
+sign \x4E16 234-146-4 世
+sign \x4E18 245-16 丘
+sign \x4E19 1234-356-1 丙
+sign \x4E1E 234-356-3 丞
+sign \x4E1F 2345-13456 丟
+sign \x4E21 123-25-1 両
+sign \x4E26 1234-356-2 並
+sign \x4E2B 12-0 丫
+sign \x4E2D 14-236 中
+sign \x4E2E 125-16 丮
+sign \x4E30 124-236 丰
+sign \x4E31 12345-45-4 丱
+sign \x4E32 1346-23-4 串
+sign \x4E33 1346-45-1 丳
+sign \x4E38 23-1 丸
+sign \x4E39 2345-45 丹
+sign \x4E3B 14-1456-1 主
+sign \x4E42 1245-346-2 乂
+sign \x4E43 1345-346-6 乃
+sign \x4E45 13-16-1 久
+sign \x4E47 23456-12456-5
+sign \x4E48 13456-0 么
+sign \x4E49 24-2
+sign \x4E4B 14-24 之
+sign \x4E4D 14-12-4 乍
+sign \x4E4E 124-136-3 乎
+sign \x4E4F 124-35-3 乏
+sign \x4E52 1234-356 乒
+sign \x4E53 1234-456 乓
+sign \x4E56 12345-346 乖
+sign \x4E58 234-356-3 乘
+sign \x4E59 12356-3 乙
+sign \x4E5C 134-35 乜
+sign \x4E5D 13-16-1 九
+sign \x4E5E 125-35 乞
+sign \x4E5F 245-12-6 也
+sign \x4E69 13-125 乩
+sign \x4E6A 1235-2456-3 乪
+sign \x4E73 1456-6 乳
+sign \x4E78 1345-12-1 乸
+sign \x4E7E 13-1345 乾
+sign \x4E82 123-23-2 亂
+sign \x4E86 123-13456-6 了
+sign \x4E88 1456-6 予
+sign \x4E8B 234-24-2 事
+sign \x4E8C 24-2 二
+sign \x4E8D 1346-12345 亍
+sign \x4E8E 1456-0 于
+sign \x4E91 2456-1246-3 云
+sign \x4E92 136-2 互
+sign \x4E93 1235-125-3 亓
+sign \x4E94 1245-6 五
+sign \x4E95 14-2356-1 井
+sign \x4E99 13-1245-1 亙
+sign \x4E9B 234-15 些
+sign \x4E9E 12-4 亞
+sign \x4E9F 13-1235 亟
+sign \x4EA1 134-56-3 亡
+sign \x4EA2 1235-56-4 亢
+sign \x4EA4 13-34 交
+sign \x4EA5 125-126-2 亥
+sign \x4EA6 245-1235-3 亦
+sign \x4EA8 125-1245 亨
+sign \x4EAB 125-25-1 享
+sign \x4EAC 13-356 京
+sign \x4EAD 23456-356-3 亭
+sign \x4EAE 123-25-2 亮
+sign \x4EB3 1234-12456-5 亳
+sign \x4EB6 23456-45-1 亶
+sign \x4EB9 134-2346-3 亹
+sign \x4EBA 245-1246-3 人
+sign \x4EC0 234-456-2 什
+sign \x4EC1 245-1246-3 仁
+sign \x4EC2 123-46-3 仂
+sign \x4EC3 2345-356 仃
+sign \x4EC4 14-46 仄
+sign \x4EC6 12346-12345 仆
+sign \x4EC7 234-16-3 仇
+sign \x4EC8 123-46-3 仈
+sign \x4EC9 14-25-1 仉
+sign \x4ECA 13-456 今
+sign \x4ECB 13-346-4 介
+sign \x4ECD 245-356-3 仍
+sign \x4ED4 14-146-1 仔
+sign \x4ED5 234-24-2 仕
+sign \x4ED6 23456-12 他
+sign \x4ED7 14-25-4 仗
+sign \x4ED8 124-136-2 付
+sign \x4ED9 234-256 仙
+sign \x4EDD 23456-236-3 仝
+sign \x4EDE 245-1246-2 仞
+sign \x4EDF 1346-256 仟
+sign \x4EE1 1245-35-3 仡
+sign \x4EE3 2345-126-2 代
+sign \x4EE4 123-356-2 令
+sign \x4EE5 24-6 以
+sign \x4EE8 234-12 仨
+sign \x4EE9 123-146-6 仩
+sign \x4EF0 245-25-6 仰
+sign \x4EF2 14-236-2 仲
+sign \x4EF3 12346-125-1 仳
+sign \x4EF5 1245-6 仵
+sign \x4EF6 13-256-2 件
+sign \x4EF7 13-12-4 价
+sign \x4EFB 245-456-2 任
+sign \x4EFD 124-1246-2 份
+sign \x4EFF 124-56-1 仿
+sign \x4F00 14-236 伀
+sign \x4F01 1235-125-6 企
+sign \x4F02 1235-236-3 伂
+sign \x4F03 1456-3
+sign \x4F08 234-456-1 伈
+sign \x4F09 1235-56-4 伉
+sign \x4F0A 24-0 伊
+sign \x4F0B 1235-26 伋
+sign \x4F0D 1245-6 伍
+sign \x4F0E 13-125-2 伎
+sign \x4F0F 124-12345-3 伏
+sign \x4F10 124-35-3 伐
+sign \x4F11 245-16 休
+sign \x4F12 13-1246-4 伒
+sign \x4F13 134-1236-3
+sign \x4F14 1345-346-6 伔
+sign \x4F15 124-136 伕
+sign \x4F18 245-16 优
+sign \x4F19 124-135-1 伙
+sign \x4F22 1245-12-3 伢
+sign \x4F2D 23-3 伭
+sign \x4F2F 1234-13-5 伯
+sign \x4F30 13-136-1 估
+sign \x4F33 234-23456-5 伳
+sign \x4F34 1234-2346-2 伴
+sign \x4F36 123-356-3 伶
+sign \x4F38 234-1246 伸
+sign \x4F3A 234-24-2 伺
+sign \x4F3B 12346-356 伻
+sign \x4F3C 1346-24-6 似
+sign \x4F3D 13-12 伽
+sign \x4F3E 12346-125 伾
+sign \x4F42 14-356
+sign \x4F43 2345-256-2 佃
+sign \x4F46 2345-45-2 但
+sign \x4F47 1346-1456-6 佇
+sign \x4F48 1234-1236-4 佈
+sign \x4F49 1235-245 佉
+sign \x4F4C 1346-24-1 佌
+sign \x4F4D 2456-146-2 位
+sign \x4F4E 2345-146 低
+sign \x4F4F 14-1456-2 住
+sign \x4F50 14-135-4 佐
+sign \x4F51 245-16-2 佑
+sign \x4F53 23456-146-1 体
+sign \x4F54 14-235-4 佔
+sign \x4F55 125-135-3 何
+sign \x4F57 23456-135-3 佗
+sign \x4F58 234-15-3 佘
+sign \x4F59 1456-3 余
+sign \x4F5A 245-35-3 佚
+sign \x4F5B 124-35-3 佛
+sign \x4F5C 14-12456-5 作
+sign \x4F5D 1235-245 佝
+sign \x4F5E 1345-356-2 佞
+sign \x4F5F 23456-236-3 佟
+sign \x4F60 1345-125-6 你
+sign \x4F62 1235-245-6 佢
+sign \x4F63 245-236-1 佣
+sign \x4F64 1245-12-6 佤
+sign \x4F67 1235-12 佧
+sign \x4F69 12346-1256-4 佩
+sign \x4F6A 1256-3 佪
+sign \x4F6C 123-1236-1 佬
+sign \x4F6F 245-25-3 佯
+sign \x4F70 1234-13-5 佰
+sign \x4F73 13-346 佳
+sign \x4F74 24-6 佴
+sign \x4F75 1234-356-4 併
+sign \x4F76 13-35 佶
+sign \x4F77 125-1246-1 佷
+sign \x4F78 1356-3 佸
+sign \x4F79 12345-146-1 佹
+sign \x4F7A 1346-23-3 佺
+sign \x4F7B 23456-13456 佻
+sign \x4F7C 13-34-1 佼
+sign \x4F7D 1346-24-4 佽
+sign \x4F7E 245-35-3 佾
+sign \x4F7F 234-24-1 使
+sign \x4F80 245-356-3 侀
+sign \x4F81 234-1246 侁
+sign \x4F82 23456-12456-5
+sign \x4F83 125-1345-1 侃
+sign \x4F84 14-35-3 侄
+sign \x4F85 13-126 侅
+sign \x4F86 123-126-3 來
+sign \x4F87 24-3 侇
+sign \x4F88 1346-24-1 侈
+sign \x4F89 12456-12-1 侉
+sign \x4F8B 123-146-2 例
+sign \x4F8D 234-24-2 侍
+sign \x4F8F 14-1456 侏
+sign \x4F90 12345-1235 侐
+sign \x4F91 245-16-2 侑
+sign \x4F94 134-16-3 侔
+sign \x4F96 123-234-3 侖
+sign \x4F97 2345-236-2 侗
+sign \x4F98 1346-12-4 侘
+sign \x4F9A 234-234 侚
+sign \x4F9B 13-236 供
+sign \x4F9C 14-16 侜
+sign \x4F9D 24-0 依
+sign \x4FAE 134-1236-6 侮
+sign \x4FAF 125-16-3 侯
+sign \x4FB2 14-1246-4 侲
+sign \x4FB5 1346-456 侵
+sign \x4FB6 123-245-6 侶
+sign \x4FB7 13-12345-3 侷
+sign \x4FB9 23456-356-6 侹
+sign \x4FBA 234-456-3 侺
+sign \x4FBF 1234-256-2 便
+sign \x4FC2 125-146-2 係
+sign \x4FC3 1346-12345 促
+sign \x4FC4 1245-135-3 俄
+sign \x4FC5 1235-16-3 俅
+sign \x4FCA 14-234-4 俊
+sign \x4FCD 123-25-3 俍
+sign \x4FCE 14-135-1 俎
+sign \x4FCF 1346-13456-4 俏
+sign \x4FD0 123-125-2 俐
+sign \x4FD1 245-236-1 俑
+sign \x4FD4 256-6 俔
+sign \x4FD7 14-12345-3 俗
+sign \x4FD8 124-136 俘
+sign \x4FDA 123-125-6 俚
+sign \x4FDB 124-136-1 俛
+sign \x4FDC 12346-356 俜
+sign \x4FDD 1234-1236-1 保
+sign \x4FDE 1456-3 俞
+sign \x4FDF 14-24-2 俟
+sign \x4FE0 125-1234-3 俠
+sign \x4FE1 234-234-4 信
+sign \x4FEC 234-24
+sign \x4FEE 234-16 修
+sign \x4FEF 124-136-1 俯
+sign \x4FF1 1235-245 俱
+sign \x4FF3 12346-346-3 俳
+sign \x4FF4 1346-256-6 俴
+sign \x4FF5 1234-13456-1 俵
+sign \x4FF6 23456-1235 俶
+sign \x4FF8 124-236-1 俸
+sign \x4FFA 235-4 俺
+sign \x4FFE 1234-125-1 俾
+sign \x5000 1346-25 倀
+sign \x5005 1346-245-4 倅
+sign \x5006 123-25-6 倆
+sign \x5007 23-1 倇
+sign \x5008 123-126-3
+sign \x5009 1346-56 倉
+sign \x500B 13-135-4 個
+sign \x500C 13-2346 倌
+sign \x500D 12346-1256-6 倍
+sign \x500F 234-12345 倏
+sign \x5011 134-2346-3 們
+sign \x5012 2345-1236-1 倒
+sign \x5013 23456-345-3 倓
+sign \x5014 12345-35-3 倔
+sign \x5015 234-245-3 倕
+sign \x5016 125-1245-2 倖
+sign \x5017 12346-1245-3 倗
+sign \x5018 23456-56-1 倘
+sign \x5019 125-16-2 候
+sign \x501A 24-1 倚
+sign \x501C 23456-1235 倜
+sign \x501E 13-356-2 倞
+sign \x501F 14-15-4 借
+sign \x5021 1346-25 倡
+sign \x5023 124-56-1 倣
+sign \x5025 125-236 倥
+sign \x5026 13-23-2 倦
+sign \x5028 13-245-4 倨
+sign \x5029 234-256-2 倩
+sign \x502A 1245-146-3 倪
+sign \x502B 123-234-3 倫
+sign \x502C 1346-246-5 倬
+sign \x502D 2456-135 倭
+sign \x502E 123-135-1
+sign \x5033 14-24-2 倳
+sign \x503C 14-1235-3 值
+sign \x5041 1346-356 偁
+sign \x5043 256-1 偃
+sign \x5046 1346-234-1 偆
+sign \x5047 13-12-1 假
+sign \x5048 13-146-1 偈
+sign \x5049 2456-146-6 偉
+sign \x504C 245-15-2 偌
+sign \x504E 1256-0 偎
+sign \x504F 12346-256 偏
+sign \x5053 46-0 偓
+sign \x5055 13-346 偕
+sign \x5058 125-1345-3
+sign \x505A 14-1236-2 做
+sign \x505C 23456-356-3 停
+sign \x505D 1234-1256-4 偝
+sign \x505E 12346-3 偞
+sign \x505F 2456-56-3 偟
+sign \x5060 13456-1 偠
+sign \x5061 14-345-4 偡
+sign \x5062 1346-16-1 偢
+sign \x5065 13-256-2 健
+sign \x506A 1234-1235 偪
+sign \x506B 1346-24-6 偫
+sign \x506C 14-236-4
+sign \x506D 134-256-6 偭
+sign \x506F 24-1 偯
+sign \x5070 1235-146-4 偰
+sign \x5072 234-24 偲
+sign \x5074 14-46 側
+sign \x5075 14-356 偵
+sign \x5076 1245-16-6 偶
+sign \x5077 23456-16 偷
+sign \x507A 14-12 偺
+sign \x507D 1245-146-2 偽
+sign \x5080 124-346-4 傀
+sign \x5085 124-136-2 傅
+sign \x508C 134-12-2 傌
+sign \x508D 12346-56-3 傍
+sign \x508E 2345-256 傎
+sign \x5091 13-23456-3 傑
+sign \x5092 125-146-3 傒
+sign \x5094 125-235-4 傔
+sign \x5095 13-12456-5 傕
+sign \x5096 1346-56 傖
+sign \x5098 234-45-4 傘
+sign \x5099 1234-125-2 備
+sign \x509A 125-34-2 傚
+sign \x509C 13456-3 傜
+sign \x509D 23456-1234-5 傝
+sign \x509E 1346-135 傞
+sign \x50A2 13-12 傢
+sign \x50A3 23456-346-4 傣
+sign \x50AC 1346-245 催
+sign \x50AD 245-236-3 傭
+sign \x50AE 14-1236 傮
+sign \x50AF 14-236-1 傯
+sign \x50B2 1245-1236-2 傲
+sign \x50B3 1346-23-3 傳
+sign \x50B4 1456-1 傴
+sign \x50B5 14-346-4 債
+sign \x50B7 234-25 傷
+sign \x50BA 1346-146-4 傺
+sign \x50BB 234-135-3 傻
+sign \x50BD 14-25 傽
+sign \x50BE 1235-356 傾
+sign \x50BF 256-0 傿
+sign \x50C2 123-16-3 僂
+sign \x50C4 12346-13456-6
+sign \x50C5 13-1246-1 僅
+sign \x50C7 123-12345-3 僇
+sign \x50C9 1346-235 僉
+sign \x50CA 234-256 僊
+sign \x50CE 14-45-2 僎
+sign \x50CF 14-25-2 像
+sign \x50D1 1235-13456-3 僑
+sign \x50D3 23456-245-3 僓
+sign \x50D4 14-23-1 僔
+sign \x50D5 1234-12345-3 僕
+sign \x50D6 125-125 僖
+sign \x50D7 123-1236-3 僗
+sign \x50DA 123-13456-3 僚
+sign \x50DB 125-125 僛
+sign \x50DD 234-45-3 僝
+sign \x50E3 1346-235-6 僣
+sign \x50E4 2345-45-2 僤
+sign \x50E5 125-13456 僥
+sign \x50E6 14-16-2 僦
+sign \x50E7 14-1245 僧
+sign \x50E8 124-1246-6 僨
+sign \x50E9 234-45-1 僩
+sign \x50EC 14-13456 僬
+sign \x50ED 1346-235-4 僭
+sign \x50EE 23456-236-3 僮
+sign \x50F0 1234-13-5 僰
+sign \x50F1 13-136-4 僱
+sign \x50F3 234-12345 僳
+sign \x50F5 13-25 僵
+sign \x50F6 134-1246-6 僶
+sign \x50F8 13-456-4 僸
+sign \x50F9 13-12-4 價
+sign \x50FB 12346-1235 僻
+sign \x50FD 14-16-4 僽
+sign \x50FE 126-4 僾
+sign \x50FF 234-146-4 僿
+sign \x5100 24-3 儀
+sign \x5101 14-234-4
+sign \x5102 1345-236-3 儂
+sign \x5103 23456-45-1 儃
+sign \x5104 245-1235 億
+sign \x5106 13-356-1 儆
+sign \x5107 125-23 儇
+sign \x5108 1235-1256-1 儈
+sign \x5109 13-235-2 儉
+sign \x510A 1346-135-1 儊
+sign \x510B 2345-345 儋
+sign \x510C 13-13456 儌
+sign \x510E 14-126-4
+sign \x5110 1234-1246-4 儐
+sign \x5112 1456-3 儒
+sign \x5113 23456-126-3 儓
+sign \x5114 1346-16-3 儔
+sign \x5115 1346-346-3 儕
+sign \x5117 24-6 儗
+sign \x5118 14-234-1 儘
+sign \x511C 1345-1245-3 儜
+sign \x511F 234-25-3 償
+sign \x5120 123-12346-3 儠
+sign \x5121 123-245-6 儡
+sign \x5126 1234-13456 儦
+sign \x5129 1346-24-4 儩
+sign \x512A 245-16 優
+sign \x512D 1346-1246-4 儭
+sign \x5131 123-236-6 儱
+sign \x5132 1346-1456-6 儲
+sign \x5133 1346-345-3 儳
+sign \x5135 234-1245 儵
+sign \x5137 123-146-2 儷
+sign \x5138 123-135-3 儸
+sign \x5139 14-45-1 儹
+sign \x513A 1345-135-3 儺
+sign \x513B 23456-56-1 儻
+sign \x513C 235-6 儼
+sign \x513D 123-245-3 儽
+sign \x513F 24-3 儿
+sign \x5140 1245-35-3 兀
+sign \x5141 2456-1246-6 允
+sign \x5143 23-3 元
+sign \x5144 125-356 兄
+sign \x5145 1346-236 充
+sign \x5146 234-13456-2 兆
+sign \x5147 125-236 兇
+sign \x5148 234-256 先
+sign \x5149 12345-56 光
+sign \x514B 125-46 克
+sign \x514C 2345-245-4 兌
+sign \x514D 134-256-6 免
+sign \x5152 24-3 兒
+sign \x5154 23456-1236-4 兔
+sign \x5155 14-24-4 兕
+sign \x5157 256-6 兗
+sign \x5159 56-234-26-3-125-46
+sign \x515A 2345-56-1 党
+sign \x515B 56-1346-256-125-46
+sign \x515C 2345-16 兜
+sign \x515F 234-1246 兟
+sign \x5162 13-356 兢
+sign \x5165 245-26-3 入
+sign \x5167 1345-126-2 內
+sign \x5168 1346-23-3 全
+sign \x5169 123-25-6 兩
+sign \x516A 1456-3
+sign \x516B 1234-2345-5 八
+sign \x516C 13-236 公
+sign \x516D 123-12345-3 六
+sign \x516E 125-146-3 兮
+sign \x5171 13-236-2 共
+sign \x5175 1234-356 兵
+sign \x5176 1235-125-3 其
+sign \x5177 13-245-2 具
+sign \x5178 2345-256-1 典
+sign \x517C 13-235 兼
+sign \x5180 1235-125-4 冀
+sign \x5187 134-1236-6 冇
+sign \x5189 235-6 冉
+sign \x518A 1346-13-5 冊
+sign \x518D 14-126-4 再
+sign \x518F 12345-356-1 冏
+sign \x5191 14-16-2 冑
+sign \x5192 134-1236-2 冒
+sign \x5193 13-16-4 冓
+sign \x5194 125-245-1 冔
+sign \x5195 134-256-6 冕
+sign \x5197 245-236-1 冗
+sign \x5198 245-16-3 冘
+sign \x519A 1235-456-1 冚
+sign \x519E 134-125-3 冞
+sign \x519F 245-356
+sign \x51A0 13-2346-4 冠
+sign \x51A2 1346-236-1 冢
+sign \x51A4 23-0 冤
+sign \x51A5 134-356-6 冥
+sign \x51A7 123-456-4 冧
+sign \x51A8 124-136-4
+sign \x51AA 134-1235-3 冪
+sign \x51AC 2345-236 冬
+sign \x51B0 1234-356 冰
+sign \x51B1 136-2 冱
+sign \x51B6 245-15-6 冶
+sign \x51B7 123-14-6 冷
+sign \x51BC 234-256-1 冼
+sign \x51BD 123-23456-3 冽
+sign \x51BE 12346-125-4 冾
+sign \x51C4 1346-146 凄
+sign \x51C6 14-234-1 准
+sign \x51C8 14-356-2 凈
+sign \x51C9 123-25-3
+sign \x51CA 14-356-2 凊
+sign \x51CB 2345-13456 凋
+sign \x51CC 123-356-3 凌
+sign \x51CD 2345-236-4 凍
+sign \x51D3 123-1346-3
+sign \x51D4 1346-56 凔
+sign \x51D8 234-24 凘
+sign \x51DC 123-456-6 凜
+sign \x51DD 245-356-3 凝
+sign \x51E0 13-125 几
+sign \x51E1 124-45-3 凡
+sign \x51E2 124-45-3
+sign \x51ED 12346-1245-3
+sign \x51F0 2456-56-3 凰
+sign \x51F1 125-126-1 凱
+sign \x51F3 2345-1245-4 凳
+sign \x51F5 125-456-4 凵
+sign \x51F6 125-236 凶
+sign \x51F8 2345-35-3 凸
+sign \x51F9 1345-26 凹
+sign \x51FA 1346-1346 出
+sign \x51FD 125-345-3 函
+sign \x5200 2345-1236 刀
+sign \x5201 2345-13456 刁
+sign \x5203 245-1246-2 刃
+sign \x5206 124-1246 分
+sign \x5207 1346-23456-5 切
+sign \x5208 1245-346-2 刈
+sign \x5209 13-125 刉
+sign \x520A 125-1345-1 刊
+sign \x520B 125-1345-1
+sign \x520E 134-1246-6 刎
+sign \x5211 245-356-3 刑
+sign \x5212 2456-12 划
+sign \x5213 23-3 刓
+sign \x5216 12356-3 刖
+sign \x5217 123-23456-3 列
+sign \x521C 124-35 刜
+sign \x521D 1346-135 初
+sign \x5224 12346-2346-4 判
+sign \x5225 1234-23456-3 別
+sign \x5228 12346-34-3 刨
+sign \x5229 123-125-2 利
+sign \x522A 234-45 刪
+sign \x522E 12345-2345-5 刮
+sign \x5230 2345-1236-4 到
+sign \x5232 12345-146 刲
+sign \x5233 124-136 刳
+sign \x5235 24-2 刵
+sign \x5236 14-146-4 制
+sign \x5237 1346-2345-5 刷
+sign \x5238 13-23-4 券
+sign \x523A 1346-24-4 刺
+sign \x523B 125-46 刻
+sign \x5241 2345-135-1 剁
+sign \x5243 23456-146-4 剃
+sign \x5244 13-356-1 剄
+sign \x5247 14-46 則
+sign \x5249 1346-135-4 剉
+sign \x524A 234-246-5 削
+sign \x524B 125-46 剋
+sign \x524C 1346-24-4 剌
+sign \x524D 1346-256-3 前
+sign \x524E 234-2345-5 剎
+sign \x5252 1346-135-4 剒
+sign \x5254 23456-1235 剔
+sign \x5255 124-146-4 剕
+sign \x5256 124-16-1 剖
+sign \x525A 14-24-2 剚
+sign \x525B 13-56 剛
+sign \x525C 2346-1 剜
+sign \x525D 134-12456 剝
+sign \x525E 13-125 剞
+sign \x525F 14-12356-5 剟
+sign \x5261 235-6 剡
+sign \x5269 234-356-2 剩
+sign \x526A 14-256-1 剪
+sign \x526D 12345-0 剭
+sign \x526E 12345-12-4 剮
+sign \x526F 124-136-4 副
+sign \x5272 13-124-5 割
+sign \x5274 125-126-1 剴
+sign \x5275 1346-56-4 創
+sign \x5277 1346-45-1 剷
+sign \x5278 23456-23-3 剸
+sign \x527A 123-146-6 剺
+sign \x527D 12346-13456-6
+sign \x527F 14-13456-1 剿
+sign \x5280 12345-2345-5 劀
+sign \x5281 1346-13456-3 劁
+sign \x5282 1235-12356-5 劂
+sign \x5283 2456-13-3 劃
+sign \x5284 14-2345-5 劄
+sign \x5287 1235-2456-3 劇
+sign \x5288 12346-2456-5 劈
+sign \x5289 123-16-3 劉
+sign \x528A 1235-1256-1 劊
+sign \x528C 12345-146-4 劌
+sign \x528D 13-235-4 劍
+sign \x528F 23456-56 劏
+sign \x5291 14-146 劑
+sign \x5293 24-2 劓
+sign \x5296 1346-345-3 劖
+sign \x5298 134-135-3 劘
+sign \x5299 123-146-6 劙
+sign \x529B 123-1235-3 力
+sign \x529F 13-236 功
+sign \x52A0 13-12 加
+sign \x52A3 123-12356-5 劣
+sign \x52A6 125-12346-3 劦
+sign \x52A9 14-135-2 助
+sign \x52AA 1345-1236-6 努
+sign \x52AB 13-12346-5 劫
+sign \x52AC 1235-245-3 劬
+sign \x52AD 234-13456-2 劭
+sign \x52AE 245-35-3 劮
+sign \x52BB 125-56 劻
+sign \x52BC 1235-23456-5 劼
+sign \x52BE 125-35-3 劾
+sign \x52C1 13-356-2 勁
+sign \x52C3 1234-1356-3 勃
+sign \x52C7 245-236-6 勇
+sign \x52C9 134-256-6 勉
+sign \x52CD 1235-356-3 勍
+sign \x52D2 123-46-3 勒
+sign \x52D5 2345-236-2 動
+sign \x52D6 245-12345 勖
+sign \x52D7 245-12345 勗
+sign \x52D8 125-456-4 勘
+sign \x52D9 134-1236-2 務
+sign \x52DB 124-1246 勛
+sign \x52DD 234-356-4 勝
+sign \x52DE 123-1236-3 勞
+sign \x52DF 134-1236-2 募
+sign \x52E1 24-2
+sign \x52E2 234-146-4 勢
+sign \x52E3 14-1235 勣
+sign \x52E4 1235-1246-3 勤
+sign \x52E5 1235-1246-3
+sign \x52E6 14-13456-1 勦
+sign \x52E7 14-13456-1
+sign \x52E9 24-2 勩
+sign \x52F0 125-12346-3 勰
+sign \x52F1 134-346-2 勱
+sign \x52F3 124-1246 勳
+sign \x52F4 123-245-2 勴
+sign \x52F5 123-146-2 勵
+sign \x52F7 245-25-3 勷
+sign \x52F8 125-23-4 勸
+sign \x52FA 1346-246-5 勺
+sign \x52FB 2456-1246-3 勻
+sign \x52FC 13-16 勼
+sign \x52FE 1245-16 勾
+sign \x52FF 134-35-3 勿
+sign \x5305 1234-34 包
+sign \x5306 1346-236 匆
+sign \x5308 125-236 匈
+sign \x5309 12346-356 匉
+sign \x530A 13-12345 匊
+sign \x530B 23456-1236-3 匋
+sign \x530D 12346-1236-3 匍
+sign \x530F 12346-34-3 匏
+sign \x5310 124-12345-3 匐
+sign \x5312 2345-1234-5 匒
+sign \x5315 1234-125-4 匕
+sign \x5316 124-12-4 化
+sign \x5317 1234-46 北
+sign \x5319 234-24-3 匙
+sign \x531A 124-56 匚
+sign \x531C 24-3 匜
+sign \x531D 14-1234-5 匝
+sign \x531F 1235-56-4 匟
+sign \x5320 14-25-2 匠
+sign \x5321 125-56 匡
+sign \x5323 125-1234-3 匣
+sign \x532A 124-125-1 匪
+sign \x532D 12345-146-1 匭
+sign \x532F 1256-2 匯
+sign \x5330 2345-45 匰
+sign \x5331 12345-146-2 匱
+sign \x5333 123-235-3
+sign \x5334 234-23-4 匴
+sign \x5339 12346-35 匹
+sign \x533C 1235-135 匼
+sign \x533D 256-1 匽
+sign \x533E 1234-256-1 匾
+sign \x533F 1345-1235 匿
+sign \x5340 1235-245 區
+sign \x5341 234-26-3 十
+sign \x5343 1346-256 千
+sign \x5345 234-12 卅
+sign \x5347 234-356 升
+sign \x5348 1245-6 午
+sign \x5349 2456-146-6 卉
+sign \x534A 1234-2346-4 半
+sign \x534C 234-15-4 卌
+sign \x5351 1234-125 卑
+sign \x5352 14-1346 卒
+sign \x5353 1346-246-5 卓
+sign \x5354 125-12346-5 協
+sign \x5357 1345-345-3 南
+sign \x535A 1234-12456-5 博
+sign \x535C 1234-12345 卜
+sign \x535E 1234-256-2 卞
+sign \x5360 14-235 占
+sign \x5361 1235-12 卡
+sign \x5363 245-16-6 卣
+sign \x5366 12345-12-4 卦
+sign \x536C 1245-56-3 卬
+sign \x536E 14-24 卮
+sign \x536F 134-34-6 卯
+sign \x5370 245-1246-4 印
+sign \x5371 1245-146-3 危
+sign \x5372 234-13456-2 卲
+sign \x5373 14-1235 即
+sign \x5375 123-234-1 卵
+sign \x5377 13-23-1 卷
+sign \x5378 234-15-4 卸
+sign \x5379 234-1346 卹
+sign \x537B 1235-246-5 卻
+sign \x537C 1245-35-3 卼
+sign \x537F 125-356 卿
+sign \x5382 1346-56-1 厂
+sign \x5384 46-0 厄
+sign \x538A 23456-236-3 厊
+sign \x538E 2345-146-1 厎
+sign \x538F 14-12-4 厏
+sign \x5394 14-35-3 厔
+sign \x5396 12346-56-3 厖
+sign \x5398 123-125-3 厘
+sign \x5399 234-15-4 厙
+sign \x539A 125-16-6 厚
+sign \x539D 1346-1236-4 厝
+sign \x539F 23-3 原
+sign \x53A4 123-1235-3 厤
+sign \x53A5 1235-12356-5 厥
+sign \x53AC 12345-146-1 厬
+sign \x53AD 235-4 厭
+sign \x53B2 123-146-2 厲
+sign \x53B4 235-1 厴
+sign \x53B9 245-16-3 厹
+sign \x53BB 125-245-4 去
+sign \x53C1 234-345 叁
+sign \x53C3 1346-345 參
+sign \x53C8 245-16-2 又
+sign \x53C9 1346-12 叉
+sign \x53CA 1235-26-3 及
+sign \x53CB 245-16-6 友
+sign \x53CD 124-45-1 反
+sign \x53D4 234-12345 叔
+sign \x53D6 1346-245-1 取
+sign \x53D7 234-16-2 受
+sign \x53D9 14-245-2
+sign \x53DB 1234-2346-2 叛
+sign \x53DF 234-16-1 叟
+sign \x53E1 245-245-2 叡
+sign \x53E2 1346-236-3 叢
+sign \x53E3 125-16-1 口
+sign \x53E4 13-136-1 古
+sign \x53E5 13-245-4 句
+sign \x53E6 123-356-2 另
+sign \x53E7 123-356-2
+sign \x53E8 23456-1236 叨
+sign \x53E9 1235-16-4 叩
+sign \x53EA 14-24-1 只
+sign \x53EB 13-13456-4 叫
+sign \x53EC 14-13456-2 召
+sign \x53ED 1234-12 叭
+sign \x53EE 2345-356 叮
+sign \x53EF 125-135-1 可
+sign \x53F0 23456-126-3 台
+sign \x53F1 1346-1235 叱
+sign \x53F2 234-24-1 史
+sign \x53F3 245-16-2 右
+sign \x53F5 12346-135-1 叵
+sign \x53F8 234-24 司
+sign \x53FB 123-2456 叻
+sign \x53FC 2345-13456 叼
+sign \x53FE 2345-12345 叾
+sign \x5401 125-245 吁
+sign \x5403 125-2456-5 吃
+sign \x5404 13-12456-5 各
+sign \x5406 13456-0 吆
+sign \x5408 125-26-3 合
+sign \x5409 13-35 吉
+sign \x540A 2345-13456-4 吊
+sign \x540B 1346-23-4 吋
+sign \x540C 23456-236-3 同
+sign \x540D 134-356-3 名
+sign \x540E 125-16-2 后
+sign \x540F 123-125-2 吏
+sign \x5410 23456-1236-4 吐
+sign \x5411 125-25-4 向
+sign \x5412 14-12 吒
+sign \x5413 125-12-1 吓
+sign \x5414 245-12 吔
+sign \x5416 12-0 吖
+sign \x5419 124-135-1 吙
+sign \x541B 12345-1246 君
+sign \x541D 123-234-2 吝
+sign \x541E 23456-1246 吞
+sign \x541F 245-456-3 吟
+sign \x5420 124-146-2 吠
+sign \x5421 12346-125-1
+sign \x5425 1234-35 吥
+sign \x5426 124-16-1 否
+sign \x5427 1234-12-2 吧
+sign \x5428 2345-234 吨
+sign \x5429 124-1246 吩
+sign \x542A 1245-135-3 吪
+sign \x542B 125-456-3 含
+sign \x542C 23456-356-4 听
+sign \x542D 125-1245 吭
+sign \x542E 234-23-6 吮
+sign \x5430 2456-1245-3 吰
+sign \x5431 14-24 吱
+sign \x5433 1245-3 吳
+sign \x5435 1346-34-1 吵
+sign \x5436 1345-1234-3 吶
+sign \x5437 1235-12356-5 吷
+sign \x5438 1235-26 吸
+sign \x5439 1346-245 吹
+sign \x543B 134-1246-6 吻
+sign \x543C 125-34 吼
+sign \x543D 125-236 吽
+sign \x543E 1245-3 吾
+sign \x5440 12-4 呀
+sign \x5441 1245-2345-3 呁
+sign \x5442 123-245-6 呂
+sign \x5443 46-0 呃
+sign \x5446 1245-126-3 呆
+sign \x5448 1346-356-3 呈
+sign \x544A 13-1236-4 告
+sign \x544E 1346-2456-5 呎
+sign \x5454 23456-346 呔
+sign \x5460 12346-1246-4 呠
+sign \x5462 1345-15 呢
+sign \x5463 134-6 呣
+sign \x5464 123-356-6 呤
+sign \x5465 235-3 呥
+sign \x5466 245-16 呦
+sign \x5468 14-16 周
+sign \x546B 1346-12346-5 呫
+sign \x5471 12345-12 呱
+sign \x5472 14-24 呲
+sign \x5473 134-125-2 味
+sign \x5474 1456-4 呴
+sign \x5475 125-135 呵
+sign \x5476 1345-34-3 呶
+sign \x5477 125-1234-5 呷
+sign \x5478 12346-125 呸
+sign \x547B 234-1246 呻
+sign \x547C 124-136 呼
+sign \x547D 134-356-2 命
+sign \x547E 23456-45-1 呾
+sign \x5480 14-245-1 咀
+sign \x5481 13-456-4 咁
+sign \x5482 14-1234-5 咂
+sign \x5484 14-12356-5 咄
+sign \x5486 12346-34-3 咆
+sign \x5488 124-35-3 咈
+sign \x548B 14-12-4 咋
+sign \x548C 2456-135-3 和
+sign \x548D 125-346 咍
+sign \x548E 13-16-4 咎
+sign \x5490 124-136-4 咐
+sign \x5491 2345-12 咑
+sign \x5492 14-16-4 咒
+sign \x5493 12-6 咓
+sign \x5494 1235-12-3 咔
+sign \x5495 13-136 咕
+sign \x5496 13-12-4 咖
+sign \x5497 14-135-1 咗
+sign \x549A 2345-236 咚
+sign \x54A0 1346-26 咠
+sign \x54A1 24-2 咡
+sign \x54A2 1245-12456-3 咢
+sign \x54A4 1346-13 咤
+sign \x54A5 125-125-4 咥
+sign \x54A6 24-1 咦
+sign \x54A7 123-23456-3 咧
+sign \x54A8 14-24 咨
+sign \x54A9 134-15 咩
+sign \x54AA 134-125 咪
+sign \x54AB 14-24-1 咫
+sign \x54AC 1245-34-6 咬
+sign \x54AD 1235-2345 咭
+sign \x54AE 14-16-4 咮
+sign \x54AF 123-12456-5 咯
+sign \x54B1 14-12-4 咱
+sign \x54B3 1235-35 咳
+sign \x54B6 234-346-6 咶
+sign \x54B7 23456-1236-3 咷
+sign \x54B8 125-345-3 咸
+sign \x54B9 125-1345 咹
+sign \x54BA 125-23 咺
+sign \x54BB 245-16 咻
+sign \x54BC 2456-12 咼
+sign \x54BD 256-0 咽
+sign \x54BF 24-0 咿
+sign \x54C0 126-0 哀
+sign \x54C1 1234-1246-1 品
+sign \x54C2 1346-1246-1 哂
+sign \x54C4 125-236-4 哄
+sign \x54C6 2345-135 哆
+sign \x54C7 2456-12 哇
+sign \x54C8 125-12 哈
+sign \x54C9 14-126 哉
+sign \x54CB 2345-125-2 哋
+sign \x54CF 13-1246 哏
+sign \x54DA 2345-135-1 哚
+sign \x54DE 134-1236-3 哞
+sign \x54E1 23-3 員
+sign \x54E2 1345-236-2 哢
+sign \x54E3 1345-236-2
+sign \x54E4 134-56-3 哤
+sign \x54E5 13-135 哥
+sign \x54E6 135-3 哦
+sign \x54E7 1346-24 哧
+sign \x54E8 234-34-4 哨
+sign \x54E9 123-125-6 哩
+sign \x54EA 1345-12-6 哪
+sign \x54ED 125-12345 哭
+sign \x54EE 125-34 哮
+sign \x54F1 12346-135-4 哱
+sign \x54F2 14-23456-5 哲
+sign \x54F3 14-2345-5 哳
+sign \x54F7 123-12356-5 哷
+sign \x54FA 1234-1236-2 哺
+sign \x54FC 125-1245 哼
+sign \x54FD 13-1245-1 哽
+sign \x54FF 13-135 哿
+sign \x5501 256-2 唁
+sign \x5504 1234-346-2 唄
+sign \x5505 125-456-3 唅
+sign \x5506 234-135 唆
+sign \x5507 234-234-3 唇
+sign \x5508 245-26 唈
+sign \x5509 346-0 唉
+sign \x550E 123-125-2 唎
+sign \x550F 125-125 唏
+sign \x5510 23456-56-3 唐
+sign \x5511 14-135-2 唑
+sign \x5513 1346-15 唓
+sign \x5514 1245-3 唔
+sign \x5517 2345-16 唗
+sign \x551A 1346-456-4 唚
+sign \x551E 23456-16-1 唞
+sign \x5525 123-14-2 唥
+sign \x5526 234-12 唦
+sign \x5527 14-1235 唧
+sign \x552A 124-236-1 唪
+sign \x552B 13-456
+sign \x552C 124-136-1 唬
+sign \x552D 13-125 唭
+sign \x552E 234-16-2 售
+sign \x552F 2456-146-3 唯
+sign \x5530 1346-2345-5 唰
+sign \x5531 1346-25-4 唱
+sign \x5532 24-3 唲
+sign \x5533 123-245-2 唳
+sign \x5535 456-1 唵
+sign \x5536 14-15-4 唶
+sign \x5537 245-135 唷
+sign \x5538 1345-235-2 唸
+sign \x553C 14-23456-3 唼
+sign \x553E 23456-135-4 唾
+sign \x5540 1245-346-3 啀
+sign \x5541 14-16 啁
+sign \x5543 125-1245-1 啃
+sign \x5544 2345-246-5 啄
+sign \x5546 234-25 商
+sign \x5548 125-1245 啈
+sign \x5549 123-456 啉
+sign \x554A 135-3 啊
+sign \x554B 1346-126 啋
+sign \x554D 23456-1246 啍
+sign \x554E 1245-6 啎
+sign \x554F 134-1246-2 問
+sign \x5550 1346-245-4 啐
+sign \x5551 14-23456-3 啑
+sign \x5555 23456-1236-3 啕
+sign \x5556 2345-345-2 啖
+sign \x5557 2345-345-2 啗
+sign \x555C 14-12356-5 啜
+sign \x555D 2456-135-3 啝
+sign \x555E 12-1 啞
+sign \x555F 1235-146-1 啟
+sign \x5561 124-15 啡
+sign \x5562 123-25-1 啢
+sign \x5563 125-345-3 啣
+sign \x5564 1234-15 啤
+sign \x5565 234-12-1 啥
+sign \x5566 123-12 啦
+sign \x5569 12345-12-4 啩
+sign \x556A 12346-13 啪
+sign \x556B 14-15 啫
+sign \x5571 1245-345 啱
+sign \x5572 2345-24 啲
+sign \x5575 1234-135-4 啵
+sign \x5577 123-56 啷
+sign \x5579 13-156 啹
+sign \x557B 1346-24-4 啻
+sign \x557C 23456-146-3 啼
+sign \x557D 456-1 啽
+sign \x557E 14-16 啾
+sign \x5580 125-13-5 喀
+sign \x5581 245-236-3 喁
+sign \x5582 2456-146-4 喂
+sign \x5583 1345-345-3 喃
+sign \x5584 234-256-2 善
+sign \x5586 14-23456-5
+sign \x5587 123-12 喇
+sign \x5588 13-346 喈
+sign \x5589 125-16-3 喉
+sign \x558A 125-345-4 喊
+sign \x558B 2345-12346-3 喋
+sign \x558D 1346-346-3 喍
+sign \x558E 2456-135-4 喎
+sign \x558F 245-15-6 喏
+sign \x5591 245-456 喑
+sign \x5592 14-12 喒
+sign \x5593 13456-0 喓
+sign \x5594 135-0 喔
+sign \x5598 1346-23-1 喘
+sign \x5599 124-1256-4 喙
+sign \x559A 2346-2 喚
+sign \x559C 125-125-1 喜
+sign \x559D 125-124-5 喝
+sign \x559F 2456-146-1 喟
+sign \x55A2 234-1234-5 喢
+sign \x55A3 1456-4 喣
+sign \x55A4 2456-56-3 喤
+sign \x55A6 1245-345-3 喦
+sign \x55A7 125-23 喧
+sign \x55A8 123-25-2 喨
+sign \x55A9 1456-2
+sign \x55AA 234-56-4 喪
+sign \x55AB 125-2456-5 喫
+sign \x55AC 1235-13456-3 喬
+sign \x55AD 1245-1345-2 喭
+sign \x55AE 2345-45 單
+sign \x55B1 123-125 喱
+sign \x55B2 245-135 喲
+sign \x55B3 14-12 喳
+sign \x55B5 134-13456 喵
+sign \x55BA 125-146-2 喺
+sign \x55BB 1456-2 喻
+sign \x55BC 1245-12346 喼
+sign \x55BF 1346-1236-4 喿
+sign \x55C0 124-135-4 嗀
+sign \x55C3 125-12456-3 嗃
+sign \x55C4 234-12-4 嗄
+sign \x55C5 1346-16-4 嗅
+sign \x55C6 1346-25 嗆
+sign \x55C7 234-1235 嗇
+sign \x55C9 234-1236-4 嗉
+sign \x55CA 13-236-4 嗊
+sign \x55CC 346-4 嗌
+sign \x55CD 234-12456-5 嗍
+sign \x55CE 134-12 嗎
+sign \x55CF 1346-12 嗏
+sign \x55D0 125-126-2 嗐
+sign \x55D1 125-26-3 嗑
+sign \x55D2 23456-1234-5 嗒
+sign \x55D3 234-56 嗓
+sign \x55D4 14-1246 嗔
+sign \x55D6 234-16 嗖
+sign \x55D7 12345-1356 嗗
+sign \x55D9 12346-56-4 嗙
+sign \x55DA 136-0 嗚
+sign \x55DB 125-12346-5 嗛
+sign \x55DC 234-24-4 嗜
+sign \x55DD 13-13-5 嗝
+sign \x55DF 14-15 嗟
+sign \x55E1 245-236 嗡
+sign \x55E2 2456-35 嗢
+sign \x55E3 14-24-2 嗣
+sign \x55E4 1346-24 嗤
+sign \x55E5 125-1236-3 嗥
+sign \x55E6 234-135 嗦
+sign \x55E7 234-135
+sign \x55E8 125-346 嗨
+sign \x55E9 234-135-1 嗩
+sign \x55EC 125-135-1 嗬
+sign \x55EF 1245-1 嗯
+sign \x55F0 12345-135-1 嗰
+sign \x55F1 1346-12-3 嗱
+sign \x55F2 2345-15-1 嗲
+sign \x55F6 1234-35 嗶
+sign \x55F7 1245-1236-3 嗷
+sign \x55F9 123-256-3 嗹
+sign \x55FD 234-16-4 嗽
+sign \x55FE 234-16-1 嗾
+sign \x5600 2345-1235-3 嘀
+sign \x5601 1346-24 嘁
+sign \x5605 13-15-4 嘅
+sign \x5606 23456-45-4 嘆
+sign \x5608 1346-1236-3 嘈
+sign \x5609 13-12 嘉
+sign \x560C 12346-13456 嘌
+sign \x560D 123-16-3 嘍
+sign \x560E 13-12 嘎
+sign \x560F 13-136-1 嘏
+sign \x5610 125-34 嘐
+sign \x5612 2456-146-2 嘒
+sign \x5613 12345-12456-5 嘓
+sign \x5614 16-1 嘔
+sign \x5615 125-256 嘕
+sign \x5616 14-13-5 嘖
+sign \x5617 234-25-3 嘗
+sign \x561B 134-12-3 嘛
+sign \x561C 134-46 嘜
+sign \x561E 123-13-5 嘞
+sign \x561F 2345-1236 嘟
+sign \x5622 245-15-6 嘢
+sign \x5623 1234-1245 嘣
+sign \x5625 234-346 嘥
+sign \x5629 2456-12 嘩
+sign \x562C 14-12356-5 嘬
+sign \x562D 12346-14 嘭
+sign \x562E 123-1236-3 嘮
+sign \x562F 234-13456-4 嘯
+sign \x5630 13-125 嘰
+sign \x5632 14-34 嘲
+sign \x5634 14-245-1 嘴
+sign \x5635 125-13456 嘵
+sign \x5636 234-146 嘶
+sign \x5637 125-1236
+sign \x5638 134-1236-6 嘸
+sign \x5639 123-13456-3 嘹
+sign \x563A 1235-13456-3 嘺
+sign \x563B 125-125 嘻
+sign \x563D 23456-45 嘽
+sign \x563F 125-125 嘿
+sign \x5640 234-234-4 噀
+sign \x5641 12456-5 噁
+sign \x5642 14-23-1 噂
+sign \x5643 124-45-3 噃
+sign \x5646 1346-456-1 噆
+sign \x5649 2345-345-2 噉
+sign \x564A 2456-35-3 噊
+sign \x564C 14-1245 噌
+sign \x564D 14-13456-2
+sign \x564E 23456-5 噎
+sign \x564F 26-0 噏
+sign \x5652 123-234 噒
+sign \x5653 125-245 噓
+sign \x5654 2345-1245-2 噔
+sign \x5657 12346-12456-5 噗
+sign \x5658 1235-12356-5 噘
+sign \x5659 1235-456-3 噙
+sign \x565A 1346-456-3 噚
+sign \x565D 234-24 噝
+sign \x565E 235-1 噞
+sign \x5660 2345-2345-3 噠
+sign \x5662 135-0 噢
+sign \x5663 14-16-4 噣
+sign \x5664 13-456-4 噤
+sign \x5665 1345-236-3 噥
+sign \x5666 12356-3 噦
+sign \x5668 125-125-4 器
+sign \x5669 1245-12456-3 噩
+sign \x566A 1346-1236-4 噪
+sign \x566B 24-0 噫
+sign \x566C 234-146-2 噬
+sign \x566D 13-13456-4 噭
+sign \x566F 126-1 噯
+sign \x5670 245-236 噰
+sign \x5671 1235-246-3 噱
+sign \x5672 124-346-4 噲
+sign \x5674 12346-1246-4 噴
+sign \x5676 13-12 噶
+sign \x5677 1245-3 噷
+sign \x5678 2345-234 噸
+sign \x5679 2345-56 噹
+sign \x567C 12346-1235 噼
+sign \x5680 1345-356-3 嚀
+sign \x5683 2345-1234-3 嚃
+sign \x5684 2456-12456-3 嚄
+sign \x5685 1456-3 嚅
+sign \x5686 125-1236 嚆
+sign \x5687 125-13-5 嚇
+sign \x5689 2345-245-4 嚉
+sign \x568C 14-146-2 嚌
+sign \x568E 125-1236-3 嚎
+sign \x568F 23456-146-4 嚏
+sign \x5690 234-25-3 嚐
+sign \x5693 1346-2345-5 嚓
+sign \x5695 123-1236 嚕
+sign \x5699 1245-23456-3 嚙
+sign \x569A 1245-1246-3 嚚
+sign \x569C 134-46 嚜
+sign \x569E 14-23456-5
+sign \x569F 123-146-3 嚟
+sign \x56A1 125-346-3 嚡
+sign \x56A4 134-135 嚤
+sign \x56A5 256-4 嚥
+sign \x56A6 123-1235 嚦
+sign \x56A8 123-236-3 嚨
+sign \x56AA 2345-345-2 嚪
+sign \x56AB 1346-1246-4 嚫
+sign \x56AC 12346-1246-3 嚬
+sign \x56AD 12346-125-1 嚭
+sign \x56AE 125-25-1 嚮
+sign \x56B1 125-125-4 嚱
+sign \x56B2 2345-135-1 嚲
+sign \x56B3 13-12345 嚳
+sign \x56B4 235-3 嚴
+sign \x56B5 1346-345-3 嚵
+sign \x56B6 245-356 嚶
+sign \x56B7 245-25-2 嚷
+sign \x56B9 123-12-4 嚹
+sign \x56BC 14-246-5 嚼
+sign \x56BF 13-16-2 嚿
+sign \x56C0 14-23-1 囀
+sign \x56C1 14-12346-5 囁
+sign \x56C2 125-13456 囂
+sign \x56C5 1346-256-1 囅
+sign \x56C6 1346-346-4 囆
+sign \x56C8 1245-146-2 囈
+sign \x56C9 123-135 囉
+sign \x56CA 1345-56-3 囊
+sign \x56CB 14-45-4 囋
+sign \x56CC 234-1236 囌
+sign \x56CD 125-125-1 囍
+sign \x56D1 14-12345 囑
+sign \x56D3 1245-23456-3 囓
+sign \x56D4 1345-56-3 囔
+sign \x56D6 123-135 囖
+sign \x56D7 12345-12456-5
+sign \x56DA 1346-16-3 囚
+sign \x56DB 234-125-4 四
+sign \x56DD 14-146-1 囝
+sign \x56DE 1256-3 回
+sign \x56DF 234-234-4 囟
+sign \x56E0 245-1246 因
+sign \x56E1 1345-345-3 囡
+sign \x56E2 1345-345-3
+sign \x56E4 23456-23-3 囤
+sign \x56E5 2345-234-2
+sign \x56EA 1346-25 囪
+sign \x56EB 124-35 囫
+sign \x56EE 1245-135-3 囮
+sign \x56F0 12456-1246-4 困
+sign \x56F7 12456-1246 囷
+sign \x56F9 123-356-3 囹
+sign \x56FA 13-136-4 固
+sign \x56FF 245-16-2 囿
+sign \x5703 12346-1236-1 圃
+sign \x5704 1456-6 圄
+sign \x5707 123-234-3 圇
+sign \x5708 125-23 圈
+sign \x5709 1456-6 圉
+sign \x570A 1346-356 圊
+sign \x570B 12345-12456-5
+sign \x570C 1346-23-3 圌
+sign \x570D 2456-146-3 圍
+sign \x5712 23-3 園
+sign \x5713 23-3 圓
+sign \x5716 23456-1236-3 圖
+sign \x5718 23456-23-3 團
+sign \x571B 245-1235-3 圛
+sign \x571C 2456-45-3 圜
+sign \x571D 123-23-3
+sign \x571E 123-23-3 圞
+sign \x571F 23456-1236-1 土
+sign \x5722 12346-135 圢
+sign \x5723 234-356-4 圣
+sign \x5728 14-126-2 在
+sign \x5729 2456-146-3 圩
+sign \x572A 1245-35-3 圪
+sign \x572C 136-0 圬
+sign \x572D 12345-146 圭
+sign \x572E 12346-125-1 圮
+sign \x572F 24-3 圯
+sign \x5730 2345-125-2 地
+sign \x5733 14-1246-4 圳
+sign \x573B 1235-125-3 圻
+sign \x573E 234-1234-5 圾
+sign \x5740 14-24-1 址
+sign \x5741 14-24-1 坁
+sign \x5745 1346-23 坅
+sign \x5747 12345-1246 均
+sign \x5749 23456-23-3 坉
+sign \x574A 124-56 坊
+sign \x574B 1234-1246-2 坋
+sign \x574C 1234-1246-4 坌
+sign \x574D 23456-45 坍
+sign \x574E 125-456-1 坎
+sign \x574F 2456-346-2 坏
+sign \x5750 14-135-2 坐
+sign \x5751 125-14 坑
+sign \x5761 1234-135 坡
+sign \x5764 12456-1246 坤
+sign \x5766 23456-45-1 坦
+sign \x5768 23456-135-3 坨
+sign \x5769 125-456 坩
+sign \x576A 12346-356-3 坪
+sign \x576B 2345-235-4 坫
+sign \x576D 1345-146-3 坭
+sign \x576F 12346-1256 坯
+sign \x5770 12345-356 坰
+sign \x5773 34-4 坳
+sign \x5774 123-12345-3 坴
+sign \x5775 245-16 坵
+sign \x5776 134-1236-6 坶
+sign \x5777 125-135 坷
+sign \x577B 2345-146-1 坻
+sign \x577C 1346-13-5 坼
+sign \x5782 234-245-3 垂
+sign \x5783 123-1234-3 垃
+sign \x578B 245-356-3 型
+sign \x578C 23456-236-3 垌
+sign \x5793 13-126 垓
+sign \x5794 256-0 垔
+sign \x5795 125-16-2 垕
+sign \x579A 13456-3 垚
+sign \x579B 2345-135-1 垛
+sign \x579D 12345-146-1 垝
+sign \x579E 1346-12-3 垞
+sign \x579F 245-25-3 垟
+sign \x57A0 1245-1246-3 垠
+sign \x57A2 13-16-4 垢
+sign \x57A3 2346-3 垣
+sign \x57A4 2345-23456-3 垤
+sign \x57AE 12456-12 垮
+sign \x57B5 456-1 垵
+sign \x57B8 23-1 垸
+sign \x57C2 13-1245-1 埂
+sign \x57C3 346-0 埃
+sign \x57C6 1235-12456-5 埆
+sign \x57C7 245-236-1 埇
+sign \x57CB 134-346-3 埋
+sign \x57CC 123-56-2 埌
+sign \x57CE 234-356-3 城
+sign \x57CF 256-3 埏
+sign \x57D2 123-12356-5 埒
+sign \x57D4 1234-1236-4 埔
+sign \x57D5 1346-356-3 埕
+sign \x57D7 1234-1236-1 埗
+sign \x57DC 245-15-6 埜
+sign \x57DE 2345-2356-2 埞
+sign \x57DF 2456-1235-3 域
+sign \x57E0 124-16-2 埠
+sign \x57E1 12-4 埡
+sign \x57E2 13-23-2 埢
+sign \x57E3 13-23-2
+sign \x57E4 12346-125-3 埤
+sign \x57E5 12346-125-3
+sign \x57E7 13-245-2 埧
+sign \x57E8 13-245-2
+sign \x57ED 2345-146-2 埭
+sign \x57F0 1346-126-4 埰
+sign \x57F2 12346-236 埲
+sign \x57F3 125-456-1 埳
+sign \x57F4 14-1235-3 埴
+sign \x57F5 2345-135-1 埵
+sign \x57F6 234-146-4 埶
+sign \x57F7 14-26 執
+sign \x57F8 245-1235-3 埸
+sign \x57F9 12346-1256-3 培
+sign \x57FA 13-125 基
+sign \x57FB 14-234-1 埻
+sign \x57FC 1235-125-3 埼
+sign \x57FD 234-1236-4 埽
+sign \x5800 12345-35-3 堀
+sign \x5801 124-135-4 堁
+sign \x5802 23456-56-3 堂
+sign \x5803 12456-1246 堃
+sign \x5804 1245-146-3 堄
+sign \x5805 13-256 堅
+sign \x5806 2345-245 堆
+sign \x5807 13-1246-1 堇
+sign \x5808 13-56 堈
+sign \x5809 245-12345-3 堉
+sign \x580A 12456-5 堊
+sign \x580B 12346-1245-3 堋
+sign \x580C 13-136-4 堌
+sign \x580D 23456-126-4 堍
+sign \x580E 123-356-3 堎
+sign \x5810 1245-346-3 堐
+sign \x5819 245-1246 堙
+sign \x581B 12346-125-4 堛
+sign \x581D 2456-135 堝
+sign \x581E 2345-12346-3 堞
+sign \x5820 125-16-2 堠
+sign \x5821 1234-1236-1 堡
+sign \x5824 23456-146-3 堤
+sign \x5826 13-346
+sign \x5827 23-3 堧
+sign \x5828 126-1 堨
+sign \x582A 125-456 堪
+sign \x582D 2456-56-3 堭
+sign \x582E 1245-12456-3 堮
+sign \x582F 13456-3 堯
+sign \x5830 256-1 堰
+sign \x5831 1234-1236-4 報
+sign \x5832 14-1235 堲
+sign \x5834 1346-25-3 場
+sign \x5835 2345-1236-1 堵
+sign \x583D 13-56 堽
+sign \x583F 13-45-1 堿
+sign \x5848 1235-125-4 塈
+sign \x584A 124-346-4 塊
+sign \x584B 245-356-3 塋
+sign \x584C 23456-1234-5 塌
+sign \x584D 234-356-3 塍
+sign \x584F 125-126-1 塏
+sign \x5851 234-1236-4 塑
+sign \x5852 234-24-3 塒
+sign \x5853 134-1235-3 塓
+sign \x5854 23456-1234-5 塔
+sign \x5857 23456-1236-3 塗
+sign \x5858 23456-56-3 塘
+sign \x5859 1235-12456-5 塙
+sign \x585A 1346-236-1 塚
+sign \x585E 234-46 塞
+sign \x5862 1236-4 塢
+sign \x5864 125-23 塤
+sign \x5868 13-236 塨
+sign \x586B 23456-256-3 填
+sign \x586D 2456-1246
+sign \x5871 123-56-6 塱
+sign \x5873 1234-236-2 塳
+sign \x5874 1234-14-2 塴
+sign \x5875 1346-1246-3 塵
+sign \x5879 1346-235-4 塹
+sign \x587C 14-23 塼
+sign \x587D 234-56-1 塽
+sign \x587E 234-12345-3 塾
+sign \x587F 123-16-3 塿
+sign \x5880 1346-24-3 墀
+sign \x5881 134-45-2 墁
+sign \x5883 13-356-1 境
+sign \x5885 234-245-2 墅
+sign \x5887 14-25 墇
+sign \x5888 125-456-4 墈
+sign \x5889 245-236-3 墉
+sign \x588A 14-256-4 墊
+sign \x588B 1346-456-1 墋
+sign \x5890 13-1246-1 墐
+sign \x5893 134-1236-2 墓
+sign \x5894 1346-245 墔
+sign \x589C 14-245-2 墜
+sign \x589D 125-34 墝
+sign \x589E 14-1245 增
+sign \x589F 125-245 墟
+sign \x58A0 234-256-2 墠
+sign \x58A1 234-256-2 墡
+sign \x58A3 1234-12345-3 墣
+sign \x58A6 124-45-3 墦
+sign \x58A8 134-46-3 墨
+sign \x58A9 2345-234 墩
+sign \x58AB 14-234 墫
+sign \x58AC 14-245-2 墬
+sign \x58AE 2345-135-2 墮
+sign \x58B1 2345-1245-4 墱
+sign \x58B3 124-1246-3 墳
+sign \x58BA 1236-4 墺
+sign \x58BB 1346-25-3
+sign \x58BC 13-1235 墼
+sign \x58BE 125-1246-1 墾
+sign \x58C1 1234-1235 壁
+sign \x58C5 245-236-1 壅
+sign \x58C6 1234-12456-5 壆
+sign \x58C7 23456-45-3 壇
+sign \x58C8 123-456-6 壈
+sign \x58CE 125-23 壎
+sign \x58D1 1235-12456-5 壑
+sign \x58D2 126-1 壒
+sign \x58D3 2345-5 壓
+sign \x58D4 2345-1236-1 壔
+sign \x58D5 125-1236-3 壕
+sign \x58D6 23-3 壖
+sign \x58D8 123-245-6 壘
+sign \x58D9 1235-56-4 壙
+sign \x58DA 123-1236-3 壚
+sign \x58DC 23456-345-3
+sign \x58DD 2456-146-6 壝
+sign \x58DE 2456-346-2 壞
+sign \x58DF 123-236-6 壟
+sign \x58E0 123-236-6
+sign \x58E3 123-1235
+sign \x58E4 245-25-2 壤
+sign \x58E5 245-25-2
+sign \x58E9 1234-12-4 壩
+sign \x58EB 234-24-2 士
+sign \x58EC 245-456-3 壬
+sign \x58EF 14-56-4 壯
+sign \x58F9 245-35 壹
+sign \x58FA 136-3 壺
+sign \x58FC 136-3 壼
+sign \x58FD 234-16-2 壽
+sign \x58FF 14-234 壿
+sign \x5906 124-236-3 夆
+sign \x590C 123-356-3 夌
+sign \x590D 124-12345 复
+sign \x590F 125-12-2 夏
+sign \x5912 1345-34-3 夒
+sign \x5914 12456-146-3 夔
+sign \x5915 14-1235-3 夕
+sign \x5916 1245-126-2 外
+sign \x5917 23-4 夗
+sign \x5919 234-12345 夙
+sign \x591A 2345-135 多
+sign \x591C 245-15-2 夜
+sign \x591F 13-16-4
+sign \x5920 13-16-4 夠
+sign \x5922 134-236-2 夢
+sign \x5924 245-1246-3 夤
+sign \x5925 124-135-1 夥
+sign \x5927 2345-346-2 大
+sign \x5929 23456-256 天
+sign \x592A 23456-346-4 太
+sign \x592B 124-136 夫
+sign \x592C 12345-346-4 夬
+sign \x592D 13456-0 夭
+sign \x592E 245-25 央
+sign \x592F 125-14 夯
+sign \x5931 234-35 失
+sign \x5937 24-3 夷
+sign \x5938 12456-12 夸
+sign \x593C 12456-56-4 夼
+sign \x593E 13-1234-5 夾
+sign \x5940 1245-1246 奀
+sign \x5944 235-0 奄
+sign \x5947 1235-125-3 奇
+sign \x5948 1345-126-2 奈
+sign \x5949 124-236-2 奉
+sign \x594E 124-1256 奎
+sign \x594F 14-16-4 奏
+sign \x5950 2346-2 奐
+sign \x5951 1235-146-4 契
+sign \x5953 14-12 奓
+sign \x5954 1234-1246 奔
+sign \x5955 245-1235-3 奕
+sign \x5957 23456-1236-4 套
+sign \x5958 14-56 奘
+sign \x595A 125-146-3 奚
+sign \x5960 2345-256-2 奠
+sign \x5961 1245-1236-2 奡
+sign \x5962 1346-15 奢
+sign \x5967 1236-4 奧
+sign \x5969 123-235-3 奩
+sign \x596A 2345-12356-3 奪
+sign \x596B 2456-1246 奫
+sign \x596D 234-1235 奭
+sign \x596E 124-1246-6 奮
+sign \x5970 1234-125-2 奰
+sign \x5972 2345-135-1 奲
+sign \x5973 1345-245-6 女
+sign \x5974 1345-1236-3 奴
+sign \x5976 1345-346-6 奶
+sign \x5978 13-45 奸
+sign \x5979 23456-12 她
+sign \x597C 1346-12-4 奼
+sign \x597D 125-1236-1 好
+sign \x597E 234-13456-2 奾
+sign \x5981 14-246-5 妁
+sign \x5982 1456-3 如
+sign \x5983 124-125 妃
+sign \x5984 134-56-6 妄
+sign \x598A 245-456-3 妊
+sign \x598D 256-3 妍
+sign \x598E 13-346-4 妎
+sign \x5990 14-236 妐
+sign \x5992 2345-1236-4 妒
+sign \x5993 13-125-2 妓
+sign \x5996 13456-1 妖
+sign \x5997 1235-456-6 妗
+sign \x5998 2456-1246-3 妘
+sign \x5999 134-13456-2 妙
+sign \x599D 14-56 妝
+sign \x599E 1345-16-1 妞
+sign \x59A3 1234-125-1 妣
+sign \x59A4 1456-3 妤
+sign \x59A5 23456-135-6 妥
+sign \x59A6 124-236 妦
+sign \x59A8 124-56-3 妨
+sign \x59AE 1345-125-3 妮
+sign \x59AF 14-12345-3 妯
+sign \x59B2 23456-45-1 妲
+sign \x59B3 1345-125-6 妳
+sign \x59B5 23456-16-1 妵
+sign \x59B9 134-1256-2 妹
+sign \x59BA 134-1356-3 妺
+sign \x59BB 1346-146 妻
+sign \x59BE 1346-12346-5 妾
+sign \x59C1 125-245-1 姁
+sign \x59C5 1234-2346-4 姅
+sign \x59C6 134-1236-6 姆
+sign \x59C9 14-24
+sign \x59CA 14-24-1 姊
+sign \x59CB 1346-24-1 始
+sign \x59CC 235-6 姌
+sign \x59CD 234-45 姍
+sign \x59CF 134-45-3 姏
+sign \x59D0 14-15-1 姐
+sign \x59D1 13-136 姑
+sign \x59D2 1346-24-6 姒
+sign \x59D3 234-356-4 姓
+sign \x59D4 2456-146-1 委
+sign \x59D8 12346-356-4 姘
+sign \x59D9 245-456-3
+sign \x59DA 13456-3 姚
+sign \x59DC 13-25 姜
+sign \x59DD 234-1456 姝
+sign \x59DE 13-35 姞
+sign \x59E3 13-34-1 姣
+sign \x59E4 13-16-4 姤
+sign \x59E5 123-1236-6 姥
+sign \x59E6 13-45 姦
+sign \x59E7 13-45
+sign \x59E8 24-3 姨
+sign \x59E9 24-3
+sign \x59EA 14-35-3 姪
+sign \x59EC 13-125 姬
+sign \x59EE 125-1245-3 姮
+sign \x59F1 12456-12 姱
+sign \x59FA 234-256-1 姺
+sign \x59FB 245-1246 姻
+sign \x59FD 12345-146-1 姽
+sign \x59FF 14-24 姿
+sign \x5A00 234-236 娀
+sign \x5A01 2456-146 威
+sign \x5A03 2456-12 娃
+sign \x5A09 12346-356 娉
+sign \x5A0C 123-125-6 娌
+sign \x5A11 234-135 娑
+sign \x5A13 134-125-6 娓
+sign \x5A16 1346-12345 娖
+sign \x5A18 1345-25-3 娘
+sign \x5A1B 1456-3 娛
+sign \x5A1C 1345-12-3 娜
+sign \x5A1F 13-23 娟
+sign \x5A20 234-1246 娠
+sign \x5A23 23456-146-6 娣
+sign \x5A25 1245-135-3 娥
+sign \x5A29 134-256-6 娩
+sign \x5A2D 346-0 娭
+sign \x5A36 1346-245-1 娶
+sign \x5A3C 1346-25 娼
+sign \x5A40 135-0 婀
+sign \x5A41 123-16-3 婁
+sign \x5A46 12346-135-3 婆
+sign \x5A49 23-1 婉
+sign \x5A4A 1234-13456-1 婊
+sign \x5A50 135-0 婐
+sign \x5A51 2456-135 婑
+sign \x5A53 124-125-3 婓
+sign \x5A55 14-23456-5 婕
+sign \x5A57 1245-146-3 婗
+sign \x5A5A 124-1246 婚
+sign \x5A5E 125-1245-2 婞
+sign \x5A60 2346-0 婠
+sign \x5A62 12346-125-6 婢
+sign \x5A63 245-1246
+sign \x5A65 1346-246-5 婥
+sign \x5A66 124-136-6 婦
+sign \x5A6A 123-345-3 婪
+sign \x5A6C 245-456-3 婬
+sign \x5A6D 12-4 婭
+sign \x5A77 23456-356-3 婷
+sign \x5A78 2345-56-2 婸
+sign \x5A7A 134-1236-2 婺
+sign \x5A7C 245-246-3 婼
+sign \x5A7E 23456-16
+sign \x5A7F 234-146-4 婿
+sign \x5A8C 134-34-3 媌
+sign \x5A90 125-125 媐
+sign \x5A92 134-1256-3 媒
+sign \x5A95 456-0 媕
+sign \x5A9A 134-125-3 媚
+sign \x5A9B 2346-3 媛
+sign \x5A9E 23456-146-3 媞
+sign \x5A9F 234-23456-5 媟
+sign \x5AA0 23456-135-6
+sign \x5AA2 134-1236-2 媢
+sign \x5AA6 2456-146-2 媦
+sign \x5AA7 2456-135 媧
+sign \x5AAE 23456-16 媮
+sign \x5AAF 12345-146 媯
+sign \x5AB1 13456-3 媱
+sign \x5AB2 1234-125-1 媲
+sign \x5AB3 234-1235 媳
+sign \x5AB5 245-356-2 媵
+sign \x5AB8 1346-24 媸
+sign \x5ABA 134-125-6 媺
+sign \x5ABB 12346-2346-3 媻
+sign \x5ABC 1236-1 媼
+sign \x5ABD 134-12 媽
+sign \x5ABE 13-16-4 媾
+sign \x5ABF 12456-146-4 媿
+sign \x5AC1 13-12-4 嫁
+sign \x5AC2 234-1236-1 嫂
+sign \x5AC4 23-3 嫄
+sign \x5AC7 134-356-6 嫇
+sign \x5AC8 245-356 嫈
+sign \x5AC9 14-35-3 嫉
+sign \x5ACB 1345-13456-6 嫋
+sign \x5ACC 235-3 嫌
+sign \x5ACF 123-56-3
+sign \x5AD6 12346-13456-3
+sign \x5AD7 1456-1 嫗
+sign \x5AD8 123-245-3 嫘
+sign \x5ADB 24-0 嫛
+sign \x5ADC 14-25 嫜
+sign \x5ADF 1345-1235 嫟
+sign \x5AE0 123-125-3 嫠
+sign \x5AE1 2345-1235 嫡
+sign \x5AE3 256-0 嫣
+sign \x5AE5 14-23 嫥
+sign \x5AE6 234-25-3 嫦
+sign \x5AE9 1345-23-2 嫩
+sign \x5AEB 134-1236-3 嫫
+sign \x5AEE 136-2 嫮
+sign \x5AF2 134-12-3 嫲
+sign \x5AF5 134-1236-6 嫵
+sign \x5AF7 23456-135-6 嫷
+sign \x5AFB 125-45-3 嫻
+sign \x5AFD 123-13456-3 嫽
+sign \x5AFF 2456-13-3 嫿
+sign \x5B03 234-245 嬃
+sign \x5B05 2456-12-3
+sign \x5B08 13456-3 嬈
+sign \x5B09 125-125 嬉
+sign \x5B0B 234-235-3 嬋
+sign \x5B0C 13-13456 嬌
+sign \x5B16 12346-125-4 嬖
+sign \x5B17 234-256-2 嬗
+sign \x5B19 1346-25-3 嬙
+sign \x5B1B 2456-45-3 嬛
+sign \x5B1D 1345-13456-6 嬝
+sign \x5B21 126-4 嬡
+sign \x5B24 134-12 嬤
+sign \x5B25 23456-13456-3
+sign \x5B2A 1234-1246-4 嬪
+sign \x5B2C 1456-3 嬬
+sign \x5B2D 1345-346-6 嬭
+sign \x5B30 245-356 嬰
+sign \x5B32 1345-16 嬲
+sign \x5B34 245-356-3 嬴
+sign \x5B38 234-456-1 嬸
+sign \x5B3E 123-45-6 嬾
+sign \x5B3F 256-4 嬿
+sign \x5B40 234-25 孀
+sign \x5B43 1345-25-3 孃
+sign \x5B45 1346-235 孅
+sign \x5B4C 123-23-1 孌
+sign \x5B50 14-24-1 子
+sign \x5B51 1235-23456-5 孑
+sign \x5B53 1235-12356-5 孓
+sign \x5B54 125-236-1 孔
+sign \x5B55 245-1246-2 孕
+sign \x5B56 134-12 孖
+sign \x5B57 14-24-2 字
+sign \x5B58 1346-23-3 存
+sign \x5B5A 124-136 孚
+sign \x5B5B 1234-1356-3 孛
+sign \x5B5C 14-24 孜
+sign \x5B5D 125-34-4 孝
+sign \x5B5F 134-14-2 孟
+sign \x5B62 1234-34 孢
+sign \x5B63 12345-146-4 季
+sign \x5B64 13-136 孤
+sign \x5B65 1345-1236-3 孥
+sign \x5B69 125-346-3 孩
+sign \x5B6B 234-23 孫
+sign \x5B6C 1345-16 孬
+sign \x5B6D 134-15 孭
+sign \x5B70 234-12345-3 孰
+sign \x5B71 234-45-3 孱
+sign \x5B72 12-0
+sign \x5B73 14-24 孳
+sign \x5B75 124-136 孵
+sign \x5B76 14-24
+sign \x5B78 125-12456-3 學
+sign \x5B7A 1456-3 孺
+sign \x5B7B 123-346 孻
+sign \x5B7D 12346-3 孽
+sign \x5B7F 123-23-3 孿
+sign \x5B81 1345-356-3 宁
+sign \x5B82 245-236-1
+sign \x5B83 23456-12 它
+sign \x5B84 12345-146-1 宄
+sign \x5B85 14-13-3 宅
+sign \x5B87 1456-6 宇
+sign \x5B88 234-16-1 守
+sign \x5B89 1345-0 安
+sign \x5B8B 234-236-4 宋
+sign \x5B8C 23-3 完
+sign \x5B8E 1245-34-3 宎
+sign \x5B8F 2456-1245-3 宏
+sign \x5B93 134-35-3 宓
+sign \x5B95 2345-56-2 宕
+sign \x5B97 14-236 宗
+sign \x5B98 13-2346 官
+sign \x5B99 14-16-2 宙
+sign \x5B9A 2345-356-2 定
+sign \x5B9B 23-1 宛
+sign \x5B9C 24-3 宜
+sign \x5BA2 125-13-5 客
+sign \x5BA3 234-23 宣
+sign \x5BA4 234-35 室
+sign \x5BA5 245-16-2 宥
+sign \x5BA6 2456-45-2 宦
+sign \x5BA7 24-3 宧
+sign \x5BAC 234-356-3 宬
+sign \x5BAD 12456-1246-3 宭
+sign \x5BAE 13-236 宮
+sign \x5BB0 14-126-1 宰
+sign \x5BB3 125-126-2 害
+sign \x5BB4 256-4 宴
+sign \x5BB5 234-13456 宵
+sign \x5BB6 13-12 家
+sign \x5BB8 234-1246-3 宸
+sign \x5BB9 245-236-3 容
+sign \x5BBF 234-12345 宿
+sign \x5BC0 1346-126-4 寀
+sign \x5BC1 14-345-1 寁
+sign \x5BC2 14-1235-3 寂
+sign \x5BC4 13-125-4 寄
+sign \x5BC5 245-1246-3 寅
+sign \x5BC6 134-35-3 密
+sign \x5BC7 1235-16-4 寇
+sign \x5BCC 124-136-4 富
+sign \x5BD0 134-125-2 寐
+sign \x5BD1 1346-456-1 寑
+sign \x5BD2 125-1345-3 寒
+sign \x5BD3 1456-2 寓
+sign \x5BD4 234-35-3 寔
+sign \x5BD6 14-456-4 寖
+sign \x5BD8 14-24-4 寘
+sign \x5BDE 134-12456-3 寞
+sign \x5BDF 1346-2345-5 察
+sign \x5BE0 123-16-3 寠
+sign \x5BE1 12345-12-1 寡
+sign \x5BE2 1346-456-1 寢
+sign \x5BE4 1245-2 寤
+sign \x5BE5 123-13456-3 寥
+sign \x5BE6 234-35-3 實
+sign \x5BE7 1345-356-3 寧
+sign \x5BE8 14-346-2 寨
+sign \x5BE9 234-456-1 審
+sign \x5BEA 2456-146-1 寪
+sign \x5BEB 234-15-1 寫
+sign \x5BEC 124-2346 寬
+sign \x5BEE 123-13456-3 寮
+sign \x5BEF 14-234-4 寯
+sign \x5BF0 2456-45-3 寰
+sign \x5BF5 1346-236-1 寵
+sign \x5BF6 1234-1236-1 寶
+sign \x5BF8 1346-23-4 寸
+sign \x5BFA 14-24-2 寺
+sign \x5C01 124-236 封
+sign \x5C03 124-136 尃
+sign \x5C04 234-15-2 射
+sign \x5C07 14-25 將
+sign \x5C08 14-23 專
+sign \x5C09 2456-146-4 尉
+sign \x5C0A 14-23 尊
+sign \x5C0B 1346-456-3 尋
+sign \x5C0C 234-1456-2 尌
+sign \x5C0D 2345-245-4 對
+sign \x5C0E 2345-1236-2 導
+sign \x5C0F 234-13456-1 小
+sign \x5C11 234-13456-1 少
+sign \x5C12 24-6 尒
+sign \x5C14 24-6
+sign \x5C15 13-12-6 尕
+sign \x5C16 14-235 尖
+sign \x5C1A 234-25-2 尚
+sign \x5C1F 234-256-1 尟
+sign \x5C22 245-16-3 尢
+sign \x5C24 245-16-3 尤
+sign \x5C25 123-13456-2 尥
+sign \x5C28 12346-56-3 尨
+sign \x5C2A 2456-56 尪
+sign \x5C2C 13-346-4 尬
+sign \x5C30 1346-236-4 尰
+sign \x5C31 14-16-2 就
+sign \x5C37 13-345-4 尷
+sign \x5C38 234-24 尸
+sign \x5C39 2456-1246-6 尹
+sign \x5C3A 1346-2456-5 尺
+sign \x5C3B 125-34 尻
+sign \x5C3C 1345-125-3 尼
+sign \x5C3E 134-125-6 尾
+sign \x5C3F 1345-13456-2 尿
+sign \x5C40 13-12345-3 局
+sign \x5C41 12346-125-4 屁
+sign \x5C44 1234-125 屄
+sign \x5C45 13-245 居
+sign \x5C46 13-346-4 屆
+sign \x5C48 2456-35 屈
+sign \x5C4B 12345-0 屋
+sign \x5C4C 2345-13456-1 屌
+sign \x5C4D 234-24 屍
+sign \x5C4E 234-24-1 屎
+sign \x5C4F 12346-356-3 屏
+sign \x5C50 1235-2456-3 屐
+sign \x5C51 234-23456-5 屑
+sign \x5C55 14-256-1 展
+sign \x5C59 135-0 屙
+sign \x5C5C 23456-146-4 屜
+sign \x5C5D 124-146-2 屝
+sign \x5C60 23456-1236-3 屠
+sign \x5C62 123-245-6 屢
+sign \x5C63 234-346-1 屣
+sign \x5C64 1346-1245-3 層
+sign \x5C65 123-125-6 履
+sign \x5C67 234-23456-5 屧
+sign \x5C68 13-245-4 屨
+sign \x5C69 125-13456 屩
+sign \x5C6A 123-13456-3 屪
+sign \x5C6C 234-12345-3 屬
+sign \x5C6D 125-125-4 屭
+sign \x5C6E 1346-23456-5 屮
+sign \x5C6F 23456-23-3 屯
+sign \x5C71 234-45 山
+sign \x5C73 2345-1236 屳
+sign \x5C74 123-1235-3 屴
+sign \x5C79 1245-35-3 屹
+sign \x5C7A 125-125-1 屺
+sign \x5C7C 1245-35-3 屼
+sign \x5C7E 234-1246 屾
+sign \x5C88 1245-12-3 岈
+sign \x5C8A 13-23456-5 岊
+sign \x5C8C 1235-26 岌
+sign \x5C8D 125-256 岍
+sign \x5C8F 23-3 岏
+sign \x5C90 1235-125-3 岐
+sign \x5C91 234-456-3 岑
+sign \x5C94 1346-12-4 岔
+sign \x5C9D 14-13-5 岝
+sign \x5C9E 14-12456-5
+sign \x5CA1 13-56 岡
+sign \x5CA2 125-135-1 岢
+sign \x5CA3 13-16-1 岣
+sign \x5CA7 23456-13456-3
+sign \x5CA8 14-245 岨
+sign \x5CA9 1245-345-3 岩
+sign \x5CAB 14-16-2 岫
+sign \x5CAC 13-1234-5 岬
+sign \x5CAD 123-356-6 岭
+sign \x5CB1 2345-126-2 岱
+sign \x5CB3 1245-12456-3 岳
+sign \x5CB5 136-2 岵
+sign \x5CB7 134-1246-3 岷
+sign \x5CB8 1245-1345-2 岸
+sign \x5CC6 13-26-5 峆
+sign \x5CC7 1234-12 峇
+sign \x5CCB 234-234 峋
+sign \x5CCE 123-56-6 峎
+sign \x5CD2 2345-236-2 峒
+sign \x5CD9 234-24-2 峙
+sign \x5CE8 1245-135-3 峨
+sign \x5CEA 1456-2 峪
+sign \x5CED 1346-13456-4 峭
+sign \x5CEE 12456-1246 峮
+sign \x5CEF 124-236
+sign \x5CF0 124-236 峰
+sign \x5CF1 123-16-3 峱
+sign \x5CF4 256-2 峴
+sign \x5CF6 2345-1236-1 島
+sign \x5CFB 14-234-4 峻
+sign \x5CFD 125-1234-3 峽
+sign \x5CFF 1245-3 峿
+sign \x5D00 123-56-6 崀
+sign \x5D01 125-456-4 崁
+sign \x5D06 125-236 崆
+sign \x5D07 234-236-3 崇
+sign \x5D0B 2456-12-2 崋
+sign \x5D0D 123-126-3 崍
+sign \x5D0E 1235-125 崎
+sign \x5D11 12456-1246 崑
+sign \x5D12 14-1346 崒
+sign \x5D14 1346-245 崔
+sign \x5D16 1245-346-3 崖
+sign \x5D17 13-56 崗
+sign \x5D18 123-234-3
+sign \x5D19 123-234-3 崙
+sign \x5D1A 123-356-3 崚
+sign \x5D1B 12345-35-3 崛
+sign \x5D1E 12345-12456-5
+sign \x5D1F 245-456-3 崟
+sign \x5D22 14-1245 崢
+sign \x5D23 2456-146-1 崣
+sign \x5D24 1245-34-3 崤
+sign \x5D26 235-0 崦
+sign \x5D27 234-236 崧
+sign \x5D29 1234-1245 崩
+sign \x5D2E 13-136-4 崮
+sign \x5D31 14-46 崱
+sign \x5D34 2456-146 崴
+sign \x5D36 124-236 崶
+sign \x5D37 1346-16-3 崷
+sign \x5D3A 24-3 崺
+sign \x5D3D 14-126-1 崽
+sign \x5D3F 1245-12456-3 崿
+sign \x5D42 123-1346-3 嵂
+sign \x5D47 125-146-3 嵇
+sign \x5D4A 234-356-2 嵊
+sign \x5D4B 134-125-3 嵋
+sign \x5D4C 125-456-2 嵌
+sign \x5D4E 1456-3 嵎
+sign \x5D50 123-345-3 嵐
+sign \x5D51 125-124-5 嵑
+sign \x5D52 1245-345-3 嵒
+sign \x5D69 234-236 嵩
+sign \x5D6B 14-24 嵫
+sign \x5D6C 1245-146-3 嵬
+sign \x5D6F 1346-135 嵯
+sign \x5D72 23456-3 嵲
+sign \x5D7A 123-13456-3 嵺
+sign \x5D7D 2345-146-4 嵽
+sign \x5D7E 1346-345 嵾
+sign \x5D81 123-16-6 嶁
+sign \x5D82 14-25-4 嶂
+sign \x5D84 14-345-1 嶄
+sign \x5D87 1235-245 嶇
+sign \x5D8D 14-1234-3 嶍
+sign \x5D92 1346-1245-3 嶒
+sign \x5D93 1234-135 嶓
+sign \x5D94 245-456 嶔
+sign \x5D97 123-1236-3 嶗
+sign \x5D99 123-234-3 嶙
+sign \x5D9D 2345-1245-1 嶝
+sign \x5DA0 13-13456-2 嶠
+sign \x5DA1 1235-12356-5 嶡
+sign \x5DA2 13456-3 嶢
+sign \x5DA7 245-1235-3 嶧
+sign \x5DA8 125-12456-3 嶨
+sign \x5DA9 1345-34-3 嶩
+sign \x5DAD 23456-3 嶭
+sign \x5DAE 125-235-1 嶮
+sign \x5DB0 125-346-6 嶰
+sign \x5DB1 125-135 嶱
+sign \x5DB2 234-245-6 嶲
+sign \x5DB4 34-4 嶴
+sign \x5DB7 24-3 嶷
+sign \x5DB8 2456-356-3 嶸
+sign \x5DBA 123-356-6 嶺
+sign \x5DBC 14-245-2 嶼
+sign \x5DBD 1245-12456-3 嶽
+sign \x5DC0 14-23456-3 巀
+sign \x5DC2 12456-146
+sign \x5DC3 123-236-3 巃
+sign \x5DC7 125-125-4 巇
+sign \x5DC9 1346-345-3 巉
+sign \x5DCB 12456-146 巋
+sign \x5DCD 1245-146-3 巍
+sign \x5DD1 1346-23-3 巑
+sign \x5DD2 123-23-3 巒
+sign \x5DD4 2345-256 巔
+sign \x5DD6 1245-345-3 巖
+sign \x5DD8 256-6 巘
+sign \x5DDD 1346-23 川
+sign \x5DDE 14-16 州
+sign \x5DDF 124-56 巟
+sign \x5DE0 13-356 巠
+sign \x5DE1 1346-234-3 巡
+sign \x5DE2 1346-34-3 巢
+sign \x5DE5 13-236 工
+sign \x5DE6 14-135-1 左
+sign \x5DE7 125-34-1 巧
+sign \x5DE8 13-245-2 巨
+sign \x5DEB 134-1236-3 巫
+sign \x5DEE 1346-12 差
+sign \x5DF0 1235-16-3 巰
+sign \x5DF1 13-125-1 己
+sign \x5DF2 24-6 已
+sign \x5DF3 14-24-2 巳
+sign \x5DF4 1234-12 巴
+sign \x5DF7 125-56-2 巷
+sign \x5DFD 234-234-4 巽
+sign \x5DFE 13-1246 巾
+sign \x5DFF 124-35 巿
+sign \x5E02 234-24-6 市
+sign \x5E03 1234-1236-4 布
+sign \x5E04 23456-16 帄
+sign \x5E05 2345-45-2
+sign \x5E06 124-45-3 帆
+sign \x5E07 14-16-2
+sign \x5E08 14-1245
+sign \x5E09 124-1246-6
+sign \x5E0B 14-24-1
+sign \x5E0C 125-125 希
+sign \x5E10 125-45-6
+sign \x5E11 23456-56-1 帑
+sign \x5E14 12346-125-4 帔
+sign \x5E15 12346-13-5 帕
+sign \x5E16 23456-12346-5
+sign \x5E18 123-235-3 帘
+sign \x5E19 2345-23456-3 帙
+sign \x5E1A 14-34-1 帚
+sign \x5E1B 1234-13-3 帛
+sign \x5E1D 2345-146-4 帝
+sign \x5E1F 245-1235-3 帟
+sign \x5E21 12346-356-3 帡
+sign \x5E22 125-26 帢
+sign \x5E23 13-23-4 帣
+sign \x5E24 1456-3 帤
+sign \x5E25 234-245-4 帥
+sign \x5E28 234-245-4 帨
+sign \x5E2B 234-24 師
+sign \x5E2D 14-1235-3 席
+sign \x5E33 14-25-4 帳
+sign \x5E34 14-256-1 帴
+sign \x5E36 2345-346-4 帶
+sign \x5E37 2456-146-3 帷
+sign \x5E38 234-25-3 常
+sign \x5E3D 134-1236-2 帽
+sign \x5E40 14-356-4 幀
+sign \x5E43 2456-146-3 幃
+sign \x5E44 46-0 幄
+sign \x5E45 124-12345 幅
+sign \x5E4B 12346-2346-3 幋
+sign \x5E4C 124-56-1 幌
+sign \x5E4E 134-1235-3 幎
+sign \x5E54 134-45-2 幔
+sign \x5E55 134-12456-3 幕
+sign \x5E57 12345-12456-5
+sign \x5E58 14-1235 幘
+sign \x5E59 134-12456-3 幙
+sign \x5E5B 14-25-4 幛
+sign \x5E5D 14-256-1 幝
+sign \x5E5E 124-12345-3
+sign \x5E5F 1346-24-4 幟
+sign \x5E60 124-136 幠
+sign \x5E61 124-45 幡
+sign \x5E62 2345-236-2 幢
+sign \x5E63 1234-146-2 幣
+sign \x5E66 134-35-3 幦
+sign \x5E67 1346-13456 幧
+sign \x5E68 14-235 幨
+sign \x5E69 124-1246-3 幩
+sign \x5E6A 134-236-3 幪
+sign \x5E6B 1234-56 幫
+sign \x5E6C 1346-16-3 幬
+sign \x5E6E 1346-1456-3 幮
+sign \x5E70 125-256-1 幰
+sign \x5E72 13-1345 干
+sign \x5E73 12346-356-3 平
+sign \x5E74 1345-256-3 年
+sign \x5E75 125-126 幵
+sign \x5E76 1234-356-4 并
+sign \x5E78 125-1245-2 幸
+sign \x5E79 13-1345-4 幹
+sign \x5E7A 13456-0 幺
+sign \x5E7B 2456-45-2 幻
+sign \x5E7C 245-16-4 幼
+sign \x5E7D 245-16 幽
+sign \x5E7E 13-125-1 幾
+sign \x5E80 12346-125-1 庀
+sign \x5E82 1346-24-6 庂
+sign \x5E84 14-56 庄
+sign \x5E87 1234-125-4 庇
+sign \x5E88 2345-356 庈
+sign \x5E89 23456-356-6 庉
+sign \x5E8A 1346-56-3 床
+sign \x5E8B 12345-146-1 庋
+sign \x5E8F 14-245-2 序
+sign \x5E95 2345-146-1 底
+sign \x5E96 12346-34-3 庖
+sign \x5E97 2345-235-4 店
+sign \x5E9A 13-1245 庚
+sign \x5E9C 124-136-1 府
+sign \x5EA0 1346-25-3 庠
+sign \x5EA2 14-35-3 庢
+sign \x5EA4 14-24-2 庤
+sign \x5EA5 245-16 庥
+sign \x5EA6 2345-1236-2 度
+sign \x5EA7 14-135-2 座
+sign \x5EAB 124-136-4 庫
+sign \x5EAC 12346-56-3 庬
+sign \x5EAD 23456-356-3 庭
+sign \x5EB3 12346-125-6 庳
+sign \x5EB5 456-0 庵
+sign \x5EB6 234-1456-4 庶
+sign \x5EB7 125-56 康
+sign \x5EB8 245-236-3 庸
+sign \x5EB9 23456-12456-5
+sign \x5EBE 1456-3 庾
+sign \x5EC1 1346-24-4 廁
+sign \x5EC2 234-25 廂
+sign \x5EC4 13-16-4 廄
+sign \x5EC8 125-12-2 廈
+sign \x5EC9 123-235-3 廉
+sign \x5ECA 123-56-3 廊
+sign \x5ECB 234-16 廋
+sign \x5ECC 14-24-2 廌
+sign \x5ECE 1235-356-1 廎
+sign \x5ED1 13-1246-1 廑
+sign \x5ED2 1245-1236-3 廒
+sign \x5ED3 12456-12456-5
+sign \x5ED4 123-16-3 廔
+sign \x5ED5 245-456-4 廕
+sign \x5ED6 123-13456-2 廖
+sign \x5ED9 24-2 廙
+sign \x5EDA 1346-1456-3 廚
+sign \x5EDB 1346-256-3 廛
+sign \x5EDC 23456-1236-3 廜
+sign \x5EDD 234-24 廝
+sign \x5EDF 134-13456-2 廟
+sign \x5EE0 1346-56-1 廠
+sign \x5EE1 134-1236-3 廡
+sign \x5EE2 124-146-4 廢
+sign \x5EE3 12345-56-1 廣
+sign \x5EE7 1346-25-3 廧
+sign \x5EE8 13-346-1 廨
+sign \x5EE9 123-456-6 廩
+sign \x5EEC 123-1236-3 廬
+sign \x5EEE 245-356-1 廮
+sign \x5EEF 234-256-1 廯
+sign \x5EF1 245-236 廱
+sign \x5EF3 23456-2356 廳
+sign \x5EF6 256-3 延
+sign \x5EF7 23456-356-3 廷
+sign \x5EFA 13-256-4 建
+sign \x5EFB 1256-3
+sign \x5EFE 13-236-1 廾
+sign \x5EFF 245-12-2 廿
+sign \x5F01 1234-256-2 弁
+sign \x5F02 24-2 异
+sign \x5F04 123-236-2 弄
+sign \x5F07 235-1 弇
+sign \x5F08 245-1235-3 弈
+sign \x5F0A 1234-146-2 弊
+sign \x5F0B 245-1235-3 弋
+sign \x5F0C 245-35
+sign \x5F0F 234-1235 式
+sign \x5F12 234-24-4 弒
+sign \x5F13 13-236 弓
+sign \x5F14 2345-13456-4 弔
+sign \x5F15 245-1246-6 引
+sign \x5F17 124-35 弗
+sign \x5F18 2456-1245-3 弘
+sign \x5F1B 1346-24-3 弛
+sign \x5F1F 2345-146-2 弟
+sign \x5F22 23456-1236 弢
+sign \x5F24 2345-146-1 弤
+sign \x5F26 256-3 弦
+sign \x5F27 136-3 弧
+sign \x5F28 1346-13456 弨
+sign \x5F29 1345-1236-6 弩
+sign \x5F2D 134-146-6 弭
+sign \x5F2E 125-23 弮
+sign \x5F30 234-34 弰
+sign \x5F31 245-246-3 弱
+sign \x5F35 14-25 張
+sign \x5F36 14-25-4 弶
+sign \x5F37 1235-25-3 強
+sign \x5F38 1234-12345 弸
+sign \x5F3C 1234-35-3 弼
+sign \x5F40 13-16-4 彀
+sign \x5F44 1235-16 彄
+sign \x5F46 1234-23456-3 彆
+sign \x5F48 2345-45-2 彈
+sign \x5F49 12456-12456-5
+sign \x5F4A 1235-25-6 彊
+sign \x5F4B 12345-1245 彋
+sign \x5F4C 1345-125-3 彌
+sign \x5F4E 2456-45 彎
+sign \x5F4F 124-12456-5 彏
+sign \x5F54 123-12345-3 彔
+sign \x5F56 23456-234-4 彖
+sign \x5F57 234-245-2 彗
+sign \x5F58 14-24-2 彘
+sign \x5F59 1256-2 彙
+sign \x5F5C 24-0
+sign \x5F5D 24-3 彝
+sign \x5F62 245-356-3 形
+sign \x5F64 23456-236-3 彤
+sign \x5F65 256-2 彥
+sign \x5F67 245-12345 彧
+sign \x5F69 1346-126-1 彩
+sign \x5F6A 1234-13456 彪
+sign \x5F6B 2345-13456 彫
+sign \x5F6C 1234-1246 彬
+sign \x5F6D 12346-14-3 彭
+sign \x5F6F 12346-13456 彯
+sign \x5F70 14-25 彰
+sign \x5F71 245-356-1 影
+sign \x5F73 1346-1235 彳
+sign \x5F77 124-56-1 彷
+sign \x5F78 14-236 彸
+sign \x5F79 245-1235-3 役
+sign \x5F7C 1234-125-1 彼
+sign \x5F7F 124-35 彿
+sign \x5F80 2456-56-6 往
+sign \x5F81 14-356 征
+sign \x5F82 1346-1236-3 徂
+sign \x5F85 2345-126-2 待
+sign \x5F87 234-234 徇
+sign \x5F88 125-1246-1 很
+sign \x5F89 245-25-3 徉
+sign \x5F8A 1256-3 徊
+sign \x5F8B 123-1346-3 律
+sign \x5F8C 125-16-2 後
+sign \x5F90 1346-245-3 徐
+sign \x5F91 13-356-4 徑
+sign \x5F92 23456-1236-3 徒
+sign \x5F97 2345-46 得
+sign \x5F98 12346-1256-3 徘
+sign \x5F99 234-346-1 徙
+sign \x5F9B 13-125-4 徛
+sign \x5F9C 234-25-3 徜
+sign \x5F9E 1346-236-3 從
+sign \x5FA0 123-126-3 徠
+sign \x5FA1 1456-2 御
+sign \x5FA7 12346-256-4
+sign \x5FA8 2456-56-3 徨
+sign \x5FA9 124-12345-3 復
+sign \x5FAA 1346-234-3 循
+sign \x5FAC 12346-56-3 徬
+sign \x5FAD 13456-3 徭
+sign \x5FAE 134-125-3 微
+sign \x5FAF 125-146-3 徯
+sign \x5FB5 14-356 徵
+sign \x5FB7 2345-46 德
+sign \x5FB9 1346-23456-5 徹
+sign \x5FBC 13-13456-1 徼
+sign \x5FBD 124-146 徽
+sign \x5FBF 123-236-6 徿
+sign \x5FC0 1345-56-6 忀
+sign \x5FC3 234-456 心
+sign \x5FC5 1234-23456 必
+sign \x5FC9 23456-1236 忉
+sign \x5FCC 13-125-2 忌
+sign \x5FCD 245-1246-1 忍
+sign \x5FCF 1346-345-4 忏
+sign \x5FD0 23456-45-1 忐
+sign \x5FD1 23456-1235 忑
+sign \x5FD2 23456-1235 忒
+sign \x5FD5 23456-346-4 忕
+sign \x5FD6 1346-23-1 忖
+sign \x5FD7 14-24-4 志
+sign \x5FD8 134-56-3 忘
+sign \x5FD9 134-56-3 忙
+sign \x5FDD 23456-235-1 忝
+sign \x5FDE 134-1246-3 忞
+sign \x5FDF 134-14-1 忟
+sign \x5FE0 14-236 忠
+sign \x5FE1 1346-236 忡
+sign \x5FE4 1245-6 忤
+sign \x5FE8 2346-2 忨
+sign \x5FEA 234-236 忪
+sign \x5FEB 124-346-4 快
+sign \x5FED 1234-256-2 忭
+sign \x5FEE 14-24-4 忮
+sign \x5FF1 234-456-3 忱
+sign \x5FF3 23456-23-3 忳
+sign \x5FF5 1345-235-2 念
+sign \x5FF7 125-236 忷
+sign \x5FF8 1345-16-1 忸
+sign \x5FFB 245-1246 忻
+sign \x5FFD 124-35 忽
+sign \x5FFF 124-1246-6 忿
+sign \x6000 2456-346-3 怀
+sign \x600A 2345-13456 怊
+sign \x600B 134-1246-6 怋
+sign \x600D 14-12456-3 怍
+sign \x600E 14-456-1 怎
+sign \x600F 245-25-1 怏
+sign \x6010 125-16-2 怐
+sign \x6012 1345-1236-2 怒
+sign \x6013 1345-34-3 怓
+sign \x6014 14-356 怔
+sign \x6015 12346-12-4 怕
+sign \x6016 1234-1236-4 怖
+sign \x6017 23456-12346-5
+sign \x6019 136-2 怙
+sign \x601A 1346-1236 怚
+sign \x601B 23456-45-1 怛
+sign \x601C 123-256-3 怜
+sign \x601D 234-24 思
+sign \x601E 245-16-3 怞
+sign \x6020 23456-126-6 怠
+sign \x6021 24-3 怡
+sign \x6025 13-26 急
+sign \x6026 12346-356 怦
+sign \x6027 234-356-4 性
+sign \x6028 23-4 怨
+sign \x6029 1345-125-3 怩
+sign \x602A 12345-346-4 怪
+sign \x602B 124-35-3 怫
+sign \x602E 245-16 怮
+sign \x602F 125-12346-5 怯
+sign \x6033 124-56-1 怳
+sign \x6035 14-1346 怵
+sign \x6039 23456-12 怹
+sign \x6040 1346-24-1 恀
+sign \x6041 245-456-2 恁
+sign \x6042 234-234 恂
+sign \x6043 1346-24-6 恃
+sign \x6045 123-1236-6 恅
+sign \x6046 125-1245-3 恆
+sign \x6047 125-56 恇
+sign \x6049 14-24-1 恉
+sign \x604C 23456-13456 恌
+sign \x604D 124-56-1 恍
+sign \x6050 125-236-1 恐
+sign \x6052 125-1245-3 恒
+sign \x6053 234-146 恓
+sign \x6054 125-34-2 恔
+sign \x6055 234-1456-4 恕
+sign \x6059 245-25-2 恙
+sign \x605A 2456-146-2 恚
+sign \x605B 1256-3 恛
+sign \x605D 13-2345-5 恝
+sign \x605F 125-236 恟
+sign \x6062 124-1256 恢
+sign \x6063 234-24-4 恣
+sign \x6064 234-1346 恤
+sign \x6065 1346-24-1 恥
+sign \x6067 125-1245-3 恧
+sign \x6068 125-1246-2 恨
+sign \x6069 245-1246 恩
+sign \x606A 1235-12456-5 恪
+sign \x606B 2345-236-2 恫
+sign \x606C 23456-235-6 恬
+sign \x606D 13-236 恭
+sign \x606F 234-1235 息
+sign \x6070 125-26 恰
+sign \x607F 245-236-1 恿
+sign \x6081 13-23-4 悁
+sign \x6083 12456-1246-1 悃
+sign \x6084 1346-13456-4 悄
+sign \x6085 12356-3 悅
+sign \x6087 23456-1236-3 悇
+sign \x6089 234-1235 悉
+sign \x608A 14-23456-5 悊
+sign \x608C 2345-146-2 悌
+sign \x608D 125-1345-6 悍
+sign \x6090 23456-1235 悐
+sign \x6092 245-26 悒
+sign \x6094 124-1256-4 悔
+sign \x6095 125-125 悕
+sign \x6096 1234-1256-2 悖
+sign \x609A 234-236-1 悚
+sign \x609B 234-23 悛
+sign \x609D 124-1256 悝
+sign \x609F 1245-2 悟
+sign \x60A0 245-16-3 悠
+sign \x60A2 123-25-2 悢
+sign \x60A3 2456-45-2 患
+sign \x60A8 1345-125-6 您
+sign \x60B0 1346-236-2 悰
+sign \x60B1 124-125-1 悱
+sign \x60B2 1234-125 悲
+sign \x60B4 234-245-2 悴
+sign \x60B5 14-25-4 悵
+sign \x60B6 134-2346-2 悶
+sign \x60B7 123-245-2 悷
+sign \x60B8 12345-146-4 悸
+sign \x60B9 13-2346-1 悹
+sign \x60BA 13-2346-1 悺
+sign \x60BB 125-1245-2 悻
+sign \x60BC 2345-1236-2 悼
+sign \x60BD 1346-146 悽
+sign \x60BE 125-236 悾
+sign \x60C0 123-234-2 惀
+sign \x60C4 1345-1235-3 惄
+sign \x60C5 1346-356-3 情
+sign \x60C6 1346-16-3 惆
+sign \x60C7 2345-234 惇
+sign \x60C8 12345-135-1 惈
+sign \x60C9 14-235 惉
+sign \x60CA 13-356 惊
+sign \x60CB 2346-1 惋
+sign \x60CC 23-4 惌
+sign \x60CE 13-125-2 惎
+sign \x60CF 123-345-3 惏
+sign \x60D1 2456-13-3 惑
+sign \x60D3 1235-23-3 惓
+sign \x60D5 23456-1235 惕
+sign \x60D8 134-56-6 惘
+sign \x60D9 14-12356-5 惙
+sign \x60DA 124-35 惚
+sign \x60DB 124-1246 惛
+sign \x60DC 234-1235 惜
+sign \x60DF 2456-146-3 惟
+sign \x60E0 2456-146-2 惠
+sign \x60E1 12456-5 惡
+sign \x60E6 2345-235-4 惦
+sign \x60F0 2345-135-2 惰
+sign \x60F1 1345-1236-6 惱
+sign \x60F2 2456-1246-2 惲
+sign \x60F3 234-25-1 想
+sign \x60F4 1346-23-1 惴
+sign \x60F6 2456-56-3 惶
+sign \x60F7 1346-234-1 惷
+sign \x60F8 1235-356-3 惸
+sign \x60F9 245-15-6 惹
+sign \x60FA 234-356 惺
+sign \x60FB 1346-46 惻
+sign \x60FE 234-16-4 惾
+sign \x6100 1346-13456-1 愀
+sign \x6101 234-16-3 愁
+sign \x6103 234-23-1 愃
+sign \x6106 125-256 愆
+sign \x6108 1456-2 愈
+sign \x6109 1456-3 愉
+sign \x610A 1234-1235 愊
+sign \x610D 134-1246-6 愍
+sign \x610E 1234-1235 愎
+sign \x610F 24-4 意
+sign \x6110 134-256-6 愐
+sign \x6112 1235-126-4 愒
+sign \x6113 2345-56-2 愓
+sign \x6114 245-456 愔
+sign \x6115 1245-12456-3 愕
+sign \x6116 234-456-3 愖
+sign \x611A 1456-3 愚
+sign \x611B 126-4 愛
+sign \x611C 125-12346-5 愜
+sign \x611F 13-456-1 感
+sign \x6123 123-356-2 愣
+sign \x6127 12456-146-6 愧
+sign \x6128 1235-12456-5 愨
+sign \x612B 234-1236-4 愫
+sign \x612C 234-1236-4 愬
+sign \x612E 13456-3 愮
+sign \x6132 12345-35 愲
+sign \x6134 1346-56-4 愴
+sign \x6137 125-126-1 愷
+sign \x613B 234-234-4 愻
+sign \x613E 1235-126-4 愾
+sign \x613F 23-2 愿
+sign \x6141 2456-1246-2 慁
+sign \x6142 245-236-1
+sign \x6144 123-1346-3 慄
+sign \x6145 234-1236 慅
+sign \x6146 23456-1236 慆
+sign \x6147 245-1246 慇
+sign \x6148 1346-24-3 慈
+sign \x6149 1346-12345 慉
+sign \x614A 125-12346-5 慊
+sign \x614B 23456-346-4 態
+sign \x614C 124-56 慌
+sign \x614D 2456-1246-4 慍
+sign \x614E 234-1246-2 慎
+sign \x6152 14-1236 慒
+sign \x6153 12346-13456-6
+sign \x6155 134-1236-2 慕
+sign \x6158 1346-345-1 慘
+sign \x615A 1346-345-3 慚
+sign \x615D 23456-1235 慝
+sign \x615E 14-25 慞
+sign \x615F 2345-236-2 慟
+sign \x6162 134-45-2 慢
+sign \x6163 12345-45-4 慣
+sign \x6164 1235-12456-5 慤
+sign \x6165 14-1236-2 慥
+sign \x6167 2456-146-2 慧
+sign \x6168 1235-126-4 慨
+sign \x616A 16-4 慪
+sign \x616B 234-236-1 慫
+sign \x616C 1235-1246-3 慬
+sign \x616E 123-245-2 慮
+sign \x6170 2456-146-4 慰
+sign \x6171 23456-23-3 慱
+sign \x6173 125-45 慳
+sign \x6174 234-12346-5 慴
+sign \x6175 245-236-3 慵
+sign \x6176 125-356-4 慶
+sign \x6177 125-56-1 慷
+sign \x6179 14-26 慹
+sign \x617A 123-16-3 慺
+sign \x617C 1346-1235 慼
+sign \x617E 245-12345-3 慾
+sign \x6180 123-13456-3 憀
+sign \x6182 245-16 憂
+sign \x6183 14-236 憃
+sign \x6187 125-125-4
+sign \x6189 12346-14-3 憉
+sign \x618A 1234-125-2 憊
+sign \x618B 1234-23456-5 憋
+sign \x618D 13-13456 憍
+sign \x618E 14-1245 憎
+sign \x6190 123-256-3 憐
+sign \x6191 12346-1245-3 憑
+sign \x6192 1235-1256-1 憒
+sign \x6193 2456-146-2 憓
+sign \x6194 1346-13456-3 憔
+sign \x6196 245-1246-2 憖
+sign \x6199 125-125-1
+sign \x619A 2345-45-2 憚
+sign \x619B 123-345-3 憛
+sign \x619D 2345-245-2 憝
+sign \x61A4 124-1246-6 憤
+sign \x61A7 1346-236 憧
+sign \x61A8 125-456 憨
+sign \x61A9 125-125-4 憩
+sign \x61AA 125-45-3 憪
+sign \x61AB 134-1246-6 憫
+sign \x61AC 13-356-1 憬
+sign \x61AD 123-13456-3 憭
+sign \x61AE 134-1236-6 憮
+sign \x61AF 1346-345-1 憯
+sign \x61B0 1235-12356-5 憰
+sign \x61B1 1346-12345 憱
+sign \x61B2 125-256-4 憲
+sign \x61B6 245-1235 憶
+sign \x61B8 1346-235 憸
+sign \x61BA 2345-345-2 憺
+sign \x61BC 13-356-1 憼
+sign \x61BE 125-456-2 憾
+sign \x61C2 2345-236-1 懂
+sign \x61C3 1235-1246-3 懃
+sign \x61C5 13-245-2 懅
+sign \x61C6 1346-1236-1 懆
+sign \x61C7 125-1246-1 懇
+sign \x61C8 125-346-2 懈
+sign \x61C9 245-356 應
+sign \x61CA 1236-4 懊
+sign \x61CB 134-16-2 懋
+sign \x61CC 245-1235-3 懌
+sign \x61CD 123-456-6 懍
+sign \x61D8 2345-146-4 懘
+sign \x61DE 134-236-1 懞
+sign \x61DF 2345-245-2 懟
+sign \x61E0 1346-146-3 懠
+sign \x61E1 1346-146-3
+sign \x61E3 134-2346-2 懣
+sign \x61E4 1346-16-3 懤
+sign \x61E5 14-24-4 懥
+sign \x61E6 1345-135-2 懦
+sign \x61E7 1345-135-2 懧
+sign \x61E8 235-0 懨
+sign \x61EA 1234-12456-5 懪
+sign \x61EB 14-24-4 懫
+sign \x61ED 12456-56-4 懭
+sign \x61EE 245-16 懮
+sign \x61F0 123-16-3 懰
+sign \x61F2 1346-356-3 懲
+sign \x61F5 134-236-1 懵
+sign \x61F6 123-45-6 懶
+sign \x61F7 2456-346-3 懷
+sign \x61F8 23-3 懸
+sign \x61FA 1346-345-4 懺
+sign \x61FC 13-245-2 懼
+sign \x61FD 124-2346 懽
+sign \x61FE 234-12346-5 懾
+sign \x61FF 24-4 懿
+sign \x6200 123-23-1 戀
+sign \x6201 1345-45-6 戁
+sign \x6204 124-12456-5 戄
+sign \x6207 1245-56-2 戇
+sign \x6208 12345-135 戈
+sign \x6209 12356-3 戉
+sign \x620A 134-1236-2 戊
+sign \x620C 234-1346 戌
+sign \x620D 234-1456-4 戍
+sign \x620E 245-236-3 戎
+sign \x6210 234-356-3 成
+sign \x6211 1245-135-6 我
+sign \x6212 13-346-4 戒
+sign \x6214 14-256 戔
+sign \x6215 1346-25-3 戕
+sign \x6216 2456-13-3 或
+sign \x6219 2345-236-2 戙
+sign \x621A 1346-1235 戚
+sign \x621B 2345-5 戛
+sign \x621F 13-1235 戟
+sign \x6221 125-456 戡
+sign \x6222 1346-26 戢
+sign \x6223 12456-146-3 戣
+sign \x6224 1235-126-4 戤
+sign \x6225 2345-1245-2 戥
+sign \x6227 1346-25 戧
+sign \x6229 14-256-1 戩
+sign \x622A 14-23456-3 截
+sign \x622D 256-1 戭
+sign \x622E 123-12345-3 戮
+sign \x6230 14-256-4 戰
+sign \x6232 125-125-4 戲
+sign \x6233 1346-246-5 戳
+sign \x6234 2345-346-4 戴
+sign \x6236 136-2 戶
+sign \x623D 124-136-4 戽
+sign \x623E 123-245-2 戾
+sign \x623F 124-56-3 房
+sign \x6240 234-135-1 所
+sign \x6241 1234-256-1 扁
+sign \x6242 2345-235-4 扂
+sign \x6243 12345-356 扃
+sign \x6246 24-1 扆
+sign \x6247 234-256-4 扇
+sign \x6248 136-2 扈
+sign \x6249 124-125 扉
+sign \x624A 235-6 扊
+sign \x624B 234-16-1 手
+sign \x624D 1346-126-3 才
+sign \x624E 14-2345-5 扎
+sign \x6250 123-46-3 扐
+sign \x6251 1234-12456 扑
+sign \x6252 12346-12-3 扒
+sign \x6253 2345-12-1 打
+sign \x6254 2456-356 扔
+sign \x6258 23456-12456-5
+sign \x625A 1234-45-2 扚
+sign \x625B 13-56 扛
+sign \x625E 125-1345-2 扞
+sign \x6260 1346-12 扠
+sign \x6261 23456-135 扡
+sign \x6262 125-125-4 扢
+sign \x6263 1235-16-4 扣
+sign \x6264 1245-35-3 扤
+sign \x6266 1346-256 扦
+sign \x626D 1345-16-1 扭
+sign \x626E 1234-45-2 扮
+sign \x626F 1346-15-1 扯
+sign \x6270 13456-6 扰
+sign \x6271 1235-26 扱
+sign \x6272 13-456-2 扲
+sign \x6273 12346-45 扳
+sign \x6276 124-136-3 扶
+sign \x6279 12346-146 批
+sign \x627A 14-24-1 扺
+sign \x627B 14-23456-5 扻
+sign \x627C 46-0 扼
+sign \x627D 2345-234-2 扽
+sign \x627E 14-34-1 找
+sign \x627F 234-356-3 承
+sign \x6280 13-125-2 技
+sign \x6283 1234-256-2 抃
+sign \x6284 1346-34 抄
+sign \x6286 134-1246-6 抆
+sign \x6288 13-16-1 抈
+sign \x6289 1235-12356-5 抉
+sign \x628A 1234-12-1 把
+sign \x628E 234-256-2 抎
+sign \x628F 2456-45-3 抏
+sign \x6291 245-1235 抑
+sign \x6292 234-1456 抒
+sign \x6293 14-34-1 抓
+sign \x6294 12346-16-3 抔
+sign \x6295 23456-16-3 投
+sign \x6296 2345-16-1 抖
+sign \x6297 1235-56-4 抗
+sign \x6298 14-23456-5 折
+sign \x62A6 1234-356-1 抦
+sign \x62A8 12346-356-3 抨
+sign \x62AA 1234-1236-4 抪
+sign \x62AB 12346-125 披
+sign \x62AC 23456-126-3 抬
+sign \x62AE 1346-1246-1 抮
+sign \x62B1 12346-1236-6 抱
+sign \x62B3 1345-125-2 抳
+sign \x62B4 245-146-2 抴
+sign \x62B5 2345-146-1 抵
+sign \x62B6 1346-1235 抶
+sign \x62B9 134-1356-5 抹
+sign \x62BB 1346-1246-1 抻
+sign \x62BC 2345-5 押
+sign \x62BD 1346-16 抽
+sign \x62BE 1235-245 抾
+sign \x62BF 134-1246-6 抿
+sign \x62C2 124-35 拂
+sign \x62C3 14-12-2 拃
+sign \x62C4 14-1456-1 拄
+sign \x62C6 1346-13-5 拆
+sign \x62C7 134-1236-6 拇
+sign \x62C8 1345-235 拈
+sign \x62C9 123-346 拉
+sign \x62CA 124-136-1 拊
+sign \x62CB 12346-34 拋
+sign \x62CC 1234-2346-2 拌
+sign \x62CD 12346-13-5 拍
+sign \x62CE 123-356 拎
+sign \x62CF 1345-12-3 拏
+sign \x62D0 12345-346-1 拐
+sign \x62D1 1235-235-3 拑
+sign \x62D2 1235-245-6 拒
+sign \x62D3 23456-12456-5
+sign \x62D4 1234-35-3 拔
+sign \x62D6 23456-135 拖
+sign \x62D7 34-4 拗
+sign \x62D8 1235-245 拘
+sign \x62D9 14-12356-5 拙
+sign \x62DA 12346-2346-4 拚
+sign \x62DB 14-13456 招
+sign \x62DC 1234-346-4 拜
+sign \x62EB 125-1246-2 拫
+sign \x62EC 1235-1356-5 括
+sign \x62ED 234-1235 拭
+sign \x62EE 13-23456-5 拮
+sign \x62EF 1346-356-1 拯
+sign \x62F1 13-236-1 拱
+sign \x62F3 1235-23-3 拳
+sign \x62F4 234-45 拴
+sign \x62F6 14-2345-5 拶
+sign \x62F7 125-34 拷
+sign \x62F8 1346-24-1 拸
+sign \x62F9 125-12346-3 拹
+sign \x62FC 12346-356-4 拼
+sign \x62FD 245-146-2 拽
+sign \x62FE 234-26-3 拾
+sign \x62FF 1345-12-3 拿
+sign \x6301 1346-24-3 持
+sign \x6302 12345-12-4 挂
+sign \x6303 14-35-3 挃
+sign \x6307 14-24-1 指
+sign \x6308 1235-23456-5 挈
+sign \x6309 1345-4 按
+sign \x630E 12456-12-4 挎
+sign \x6310 1345-12-3 挐
+sign \x6311 23456-13456 挑
+sign \x6313 14-12 挓
+sign \x6316 2456-2345-5 挖
+sign \x6328 1245-346-3 挨
+sign \x632A 1345-135-3 挪
+sign \x632B 1346-135-4 挫
+sign \x632F 14-1246-4 振
+sign \x6332 234-12 挲
+sign \x6336 13-12345-3 挶
+sign \x6339 245-26 挹
+sign \x633A 23456-356-6 挺
+sign \x633C 1345-135-3 挼
+sign \x633D 2456-45-6 挽
+sign \x633E 125-12346-5 挾
+sign \x6342 136-1 捂
+sign \x6343 12456-1246-1 捃
+sign \x6344 13-16-4 捄
+sign \x6345 23456-236-1 捅
+sign \x6346 12456-1246-1 捆
+sign \x6349 14-12345 捉
+sign \x634B 123-12356-5 捋
+sign \x634C 1234-2345-5 捌
+sign \x634D 125-1345-6 捍
+sign \x634E 234-34 捎
+sign \x634F 1345-12346-3 捏
+sign \x6350 13-23 捐
+sign \x6354 13-12456-5 捔
+sign \x6355 1234-1236-2 捕
+sign \x6358 14-234-4 捘
+sign \x6365 2346-1 捥
+sign \x6367 12346-236-1 捧
+sign \x6368 234-15-1 捨
+sign \x6369 123-23456-3 捩
+sign \x636B 134-2346-3 捫
+sign \x636D 1234-346-1 捭
+sign \x636E 13-245 据
+sign \x636F 2345-1236-4 捯
+sign \x6371 1245-346-3 捱
+sign \x6372 13-23-1 捲
+sign \x6375 1346-1246-1 捵
+sign \x6376 1346-245-3 捶
+sign \x6377 14-23456-3 捷
+sign \x637A 1345-2345-3 捺
+sign \x637B 1345-256-1 捻
+sign \x637C 1345-135-3 捼
+sign \x637D 14-1346 捽
+sign \x6380 125-256 掀
+sign \x6381 1346-14-3 掁
+sign \x6382 2345-235-2 掂
+sign \x6383 234-1236-4 掃
+sign \x6384 123-234-3 掄
+sign \x6387 14-12356-5 掇
+sign \x6388 234-16-2 授
+sign \x6389 2345-13456-2 掉
+sign \x638C 14-25-1 掌
+sign \x638E 13-125-1 掎
+sign \x638F 23456-1236-3 掏
+sign \x6390 125-1234-5 掐
+sign \x6392 12346-346-3 排
+sign \x6394 125-256 掔
+sign \x6396 245-1235-3 掖
+sign \x6397 12-4 掗
+sign \x6398 12345-35-3 掘
+sign \x6399 14-1245 掙
+sign \x639B 12345-12-4 掛
+sign \x639E 234-235-4 掞
+sign \x639F 2345-2356-4 掟
+sign \x63A0 123-246-3 掠
+sign \x63A1 1346-126-1 採
+sign \x63A2 23456-345-4 探
+sign \x63A3 14-146-4 掣
+sign \x63A4 1234-356 掤
+sign \x63A5 14-12346-5 接
+sign \x63A7 125-236-4 控
+sign \x63A8 23456-245 推
+sign \x63A9 235-1 掩
+sign \x63AA 1346-1236-4 措
+sign \x63AB 14-16 掫
+sign \x63AC 13-12345 掬
+sign \x63AD 23456-235-6 掭
+sign \x63AE 1235-256-3 掮
+sign \x63AF 1235-1245-4 掯
+sign \x63B0 134-13-5 掰
+sign \x63B1 12346-12-3 掱
+sign \x63B9 134-1245 掹
+sign \x63BD 12346-236-4 掽
+sign \x63BE 23-2 掾
+sign \x63C0 13-45-1 揀
+sign \x63C3 14-256-1 揃
+sign \x63C4 1456-3 揄
+sign \x63C5 256-3 揅
+sign \x63C6 12456-146-3 揆
+sign \x63C7 1345-345-3 揇
+sign \x63C8 12345-1245 揈
+sign \x63C9 245-16-3 揉
+sign \x63CC 234-46 揌
+sign \x63CD 14-16-4 揍
+sign \x63CE 234-23 揎
+sign \x63CF 134-13456-3 描
+sign \x63D0 23456-146-3 提
+sign \x63D2 1346-1234-5 插
+sign \x63D3 23456-135 揓
+sign \x63D5 14-456-4 揕
+sign \x63D6 245-26 揖
+sign \x63D7 234-234-6 揗
+sign \x63DA 245-25-3 揚
+sign \x63DB 2346-2 換
+sign \x63DC 235-1 揜
+sign \x63DD 14-45-2 揝
+sign \x63DE 456-1 揞
+sign \x63E0 2345-5 揠
+sign \x63E1 46-0 握
+sign \x63E3 1346-23-1 揣
+sign \x63E4 1346-23-1
+sign \x63E5 23456-146-4 揥
+sign \x63E6 123-12-1 揦
+sign \x63E9 125-346 揩
+sign \x63EA 1346-16 揪
+sign \x63EB 14-16 揫
+sign \x63ED 1235-23456-5 揭
+sign \x63EE 124-146 揮
+sign \x63F2 234-12346-5 揲
+sign \x63F3 234-23456-5 揳
+sign \x63F4 2346-3 援
+sign \x63F5 1235-256-3 揵
+sign \x63F6 245-15-3 揶
+sign \x63F8 14-12 揸
+sign \x63F9 1234-1256-4 揹
+sign \x63FC 2345-456-1 揼
+sign \x63FE 2456-1246-1 揾
+sign \x6406 1235-16-4 搆
+sign \x6407 13-456-2 搇
+sign \x6409 1235-12456-5 搉
+sign \x640A 1346-16 搊
+sign \x640B 1346-346 搋
+sign \x640C 14-256-1 搌
+sign \x640D 234-23-1 損
+sign \x640E 234-23 搎
+sign \x640F 1234-12456-5 搏
+sign \x6410 1346-12345 搐
+sign \x6412 1234-56-1 搒
+sign \x6413 1346-135 搓
+sign \x6414 234-1236 搔
+sign \x6415 125-26-3 搕
+sign \x6416 13456-3 搖
+sign \x6417 2345-1236-1 搗
+sign \x6418 14-24 搘
+sign \x641A 125-12346-3 搚
+sign \x641B 13-235 搛
+sign \x641C 234-16-1 搜
+sign \x641E 13-34-1 搞
+sign \x6420 234-12456-5 搠
+sign \x6421 234-56-1 搡
+sign \x6422 14-234-4 搢
+sign \x6424 46-0 搤
+sign \x6425 1346-245-3 搥
+sign \x6426 1345-1235 搦
+sign \x6427 234-256-4 搧
+sign \x6428 23456-1234-5 搨
+sign \x642A 23456-56-3 搪
+sign \x642C 1234-2346 搬
+sign \x642D 2345-1234-5 搭
+sign \x642E 123-1346-3 搮
+sign \x642F 23456-1236-3 搯
+sign \x6430 2456-35-3 搰
+sign \x6433 2456-13-3 搳
+sign \x6434 125-256 搴
+sign \x6435 2456-1246-1 搵
+sign \x6436 1346-25-1 搶
+sign \x6437 23456-256-3 搷
+sign \x643A 12456-146-3
+sign \x643D 1346-12-3 搽
+sign \x643E 14-12-4 搾
+sign \x643F 13-1234-5 搿
+sign \x6440 136-1 摀
+sign \x6441 1345-4 摁
+sign \x644B 234-2345-5 摋
+sign \x644E 13-16 摎
+sign \x6450 1346-25 摐
+sign \x6451 12345-13-5 摑
+sign \x6452 1234-356-1 摒
+sign \x6454 234-1346 摔
+sign \x6458 14-13-3 摘
+sign \x6459 123-256-3 摙
+sign \x645B 1346-24 摛
+sign \x645C 12345-45-4 摜
+sign \x645D 123-12345-3 摝
+sign \x645E 123-135-3 摞
+sign \x645F 123-16 摟
+sign \x6460 14-236-1 摠
+sign \x6466 2456-12-2 摦
+sign \x6467 1346-245 摧
+sign \x6469 134-135 摩
+sign \x646D 14-2456-5 摭
+sign \x646E 1245-1236-3 摮
+sign \x646F 14-24-4 摯
+sign \x6470 23456-3 摰
+sign \x6472 234-45-4 摲
+sign \x6473 13-16 摳
+sign \x6474 234-1456 摴
+sign \x6475 234-1235 摵
+sign \x6476 23456-23-3 摶
+sign \x6478 134-135-1 摸
+sign \x6479 134-1236-3 摹
+sign \x647A 14-12346-5 摺
+sign \x647B 1346-345 摻
+sign \x647D 12346-13456 摽
+sign \x6482 123-13456 撂
+sign \x6485 1235-12356-5 撅
+sign \x6487 12346-23456-5
+sign \x6488 123-34-3 撈
+sign \x6489 2345-234-4 撉
+sign \x648A 125-45-6 撊
+sign \x648B 23-3 撋
+sign \x648D 1346-235-3 撍
+sign \x648F 1346-235-3 撏
+sign \x6490 1346-14 撐
+sign \x6492 234-2345-5 撒
+sign \x6493 1345-34-3 撓
+sign \x6495 234-24 撕
+sign \x6496 125-1345-2 撖
+sign \x6498 2345-1234-5 撘
+sign \x6499 14-23-1 撙
+sign \x649A 1345-256-1 撚
+sign \x649D 124-146 撝
+sign \x649E 14-56-2 撞
+sign \x649F 13-13456-2 撟
+sign \x64A2 2345-45-2 撢
+sign \x64A3 234-256-2 撣
+sign \x64A4 1346-23456-5 撤
+sign \x64A5 1234-1356-3 撥
+sign \x64A6 1346-15-1 撦
+sign \x64A9 123-13456 撩
+sign \x64AB 124-136-1 撫
+sign \x64AC 13-13456-2 撬
+sign \x64AD 1234-135-4 播
+sign \x64AE 1346-12356-5 撮
+sign \x64B0 14-45-2 撰
+sign \x64B2 12346-12456-5
+sign \x64B3 13-456-2 撳
+sign \x64B4 2345-1246-4 撴
+sign \x64BB 23456-2345-5 撻
+sign \x64BC 125-456-2 撼
+sign \x64BE 2456-135 撾
+sign \x64BF 13-235-1 撿
+sign \x64C1 245-236-1 擁
+sign \x64C2 123-245-3 擂
+sign \x64C4 123-1236-6 擄
+sign \x64C5 234-256-2 擅
+sign \x64C7 14-13-3 擇
+sign \x64C9 14-12345 擉
+sign \x64CA 13-1235 擊
+sign \x64CB 2345-56-1 擋
+sign \x64CD 1346-1236 操
+sign \x64CE 1235-356-3 擎
+sign \x64CF 1235-356-3 擏
+sign \x64D0 12345-45-4 擐
+sign \x64D2 1235-456-3 擒
+sign \x64D4 2345-345 擔
+sign \x64D6 1235-12 擖
+sign \x64D7 12346-1235 擗
+sign \x64D8 134-13-5 擘
+sign \x64DA 13-245-4 據
+sign \x64DD 134-1245 擝
+sign \x64E0 14-146 擠
+sign \x64E1 14-146
+sign \x64E2 14-12456-3 擢
+sign \x64E3 2345-1236-1 擣
+sign \x64E4 234-1245-4 擤
+sign \x64E5 234-1245-4
+sign \x64E6 1346-2345-5 擦
+sign \x64E8 245-15-3 擨
+sign \x64E9 1456-3 擩
+sign \x64EB 12346-5 擫
+sign \x64EC 24-6 擬
+sign \x64ED 2456-12456-3 擭
+sign \x64EF 1234-1246-4 擯
+sign \x64F0 1345-356-2 擰
+sign \x64F1 13-12456-5 擱
+sign \x64F2 14-13-3 擲
+sign \x64F4 1235-56-4 擴
+sign \x64F7 1235-23456-5 擷
+sign \x64F8 123-1234-3 擸
+sign \x64FA 1234-346-1 擺
+sign \x64FB 234-16-1 擻
+sign \x64FD 123-1235 擽
+sign \x64FE 13456-1 擾
+sign \x64FF 23456-1235 擿
+sign \x6500 12346-45 攀
+sign \x6504 234-1456 攄
+sign \x6506 123-256-6 攆
+sign \x6509 124-12456-5 攉
+sign \x650F 123-236-6 攏
+sign \x6514 123-45-3 攔
+sign \x6516 245-356 攖
+sign \x6518 245-25-2 攘
+sign \x6519 1346-345 攙
+sign \x651B 1346-23-4 攛
+sign \x651C 12456-146-3 攜
+sign \x651D 234-12346-5 攝
+sign \x651E 123-135-1 攞
+sign \x6522 14-45-1 攢
+sign \x6523 123-23-3 攣
+sign \x6524 23456-45 攤
+sign \x6525 14-45-2 攥
+sign \x6526 123-146-2 攦
+sign \x6529 2345-56-1 攩
+sign \x652A 13-34-1 攪
+sign \x652B 124-12456-5 攫
+sign \x652C 123-345-6 攬
+sign \x652E 1345-56-6 攮
+sign \x652F 14-24 支
+sign \x6530 13-1256-2 攰
+sign \x6532 1235-125 攲
+sign \x6536 234-16 收
+sign \x6537 125-34-1 攷
+sign \x6538 245-16-3 攸
+sign \x6539 13-126-1 改
+sign \x653B 13-236 攻
+sign \x653D 1234-45 攽
+sign \x653E 124-56-4 放
+sign \x653F 14-356-4 政
+sign \x6541 2345-235 敁
+sign \x6543 134-1246-6 敃
+sign \x6545 13-136-4 故
+sign \x6548 125-34-2 效
+sign \x6549 134-146-6 敉
+sign \x654A 1346-12345 敊
+sign \x654D 14-245-2
+sign \x654F 134-1246-6 敏
+sign \x6551 13-16-4 救
+sign \x6553 2345-12356-3 敓
+sign \x6554 1456-6 敔
+sign \x6555 1346-1235 敕
+sign \x6556 1245-1236-2 敖
+sign \x6557 1234-346-2 敗
+sign \x6558 14-245-2 敘
+sign \x6559 13-34-4 教
+sign \x655C 1345-12346-3 敜
+sign \x655D 1234-146-2 敝
+sign \x655E 1346-56-1 敞
+sign \x6562 13-456-1 敢
+sign \x6563 234-45-4 散
+sign \x6566 2345-234 敦
+sign \x656A 14-12356-5 敪
+sign \x656C 13-356-4 敬
+sign \x6572 125-34 敲
+sign \x6574 14-356-1 整
+sign \x6575 2345-1235-3 敵
+sign \x6577 124-136 敷
+sign \x6578 234-1236-4 數
+sign \x657A 1235-245 敺
+sign \x657B 125-356-4 敻
+sign \x6581 245-1235-3 斁
+sign \x6582 123-235-6 斂
+sign \x6583 1234-146-2 斃
+sign \x6587 134-1246-3 文
+sign \x658C 1234-1246 斌
+sign \x6590 124-125-1 斐
+sign \x6591 1234-45 斑
+sign \x6592 1234-45 斒
+sign \x6595 123-45-2 斕
+sign \x6597 2345-16-1 斗
+sign \x6599 123-13456-2 料
+sign \x659B 125-12345-3 斛
+sign \x659C 1346-15-3 斜
+sign \x659D 13-12-1 斝
+sign \x659F 14-456 斟
+sign \x65A0 13-34-4 斠
+sign \x65A1 2456-2345-5 斡
+sign \x65A4 13-1246 斤
+sign \x65A5 1346-1235 斥
+sign \x65A7 124-136-1 斧
+sign \x65A8 1346-25 斨
+sign \x65AA 1235-245-3 斪
+sign \x65AB 1346-246-5 斫
+sign \x65AC 14-345-1 斬
+sign \x65AE 14-246-5 斮
+sign \x65AF 234-24 斯
+sign \x65B0 234-1246 新
+sign \x65B2 2345-246-5 斲
+sign \x65B7 2345-23-4 斷
+sign \x65B8 14-12345 斸
+sign \x65B9 124-56 方
+sign \x65BC 1456-0 於
+sign \x65BD 234-24 施
+sign \x65C1 12346-56-3 旁
+sign \x65C2 1235-125-3 旂
+sign \x65C3 14-256 旃
+sign \x65C4 134-1236-3 旄
+sign \x65C5 123-245-6 旅
+sign \x65C6 12346-1256-4 旆
+sign \x65CB 234-23-3 旋
+sign \x65CC 234-356 旌
+sign \x65CD 234-356 旍
+sign \x65CE 1345-125-6 旎
+sign \x65CF 14-12345-3 族
+sign \x65D0 234-13456-2 旐
+sign \x65D2 123-16-3 旒
+sign \x65D6 24-1 旖
+sign \x65D7 1235-125-3 旗
+sign \x65DB 124-45 旛
+sign \x65DD 1235-1256-1 旝
+sign \x65DF 1456-3 旟
+sign \x65E1 13-125-4 旡
+sign \x65E2 13-125-4 既
+sign \x65E3 13-125-4
+sign \x65E5 245-35-3 日
+sign \x65E6 2345-45-4 旦
+sign \x65E7 2345-45-4
+sign \x65E8 14-24-1 旨
+sign \x65E9 14-1236-1 早
+sign \x65EC 1346-234-3 旬
+sign \x65ED 245-12345 旭
+sign \x65EE 13-135 旮
+sign \x65EF 123-135 旯
+sign \x65F0 13-1345-4 旰
+sign \x65F1 125-1345-6 旱
+sign \x65F4 125-245 旴
+sign \x65FA 2456-56-2 旺
+sign \x65FB 134-1246-3 旻
+sign \x6600 2456-1246-3 昀
+sign \x6602 1245-56-3 昂
+sign \x6603 14-46 昃
+sign \x6604 1234-1246-1 昄
+sign \x6606 12456-1246 昆
+sign \x6607 234-356 昇
+sign \x6609 124-56-1 昉
+sign \x660A 125-1236-2 昊
+sign \x660B 1234-356 昋
+sign \x660C 1346-25 昌
+sign \x660E 134-356-3 明
+sign \x660F 124-1246 昏
+sign \x6612 124-35 昒
+sign \x6613 24-2 易
+sign \x6614 234-1235 昔
+sign \x6615 245-1246 昕
+sign \x661C 245-25-3 昜
+sign \x661D 14-45-1 昝
+sign \x661F 234-356 星
+sign \x6620 245-356-1 映
+sign \x6624 123-356-3
+sign \x6625 1346-234 春
+sign \x6627 134-1256-2 昧
+sign \x6628 14-12456-5 昨
+sign \x662B 125-245-1 昫
+sign \x662D 1346-13456 昭
+sign \x662F 234-24-2 是
+sign \x6631 245-12345 昱
+sign \x6633 245-35-3 昳
+sign \x6634 134-34-6 昴
+sign \x6635 1345-1235 昵
+sign \x6636 1346-56-1 昶
+sign \x663A 1234-356-1 昺
+sign \x6641 1346-13456-3 晁
+sign \x6642 234-24-3 時
+sign \x6643 124-56-1 晃
+sign \x6645 125-23 晅
+sign \x6649 14-234-4 晉
+sign \x664A 12345-0
+sign \x664C 125-25-1 晌
+sign \x664F 45-4 晏
+sign \x6652 234-346-4 晒
+sign \x665A 134-45-6 晚
+sign \x665B 256-6 晛
+sign \x665C 12345-1246 晜
+sign \x665D 14-16-4 晝
+sign \x665E 125-125 晞
+sign \x665F 234-356-3 晟
+sign \x6661 1234-1236 晡
+sign \x6662 14-146-4 晢
+sign \x6663 14-146
+sign \x6664 1245-2 晤
+sign \x6665 2346-6 晥
+sign \x6666 124-1256-4 晦
+sign \x6667 125-1236-1
+sign \x6668 234-1246-3 晨
+sign \x666C 14-245-4 晬
+sign \x666E 12346-1236-1 普
+sign \x666F 13-356-1 景
+sign \x6670 234-1235 晰
+sign \x6671 234-235-1 晱
+sign \x6674 1346-356-3 晴
+sign \x6676 14-356 晶
+sign \x6677 12345-146-1 晷
+sign \x667A 14-24-4 智
+sign \x667B 456-1 晻
+sign \x667C 2346-1 晼
+sign \x667E 123-56-2 晾
+sign \x6684 125-23 暄
+sign \x6687 125-12-3 暇
+sign \x6688 2456-1246-3 暈
+sign \x6689 124-146 暉
+sign \x668C 12456-146-3 暌
+sign \x668D 125-124-5 暍
+sign \x6690 2456-146-6 暐
+sign \x6691 234-1456-1 暑
+sign \x6696 1345-23-6 暖
+sign \x6697 456-4 暗
+sign \x6698 245-25-3 暘
+sign \x669D 134-356-6 暝
+sign \x66A0 13-1236-1 暠
+sign \x66A2 1346-25-4 暢
+sign \x66A8 1235-125-4 暨
+sign \x66AB 14-345-2 暫
+sign \x66AE 134-1236-2 暮
+sign \x66B1 1345-1235 暱
+sign \x66B4 1234-1236-2 暴
+sign \x66B5 125-1345-4
+sign \x66B8 123-13456-6 暸
+sign \x66B9 1346-235-4 暹
+sign \x66BE 23456-1246 暾
+sign \x66C0 146-4 曀
+sign \x66C4 12346-3 曄
+sign \x66C6 123-1235-3 曆
+sign \x66C7 23456-45-3 曇
+sign \x66C8 23456-236-3 曈
+sign \x66C9 125-13456-1 曉
+sign \x66CC 14-13456-4 曌
+sign \x66CF 125-25-4 曏
+sign \x66D6 126-1 曖
+sign \x66D9 1346-1456-6 曙
+sign \x66DA 134-236-3 曚
+sign \x66DB 124-1246 曛
+sign \x66DC 13456-2 曜
+sign \x66DD 1234-1236-2 曝
+sign \x66E0 1235-56-4 曠
+sign \x66E1 1235-56-4
+sign \x66E6 125-125 曦
+sign \x66E7 125-125
+sign \x66E8 123-236-3 曨
+sign \x66E9 1345-56-3 曩
+sign \x66EC 234-346-4 曬
+sign \x66F0 245-246-3 曰
+sign \x66F1 13-2345-3 曱
+sign \x66F2 1235-12345 曲
+sign \x66F3 245-146-2 曳
+sign \x66F4 13-1245-4 更
+sign \x66F7 125-124-5 曷
+sign \x66F8 234-1456 書
+sign \x66F9 1346-1236-3 曹
+sign \x66FC 134-45-2 曼
+sign \x66FE 1346-1245-3 曾
+sign \x66FF 23456-146-4 替
+sign \x6700 14-245-4 最
+sign \x6701 1346-345-1 朁
+sign \x6703 1256-2 會
+sign \x6705 1235-23456-5 朅
+sign \x6708 12356-3 月
+sign \x6709 245-16-6 有
+sign \x670B 12346-1245-3 朋
+sign \x670D 124-12345-3 服
+sign \x670F 124-125-1 朏
+sign \x6710 1235-245-3 朐
+sign \x6712 1345-12345-3 朒
+sign \x6713 23456-13456-4
+sign \x6714 234-12456-5 朔
+sign \x6715 14-456-2 朕
+sign \x6717 123-56-6 朗
+sign \x6718 14-234 朘
+sign \x671B 134-56-2 望
+sign \x671D 1346-13456-3 朝
+sign \x671E 13-125
+sign \x671F 1235-125-3 期
+sign \x6722 134-56-2 朢
+sign \x6723 23456-16-3 朣
+sign \x6726 134-236-3 朦
+sign \x6727 123-236-3 朧
+sign \x6728 134-12345-3 木
+sign \x672A 134-125-2 未
+sign \x672B 134-1356-3 末
+sign \x672C 1234-2346-1 本
+sign \x672D 14-2345-5 札
+sign \x672E 234-1346-3 朮
+sign \x6731 14-1456 朱
+sign \x6733 12346-12-3 朳
+sign \x6734 12346-12456-5
+sign \x6735 2345-135-1 朵
+sign \x6738 123-1235-3 朸
+sign \x6739 1235-16-3 朹
+sign \x673A 13-125 机
+sign \x673D 1345-16-1 朽
+sign \x673F 1346-24-4 朿
+sign \x6745 23456-236-3 杅
+sign \x6746 13-1345 杆
+sign \x6747 136-0 杇
+sign \x6748 1346-12 杈
+sign \x6749 1346-345-4 杉
+sign \x674C 1245-35-3 杌
+sign \x674E 123-125-6 李
+sign \x674F 125-1245-2 杏
+sign \x6750 1346-126-3 材
+sign \x6751 1346-23 村
+sign \x6753 234-12456-5 杓
+sign \x6755 2345-146-2 杕
+sign \x6756 14-25-2 杖
+sign \x6757 134-56-3 杗
+sign \x6759 123-1235-3 杙
+sign \x675A 134-16-3 杚
+sign \x675C 2345-1236-2 杜
+sign \x675D 123-125-3 杝
+sign \x675E 13-125-1 杞
+sign \x675F 1346-12345 束
+sign \x6760 13-236-4 杠
+sign \x6761 23456-13456-3
+sign \x676A 134-13456-6 杪
+sign \x676C 2346-2 杬
+sign \x676D 125-56-3 杭
+sign \x676F 1234-1256 杯
+sign \x6770 13-23456-3 杰
+sign \x6771 2345-236 東
+sign \x6772 13-1236-1 杲
+sign \x6773 134-13456-6 杳
+sign \x6774 125-256 杴
+sign \x6775 1346-1456-6 杵
+sign \x6776 1346-234 杶
+sign \x6777 12346-12-3 杷
+sign \x6778 234-1456-3 杸
+sign \x677B 1346-16-1 杻
+sign \x677C 1346-1456-6 杼
+sign \x677E 1346-236-3 松
+sign \x677F 1234-45-1 板
+sign \x6781 13-1235-3 极
+sign \x6784 1235-16-4 构
+sign \x6785 13-146 枅
+sign \x6787 12346-125-3 枇
+sign \x6789 2456-56-1 枉
+sign \x678B 124-56 枋
+sign \x678C 124-1246-3 枌
+sign \x6790 234-1235 析
+sign \x6791 136-2 枑
+sign \x6792 12-0 枒
+sign \x6793 2345-16-1 枓
+sign \x6795 14-456-1 枕
+sign \x6797 123-456-3 林
+sign \x6798 245-245-2 枘
+sign \x679A 134-1256-3 枚
+sign \x679C 12345-135-1 果
+sign \x679D 14-24 枝
+sign \x679F 23456-45-6 枟
+sign \x67AF 124-136 枯
+sign \x67B0 12346-356-3 枰
+sign \x67B1 23456-126-3 枱
+sign \x67B2 234-146-1 枲
+sign \x67B3 14-24-1 枳
+sign \x67B4 12345-346-1 枴
+sign \x67B5 125-13456 枵
+sign \x67B6 13-12-4 架
+sign \x67B7 13-12 枷
+sign \x67B8 13-16-1 枸
+sign \x67B9 124-136 枹
+sign \x67BB 24-2 枻
+sign \x67C1 23456-135-3 柁
+sign \x67C2 24-3 柂
+sign \x67C4 1234-2356-4 柄
+sign \x67C8 1234-2346-2 柈
+sign \x67CA 2345-236
+sign \x67CE 124-136 柎
+sign \x67CF 12346-13-5 柏
+sign \x67D0 134-16-6 某
+sign \x67D1 13-456 柑
+sign \x67D2 1346-35 柒
+sign \x67D3 235-6 染
+sign \x67D4 245-16-3 柔
+sign \x67D8 14-15-4 柘
+sign \x67D9 125-1234-3 柙
+sign \x67DA 245-16-1 柚
+sign \x67DC 12345-146-2 柜
+sign \x67DD 23456-12456-5
+sign \x67DE 14-12-4 柞
+sign \x67DF 1345-345-3 柟
+sign \x67E1 13-16-2
+sign \x67E2 2345-146-1 柢
+sign \x67E3 2345-23456-3 柣
+sign \x67E4 14-12 柤
+sign \x67E5 1346-12-3 查
+sign \x67E6 14-12
+sign \x67E9 13-16-2 柩
+sign \x67EC 13-45-1 柬
+sign \x67EE 2345-1346 柮
+sign \x67EF 135-0 柯
+sign \x67F0 1345-126-2 柰
+sign \x67F1 1346-1456-6 柱
+sign \x67F2 1234-125-4 柲
+sign \x67F3 123-16-6 柳
+sign \x67F4 1346-346-3 柴
+sign \x67F5 234-45 柵
+sign \x67F6 234-24-4 柶
+sign \x67F7 14-12345 柷
+sign \x67F9 124-146-4
+sign \x67FF 1346-24-1 柿
+sign \x6801 123-16-6
+sign \x6812 1346-234-3 栒
+sign \x6813 234-45 栓
+sign \x6814 1235-146-4 栔
+sign \x6816 1346-146 栖
+sign \x6817 123-1346-3 栗
+sign \x6818 24-3 栘
+sign \x681D 1235-12356-5 栝
+sign \x681F 1234-1246 栟
+sign \x6821 125-34-2 校
+sign \x6822 12346-13-5
+sign \x6829 125-245-1 栩
+sign \x682A 14-1456 株
+sign \x682B 14-256-4 栫
+sign \x6831 13-236-1 栱
+sign \x6832 125-34-1 栲
+sign \x6833 123-1236-6 栳
+sign \x6834 14-256 栴
+sign \x6835 123-146-2 栵
+sign \x6837 245-25-2
+sign \x6838 125-35-3 核
+sign \x6839 13-1246 根
+sign \x683C 13-13-5 格
+sign \x683D 14-126 栽
+sign \x6840 13-23456-3 桀
+sign \x6841 125-1245-3 桁
+sign \x6842 12345-146-4 桂
+sign \x6843 23456-1236-3 桃
+sign \x6844 12345-56 桄
+sign \x6845 2456-146-3 桅
+sign \x6846 12456-14 框
+sign \x6848 1345-4 案
+sign \x6849 1345-0 桉
+sign \x684C 1346-246-5 桌
+sign \x684E 14-35-3 桎
+sign \x6850 23456-236-3 桐
+sign \x6851 234-56 桑
+sign \x6853 2346-3 桓
+sign \x6854 13-35 桔
+sign \x686B 234-135 桫
+sign \x686E 1234-1256 桮
+sign \x686F 23456-356 桯
+sign \x6871 13-356-4 桱
+sign \x6872 1234-1356-3 桲
+sign \x6874 124-136 桴
+sign \x6875 234-245-3 桵
+sign \x6876 23456-236-1 桶
+sign \x6877 13-12456-5 桷
+sign \x6879 123-56-3 桹
+sign \x687C 1346-35 桼
+sign \x687F 13-1345 桿
+sign \x6881 123-25-3 梁
+sign \x6882 1235-16-3 梂
+sign \x6883 23456-356-6 梃
+sign \x6885 134-1256-3 梅
+sign \x6886 1234-56 梆
+sign \x688F 13-12345 梏
+sign \x6893 14-24-1 梓
+sign \x6894 14-24 梔
+sign \x6897 13-1245-1 梗
+sign \x6898 13-45-1 梘
+sign \x689C 14-23456-3 梜
+sign \x689D 23456-13456-3
+sign \x689F 125-13456 梟
+sign \x68A0 123-245-6 梠
+sign \x68A2 234-34 梢
+sign \x68A3 14-456 梣
+sign \x68A7 1245-3 梧
+sign \x68A8 123-125-3 梨
+sign \x68A9 123-125-3 梩
+sign \x68AB 1346-456 梫
+sign \x68AD 234-135 梭
+sign \x68AF 23456-146 梯
+sign \x68B0 125-346-2 械
+sign \x68B1 12456-1246-1 梱
+sign \x68B2 14-12356-5 梲
+sign \x68B3 234-135 梳
+sign \x68B4 23456-356-6 梴
+sign \x68B5 124-45-3 梵
+sign \x68BD 14-24
+sign \x68C4 125-125-4 棄
+sign \x68C9 134-256-3 棉
+sign \x68CB 1235-125-3 棋
+sign \x68CD 12345-1246-4 棍
+sign \x68D0 124-125-1 棐
+sign \x68D1 12346-346-3 棑
+sign \x68D2 12346-14-6 棒
+sign \x68D3 12346-14-6 棓
+sign \x68D5 14-236 棕
+sign \x68D6 1346-14-3 棖
+sign \x68D7 14-1236-1 棗
+sign \x68D8 13-1235 棘
+sign \x68DA 12346-14-3 棚
+sign \x68DF 2345-236-2 棟
+sign \x68E0 23456-56-3 棠
+sign \x68E1 13-56-4 棡
+sign \x68E2 13-56-4
+sign \x68E3 2345-146-2 棣
+sign \x68E4 2345-146-2
+sign \x68E6 14-12345 棦
+sign \x68E7 14-45-2 棧
+sign \x68E8 1235-146-1 棨
+sign \x68E9 1235-146-1
+sign \x68EB 2456-1235-3 棫
+sign \x68EC 125-23 棬
+sign \x68EE 234-456 森
+sign \x68EF 1345-256-1 棯
+sign \x68F0 1346-245-3 棰
+sign \x68F1 123-356-3 棱
+sign \x68F2 1346-146 棲
+sign \x68F3 14-12356-5 棳
+sign \x68F5 124-135-1 棵
+sign \x68F7 14-16 棷
+sign \x68F9 14-34-2 棹
+sign \x68FA 13-2346 棺
+sign \x68FB 124-1246 棻
+sign \x68FC 124-1246-3 棼
+sign \x6904 14-12346-5 椄
+sign \x6905 24-1 椅
+sign \x6907 13-245-1 椇
+sign \x6908 13-12345 椈
+sign \x690A 1346-12356-5 椊
+sign \x690B 123-25-3
+sign \x690C 125-56 椌
+sign \x690D 14-1235-3 植
+sign \x690E 14-245 椎
+sign \x690F 12-0 椏
+sign \x6910 13-245 椐
+sign \x6911 1234-125 椑
+sign \x6912 14-13456 椒
+sign \x6913 2345-246-5 椓
+sign \x6917 2345-356-4 椗
+sign \x6925 14-24 椥
+sign \x6930 245-15-3 椰
+sign \x6933 1256-0 椳
+sign \x6934 2345-23-2 椴
+sign \x6936 14-236
+sign \x6937 13-345 椷
+sign \x6938 24-3 椸
+sign \x6939 14-456 椹
+sign \x693B 256-1 椻
+sign \x693D 1346-23-3 椽
+sign \x693F 1346-234 椿
+sign \x6940 1456-6 楀
+sign \x6941 125-13-5
+sign \x6942 14-12 楂
+sign \x6945 1234-1235 楅
+sign \x6948 234-245 楈
+sign \x694A 245-25-3 楊
+sign \x694E 124-146 楎
+sign \x6953 124-236 楓
+sign \x6954 234-23456-5 楔
+sign \x6956 14-1235 楖
+sign \x6957 13-256-2 楗
+sign \x6958 134-12345-3 楘
+sign \x6959 134-16-2 楙
+sign \x695A 1346-135-1 楚
+sign \x695B 124-136-1 楛
+sign \x695C 136-3 楜
+sign \x695D 123-256-2 楝
+sign \x695E 123-356-3 楞
+sign \x695F 23456-356-3 楟
+sign \x6960 1345-345-3 楠
+sign \x6961 1456-3
+sign \x6963 134-125-3 楣
+sign \x6965 125-23-4 楥
+sign \x6966 125-23-4 楦
+sign \x6968 14-356 楨
+sign \x6969 12346-256-3 楩
+sign \x696B 14-12346-5 楫
+sign \x696C 1235-23456-5 楬
+sign \x696D 12346-3 業
+sign \x696E 1346-1456-6 楮
+sign \x696F 23456-234-6 楯
+sign \x6975 13-1235-3 極
+sign \x6977 1235-346-1 楷
+sign \x6978 1346-16 楸
+sign \x6979 245-356-3 楹
+sign \x697A 245-16-3 楺
+sign \x6982 1235-126-4 概
+sign \x6983 2345-456-3 榃
+sign \x6986 1456-3 榆
+sign \x698E 13-12-1 榎
+sign \x6994 123-56-3 榔
+sign \x6995 245-236-3 榕
+sign \x6996 13-12345 榖
+sign \x6998 13-245-1
+sign \x6999 125-26-3 榙
+sign \x699B 14-234 榛
+sign \x699C 1234-56-1 榜
+sign \x69A3 13456-3 榣
+sign \x69A4 13-23456-3 榤
+sign \x69A6 13-1345-4 榦
+sign \x69A7 124-125-1 榧
+sign \x69A8 14-12-4 榨
+sign \x69AA 134-12-2 榪
+sign \x69AB 234-234-1 榫
+sign \x69AD 14-15-2 榭
+sign \x69AE 2456-356-3 榮
+sign \x69AF 234-24-3 榯
+sign \x69B1 1346-245 榱
+sign \x69B4 123-16-3 榴
+sign \x69B7 1235-12456-5 榷
+sign \x69BB 23456-1234-5 榻
+sign \x69BE 12345-35 榾
+sign \x69BF 125-125-1 榿
+sign \x69C1 13-1236-1 槁
+sign \x69C3 12346-2346-3 槃
+sign \x69C4 23456-1236 槄
+sign \x69CA 234-12456-5 槊
+sign \x69CB 1235-16-4 構
+sign \x69CC 1346-245-3 槌
+sign \x69CD 1346-25 槍
+sign \x69CE 1346-12-3 槎
+sign \x69D0 2456-346-3 槐
+sign \x69D3 13-56-4 槓
+sign \x69E4 123-256-3
+sign \x69E5 234-245-2 槥
+sign \x69E6 234-245-2
+sign \x69E7 1346-12-4 槧
+sign \x69E8 13-12456-5 槨
+sign \x69E9 13-12456-5
+sign \x69EC 2456-12-2 槬
+sign \x69ED 1346-1235 槭
+sign \x69F1 245-16-6 槱
+sign \x69F2 125-1245-3 槲
+sign \x69F3 14-25-1 槳
+sign \x69F7 23456-3 槷
+sign \x69F8 1245-146-2 槸
+sign \x69FB 12456-146 槻
+sign \x69FC 12456-146 槼
+sign \x69FD 1346-1236-3 槽
+sign \x69FE 134-1235-3 槾
+sign \x69FF 13-1246-1 槿
+sign \x6A01 14-56 樁
+sign \x6A02 123-12456-3 樂
+sign \x6A05 1346-236 樅
+sign \x6A0A 124-45-3 樊
+sign \x6A0B 23456-236
+sign \x6A0F 123-245-3 樏
+sign \x6A11 123-25-3 樑
+sign \x6A13 123-16-3 樓
+sign \x6A15 1346-12345 樕
+sign \x6A16 12346-135 樖
+sign \x6A17 234-1456 樗
+sign \x6A18 23456-56-3 樘
+sign \x6A19 1234-13456 標
+sign \x6A1B 13-16 樛
+sign \x6A1D 14-12 樝
+sign \x6A1E 234-1456 樞
+sign \x6A1F 14-25 樟
+sign \x6A20 134-2346-3 樠
+sign \x6A21 134-1236-3 模
+sign \x6A23 245-25-2 樣
+sign \x6A27 234-2345-5 樧
+sign \x6A28 234-146 樨
+sign \x6A32 24-2 樲
+sign \x6A34 14-1235 樴
+sign \x6A35 1346-13456-3 樵
+sign \x6A38 12346-12456-5
+sign \x6A39 234-1456-2 樹
+sign \x6A3A 2456-12-3 樺
+sign \x6A3B 12345-146-2 樻
+sign \x6A3D 14-234 樽
+sign \x6A3E 12356-3 樾
+sign \x6A3F 234-256-2 樿
+sign \x6A44 13-345-4 橄
+sign \x6A46 134-1236-3 橆
+sign \x6A47 1346-245-4 橇
+sign \x6A48 1345-34-3 橈
+sign \x6A4B 1235-13456-3 橋
+sign \x6A50 23456-12456-5
+sign \x6A51 123-1236-6 橑
+sign \x6A54 2345-234 橔
+sign \x6A55 1346-14 橕
+sign \x6A58 12345-35 橘
+sign \x6A59 1346-14-1 橙
+sign \x6A5A 234-12345 橚
+sign \x6A5B 1235-12356-5 橛
+sign \x6A5E 2456-146-2 橞
+sign \x6A5F 13-125 機
+sign \x6A61 14-25-2 橡
+sign \x6A62 23456-135-6 橢
+sign \x6A66 23456-236-3 橦
+sign \x6A67 14-1245 橧
+sign \x6A6A 256-3 橪
+sign \x6A6B 2456-14-3 橫
+sign \x6A7E 1346-1236-4 橾
+sign \x6A7F 13-25 橿
+sign \x6A80 23456-45-3 檀
+sign \x6A81 123-456-6 檁
+sign \x6A84 125-35-3 檄
+sign \x6A87 14-245-4 檇
+sign \x6A89 1346-356 檉
+sign \x6A8D 245-1235 檍
+sign \x6A8E 1235-456-3 檎
+sign \x6A90 234-235-3 檐
+sign \x6A91 123-245-3 檑
+sign \x6A94 2345-56-1 檔
+sign \x6A95 125-146-2 檕
+sign \x6A97 1234-13-5 檗
+sign \x6A9A 1346-135-1 檚
+sign \x6A9B 14-12 檛
+sign \x6A9C 1235-1256-1 檜
+sign \x6A9D 14-12346-5
+sign \x6A9F 13-12-1 檟
+sign \x6AA0 1235-356-3 檠
+sign \x6AA1 14-13-3 檡
+sign \x6AA2 13-235-1 檢
+sign \x6AA3 1346-25-3 檣
+sign \x6AA5 1245-146-6 檥
+sign \x6AAC 134-236 檬
+sign \x6AAE 23456-1236-3 檮
+sign \x6AAF 23456-126-3 檯
+sign \x6AB3 1234-1246 檳
+sign \x6AB4 2456-12456-3 檴
+sign \x6AB8 1345-356-3 檸
+sign \x6ABB 123-345-2 檻
+sign \x6AC2 1346-246-5 櫂
+sign \x6AC3 12345-146-2 櫃
+sign \x6AC5 14-146 櫅
+sign \x6ACD 14-35 櫍
+sign \x6AD0 123-245-3 櫐
+sign \x6AD1 123-245-3 櫑
+sign \x6AD3 123-1236-6 櫓
+sign \x6ADA 123-245-6 櫚
+sign \x6ADB 14-23456-5 櫛
+sign \x6ADC 13-1236 櫜
+sign \x6ADD 2345-12345-3 櫝
+sign \x6ADE 23-3 櫞
+sign \x6ADF 123-1235 櫟
+sign \x6AE5 1346-1456-3 櫥
+sign \x6AE7 14-1456 櫧
+sign \x6AE8 123-1236-3 櫨
+sign \x6AEA 123-1235 櫪
+sign \x6AEB 14-1456 櫫
+sign \x6AEC 1346-1246-4 櫬
+sign \x6AF0 2456-346-3 櫰
+sign \x6AF1 23456-3 櫱
+sign \x6AF3 123-236-3 櫳
+sign \x6AF8 13-245-1 櫸
+sign \x6AFA 123-356-3 櫺
+sign \x6AFB 245-356 櫻
+sign \x6AFC 1346-235 櫼
+sign \x6B02 1234-12456-3 欂
+sign \x6B03 1346-345-3 欃
+sign \x6B04 123-45-3 欄
+sign \x6B0A 1235-23-3 權
+sign \x6B0F 123-135-3 欏
+sign \x6B10 123-146-2 欐
+sign \x6B11 1346-23-3 欑
+sign \x6B12 123-23-3 欒
+sign \x6B13 2345-56-1 欓
+sign \x6B16 123-345-1 欖
+sign \x6B17 123-45-3 欗
+sign \x6B19 123-245-3 欙
+sign \x6B1E 123-356-3 欞
+sign \x6B20 125-235-4 欠
+sign \x6B21 1346-24-4 次
+sign \x6B23 245-1246 欣
+sign \x6B2C 1235-35 欬
+sign \x6B31 125-124-5 欱
+sign \x6B32 245-12345-3 欲
+sign \x6B35 124-2346-1
+sign \x6B36 1346-12345 欶
+sign \x6B37 125-125 欷
+sign \x6B38 126-0 欸
+sign \x6B39 24-0 欹
+sign \x6B3A 125-125 欺
+sign \x6B3B 124-35 欻
+sign \x6B3C 14-12356-5 欼
+sign \x6B3D 245-456 欽
+sign \x6B3E 124-2346-1 款
+sign \x6B3F 125-456-1 欿
+sign \x6B41 125-456-4 歁
+sign \x6B42 1346-23-3 歂
+sign \x6B43 234-1234-5 歃
+sign \x6B46 245-456 歆
+sign \x6B47 125-23456-5 歇
+sign \x6B48 1456-3 歈
+sign \x6B49 125-12346-5 歉
+sign \x6B4A 125-13456 歊
+sign \x6B4C 13-135 歌
+sign \x6B4D 136-0 歍
+sign \x6B4E 23456-45-4 歎
+sign \x6B50 16-0 歐
+sign \x6B51 124-136 歑
+sign \x6B54 125-245 歔
+sign \x6B55 12346-1246-4 歕
+sign \x6B59 234-12346-5 歙
+sign \x6B5B 123-235-6 歛
+sign \x6B5C 1346-12345 歜
+sign \x6B5F 1456-3 歟
+sign \x6B60 14-12356-5 歠
+sign \x6B61 124-2346 歡
+sign \x6B62 14-24-1 止
+sign \x6B63 14-356-4 正
+sign \x6B64 1346-24-1 此
+sign \x6B65 1234-1236-2 步
+sign \x6B66 134-1236-6 武
+sign \x6B67 1235-125-3 歧
+sign \x6B6A 2456-346 歪
+sign \x6B72 234-245-4 歲
+sign \x6B77 123-1235-3 歷
+sign \x6B78 12345-146 歸
+sign \x6B79 2345-346-1 歹
+sign \x6B7B 234-125-1 死
+sign \x6B7E 134-1356-3 歾
+sign \x6B7F 134-1356-3 歿
+sign \x6B80 13456-0 殀
+sign \x6B82 1346-1236-3 殂
+sign \x6B83 245-25 殃
+sign \x6B84 23456-256-6 殄
+sign \x6B86 23456-126-6 殆
+sign \x6B88 12456-1235 殈
+sign \x6B89 234-234 殉
+sign \x6B8A 234-1456-3 殊
+sign \x6B8D 12346-13456-6
+sign \x6B91 1346-356-3 殑
+sign \x6B96 14-1235-3 殖
+sign \x6B98 1346-45-3 殘
+sign \x6B99 124-1246 殙
+sign \x6B9B 13-1235 殛
+sign \x6B9E 2456-1246-6 殞
+sign \x6BA2 23456-146-4 殢
+sign \x6BA3 13-1246-1 殣
+sign \x6BA4 234-25 殤
+sign \x6BAA 24-4 殪
+sign \x6BAB 2345-45 殫
+sign \x6BAD 13-25 殭
+sign \x6BAE 123-235-6 殮
+sign \x6BAF 1234-1246-4 殯
+sign \x6BB0 2345-12345-3 殰
+sign \x6BB2 1346-235 殲
+sign \x6BB3 234-1456-3 殳
+sign \x6BB5 2345-23-2 段
+sign \x6BB7 245-1246 殷
+sign \x6BBA 234-2345-5 殺
+sign \x6BBC 125-12456-5 殼
+sign \x6BBD 1245-34-3 殽
+sign \x6BBF 2345-256-2 殿
+sign \x6BC0 2456-146-1 毀
+sign \x6BC5 1245-146-2 毅
+sign \x6BC6 16-1 毆
+sign \x6BC8 2345-23-2 毈
+sign \x6BC9 24-0 毉
+sign \x6BCB 134-1236-3 毋
+sign \x6BCC 134-1236-3 毌
+sign \x6BCD 134-1236-6 母
+sign \x6BCF 134-1256-6 每
+sign \x6BD0 346-1 毐
+sign \x6BD2 2345-12345-3 毒
+sign \x6BD3 245-12345 毓
+sign \x6BD4 1234-125-1 比
+sign \x6BD6 1234-125-4 毖
+sign \x6BD7 1234-125-1 毗
+sign \x6BD8 12346-125-3 毘
+sign \x6BDA 1346-345-3 毚
+sign \x6BDB 134-1236-3 毛
+sign \x6BE1 14-256
+sign \x6BE2 234-126 毢
+sign \x6BE7 245-236-3 毧
+sign \x6BE8 234-256-1 毨
+sign \x6BEB 125-1236-3 毫
+sign \x6BEC 1235-16-3 毬
+sign \x6BEF 23456-45-1 毯
+sign \x6BF2 14-12356-5 毲
+sign \x6BF3 1346-245-4 毳
+sign \x6BF8 234-126 毸
+sign \x6BF9 234-1456 毹
+sign \x6BFB 23456-135-4 毻
+sign \x6BFD 256-1 毽
+sign \x6BFF 234-345 毿
+sign \x6C02 134-1236-3 氂
+sign \x6C03 123-236-3 氃
+sign \x6C04 245-236-6 氄
+sign \x6C05 1346-56-1 氅
+sign \x6C06 12346-1236-1 氆
+sign \x6C08 14-256 氈
+sign \x6C09 1346-1236-4 氉
+sign \x6C0B 134-236-3 氋
+sign \x6C0C 123-1236-6 氌
+sign \x6C0D 1235-245-3 氍
+sign \x6C0F 234-24-2 氏
+sign \x6C10 2345-146 氐
+sign \x6C11 134-1246-3 民
+sign \x6C13 134-1246-3 氓
+sign \x6C14 125-125-4 气
+sign \x6C15 12346-23456-5
+sign \x6C16 1345-346-6 氖
+sign \x6C18 2345-1236 氘
+sign \x6C19 234-256 氙
+sign \x6C1A 1346-23 氚
+sign \x6C1B 124-1246 氛
+sign \x6C1D 1345-126-2 氝
+sign \x6C1F 124-35 氟
+sign \x6C21 2345-236 氡
+sign \x6C23 125-125-4 氣
+sign \x6C24 245-1246 氤
+sign \x6C25 234-146 氥
+sign \x6C26 125-126-2 氦
+sign \x6C27 245-25-6 氧
+sign \x6C28 1345-0 氨
+sign \x6C2A 125-46 氪
+sign \x6C2B 125-356 氫
+sign \x6C2C 12-4 氬
+sign \x6C2E 2345-345-2 氮
+sign \x6C2F 123-12345-3 氯
+sign \x6C30 1346-356 氰
+sign \x6C33 2456-1246 氳
+sign \x6C34 234-245-1 水
+sign \x6C38 2456-356-6 永
+sign \x6C39 23456-456-6 氹
+sign \x6C3B 1245-1345-2 氻
+sign \x6C3E 124-45-4 氾
+sign \x6C3F 12345-146-1 氿
+sign \x6C40 2345-356 汀
+sign \x6C41 14-26 汁
+sign \x6C42 1235-16-3 求
+sign \x6C46 23456-1246-1 汆
+sign \x6C49 125-1345-4
+sign \x6C4A 1346-12-4 汊
+sign \x6C4B 14-12456-5 汋
+sign \x6C4C 125-256 汌
+sign \x6C4D 23-3 汍
+sign \x6C4E 124-45-4 汎
+sign \x6C4F 2345-346-2 汏
+sign \x6C50 14-1235-3 汐
+sign \x6C54 1245-35-3 汔
+sign \x6C55 234-45-4 汕
+sign \x6C57 125-1345-2 汗
+sign \x6C59 136-0 汙
+sign \x6C5B 234-234-4 汛
+sign \x6C5C 1346-24-6 汜
+sign \x6C5D 1456-6 汝
+sign \x6C5E 125-236-4 汞
+sign \x6C5F 13-56 江
+sign \x6C60 1346-24-3 池
+sign \x6C61 136-0 污
+sign \x6C67 125-256 汧
+sign \x6C68 134-1235-3 汨
+sign \x6C69 134-1235-3 汩
+sign \x6C6A 2456-56 汪
+sign \x6C6D 245-245-2 汭
+sign \x6C6F 2456-1245-3 汯
+sign \x6C70 23456-346-4 汰
+sign \x6C72 1235-26 汲
+sign \x6C74 1234-256-2 汴
+sign \x6C76 134-1246-2 汶
+sign \x6C78 1234-1245-2 汸
+sign \x6C7A 1235-12356-5 決
+sign \x6C7D 125-125-4 汽
+sign \x6C7E 124-1246-3 汾
+sign \x6C81 234-456-4 沁
+sign \x6C82 24-3 沂
+sign \x6C83 245-12345 沃
+sign \x6C84 234-256-1 沄
+sign \x6C85 23-3 沅
+sign \x6C86 125-56-3 沆
+sign \x6C87 256-6 沇
+sign \x6C88 234-456-1 沈
+sign \x6C89 1346-456-3 沉
+sign \x6C8C 2345-234-2 沌
+sign \x6C8D 136-2 沍
+sign \x6C8F 1346-146-4 沏
+sign \x6C90 134-12345-3 沐
+sign \x6C92 134-1356-3 沒
+sign \x6C93 2345-1234-3 沓
+sign \x6C94 134-256-6 沔
+sign \x6C95 134-35-3 沕
+sign \x6C96 1346-236 沖
+sign \x6C98 1234-125-1 沘
+sign \x6C99 234-12 沙
+sign \x6C9A 14-24-1 沚
+sign \x6C9B 12346-1256-4 沛
+sign \x6CA2 14-13-3
+sign \x6CAB 134-1356-3 沫
+sign \x6CAC 134-1256-2 沬
+sign \x6CAD 234-2345-3 沭
+sign \x6CAE 14-245-1 沮
+sign \x6CB0 23456-12456-5
+sign \x6CB1 23456-135-3 沱
+sign \x6CB3 125-135-3 河
+sign \x6CB4 123-245-2 沴
+sign \x6CB7 124-2345-5 沷
+sign \x6CB8 124-146-4 沸
+sign \x6CB9 245-16-3 油
+sign \x6CBB 14-24-2 治
+sign \x6CBC 14-13456-1 沼
+sign \x6CBD 13-136 沽
+sign \x6CBE 14-235 沾
+sign \x6CBF 23-3 沿
+sign \x6CC1 124-56-4 況
+sign \x6CC2 12345-356-1 泂
+sign \x6CC3 1235-245-6 泃
+sign \x6CC4 234-23456-5 泄
+sign \x6CC5 1346-16-3 泅
+sign \x6CC6 245-35-3 泆
+sign \x6CC9 1346-23-3 泉
+sign \x6CCA 1234-12456-3 泊
+sign \x6CCC 1234-125-4 泌
+sign \x6CD0 123-46-3 泐
+sign \x6CD1 245-16-4 泑
+sign \x6CD2 134-2345-3 泒
+sign \x6CD3 2456-1245-3 泓
+sign \x6CD4 13-456 泔
+sign \x6CD5 124-2345-5 法
+sign \x6CD6 134-34-6 泖
+sign \x6CD7 234-24-4 泗
+sign \x6CDA 1346-24-1 泚
+sign \x6CDB 124-45-4 泛
+sign \x6CDC 2345-146-1
+sign \x6CDD 234-1236-4 泝
+sign \x6CDE 1345-356-2 泞
+sign \x6CE0 123-356-3 泠
+sign \x6CE1 12346-34 泡
+sign \x6CE2 1234-135 波
+sign \x6CE3 245-26 泣
+sign \x6CE5 1345-146-3 泥
+sign \x6CE7 1356-3 泧
+sign \x6CE8 14-1456-4 注
+sign \x6CE9 245-1236 泩
+sign \x6CEB 2346-6 泫
+sign \x6CEC 12356-3 泬
+sign \x6CEE 1234-2346-2 泮
+sign \x6CEF 134-1246-6 泯
+sign \x6CF0 23456-346-4 泰
+sign \x6CF1 245-25 泱
+sign \x6CF2 14-146-4 泲
+sign \x6CF3 2456-356-2 泳
+sign \x6CF5 1234-456 泵
+sign \x6D01 13-23456-5 洁
+sign \x6D04 1256-3 洄
+sign \x6D07 256-0 洇
+sign \x6D0A 14-256-4 洊
+sign \x6D0B 245-25-3 洋
+sign \x6D0C 123-23456-3 洌
+sign \x6D0E 13-125-4 洎
+sign \x6D0F 24-3 洏
+sign \x6D11 124-12345-3 洑
+sign \x6D12 234-12-1 洒
+sign \x6D17 234-146-1 洗
+sign \x6D19 14-1456 洙
+sign \x6D1A 13-56-4 洚
+sign \x6D1B 123-12456-3 洛
+sign \x6D1E 2345-236-2 洞
+sign \x6D1F 24-3 洟
+sign \x6D25 14-234 津
+sign \x6D27 124-1256-1 洧
+sign \x6D28 1245-34-3 洨
+sign \x6D29 234-23456-5 洩
+sign \x6D2A 125-236-3 洪
+sign \x6D2B 12345-1235 洫
+sign \x6D2D 125-56 洭
+sign \x6D2E 23456-1236-3 洮
+sign \x6D31 24-6 洱
+sign \x6D32 14-16 洲
+sign \x6D33 1456-3 洳
+sign \x6D34 12346-356-3 洴
+sign \x6D35 234-234 洵
+sign \x6D36 125-236 洶
+sign \x6D38 12345-56 洸
+sign \x6D39 2346-3 洹
+sign \x6D3A 134-356-3 洺
+sign \x6D3B 1356-3 活
+sign \x6D3C 2456-12 洼
+sign \x6D3D 125-26 洽
+sign \x6D3E 12346-346-4 派
+sign \x6D3F 136-0 洿
+sign \x6D41 123-16-3 流
+sign \x6D59 14-23456-5 浙
+sign \x6D5A 14-234-4 浚
+sign \x6D5E 14-12345 浞
+sign \x6D60 125-125 浠
+sign \x6D61 1234-1356-3 浡
+sign \x6D63 2346-6 浣
+sign \x6D65 245-26 浥
+sign \x6D66 12346-1236-1 浦
+sign \x6D69 125-1236-2 浩
+sign \x6D6A 123-56-2 浪
+sign \x6D6C 123-125-6 浬
+sign \x6D6D 13-1245 浭
+sign \x6D6E 124-16-3 浮
+sign \x6D6F 1245-3 浯
+sign \x6D70 123-125-2 浰
+sign \x6D74 245-12345-3 浴
+sign \x6D77 125-126-1 海
+sign \x6D78 14-456-4 浸
+sign \x6D79 13-1234-5 浹
+sign \x6D7C 134-1256-6 浼
+sign \x6D82 23456-1236-3 涂
+sign \x6D85 1345-12346-3 涅
+sign \x6D87 13-356 涇
+sign \x6D88 234-13456 消
+sign \x6D89 234-12346-5 涉
+sign \x6D8A 1345-256-6 涊
+sign \x6D8C 1346-236 涌
+sign \x6D8E 256-3 涎
+sign \x6D91 1346-12345 涑
+sign \x6D92 23456-1246 涒
+sign \x6D93 13-23 涓
+sign \x6D94 234-456-3 涔
+sign \x6D95 23456-146-4 涕
+sign \x6D96 123-125-2
+sign \x6D98 14-24-2 涘
+sign \x6DAA 124-16-3 涪
+sign \x6DAC 125-1245-6 涬
+sign \x6DAE 234-45-4 涮
+sign \x6DAF 1245-346-3 涯
+sign \x6DB2 245-1235-3 液
+sign \x6DB3 125-236 涳
+sign \x6DB4 2456-135-4 涴
+sign \x6DB5 125-345-3 涵
+sign \x6DB7 2345-236 涷
+sign \x6DB8 1235-12456-5 涸
+sign \x6DBC 123-25-3 涼
+sign \x6DBD 124-1246 涽
+sign \x6DBF 2345-246-5 涿
+sign \x6DC0 2345-256-2 淀
+sign \x6DC4 14-24 淄
+sign \x6DC5 234-1235 淅
+sign \x6DC6 1245-34-3 淆
+sign \x6DC7 1235-125-3 淇
+sign \x6DC8 12345-35 淈
+sign \x6DCA 235-0 淊
+sign \x6DCB 123-456-3 淋
+sign \x6DCC 23456-56-1 淌
+sign \x6DD1 234-12345-3 淑
+sign \x6DD2 1346-146 淒
+sign \x6DD6 1345-34-2 淖
+sign \x6DD8 23456-1236-3 淘
+sign \x6DD9 1346-236-3 淙
+sign \x6DDA 123-245-2 淚
+sign \x6DDB 14-23456-5 淛
+sign \x6DDC 12346-14 淜
+sign \x6DDD 124-125-3 淝
+sign \x6DDE 234-236 淞
+sign \x6DDF 23456-256-1 淟
+sign \x6DE0 12346-125-4 淠
+sign \x6DE1 2345-345-2 淡
+sign \x6DE2 12345-1235 淢
+sign \x6DE4 1456-1 淤
+sign \x6DE5 123-12345-3 淥
+sign \x6DE6 13-456-4 淦
+sign \x6DE8 14-356-2 淨
+sign \x6DE9 123-356-3 淩
+sign \x6DEA 123-234-3 淪
+sign \x6DEB 245-456-3 淫
+sign \x6DEC 234-245-2 淬
+sign \x6DEE 2456-346-3 淮
+sign \x6DEF 245-12345-3 淯
+sign \x6DF0 1345-235-1 淰
+sign \x6DF1 234-456 深
+sign \x6DF3 234-234-3 淳
+sign \x6DF4 124-35 淴
+sign \x6DF5 23-0 淵
+sign \x6DF6 123-126-3 淶
+sign \x6DF7 2456-1246-2 混
+sign \x6DF9 235-0 淹
+sign \x6DFA 1346-256-1 淺
+sign \x6DFB 23456-235 添
+sign \x6DFC 134-13456-6 淼
+sign \x6E01 2456-146-2
+sign \x6E02 124-136
+sign \x6E04 134-2346-2
+sign \x6E05 1346-356 清
+sign \x6E07 2345-235-4
+sign \x6E19 2346-2 渙
+sign \x6E1A 14-1456-1 渚
+sign \x6E1B 13-345-1 減
+sign \x6E1C 1345-23-6 渜
+sign \x6E1D 1456-3 渝
+sign \x6E1F 23456-356-3 渟
+sign \x6E20 1235-245-3 渠
+sign \x6E21 2345-1236-2 渡
+sign \x6E22 124-236-3 渢
+sign \x6E23 14-12 渣
+sign \x6E24 1234-1356-3 渤
+sign \x6E25 46-0 渥
+sign \x6E26 2456-135 渦
+sign \x6E27 2345-1235-3 渧
+sign \x6E28 1256-0 渨
+sign \x6E2B 234-23456-5 渫
+sign \x6E2C 1346-46 測
+sign \x6E2D 2456-146-2 渭
+sign \x6E2F 13-56-1 港
+sign \x6E30 235-0 渰
+sign \x6E32 125-23 渲
+sign \x6E34 125-124-5 渴
+sign \x6E38 245-16-3 游
+sign \x6E39 12345-1245 渹
+sign \x6E3A 134-13456-6 渺
+sign \x6E3C 134-125-6 渼
+sign \x6E3E 2456-1246-2 渾
+sign \x6E43 1234-346-4 湃
+sign \x6E44 134-125-3 湄
+sign \x6E45 123-256-2 湅
+sign \x6E49 23456-235-3 湉
+sign \x6E4A 1346-16-4 湊
+sign \x6E4B 2456-146-3 湋
+sign \x6E4D 1346-23-1 湍
+sign \x6E4E 134-256-6 湎
+sign \x6E51 234-245-1 湑
+sign \x6E53 12346-2346-3 湓
+sign \x6E54 14-256 湔
+sign \x6E56 136-3 湖
+sign \x6E58 234-25 湘
+sign \x6E59 245-1235-3
+sign \x6E5B 14-345-4 湛
+sign \x6E5C 14-1235-3 湜
+sign \x6E5D 13-346 湝
+sign \x6E5E 14-356 湞
+sign \x6E5F 2456-56-3 湟
+sign \x6E62 1234-1235 湢
+sign \x6E63 134-1246-6 湣
+sign \x6E67 245-236-1 湧
+sign \x6E68 12345-1235 湨
+sign \x6E69 1346-236-6
+sign \x6E6B 14-16 湫
+sign \x6E6E 245-1246 湮
+sign \x6E6F 23456-56 湯
+sign \x6E71 2456-13-3 湱
+sign \x6E72 2346-3 湲
+sign \x6E88 12345-146 溈
+sign \x6E89 1235-126-4 溉
+sign \x6E8E 12345-146-4 溎
+sign \x6E8F 23456-56-3 溏
+sign \x6E90 23-3 源
+sign \x6E94 1245-34-3 溔
+sign \x6E96 14-234-1 準
+sign \x6E98 125-26-3 溘
+sign \x6E9C 123-13456 溜
+sign \x6E9D 1235-16 溝
+sign \x6E9F 134-356-3 溟
+sign \x6EA0 14-12-4 溠
+sign \x6EA2 245-35-3 溢
+sign \x6EA5 12346-1236-1 溥
+sign \x6EA6 134-125-3 溦
+sign \x6EA7 123-1346-3 溧
+sign \x6EAA 1235-146 溪
+sign \x6EAB 2456-1246 溫
+sign \x6EAE 234-24 溮
+sign \x6EAF 234-1236-4 溯
+sign \x6EB1 14-234 溱
+sign \x6EB2 234-16 溲
+sign \x6EB3 2456-1246-3 溳
+sign \x6EB4 1346-16-4 溴
+sign \x6EB5 245-1246
+sign \x6EB6 245-236-3 溶
+sign \x6EB7 2456-1246-2 溷
+sign \x6EBA 1345-1235-3 溺
+sign \x6EBC 234-26 溼
+sign \x6EBD 245-12345-3 溽
+sign \x6EC0 1346-12345 滀
+sign \x6EC1 1346-245-3 滁
+sign \x6EC2 12346-56-3 滂
+sign \x6EC3 245-16-1 滃
+sign \x6EC4 1346-56 滄
+sign \x6EC5 134-23456-3 滅
+sign \x6EC6 13-13-5 滆
+sign \x6EC7 23456-256-3 滇
+sign \x6EC8 125-1236-2 滈
+sign \x6ECB 14-24 滋
+sign \x6ECC 2345-1235-3 滌
+sign \x6ECD 14-24-2 滍
+sign \x6ECF 124-136-1 滏
+sign \x6ED1 2456-2345-3 滑
+sign \x6ED3 14-24-1 滓
+sign \x6ED4 23456-1236 滔
+sign \x6ED5 23456-1245-3 滕
+sign \x6ED8 13-34-4 滘
+sign \x6ED9 1256-2 滙
+sign \x6EEB 234-16-4 滫
+sign \x6EEC 136-2 滬
+sign \x6EEF 14-146-2 滯
+sign \x6EF1 1235-16-4 滱
+sign \x6EF2 234-456-4 滲
+sign \x6EF4 2345-1235-3 滴
+sign \x6EF7 123-1236-6 滷
+sign \x6EF8 136-1 滸
+sign \x6EF9 124-136 滹
+sign \x6EFA 245-16-3
+sign \x6EFB 1346-45-1 滻
+sign \x6EFE 12345-1246-1 滾
+sign \x6EFF 134-2346-6 滿
+sign \x6F01 1456-3 漁
+sign \x6F02 12346-13456-4
+sign \x6F06 1346-35 漆
+sign \x6F08 14-146-4 漈
+sign \x6F09 123-12345-3 漉
+sign \x6F0A 123-16-3 漊
+sign \x6F0F 123-16-2 漏
+sign \x6F13 123-125-3 漓
+sign \x6F14 256-1 演
+sign \x6F15 1346-1236-3 漕
+sign \x6F18 234-234-3 漘
+sign \x6F19 23456-23-3 漙
+sign \x6F1A 16-4 漚
+sign \x6F20 134-12456-3 漠
+sign \x6F22 125-1345-4 漢
+sign \x6F23 123-256-3 漣
+sign \x6F25 2456-12 漥
+sign \x6F26 123-125-3 漦
+sign \x6F29 234-23-3 漩
+sign \x6F2A 24-1 漪
+sign \x6F2B 134-45-2 漫
+sign \x6F2C 14-1235 漬
+sign \x6F2D 134-56-6 漭
+sign \x6F2E 125-56 漮
+sign \x6F2F 23456-1234-5 漯
+sign \x6F30 12346-1245-3 漰
+sign \x6F31 234-16-4 漱
+sign \x6F32 14-25-4 漲
+sign \x6F33 14-25 漳
+sign \x6F36 2456-45-2 漶
+sign \x6F37 12345-12456-5
+sign \x6F38 14-235-2 漸
+sign \x6F3B 123-13456-3 漻
+sign \x6F3C 1346-245 漼
+sign \x6F3E 245-25-2 漾
+sign \x6F3F 14-25 漿
+sign \x6F40 1346-236-3 潀
+sign \x6F41 2456-356-2 潁
+sign \x6F4E 12346-23456-5
+sign \x6F4F 2456-35-3 潏
+sign \x6F51 12346-1356-5 潑
+sign \x6F52 2345-56-2 潒
+sign \x6F54 13-23456-5 潔
+sign \x6F55 134-1236-6 潕
+sign \x6F58 12346-2346 潘
+sign \x6F5A 234-13456 潚
+sign \x6F5B 1346-235-3 潛
+sign \x6F5D 245-26 潝
+sign \x6F5E 123-1236-2 潞
+sign \x6F5F 234-1235 潟
+sign \x6F60 234-234-4 潠
+sign \x6F62 2456-56-3 潢
+sign \x6F64 245-234-2 潤
+sign \x6F66 123-1236-6 潦
+sign \x6F6C 23456-45 潬
+sign \x6F6D 23456-345-3 潭
+sign \x6F6E 1346-13456-3 潮
+sign \x6F6F 1346-456-3 潯
+sign \x6F70 1235-1256-1 潰
+sign \x6F72 234-34-4 潲
+sign \x6F74 14-1456
+sign \x6F77 1234-35 潷
+sign \x6F78 234-45 潸
+sign \x6F7A 234-45-3 潺
+sign \x6F7C 23456-236-3 潼
+sign \x6F7E 123-234-3 潾
+sign \x6F7F 2456-146-3 潿
+sign \x6F80 13-12346-5 澀
+sign \x6F82 1346-356-3 澂
+sign \x6F84 1346-356-3 澄
+sign \x6F86 13-13456 澆
+sign \x6F87 123-1236-2 澇
+sign \x6F88 1346-23456-5 澈
+sign \x6F89 13-456-1 澉
+sign \x6F8C 234-24 澌
+sign \x6F8D 234-1456-2 澍
+sign \x6F8E 12346-14-3 澎
+sign \x6F90 2456-1246-3 澐
+sign \x6F92 125-236-2 澒
+sign \x6F94 125-1236-2 澔
+sign \x6F97 13-45-4 澗
+sign \x6FA0 134-1246-6 澠
+sign \x6FA1 1346-1236-4 澡
+sign \x6FA3 2346-6 澣
+sign \x6FA4 14-13-3 澤
+sign \x6FA5 125-346-2 澥
+sign \x6FA6 1456-2 澦
+sign \x6FA7 123-146-6 澧
+sign \x6FA8 234-146-2 澨
+sign \x6FA9 125-12456-3 澩
+sign \x6FAD 245-236 澭
+sign \x6FAE 1235-1256-4 澮
+sign \x6FAF 1346-45-4 澯
+sign \x6FB0 13-235-1
+sign \x6FB1 2345-256-2 澱
+sign \x6FB3 1236-4 澳
+sign \x6FB4 2456-45-3 澴
+sign \x6FB6 234-256-3 澶
+sign \x6FB9 2345-345-2 澹
+sign \x6FBC 12346-1235 澼
+sign \x6FBD 13-245-2 澽
+sign \x6FC0 13-1235 激
+sign \x6FC1 14-12345-3 濁
+sign \x6FC2 123-235-3 濂
+sign \x6FC3 1345-236-3 濃
+sign \x6FC6 124-1246-3 濆
+sign \x6FC7 234-1234-5 濇
+sign \x6FC8 1346-26 濈
+sign \x6FC9 234-245 濉
+sign \x6FCA 1235-1356-5 濊
+sign \x6FCB 1346-135-1 濋
+sign \x6FD4 134-125-3 濔
+sign \x6FD5 234-26 濕
+sign \x6FD8 1345-356-3 濘
+sign \x6FDA 245-356-3
+sign \x6FDB 134-236-3 濛
+sign \x6FDC 14-234-2 濜
+sign \x6FDE 12346-125-4 濞
+sign \x6FDF 14-146-4 濟
+sign \x6FE0 125-1236-3 濠
+sign \x6FE1 1456-3 濡
+sign \x6FE4 23456-1236-3 濤
+sign \x6FE9 2456-12456-3 濩
+sign \x6FEB 123-345-2 濫
+sign \x6FEC 14-234-4 濬
+sign \x6FEE 1234-12345-3 濮
+sign \x6FEF 14-12456-3 濯
+sign \x6FF0 2456-146-3 濰
+sign \x6FF1 1234-1246 濱
+sign \x6FF2 13-12345 濲
+sign \x6FF6 124-1356-5
+sign \x6FFA 14-256-2 濺
+sign \x6FFC 123-12456-3 濼
+sign \x6FFE 123-245-2 濾
+sign \x7005 245-356-3 瀅
+sign \x7006 2345-12345-3 瀆
+sign \x7009 234-15-4 瀉
+sign \x700B 234-456-1 瀋
+sign \x700C 1234-13456 瀌
+sign \x700D 1346-256-3 瀍
+sign \x700F 123-16-3 瀏
+sign \x7011 1234-12345-3 瀑
+sign \x7014 13-12345 瀔
+sign \x7015 12346-1246-3 瀕
+sign \x7018 123-1236-3 瀘
+sign \x701A 125-1345-2 瀚
+sign \x701B 245-356-3 瀛
+sign \x701D 123-1235-3 瀝
+sign \x701F 234-13456 瀟
+sign \x7020 245-356-3 瀠
+sign \x7021 234-245-6 瀡
+sign \x7023 125-346-2 瀣
+sign \x7026 14-1456 瀦
+sign \x7027 123-236-3 瀧
+sign \x7028 123-346-2 瀨
+sign \x702F 245-356-3 瀯
+sign \x7030 1345-125-3 瀰
+sign \x7031 13-146-4 瀱
+sign \x7032 123-235-6 瀲
+sign \x7038 1346-235 瀸
+sign \x7039 245-246-3 瀹
+sign \x703A 1346-345-3 瀺
+sign \x703C 245-25-3 瀼
+sign \x703E 123-45-3 瀾
+sign \x7042 1346-246-5 灂
+sign \x7043 124-236 灃
+sign \x7044 234-12346-5 灄
+sign \x7049 245-236 灉
+sign \x704A 1346-456-3 灊
+sign \x704C 13-2346-4 灌
+sign \x7051 234-12-1 灑
+sign \x7052 14-45-4 灒
+sign \x7055 123-125-3 灕
+sign \x7058 23456-45 灘
+sign \x705B 14-256-1 灛
+sign \x705D 125-1236-2 灝
+sign \x705E 1234-12-4 灞
+sign \x7060 123-345-2 灠
+sign \x7062 1345-56-6 灢
+sign \x7063 2456-45 灣
+sign \x7064 123-23-3 灤
+sign \x7067 235-2
+sign \x7068 13-456-4 灨
+sign \x7069 235-2 灩
+sign \x706B 124-135-1 火
+sign \x7070 124-1256 灰
+sign \x7074 125-236-4 灴
+sign \x7075 123-356-3
+sign \x7076 14-1236-4 灶
+sign \x7078 13-16-4 灸
+sign \x707A 1346-15-1 灺
+sign \x707C 1346-246-5 灼
+sign \x707D 14-126 災
+sign \x707E 14-126
+sign \x7083 14-1236-2 炃
+sign \x7084 125-1345-3 炄
+sign \x7085 12345-356-1 炅
+sign \x7086 134-1246 炆
+sign \x708A 1346-245 炊
+sign \x708E 235-3 炎
+sign \x7091 12346-125-3 炑
+sign \x7092 1346-34-1 炒
+sign \x7093 23456-16-4 炓
+sign \x7094 1235-12356-5 炔
+sign \x7095 1235-56-4 炕
+sign \x7096 2345-1246-2 炖
+sign \x7098 245-1246 炘
+sign \x7099 14-2456-5 炙
+sign \x70A4 14-13456-4 炤
+sign \x70AB 23-3 炫
+sign \x70AC 13-245-2 炬
+sign \x70AD 23456-45-4 炭
+sign \x70AE 12346-34-4 炮
+sign \x70AF 12345-356-1 炯
+sign \x70B0 12346-34-4 炰
+sign \x70B1 23456-126-3 炱
+sign \x70B3 1234-356-1 炳
+sign \x70B5 2345-236 炵
+sign \x70B7 14-1456-4 炷
+sign \x70B8 14-12-4 炸
+sign \x70BA 2456-146-2 為
+sign \x70C8 123-23456-3 烈
+sign \x70CA 245-25-3 烊
+sign \x70CF 136-0 烏
+sign \x70D4 23456-236-3 烔
+sign \x70D6 14-126
+sign \x70D8 125-236-4 烘
+sign \x70D9 123-12456-5 烙
+sign \x70DC 125-23-1 烜
+sign \x70DD 14-356 烝
+sign \x70DF 256-0
+sign \x70E2 14-13-3 烢
+sign \x70E4 125-34 烤
+sign \x70EF 125-125 烯
+sign \x70F0 124-16-3 烰
+sign \x70F1 12345-356-1 烱
+sign \x70F4 23456-356 烴
+sign \x70F7 23-1 烷
+sign \x70F9 12346-14 烹
+sign \x70FA 123-56-6 烺
+sign \x70FD 124-236 烽
+sign \x7102 234-12345 焂
+sign \x7104 124-1246 焄
+sign \x7109 256-0 焉
+sign \x710A 125-1345-2 焊
+sign \x710C 1346-1346 焌
+sign \x7110 1245-2 焐
+sign \x7113 125-456-3 焓
+sign \x7117 13-12345-3 焗
+sign \x7119 1234-1256-2 焙
+sign \x711A 124-1246-3 焚
+sign \x711C 12456-1246 焜
+sign \x7120 1346-245-4 焠
+sign \x7121 134-1236-3 無
+sign \x7126 14-13456 焦
+sign \x712C 245-25-3
+sign \x712E 245-1246-4 焮
+sign \x712F 1346-246-5 焯
+sign \x7130 235-2 焰
+sign \x7131 235-2 焱
+sign \x7136 256-3 然
+sign \x7140 2456-35 煀
+sign \x7141 1345-456-3 煁
+sign \x7146 125-12
+sign \x7147 124-146 煇
+sign \x7149 123-256-2 煉
+sign \x714A 125-23 煊
+sign \x714B 234-356 煋
+sign \x714C 2456-56-3 煌
+sign \x714D 1346-13456-1 煍
+sign \x714E 14-256 煎
+sign \x7152 2456-146-6 煒
+sign \x7156 1345-23-6 煖
+sign \x7159 256-0 煙
+sign \x715A 12345-356-1 煚
+sign \x715C 245-12345 煜
+sign \x715E 234-2345-5 煞
+sign \x7160 14-12-4 煠
+sign \x7162 1235-356-3 煢
+sign \x7163 245-16-1 煣
+sign \x7164 134-1256-3 煤
+sign \x7165 2346-2 煥
+sign \x7166 125-245-1 煦
+sign \x7167 14-13456-4 照
+sign \x7168 1256-0 煨
+sign \x7169 124-45-3 煩
+sign \x716C 245-25-3 煬
+sign \x716E 14-1456-1 煮
+sign \x7172 1234-1236 煲
+sign \x7178 12346-256 煸
+sign \x717B 23456-56-3 煻
+sign \x717D 234-256-4 煽
+sign \x7180 124-56-1 熀
+sign \x7184 234-1235 熄
+sign \x7185 2456-1246-1 熅
+sign \x718A 125-236-3 熊
+sign \x718F 124-1246 熏
+sign \x7192 245-356-3 熒
+sign \x7194 245-236-3 熔
+sign \x7197 1346-25-4 熗
+sign \x7199 125-125 熙
+sign \x719B 1234-13456 熛
+sign \x719F 234-12345-3 熟
+sign \x71A0 245-26 熠
+sign \x71A5 23456-236 熥
+sign \x71A8 23456-56-4 熨
+sign \x71AC 1245-1236-3 熬
+sign \x71AF 125-1345-4 熯
+sign \x71B0 16-0 熰
+sign \x71B1 23456-3 熱
+sign \x71B2 12345-356-1 熲
+sign \x71B3 134-45-2 熳
+sign \x71B5 234-25 熵
+sign \x71B8 14-235 熸
+sign \x71B9 125-125 熹
+sign \x71BE 1346-24-4 熾
+sign \x71C0 14-256-1 燀
+sign \x71C1 12346-3 燁
+sign \x71C2 23456-345-3 燂
+sign \x71C3 256-3 燃
+sign \x71C4 235-2 燄
+sign \x71C8 2345-1245 燈
+sign \x71C9 2345-1246-2 燉
+sign \x71CA 234-1246 燊
+sign \x71CB 14-13456 燋
+sign \x71CE 123-13456-3 燎
+sign \x71CF 2456-35-3 燏
+sign \x71D0 123-234-3 燐
+sign \x71D2 234-13456 燒
+sign \x71D4 124-45-3 燔
+sign \x71D5 256-4 燕
+sign \x71D6 1346-456-3 燖
+sign \x71D9 23456-56-4 燙
+sign \x71DA 245-1235-3 燚
+sign \x71DC 134-2346-2 燜
+sign \x71DF 245-356-3 營
+sign \x71E0 245-12345 燠
+sign \x71E1 245-1235-3 燡
+sign \x71E2 245-1235-3
+sign \x71E5 1346-1236-4 燥
+sign \x71E6 1346-45-4 燦
+sign \x71E7 234-245-2 燧
+sign \x71E8 234-245-2
+sign \x71EC 2456-146-1 燬
+sign \x71ED 14-12345 燭
+sign \x71EE 234-23456-5 燮
+sign \x71F4 1256-2 燴
+sign \x71F6 1345-236 燶
+sign \x71F8 234-24 燸
+sign \x71F9 234-256-1 燹
+sign \x71FB 124-1246 燻
+sign \x71FC 14-234-1 燼
+sign \x71FE 23456-1236-3 燾
+sign \x71FF 13456-2 燿
+sign \x7206 1234-34-4 爆
+sign \x7207 12356-3 爇
+sign \x720A 1245-1236-3 爊
+sign \x720D 234-246-5 爍
+sign \x7210 123-1236-3 爐
+sign \x7213 235-2 爓
+sign \x7214 125-125 爔
+sign \x721A 245-246-3 爚
+sign \x721B 123-45-2 爛
+sign \x721D 14-246-5 爝
+sign \x721F 13-2346-4 爟
+sign \x7226 123-345-6 爦
+sign \x7228 1346-23-4 爨
+sign \x722A 14-34-1 爪
+sign \x722C 12346-12-3 爬
+sign \x722D 14-1245 爭
+sign \x7230 23-3 爰
+sign \x7235 14-246-5 爵
+sign \x7236 124-136-2 父
+sign \x7238 1234-12 爸
+sign \x7239 2345-15 爹
+sign \x723A 245-15-3 爺
+sign \x723B 1245-34-3 爻
+sign \x723D 234-56-1 爽
+sign \x723E 24-6 爾
+sign \x723F 1234-45-2 爿
+sign \x7240 1346-56-3 牀
+sign \x7241 135-0 牁
+sign \x7242 14-56 牂
+sign \x7244 1346-25 牄
+sign \x7246 1346-25-3 牆
+sign \x7247 12346-256-4 片
+sign \x7248 1234-45-1 版
+sign \x7249 12346-2346-4 牉
+sign \x724B 14-256 牋
+sign \x724C 12346-346-3 牌
+sign \x724F 1456-3 牏
+sign \x7252 2345-12346-3 牒
+sign \x7256 245-16-6 牖
+sign \x7258 2345-12345-3 牘
+sign \x7259 1245-12-3 牙
+sign \x725A 1346-14 牚
+sign \x725B 1245-16-3 牛
+sign \x725D 12346-1246-6 牝
+sign \x725E 1245-12-3 牞
+sign \x725F 134-16-3 牟
+sign \x7260 23456-12 牠
+sign \x7261 134-34-6 牡
+sign \x7262 123-1236-3 牢
+sign \x7263 245-1246-2 牣
+sign \x7267 134-12345-3 牧
+sign \x7269 134-35-3 物
+sign \x726E 14-256-4 牮
+sign \x726F 13-136-1 牯
+sign \x7272 234-1245 牲
+sign \x7274 2345-146-1 牴
+sign \x7277 1346-23-3 牷
+sign \x7278 14-24-2 牸
+sign \x7279 2345-46-3 特
+sign \x727B 134-56-3 牻
+sign \x727C 125-1245 牼
+sign \x727D 125-256 牽
+sign \x727E 1245-6 牾
+sign \x727F 13-12345 牿
+sign \x7280 234-146 犀
+sign \x7281 123-146-3 犁
+sign \x7284 13-125 犄
+sign \x7285 13-56 犅
+sign \x7289 234-234-3 犉
+sign \x728B 13-245-2 犋
+sign \x728C 13-12 犌
+sign \x728D 13-256 犍
+sign \x728E 124-236 犎
+sign \x7292 125-1236-4 犒
+sign \x7296 123-12456-3 犖
+sign \x7297 13-346-4 犗
+sign \x729A 2456-146-4 犚
+sign \x729B 123-125-3 犛
+sign \x729D 23456-236-3 犝
+sign \x72A2 2345-12345-3 犢
+sign \x72A3 123-12346-3 犣
+sign \x72A7 125-125 犧
+sign \x72AC 125-23-1 犬
+sign \x72AE 1234-12345-3 犮
+sign \x72AF 124-45-2 犯
+sign \x72B0 234-16-3 犰
+sign \x72B4 1245-1345-2 犴
+sign \x72B5 13-135 犵
+sign \x72BA 1235-56-4 犺
+sign \x72C0 14-56-2 狀
+sign \x72C1 2456-1246-6 狁
+sign \x72C2 1235-56-3 狂
+sign \x72C3 1345-16-1 狃
+sign \x72C4 2345-1235-3 狄
+sign \x72C5 245-16 狅
+sign \x72C9 12346-125 狉
+sign \x72CA 12345-1235 狊
+sign \x72CC 234-356 狌
+sign \x72CE 125-1234-3 狎
+sign \x72D0 136-3 狐
+sign \x72D1 123-356-3 狑
+sign \x72D2 124-35 狒
+sign \x72D6 245-16-2 狖
+sign \x72D7 13-16-1 狗
+sign \x72D8 12356-3 狘
+sign \x72D9 14-245 狙
+sign \x72E0 125-1246-1 狠
+sign \x72E1 13-34-1 狡
+sign \x72E2 13-34-1
+sign \x72E8 245-236-3 狨
+sign \x72E9 234-16-4 狩
+sign \x72EB 123-1236-6 狫
+sign \x72F3 1456-3 狳
+sign \x72F4 1234-146-2 狴
+sign \x72F7 13-23-4 狷
+sign \x72F8 123-125-3 狸
+sign \x72F9 125-1234-3 狹
+sign \x72FA 1245-1246-3 狺
+sign \x72FB 234-23 狻
+sign \x72FC 123-56-3 狼
+sign \x72FD 1234-1256-4 狽
+sign \x72FE 14-146-4 狾
+sign \x7301 123-125-2 猁
+sign \x7307 125-34 猇
+sign \x730A 1245-146-3 猊
+sign \x730B 1234-13456 猋
+sign \x7311 12456-1246 猑
+sign \x7312 235-4 猒
+sign \x7313 12345-135-1 猓
+sign \x7316 1346-25 猖
+sign \x7317 24-0 猗
+sign \x7318 14-146-4 猘
+sign \x7319 14-1245 猙
+sign \x731B 134-14-6 猛
+sign \x731C 1346-346 猜
+sign \x731D 1346-12356-5 猝
+sign \x731E 234-15-4 猞
+sign \x7322 136-3 猢
+sign \x7325 1256-0 猥
+sign \x7327 2456-135 猧
+sign \x7329 234-356 猩
+sign \x732A 14-1456
+sign \x7330 245-13-5 猰
+sign \x7331 1345-34-3 猱
+sign \x7332 125-23456-5 猲
+sign \x7334 125-16-3 猴
+sign \x7336 245-16-3 猶
+sign \x7337 245-16-3 猷
+sign \x733A 13456-3 猺
+sign \x733B 234-23 猻
+sign \x733E 2456-2345-3 猾
+sign \x733F 23-3 猿
+sign \x7341 134-12-6 獁
+sign \x7343 2345-346 獃
+sign \x7344 245-12345-3 獄
+sign \x7345 234-24 獅
+sign \x7349 14-234 獉
+sign \x734D 13-356-4 獍
+sign \x734E 14-25-1 獎
+sign \x7350 14-25 獐
+sign \x7351 1346-345-3 獑
+sign \x7352 1245-1236-3 獒
+sign \x7357 1235-12356-5 獗
+sign \x7358 1234-146-2 獘
+sign \x735D 123-1346-3 獝
+sign \x735E 23456-236-3 獞
+sign \x7360 123-13456-3 獠
+sign \x7362 125-13456 獢
+sign \x7367 13-23-4 獧
+sign \x7368 2345-12345-3 獨
+sign \x7369 2456-146-4 獩
+sign \x736A 1235-1256-1 獪
+sign \x736B 125-235-1 獫
+sign \x736C 125-346-6 獬
+sign \x736E 1345-125-3 獮
+sign \x736F 124-1246 獯
+sign \x7370 1345-356-3 獰
+sign \x7372 2456-12456-3 獲
+sign \x7375 123-12346-3 獵
+sign \x7377 1235-56-4 獷
+sign \x7378 234-16-4 獸
+sign \x737A 1346-2345-5 獺
+sign \x737B 125-256-4 獻
+sign \x737C 134-125-3 獼
+sign \x737E 124-2346 獾
+sign \x7380 123-135 玀
+sign \x7381 125-235-1 玁
+sign \x7383 124-12456-5 玃
+sign \x7384 23-3 玄
+sign \x7385 134-13456-2 玅
+sign \x7386 14-24 玆
+sign \x7387 123-1346-3 率
+sign \x7388 123-1236-3 玈
+sign \x7389 245-12345-3 玉
+sign \x738B 2456-56-3 王
+sign \x738E 2345-356 玎
+sign \x7393 2345-1235 玓
+sign \x7395 13-1345 玕
+sign \x7396 13-16-1 玖
+sign \x7397 1456-0 玗
+sign \x7398 125-125-1
+sign \x739E 124-136
+sign \x739F 134-1246-3 玟
+sign \x73A0 13-346-4 玠
+sign \x73A1 245-15-3 玡
+sign \x73A2 1234-356 玢
+sign \x73A5 12356-3 玥
+sign \x73A6 1235-12356-5 玦
+sign \x73A8 13-12456-5 玨
+sign \x73A9 2346-2 玩
+sign \x73AB 134-1256-3 玫
+sign \x73B2 123-356-3 玲
+sign \x73B3 2345-126-2 玳
+sign \x73B7 2345-235-4 玷
+sign \x73BB 1234-135 玻
+sign \x73BC 1346-24-1 玼
+sign \x73C0 12346-13-5 珀
+sign \x73C2 135-0 珂
+sign \x73C5 234-1246 珅
+sign \x73C8 13-12 珈
+sign \x73CA 234-45 珊
+sign \x73CB 123-16-6 珋
+sign \x73CC 1234-125-4 珌
+sign \x73CD 14-1246 珍
+sign \x73CE 14-1246
+sign \x73CF 13-12456-5
+sign \x73D0 124-2345-5
+sign \x73D3 13-34-4 珓
+sign \x73D9 13-236-1 珙
+sign \x73DE 123-12456-5 珞
+sign \x73E0 14-1456 珠
+sign \x73E1 14-1456
+sign \x73E3 234-234 珣
+sign \x73E4 234-234
+sign \x73E5 24-6 珥
+sign \x73E6 24-6
+sign \x73E7 13456-3 珧
+sign \x73E8 13456-3
+sign \x73E9 125-1245-3 珩
+sign \x73EA 12345-146 珪
+sign \x73ED 1234-45 班
+sign \x73EE 12346-1256-4 珮
+sign \x73F8 1245-3 珸
+sign \x73FA 12345-1246-2 珺
+sign \x73FD 23456-356-6 珽
+sign \x73FE 256-2 現
+sign \x7400 125-456-4 琀
+sign \x7403 1235-16-3 球
+sign \x7404 23-2 琄
+sign \x7405 123-56-3 琅
+sign \x7406 123-125-6 理
+sign \x7407 234-16-4 琇
+sign \x7408 124-16-3 琈
+sign \x7409 123-16-3 琉
+sign \x740A 245-15-3 琊
+sign \x740D 123-125-2
+sign \x7416 14-45-1 琖
+sign \x741A 13-245 琚
+sign \x741B 234-456 琛
+sign \x7421 14-12356-5 琡
+sign \x7422 2345-246-5 琢
+sign \x7424 14-14 琤
+sign \x7425 124-136-1 琥
+sign \x7426 1235-125-3 琦
+sign \x7428 12456-1246 琨
+sign \x742A 1235-125-3 琪
+sign \x742B 1234-1245-1 琫
+sign \x742C 23-1 琬
+sign \x742E 1346-236-3 琮
+sign \x742F 13-2346-1 琯
+sign \x7430 235-6 琰
+sign \x7431 2345-13456 琱
+sign \x7432 1234-125-4 琲
+sign \x7433 123-456-3 琳
+sign \x7434 1235-456-3 琴
+sign \x7435 12346-125-3 琵
+sign \x7436 12346-12-3 琶
+sign \x743A 124-2345-5 琺
+sign \x743C 1235-356-3 琼
+sign \x743F 2456-1246-3 琿
+sign \x7440 1456-6 瑀
+sign \x7441 134-1236-2 瑁
+sign \x7444 234-23 瑄
+sign \x744A 14-456 瑊
+sign \x744B 2456-146-6 瑋
+sign \x7451 234-23-2 瑑
+sign \x7452 245-25-3 瑒
+sign \x7455 125-12-3 瑕
+sign \x7457 23-2 瑗
+sign \x7459 1345-1236-6 瑙
+sign \x745A 136-3 瑚
+sign \x745B 245-356 瑛
+sign \x745C 1456-3 瑜
+sign \x745E 234-245-2 瑞
+sign \x745F 234-35 瑟
+sign \x7460 123-16-3
+sign \x7462 245-236-3 瑢
+sign \x7463 234-135-1 瑣
+sign \x7464 13456-3 瑤
+sign \x7469 245-356-3 瑩
+sign \x746A 134-12-6 瑪
+sign \x746C 123-16-3
+sign \x746D 23456-56-3 瑭
+sign \x746E 123-1346-3 瑮
+sign \x746F 123-56-3 瑯
+sign \x7470 12345-146-4 瑰
+sign \x7471 14-1246-4 瑱
+sign \x7472 1346-25 瑲
+sign \x7473 1346-135 瑳
+sign \x747D 1346-236 瑽
+sign \x747E 13-1246-1 瑾
+sign \x7480 1346-245 璀
+sign \x7481 1346-236 璁
+sign \x7483 123-125-3 璃
+sign \x7485 234-135-1 璅
+sign \x7486 1235-16-3 璆
+sign \x7487 234-23-3 璇
+sign \x7488 1245-1236-3 璈
+sign \x7489 123-256-6 璉
+sign \x748B 14-25 璋
+sign \x7490 14-1236-2 璐
+sign \x7498 123-234-3 璘
+sign \x749A 1235-356-3 璚
+sign \x749C 2456-56-3 璜
+sign \x749E 12346-12456-5
+sign \x749F 13-356-1 璟
+sign \x74A0 124-45-3 璠
+sign \x74A3 13-125 璣
+sign \x74A6 126-4 璦
+sign \x74A7 1234-1235 璧
+sign \x74A8 1346-45-4 璨
+sign \x74A9 1235-245-3 璩
+sign \x74AA 14-1236-1 璪
+sign \x74AB 2345-56 璫
+sign \x74B0 2456-45-3 環
+sign \x74B1 234-35 璱
+sign \x74B5 1456-3 璵
+sign \x74BA 134-1246-2 璺
+sign \x74BD 234-346-1 璽
+sign \x74BF 234-23-3 璿
+sign \x74C0 23-6 瓀
+sign \x74C5 123-1235 瓅
+sign \x74CA 1235-356-3 瓊
+sign \x74CF 123-236-3 瓏
+sign \x74D4 245-356 瓔
+sign \x74D6 12345-146 瓖
+sign \x74D8 13-2346-4 瓘
+sign \x74DA 14-45-4 瓚
+sign \x74DB 2346-3 瓛
+sign \x74DC 12345-12 瓜
+sign \x74DD 12346-34-3 瓝
+sign \x74DE 2345-23456-3 瓞
+sign \x74DF 12346-34-3 瓟
+sign \x74E0 136-2 瓠
+sign \x74E1 136-3
+sign \x74E2 12346-13456-3
+sign \x74E3 124-45-2 瓣
+sign \x74E4 1345-56-3 瓤
+sign \x74E5 1345-56-3
+sign \x74E6 1245-12-6 瓦
+sign \x74E7 1245-12-6
+sign \x74EE 236-4 瓮
+sign \x74F4 123-356-3 瓴
+sign \x74F6 12346-356-3 瓶
+sign \x74F7 1346-24-3 瓷
+sign \x74FB 1346-24 瓻
+sign \x74FD 2345-56-1 瓽
+sign \x74FF 12346-16-1 瓿
+sign \x7503 14-16-4 甃
+sign \x7504 245-1246 甄
+sign \x750C 16-0 甌
+sign \x750D 134-1245-3 甍
+sign \x750E 14-23
+sign \x750F 1234-56-4 甏
+sign \x7511 14-1245-2 甑
+sign \x7513 12346-1235 甓
+sign \x7515 1245-236-4 甕
+sign \x7516 14-0 甖
+sign \x7517 256-6 甗
+sign \x7518 13-456 甘
+sign \x751A 234-456-2 甚
+sign \x751C 23456-235-3 甜
+sign \x751F 234-1245 生
+sign \x7521 234-1246 甡
+sign \x7522 1346-45-1 產
+sign \x7525 234-1245 甥
+sign \x7526 234-1236 甦
+sign \x7528 245-236-2 用
+sign \x7529 123-35 甩
+sign \x752A 123-12345-3 甪
+sign \x752B 124-136-1 甫
+sign \x752C 245-236-1 甬
+sign \x752D 1234-1245-1 甭
+sign \x752E 124-236-2 甮
+sign \x752F 1345-356-3 甯
+sign \x7530 23456-256-3 田
+sign \x7531 245-16-3 由
+sign \x7532 13-1234-5 甲
+sign \x7533 234-1246 申
+sign \x7534 14-13-3 甴
+sign \x7537 1345-345-3 男
+sign \x7538 2345-256 甸
+sign \x7539 1234-356 甹
+sign \x753A 2345-356 町
+sign \x753D 14-1246-4 甽
+sign \x753E 14-126 甾
+sign \x753F 134-1246-3 甿
+sign \x7540 1234-125-1 畀
+sign \x7547 2456-1246-3 畇
+sign \x7548 124-45-4 畈
+sign \x754A 13-14
+sign \x754B 23456-256-3 畋
+sign \x754C 13-346-4 界
+sign \x754E 125-23-1 畎
+sign \x754F 2456-146-4 畏
+sign \x7554 1234-2346-2 畔
+sign \x7559 123-16-3 留
+sign \x755A 1234-2346-1 畚
+sign \x755B 1346-1246-1 畛
+sign \x755C 1346-12345 畜
+sign \x755D 134-16-6 畝
+sign \x755F 14-1235 畟
+sign \x7562 1234-35 畢
+sign \x7563 2345-1234-5 畣
+sign \x7564 14-24-2 畤
+sign \x7565 123-246-3 略
+sign \x7566 12456-146-3 畦
+sign \x756A 124-45 番
+sign \x756B 2456-12-2 畫
+sign \x756C 1456-3 畬
+sign \x756F 14-234-4 畯
+sign \x7570 24-2 異
+sign \x7576 2345-56 當
+sign \x7577 14-12356-5 畷
+sign \x7578 1235-125 畸
+sign \x7579 23-1 畹
+sign \x757D 123-234-1 畽
+sign \x757E 123-245-3 畾
+sign \x757F 13-125 畿
+sign \x7584 123-234-3 疄
+sign \x7586 13-25 疆
+sign \x7587 1346-16-3 疇
+sign \x758A 2345-12346-3 疊
+sign \x758B 12346-35 疋
+sign \x758C 14-23456-5 疌
+sign \x758F 234-135 疏
+sign \x7590 14-24-4 疐
+sign \x7591 24-3 疑
+sign \x7594 2345-356 疔
+sign \x7598 13-56 疘
+sign \x7599 1245-35-3 疙
+sign \x759A 13-16-4 疚
+sign \x759D 234-45-4 疝
+sign \x75A2 1346-1246-4 疢
+sign \x75A3 245-16-3 疣
+sign \x75A4 1234-12 疤
+sign \x75A5 13-346-4 疥
+sign \x75A7 14-24 疧
+sign \x75AB 245-1235-3 疫
+sign \x75B0 14-1456-4 疰
+sign \x75B1 12346-34 疱
+sign \x75B2 12346-125-3 疲
+sign \x75B3 13-456 疳
+sign \x75B5 1346-24 疵
+sign \x75B6 234-23456-5 疶
+sign \x75B8 23456-45-1 疸
+sign \x75B9 1346-1246-1 疹
+sign \x75BA 124-35-3 疺
+sign \x75BC 23456-1245-3 疼
+sign \x75BD 14-245 疽
+sign \x75BE 14-35-3 疾
+sign \x75BF 124-146-1 疿
+sign \x75C0 1235-245-3 痀
+sign \x75C1 2345-235-4 痁
+sign \x75C2 13-12 痂
+sign \x75C4 14-12-4 痄
+sign \x75C5 1234-2356-2 病
+sign \x75C7 14-356-4 症
+sign \x75CA 1346-23-3 痊
+sign \x75CC 23456-236 痌
+sign \x75CD 24-3 痍
+sign \x75CE 13-346 痎
+sign \x75CF 124-1256-1 痏
+sign \x75D0 1256-3 痐
+sign \x75D2 245-25-6 痒
+sign \x75D4 14-24-2 痔
+sign \x75D5 125-1246-3 痕
+sign \x75D7 134-1256-2 痗
+sign \x75D8 2345-16-2 痘
+sign \x75D9 13-356-2 痙
+sign \x75DA 125-34 痚
+sign \x75DB 23456-236-4 痛
+sign \x75DE 134-16 痞
+sign \x75E0 234-23 痠
+sign \x75E1 12346-1236 痡
+sign \x75E2 123-125-2 痢
+sign \x75E3 14-24-4 痣
+sign \x75E4 1346-135-3 痤
+sign \x75E5 1346-135-3
+sign \x75E6 1245-2 痦
+sign \x75E7 234-12 痧
+sign \x75E8 234-12
+sign \x75ED 1234-1245 痭
+sign \x75EF 13-2346-1 痯
+sign \x75F0 23456-345-3 痰
+sign \x75F1 124-146-1 痱
+sign \x75F2 134-12-3 痲
+sign \x75F3 123-456-3 痳
+sign \x75F4 1346-24 痴
+sign \x75F6 2345-256-1 痶
+sign \x75F9 1234-125-4 痹
+sign \x75FA 1234-125-4 痺
+sign \x75FB 134-1246-3 痻
+sign \x75FC 13-136-4 痼
+sign \x75FE 135-0 痾
+sign \x75FF 2456-146-1 痿
+sign \x7600 1456-1 瘀
+sign \x7601 234-245-2 瘁
+sign \x7603 14-12345-3 瘃
+sign \x7608 14-146-4 瘈
+sign \x7609 1456-2 瘉
+sign \x760A 125-16-3 瘊
+sign \x760B 124-236 瘋
+sign \x760C 123-2345-5 瘌
+sign \x760D 245-25-3 瘍
+sign \x760F 23456-1236-3 瘏
+sign \x7610 1456-6 瘐
+sign \x7613 2346-2 瘓
+sign \x7615 1245-12 瘕
+sign \x7616 245-456 瘖
+sign \x7619 234-135 瘙
+sign \x761A 1235-12356-5 瘚
+sign \x761B 14-146-4 瘛
+sign \x761E 24-4 瘞
+sign \x761F 2456-1246 瘟
+sign \x7620 14-2456-5 瘠
+sign \x7621 1346-56 瘡
+sign \x7622 1234-45 瘢
+sign \x7623 2456-346-2 瘣
+sign \x7624 123-16-3 瘤
+sign \x7625 1346-346-4 瘥
+sign \x7626 234-16-4 瘦
+sign \x7627 245-246-3 瘧
+sign \x7628 2345-256 瘨
+sign \x7629 2345-1234-5 瘩
+sign \x762D 1234-13456 瘭
+sign \x7630 123-135-1 瘰
+sign \x7631 24-4 瘱
+sign \x7633 1346-16 瘳
+sign \x7634 14-25-4 瘴
+sign \x7635 14-346-4 瘵
+sign \x7638 1235-15-3 瘸
+sign \x763A 123-16-2 瘺
+sign \x763C 134-12456-3 瘼
+sign \x763D 13-1246-1 瘽
+sign \x7642 123-13456-3 療
+sign \x7643 123-236-3 癃
+sign \x7646 123-1236-3 癆
+sign \x7647 13-45-1 癇
+sign \x7648 124-146-4 癈
+sign \x7649 2345-45 癉
+sign \x764C 1245-345-3 癌
+sign \x764E 13-45-1 癎
+sign \x7652 1456-2 癒
+sign \x7656 12346-1235 癖
+sign \x7657 123-245-6 癗
+sign \x7658 123-146-2 癘
+sign \x765C 2345-256-2 癜
+sign \x765F 1234-23456-3 癟
+sign \x7660 14-146-2 癠
+sign \x7661 1346-24 癡
+sign \x7662 245-25-6 癢
+sign \x7664 14-23456-5 癤
+sign \x7665 14-356 癥
+sign \x7666 134-46-3 癦
+sign \x7669 123-346-4 癩
+sign \x766C 234-256-1 癬
+sign \x766D 245-356-1 癭
+sign \x766E 245-1246-6 癮
+sign \x7670 245-236 癰
+sign \x7671 23456-45-1 癱
+sign \x7672 2345-256 癲
+sign \x7675 123-23 癵
+sign \x7678 12345-146-4 癸
+sign \x767B 2345-1245 登
+sign \x767C 124-2345-5 發
+sign \x767D 1234-13-3 白
+sign \x767E 1234-13-5 百
+sign \x767F 13-12 癿
+sign \x7681 14-1236-2 皁
+sign \x7682 14-1236-2 皂
+sign \x7684 2345-1235 的
+sign \x7686 13-346 皆
+sign \x7687 2456-56-3 皇
+sign \x7688 12345-146 皈
+sign \x768B 13-1236 皋
+sign \x768E 13-34-1 皎
+sign \x7693 125-1236-2 皓
+sign \x7695 1234-12345-3 皕
+sign \x7696 2346-6 皖
+sign \x7699 234-1235 皙
+sign \x769A 1245-126-1 皚
+sign \x769C 125-1236-2 皜
+sign \x76A4 12346-135-3 皤
+sign \x76A6 13-34-1 皦
+sign \x76AA 123-1235 皪
+sign \x76AB 12346-13456-4
+sign \x76AD 14-13456-4 皭
+sign \x76AE 12346-125-3 皮
+sign \x76B0 12346-1256-4 皰
+sign \x76B4 234-234 皴
+sign \x76B5 14-246-5 皵
+sign \x76B8 1245-1246 皸
+sign \x76BA 14-16-4 皺
+sign \x76BB 14-12 皻
+sign \x76BD 14-256-1 皽
+sign \x76BE 2345-12345-3 皾
+sign \x76BF 134-356-6 皿
+sign \x76C2 1456-3 盂
+sign \x76C3 1234-1256 盃
+sign \x76C5 14-236 盅
+sign \x76C6 12346-2346-3 盆
+sign \x76C8 245-356-3 盈
+sign \x76C9 2456-135-3 盉
+sign \x76CA 245-1235 益
+sign \x76CD 125-1234-3 盍
+sign \x76CE 56-4 盎
+sign \x76D2 125-26-3 盒
+sign \x76D4 12456-146 盔
+sign \x76DB 234-356-2 盛
+sign \x76DC 2345-1236-2 盜
+sign \x76DD 123-12345-3 盝
+sign \x76DE 14-45-1 盞
+sign \x76DF 134-1245-3 盟
+sign \x76E0 12346-2346-3
+sign \x76E1 14-234-2 盡
+sign \x76E2 14-234-2
+sign \x76E3 13-345 監
+sign \x76E4 12346-2346-3 盤
+sign \x76E5 13-2346-4 盥
+sign \x76E6 456-0 盦
+sign \x76E7 123-1236-3 盧
+sign \x76E8 123-1236-3
+sign \x76E9 14-16-1 盩
+sign \x76EA 2345-56-2 盪
+sign \x76EC 13-136-1 盬
+sign \x76ED 123-245-2 盭
+sign \x76EE 134-12345-3 目
+sign \x76EF 2345-356 盯
+sign \x76F1 125-245 盱
+sign \x76F2 134-14-3 盲
+sign \x76F4 14-1235-3 直
+sign \x76F5 123-125-3 盵
+sign \x76F8 234-25 相
+sign \x76F9 2345-234-2 盹
+sign \x76FB 125-146-2 盻
+sign \x76FC 12346-45-4 盼
+sign \x76FE 23456-234-6 盾
+sign \x7701 234-14-1 省
+sign \x7704 134-256-6 眄
+sign \x7705 12346-45 眅
+sign \x7707 134-13456-6 眇
+sign \x7708 2345-345 眈
+sign \x7709 134-125-3 眉
+sign \x770A 134-1236-2 眊
+sign \x770B 125-1345-4 看
+sign \x770C 23-2
+sign \x7711 13456-1 眑
+sign \x7715 1346-1246-1 眕
+sign \x7719 24-3 眙
+sign \x771A 234-14-1 眚
+sign \x771B 134-1256-2 眛
+sign \x771F 14-1246 真
+sign \x7720 134-256-3 眠
+sign \x7722 23-0 眢
+sign \x7723 2345-23456-3 眣
+sign \x7725 14-346-2 眥
+sign \x7728 14-345-1 眨
+sign \x7729 23-3 眩
+sign \x772D 12456-146-3 眭
+sign \x772F 134-146 眯
+sign \x7731 24-3 眱
+sign \x7734 23-2 眴
+sign \x7735 1346-24 眵
+sign \x7736 125-56 眶
+sign \x7737 13-23-4 眷
+sign \x7738 134-16-3 眸
+sign \x773A 23456-13456-4
+sign \x773C 1245-45-6 眼
+sign \x773D 134-13-3 眽
+sign \x773E 14-236-4 眾
+sign \x7740 14-246-3 着
+sign \x7745 125-1345-6 睅
+sign \x7746 2346-6 睆
+sign \x7747 23456-146-1 睇
+sign \x774A 13-23-4 睊
+sign \x774D 256-6 睍
+sign \x774E 125-125 睎
+sign \x774F 12456-1246-4 睏
+sign \x7752 234-235-1 睒
+sign \x7756 123-356-2 睖
+sign \x775A 1245-346-3 睚
+sign \x775B 14-356 睛
+sign \x775C 14-1245 睜
+sign \x775E 123-126-3 睞
+sign \x775F 234-245-2 睟
+sign \x7760 13-23-4 睠
+sign \x7761 234-245-2 睡
+sign \x7762 14-245 睢
+sign \x7763 2345-12345 督
+sign \x7765 12346-125-6 睥
+sign \x7766 134-12345-3 睦
+sign \x7767 124-1246 睧
+sign \x7768 1245-146-2 睨
+sign \x7769 123-12345-3 睩
+sign \x776A 13-1236 睪
+sign \x776B 14-23456-5 睫
+sign \x776C 1346-126-1 睬
+sign \x7779 2345-1236-1 睹
+sign \x777C 2345-146-2 睼
+sign \x777D 12456-146-3 睽
+sign \x777E 13-1236 睾
+sign \x777F 245-245-2 睿
+sign \x7780 134-16-2 瞀
+sign \x7784 134-13456-3 瞄
+sign \x7785 1346-16-1 瞅
+sign \x7787 134-125 瞇
+sign \x778B 1346-1246 瞋
+sign \x778C 125-26-3 瞌
+sign \x778D 234-16-1 瞍
+sign \x778E 125-35-3 瞎
+sign \x7791 134-356-3 瞑
+sign \x7793 124-1246-4 瞓
+sign \x779C 123-16 瞜
+sign \x779E 134-2346-3 瞞
+sign \x779F 12346-13456-6
+sign \x77A0 1346-14 瞠
+sign \x77A2 134-236-1 瞢
+sign \x77A5 12346-23456-5
+sign \x77A7 1346-13456-3 瞧
+sign \x77AA 2345-1245 瞪
+sign \x77AB 234-456-1 瞫
+sign \x77AC 234-234-4 瞬
+sign \x77AD 123-13456-6 瞭
+sign \x77B0 125-456-4 瞰
+sign \x77B2 12356-3 瞲
+sign \x77B3 23456-236-3 瞳
+sign \x77B5 123-234-3 瞵
+sign \x77B6 1235-1256-1 瞶
+sign \x77B7 13-45-4 瞷
+sign \x77BB 14-235 瞻
+sign \x77BC 13-235-1 瞼
+sign \x77BD 13-136-1 瞽
+sign \x77BF 13-245-4 瞿
+sign \x77C7 134-236-3 矇
+sign \x77C9 12346-1246-3 矉
+sign \x77CB 123-146-2 矋
+sign \x77CD 124-12456-5 矍
+sign \x77CE 125-356-4 矎
+sign \x77D0 124-12456-5 矐
+sign \x77D3 123-236-3 矓
+sign \x77D4 13-2346-4 矔
+sign \x77D7 1346-12345 矗
+sign \x77DA 14-12345 矚
+sign \x77DB 134-34-3 矛
+sign \x77DC 13-356 矜
+sign \x77DE 123-1346-3 矞
+sign \x77E1 13-245-1
+sign \x77E2 1346-24-1 矢
+sign \x77E3 24-6 矣
+sign \x77E4 24-6
+sign \x77E5 14-24 知
+sign \x77E6 14-24
+sign \x77E7 1346-1246-1 矧
+sign \x77E8 1346-1246-1
+sign \x77E9 13-245-1 矩
+sign \x77EC 1346-135-3 矬
+sign \x77ED 2345-23-1 短
+sign \x77EE 146-1 矮
+sign \x77EF 13-13456-1 矯
+sign \x77F0 14-1245 矰
+sign \x77F1 2456-12456-5 矱
+sign \x77F3 234-2456-3 石
+sign \x77F8 13-125 矸
+sign \x77F9 13-2345 矹
+sign \x77FB 1245-35-3 矻
+sign \x77FC 13-56 矼
+sign \x77FD 14-1235-3 矽
+sign \x7802 234-12 砂
+sign \x7806 124-136 砆
+sign \x7809 125-245 砉
+sign \x780C 1346-146-4 砌
+sign \x780D 125-456-1 砍
+sign \x780F 12346-45 砏
+sign \x7811 1245-12-2 砑
+sign \x7812 12346-125 砒
+sign \x7814 256-3 研
+sign \x781D 124-2345-5 砝
+sign \x781F 14-12-4 砟
+sign \x7820 14-245 砠
+sign \x7822 123-135-1 砢
+sign \x7823 23456-135-3 砣
+sign \x7825 2345-146-1 砥
+sign \x7826 14-346-2 砦
+sign \x7827 14-456 砧
+sign \x782B 14-1456-1 砫
+sign \x782C 123-12 砬
+sign \x782D 1234-256 砭
+sign \x782E 1345-1236-6 砮
+sign \x7830 12346-356 砰
+sign \x7832 12346-34-4 砲
+sign \x7834 12346-135-4 破
+sign \x7835 1234-1356-5 砵
+sign \x7837 234-1246 砷
+sign \x7838 14-1234-5 砸
+sign \x7843 14-1456 硃
+sign \x7845 12345-146 硅
+sign \x7849 123-1236-2 硉
+sign \x784C 13-12456-5 硌
+sign \x784E 245-356-3 硎
+sign \x7850 2345-236-2 硐
+sign \x7852 234-146 硒
+sign \x785C 125-1245 硜
+sign \x785D 234-13456 硝
+sign \x7860 123-56-3 硠
+sign \x7864 125-1234-3 硤
+sign \x7868 1346-15 硨
+sign \x786A 1245-135-3 硪
+sign \x786B 123-16-3 硫
+sign \x786C 1245-14-2 硬
+sign \x786D 134-56-3 硭
+sign \x786E 1235-12456-5 确
+sign \x786F 256-2 硯
+sign \x787C 12346-14-3 硼
+sign \x787E 14-245-2 硾
+sign \x787F 125-236
+sign \x7881 13-125
+sign \x7887 2345-2356-2 碇
+sign \x7889 2345-13456 碉
+sign \x788C 123-12345 碌
+sign \x788E 234-245-4 碎
+sign \x788F 14-246-5 碏
+sign \x7891 1234-125 碑
+sign \x7893 2345-245-4 碓
+sign \x7895 1235-125-3 碕
+sign \x7897 2346-1 碗
+sign \x7898 2345-256-1 碘
+sign \x789A 1234-1256-2 碚
+sign \x789E 1245-345-3 碞
+sign \x789F 2345-12346-3 碟
+sign \x78A1 2345-12345-3 碡
+sign \x78A3 1235-23456-5 碣
+sign \x78A5 1234-256-1 碥
+sign \x78A7 1234-1235 碧
+sign \x78A8 2456-146-4 碨
+sign \x78A9 234-2456-3 碩
+sign \x78AA 14-456 碪
+sign \x78AB 2345-23-4 碫
+sign \x78AD 2345-56-2 碭
+sign \x78B0 12346-236-4 碰
+sign \x78B2 2345-146-4 碲
+sign \x78B3 23456-45-4 碳
+sign \x78B4 14-12 碴
+sign \x78BA 1235-12456-5 確
+sign \x78BB 1235-12456-5 碻
+sign \x78BC 134-12-6 碼
+sign \x78BE 14-256-1 碾
+sign \x78C1 1346-24-3 磁
+sign \x78C5 1234-56-2 磅
+sign \x78C9 234-56-1 磉
+sign \x78CA 123-245-6 磊
+sign \x78CB 1346-135 磋
+sign \x78CC 23456-256-3 磌
+sign \x78D0 12346-2346-3 磐
+sign \x78D1 2456-146-4 磑
+sign \x78D4 14-13-3 磔
+sign \x78D5 125-26-3 磕
+sign \x78DA 14-23 磚
+sign \x78DE 12346-14 磞
+sign \x78DF 123-12345 磟
+sign \x78E0 123-1236-6 磠
+sign \x78E1 125-456-4 磡
+sign \x78E2 125-456-4
+sign \x78E3 1346-456-1 磣
+sign \x78E4 1346-456-1
+sign \x78E5 123-245-6 磥
+sign \x78E6 123-245-6
+sign \x78E7 14-1235 磧
+sign \x78E8 134-135-3 磨
+sign \x78E9 134-135-3
+sign \x78EA 1346-245 磪
+sign \x78EC 125-356-4 磬
+sign \x78EF 13-125 磯
+sign \x78F2 1235-245-3 磲
+sign \x78F4 2345-1245-4 磴
+sign \x78F7 123-234-3 磷
+sign \x78F9 2345-235-4 磹
+sign \x78FA 2456-56-3 磺
+sign \x78FB 12346-2346-3 磻
+sign \x78FD 125-34 磽
+sign \x78FE 2345-146 磾
+sign \x78FF 123-1235-3 磿
+sign \x7901 14-13456 礁
+sign \x7904 1235-13456-3 礄
+sign \x7905 2345-234 礅
+sign \x7909 125-34 礉
+sign \x790C 123-245-2 礌
+sign \x790E 1346-135-1 礎
+sign \x7910 1235-12456-5 礐
+sign \x7912 24-6
+sign \x7913 13-25 礓
+sign \x7919 1245-126-2 礙
+sign \x791E 134-236-3 礞
+sign \x7921 1234-12456-3 礡
+sign \x7924 1346-2345-5 礤
+sign \x7926 1235-56-4 礦
+sign \x7927 123-245-2 礧
+sign \x7929 14-35 礩
+sign \x792A 123-146-2 礪
+sign \x792B 123-1235 礫
+sign \x792C 124-45-3 礬
+sign \x7931 123-236-3 礱
+sign \x793A 234-24-2 示
+sign \x793D 245-356-3 礽
+sign \x793E 234-15-6 社
+sign \x793F 245-246-3 礿
+sign \x7940 14-24-2 祀
+sign \x7941 1235-125-3 祁
+sign \x7942 23456-12 祂
+sign \x7945 125-256 祅
+sign \x7946 13456-1 祆
+sign \x7947 14-24-1 祇
+sign \x7948 1235-125-3 祈
+sign \x7949 14-24-1 祉
+sign \x794A 1234-1245 祊
+sign \x794F 234-2456-3 祏
+sign \x7950 245-16-2 祐
+sign \x7953 124-35 祓
+sign \x7954 124-136-2 祔
+sign \x7955 1234-125-4 祕
+sign \x7956 14-1236-1 祖
+sign \x7957 14-24 祗
+sign \x795A 14-1236-2 祚
+sign \x795B 1235-245 祛
+sign \x795C 136-1 祜
+sign \x795D 14-12345 祝
+sign \x795E 234-1246-3 神
+sign \x795F 234-245-2 祟
+sign \x7960 1346-24-3 祠
+sign \x7965 1346-25-3 祥
+sign \x7967 23456-13456 祧
+sign \x7968 12346-13456-4
+sign \x796B 125-1234-3 祫
+sign \x796D 14-146-4 祭
+sign \x7972 14-456 祲
+sign \x797A 1235-125-3 祺
+sign \x797C 13-2346-4 祼
+sign \x797F 123-12345-3 祿
+sign \x7981 13-456-4 禁
+sign \x798A 125-146-2 禊
+sign \x798B 245-1246 禋
+sign \x798D 2456-135-2 禍
+sign \x798E 14-356 禎
+sign \x798F 124-12345 福
+sign \x7993 245-25-3 禓
+sign \x7994 23456-146-3 禔
+sign \x7995 24-0 禕
+sign \x7996 134-1256-3 禖
+sign \x7998 2345-146-4 禘
+sign \x799A 14-246-5 禚
+sign \x799B 14-1246 禛
+sign \x79A1 1245-12-3 禡
+sign \x79A4 125-23 禤
+sign \x79A6 1456-2 禦
+sign \x79A7 125-125 禧
+sign \x79A8 13-125 禨
+sign \x79AA 234-235-3 禪
+sign \x79AB 23456-345-6 禫
+sign \x79AD 234-245-2 禭
+sign \x79AE 123-146-6 禮
+sign \x79B0 1345-125-3 禰
+sign \x79B1 23456-1236-1 禱
+sign \x79B3 245-25-3 禳
+sign \x79B4 245-246-3 禴
+sign \x79B9 1456-6 禹
+sign \x79BA 1456-3 禺
+sign \x79BB 123-125-3 离
+sign \x79BD 1235-456-3 禽
+sign \x79BE 2456-135-3 禾
+sign \x79BF 23456-12345 禿
+sign \x79C0 234-16-4 秀
+sign \x79C1 234-24 私
+sign \x79C5 1346-12-3 秅
+sign \x79C8 234-256 秈
+sign \x79C9 1234-356-1 秉
+sign \x79CB 1346-16 秋
+sign \x79CD 14-236-4 种
+sign \x79CF 125-1236-4 秏
+sign \x79D1 124-135 科
+sign \x79D2 134-13456-6 秒
+sign \x79D5 1234-125-1 秕
+sign \x79D6 14-24-1 秖
+sign \x79D8 1234-125-4 秘
+sign \x79DF 14-1236 租
+sign \x79E0 12346-125 秠
+sign \x79E1 12346-125
+sign \x79E3 134-1356-5 秣
+sign \x79E4 1346-356-4 秤
+sign \x79E5 12346-356-3
+sign \x79E6 1346-234-3 秦
+sign \x79E7 245-25 秧
+sign \x79E8 245-25
+sign \x79E9 2345-23456-3 秩
+sign \x79EB 234-1346-3 秫
+sign \x79EC 13-245-2 秬
+sign \x79ED 14-24-1 秭
+sign \x79F7 14-35-3 秷
+sign \x79F8 13-346 秸
+sign \x79FA 2345-1236-4 秺
+sign \x79FB 24-3 移
+sign \x7A00 125-125 稀
+sign \x7A02 123-56-3 稂
+sign \x7A03 124-136 稃
+sign \x7A05 234-245-4 稅
+sign \x7A08 13-1345-1 稈
+sign \x7A0A 23456-146-3 稊
+sign \x7A0B 1346-356-3 程
+sign \x7A0C 23456-1236-3 稌
+sign \x7A0D 234-34-1 稍
+sign \x7A11 123-12345-3 稑
+sign \x7A14 1345-456-6 稔
+sign \x7A17 1234-146-2 稗
+sign \x7A18 13-125 稘
+sign \x7A19 14-1235-3 稙
+sign \x7A1A 14-24-2 稚
+sign \x7A1B 12456-1246-1 稛
+sign \x7A1C 123-356-3 稜
+sign \x7A1E 124-135 稞
+sign \x7A1F 1234-1246-1 稟
+sign \x7A20 1346-16-3 稠
+sign \x7A28 1234-256-1 稨
+sign \x7A2D 13-346
+sign \x7A2E 14-236-1 種
+sign \x7A30 234-245 稰
+sign \x7A31 1346-356 稱
+sign \x7A37 14-1235 稷
+sign \x7A39 14-1246-1 稹
+sign \x7A3B 2345-1236-2 稻
+sign \x7A3C 13-12-4 稼
+sign \x7A3D 1235-146 稽
+sign \x7A3F 13-1236-1 稿
+sign \x7A40 13-12345 穀
+sign \x7A44 14-146-4 穄
+sign \x7A46 134-12345-3 穆
+sign \x7A47 234-345 穇
+sign \x7A48 134-2346-3 穈
+sign \x7A49 14-24-2
+sign \x7A4A 1235-125-4 穊
+sign \x7A4B 123-12345-3 穋
+sign \x7A4C 234-1236 穌
+sign \x7A4D 14-1235 積
+sign \x7A4E 2456-356-2 穎
+sign \x7A57 234-245-2 穗
+sign \x7A5B 1346-246-5 穛
+sign \x7A5F 234-245-2 穟
+sign \x7A60 1345-236-3 穠
+sign \x7A61 234-1235 穡
+sign \x7A62 2456-146-4 穢
+sign \x7A67 14-146-2 穧
+sign \x7A68 23456-245-3 穨
+sign \x7A69 2456-1246-1 穩
+sign \x7A6B 2456-12456-3 穫
+sign \x7A6D 123-245-6 穭
+sign \x7A6E 1234-13456 穮
+sign \x7A70 245-25-3 穰
+sign \x7A74 12356-3 穴
+sign \x7A75 2456-2345-5 穵
+sign \x7A76 13-16-4 究
+sign \x7A78 14-1235-3 穸
+sign \x7A79 1235-236-3 穹
+sign \x7A7A 125-236 空
+sign \x7A7E 1245-34-6 穾
+sign \x7A7F 1346-23 穿
+sign \x7A80 14-234 窀
+sign \x7A81 2345-35-3 突
+sign \x7A84 14-13-5 窄
+sign \x7A85 13456-1 窅
+sign \x7A86 1234-256-1 窆
+sign \x7A88 134-13456-3 窈
+sign \x7A8A 2456-12 窊
+sign \x7A8B 12345-35-3 窋
+sign \x7A8C 13-34-4 窌
+sign \x7A92 14-35-3 窒
+sign \x7A94 1245-34-6 窔
+sign \x7A95 23456-13456-6
+sign \x7A96 13-34-4 窖
+sign \x7A97 1346-25 窗
+sign \x7A98 12456-1246-4 窘
+sign \x7A9E 23456-456-6 窞
+sign \x7A9F 124-35 窟
+sign \x7AA0 2456-135 窠
+sign \x7AA3 234-1346 窣
+sign \x7AA8 245-456-4 窨
+sign \x7AA9 2456-135 窩
+sign \x7AAA 2456-12 窪
+sign \x7AAB 14-2345-5 窫
+sign \x7AAC 1456-3 窬
+sign \x7AAE 1235-236-3 窮
+sign \x7AAF 13456-3 窯
+sign \x7AB0 13456-3 窰
+sign \x7AB1 23456-13456-6
+sign \x7AB5 2345-13456-4 窵
+sign \x7AB6 13-245-2 窶
+sign \x7AB8 234-1235 窸
+sign \x7ABA 12456-146 窺
+sign \x7ABE 124-2346-1 窾
+sign \x7ABF 123-236 窿
+sign \x7AC3 14-1236-4
+sign \x7AC4 1346-23-1 竄
+sign \x7AC5 125-13456-4 竅
+sign \x7AC7 2345-16-2 竇
+sign \x7ACA 234-23456-5 竊
+sign \x7ACB 123-26-3 立
+sign \x7AD1 2456-1245-3 竑
+sign \x7AD9 14-345-2 站
+sign \x7ADF 13-356-1 竟
+sign \x7AE0 14-25 章
+sign \x7AE3 14-234-4 竣
+sign \x7AE5 23456-236-3 童
+sign \x7AE6 234-236-1 竦
+sign \x7AEB 14-356-2 竫
+sign \x7AED 1235-23456-5 竭
+sign \x7AEF 2345-23 端
+sign \x7AF6 13-356-4 競
+sign \x7AF9 14-12345 竹
+sign \x7AFA 14-12345 竺
+sign \x7AFB 123-46-3 竻
+sign \x7AFD 1456-3 竽
+sign \x7AFF 13-1345 竿
+sign \x7B04 13-146 笄
+sign \x7B06 1234-12 笆
+sign \x7B08 1235-26 笈
+sign \x7B0A 14-34-4 笊
+sign \x7B0F 124-35 笏
+sign \x7B11 234-13456-4 笑
+sign \x7B13 12346-125-3 笓
+sign \x7B18 234-235-4 笘
+sign \x7B19 234-1245 笙
+sign \x7B1B 2345-2456-3 笛
+sign \x7B1E 1346-24 笞
+sign \x7B20 123-26 笠
+sign \x7B22 134-1246-6 笢
+sign \x7B24 23456-13456-3
+sign \x7B25 14-24-2 笥
+sign \x7B26 124-136-3 符
+sign \x7B28 1234-1246-2 笨
+sign \x7B2A 2345-2345-5 笪
+sign \x7B2C 2345-146-2 第
+sign \x7B2D 123-356-3 笭
+sign \x7B2E 14-12456-5 笮
+sign \x7B2F 1345-1236-3 笯
+sign \x7B30 124-35 笰
+sign \x7B31 13-16-1 笱
+sign \x7B32 1234-256-2 笲
+sign \x7B33 13-12 笳
+sign \x7B35 124-45-2 笵
+sign \x7B38 12346-135-1 笸
+sign \x7B3B 1235-236-3 笻
+sign \x7B45 234-256-1 筅
+sign \x7B46 1234-35 筆
+sign \x7B47 1235-236-3 筇
+sign \x7B48 1235-1356-5 筈
+sign \x7B49 2345-1245-1 等
+sign \x7B4A 13-34-1 筊
+sign \x7B4B 13-1246 筋
+sign \x7B4C 1346-23-3 筌
+sign \x7B4D 234-234-1 筍
+sign \x7B4F 124-35-3 筏
+sign \x7B50 125-56 筐
+sign \x7B51 14-12345 筑
+sign \x7B52 23456-236-3 筒
+sign \x7B54 2345-1234-5 答
+sign \x7B56 1346-13-5 策
+sign \x7B58 1235-16-4 筘
+sign \x7B60 12345-1246 筠
+sign \x7B63 123-125-3 筣
+sign \x7B64 123-56-3 筤
+sign \x7B65 13-245-1 筥
+sign \x7B66 13-2346-1 筦
+sign \x7B67 13-45-1 筧
+sign \x7B69 23456-236-3 筩
+sign \x7B6D 234-23-4 筭
+sign \x7B6E 234-146-2 筮
+sign \x7B70 14-12456-3 筰
+sign \x7B71 234-13456-1 筱
+sign \x7B72 234-34 筲
+sign \x7B73 23456-356-3 筳
+sign \x7B74 1346-13-5 筴
+sign \x7B75 256-3 筵
+sign \x7B77 124-346-4 筷
+sign \x7B78 13-1345-1 筸
+sign \x7B84 1234-125 箄
+sign \x7B85 1234-125-4 箅
+sign \x7B87 13-135-4 箇
+sign \x7B8B 14-256 箋
+sign \x7B8C 2345-1236-1
+sign \x7B8D 1235-136 箍
+sign \x7B8E 1346-24-3 箎
+sign \x7B8F 14-1245 箏
+sign \x7B90 14-356 箐
+sign \x7B91 234-1234-5 箑
+sign \x7B92 14-16-1
+sign \x7B94 1234-12456-3 箔
+sign \x7B95 13-125 箕
+sign \x7B97 234-23-4 算
+sign \x7B98 12345-1246-1 箘
+sign \x7B9B 1235-136 箛
+sign \x7B9C 125-236 箜
+sign \x7B9D 1235-235-3 箝
+sign \x7BA0 234-245-3 箠
+sign \x7BA1 13-2346-1 管
+sign \x7BAC 245-246-3 箬
+sign \x7BAD 14-256-4 箭
+sign \x7BB1 234-25 箱
+sign \x7BB4 14-456 箴
+sign \x7BB7 24-3 箷
+sign \x7BB8 14-1456-2 箸
+sign \x7BC0 14-23456-5 節
+sign \x7BC1 2456-56-3 篁
+sign \x7BC4 124-45-2 範
+sign \x7BC6 234-23-2 篆
+sign \x7BC7 12346-256 篇
+sign \x7BC9 14-12345 築
+sign \x7BCB 125-1234-3 篋
+sign \x7BCC 125-16-3 篌
+sign \x7BD4 2456-1246-3 篔
+sign \x7BD8 1346-16 篘
+sign \x7BD9 13-1236 篙
+sign \x7BDA 124-125-1 篚
+sign \x7BDB 245-246-3 篛
+sign \x7BDD 13-16 篝
+sign \x7BE0 234-13456-1 篠
+sign \x7BE1 234-45-4 篡
+sign \x7BE4 2345-12345 篤
+sign \x7BE5 123-1346-3 篥
+sign \x7BE6 1234-125-2 篦
+sign \x7BE8 1346-245-3 篨
+sign \x7BE9 234-146 篩
+sign \x7BEA 1346-24-3 篪
+sign \x7BF1 123-125-3 篱
+sign \x7BF2 2456-146-2 篲
+sign \x7BF3 1234-35 篳
+sign \x7BF4 2345-2456-3 篴
+sign \x7BF7 12346-236-3 篷
+sign \x7BF8 1346-345-1 篸
+sign \x7BF9 14-23-1 篹
+sign \x7BFE 134-23456-3 篾
+sign \x7C00 14-13-5 簀
+sign \x7C03 24-3 簃
+sign \x7C07 1346-12345 簇
+sign \x7C09 14-1236-2 簉
+sign \x7C0B 12345-146-1 簋
+sign \x7C0C 1346-12345 簌
+sign \x7C0D 123-16-6 簍
+sign \x7C0F 123-12345 簏
+sign \x7C11 234-135 簑
+sign \x7C15 123-46-3
+sign \x7C1D 123-13456-3 簝
+sign \x7C1E 2345-45 簞
+sign \x7C1F 23456-235-6 簟
+sign \x7C20 124-136-1 簠
+sign \x7C21 13-45-1 簡
+sign \x7C23 12345-146-2 簣
+sign \x7C26 2345-1245 簦
+sign \x7C27 2456-56-3 簧
+sign \x7C28 234-234-1 簨
+sign \x7C2A 14-345 簪
+sign \x7C2B 234-13456 簫
+sign \x7C2D 234-146-2 簭
+sign \x7C30 12346-346-3 簰
+sign \x7C33 13-1345-1 簳
+sign \x7C37 234-235-3 簷
+sign \x7C38 1234-135-4 簸
+sign \x7C39 2345-56 簹
+sign \x7C3B 12345-135 簻
+sign \x7C3D 1346-235 簽
+sign \x7C3E 123-235-3 簾
+sign \x7C3F 1234-1236-2 簿
+sign \x7C40 14-16-2 籀
+sign \x7C43 123-345-3 籃
+sign \x7C4A 23456-1235 籊
+sign \x7C4C 1346-16-3 籌
+sign \x7C4D 14-1235-3 籍
+sign \x7C50 23456-1245-3 籐
+sign \x7C53 124-45 籓
+sign \x7C54 234-16-1 籔
+sign \x7C5B 14-256
+sign \x7C5C 23456-12456-5
+sign \x7C5D 256-356-3
+sign \x7C5F 123-346-2 籟
+sign \x7C60 123-236-3 籠
+sign \x7C63 13-45-1 籣
+sign \x7C64 1346-235 籤
+sign \x7C65 245-246-3 籥
+sign \x7C67 1235-245-3 籧
+sign \x7C69 1234-256 籩
+sign \x7C6A 2345-23-2 籪
+sign \x7C6C 123-125-3 籬
+sign \x7C6E 123-135-3 籮
+sign \x7C6F 245-356-3 籯
+sign \x7C72 1456-2 籲
+sign \x7C73 134-146-6 米
+sign \x7C75 2345-135 籵
+sign \x7C78 234-456-4 籸
+sign \x7C79 1345-245-6 籹
+sign \x7C7A 125-35-3 籺
+sign \x7C7D 14-24-1 籽
+sign \x7C89 124-1246-1 粉
+sign \x7C91 1234-12 粑
+sign \x7C92 1345-26 粒
+sign \x7C94 13-245-4 粔
+sign \x7C95 12346-13-5
+sign \x7C97 1346-1236 粗
+sign \x7C98 1345-235 粘
+sign \x7C9E 234-146 粞
+sign \x7C9F 234-12345 粟
+sign \x7CA2 14-24 粢
+sign \x7CA5 14-12345 粥
+sign \x7CA7 14-56
+sign \x7CAE 123-25-3
+sign \x7CB1 123-25-3 粱
+sign \x7CB2 1346-45-4 粲
+sign \x7CB3 13-1245 粳
+sign \x7CB5 12356-3 粵
+sign \x7CB9 234-245-2 粹
+sign \x7CBA 1234-146-2 粺
+sign \x7CBB 14-25 粻
+sign \x7CBC 123-234-3 粼
+sign \x7CBD 14-236-1 粽
+sign \x7CBE 14-356 精
+sign \x7CBF 12345-135-1 粿
+sign \x7CC5 1345-16-1 糅
+sign \x7CC8 234-245-1 糈
+sign \x7CC9 14-236-4
+sign \x7CCA 136-3 糊
+sign \x7CCC 14-345 糌
+sign \x7CCD 1346-24-3 糍
+sign \x7CCE 56-123-125-3-134-146-6
+sign \x7CD2 1234-125-2 糒
+sign \x7CD5 13-1236 糕
+sign \x7CD6 23456-56-3 糖
+sign \x7CD7 1346-16-4 糗
+sign \x7CD9 1346-1236-4 糙
+sign \x7CDC 134-125-3 糜
+sign \x7CDD 234-345-1 糝
+sign \x7CDE 124-1246-4 糞
+sign \x7CDF 14-1236 糟
+sign \x7CE0 125-56 糠
+sign \x7CE2 134-1236-3 糢
+sign \x7CE7 123-25-3 糧
+sign \x7CE8 13-25-2 糨
+sign \x7CEA 1234-12456 糪
+sign \x7CEF 1345-135-2 糯
+sign \x7CF0 23456-23-3 糰
+sign \x7CF1 23456-3 糱
+sign \x7CF2 123-146-2 糲
+sign \x7CF4 2345-2456-3 糴
+sign \x7CF6 23456-13456-4
+sign \x7CF7 123-45-2 糷
+sign \x7CF8 134-1235-3 糸
+sign \x7CFB 125-146-2 系
+sign \x7CFE 13-16-1 糾
+sign \x7D00 13-125-1 紀
+sign \x7D02 14-16-2 紂
+sign \x7D03 1346-234-3 紃
+sign \x7D04 245-246-5 約
+sign \x7D05 125-236-3 紅
+sign \x7D06 1456-0 紆
+sign \x7D07 125-35-3 紇
+sign \x7D08 23-3 紈
+sign \x7D09 245-1246-2 紉
+sign \x7D0A 134-1246-2 紊
+sign \x7D0B 134-1246-3 紋
+sign \x7D0D 1345-1234-3 納
+sign \x7D10 1345-16-1 紐
+sign \x7D11 124-16-1 紑
+sign \x7D13 234-1456 紓
+sign \x7D14 234-234-3 純
+sign \x7D15 12346-125 紕
+sign \x7D16 14-1246-4 紖
+sign \x7D17 234-12 紗
+sign \x7D18 2456-1245-3 紘
+sign \x7D19 14-24-1 紙
+sign \x7D1A 1235-26 級
+sign \x7D1B 124-1246 紛
+sign \x7D1C 2456-1246-3 紜
+sign \x7D1D 245-456-2 紝
+sign \x7D1E 2345-456-4 紞
+sign \x7D1F 1235-456 紟
+sign \x7D20 234-1236-4 素
+sign \x7D21 124-56-1 紡
+sign \x7D22 234-12456-5 索
+sign \x7D29 2345-23456-3 紩
+sign \x7D2B 14-24-1 紫
+sign \x7D2C 1346-16 紬
+sign \x7D2E 14-2345-5 紮
+sign \x7D2F 123-245-2 累
+sign \x7D30 234-146-4 細
+sign \x7D31 124-35 紱
+sign \x7D32 234-23456-5 紲
+sign \x7D33 234-1246 紳
+sign \x7D35 1346-1456-6 紵
+sign \x7D39 234-13456-2 紹
+sign \x7D3A 13-456-4 紺
+sign \x7D3C 124-35 紼
+sign \x7D3D 23456-135-3 紽
+sign \x7D3E 1346-1246-1 紾
+sign \x7D3F 2345-126-2 紿
+sign \x7D40 14-12356-5 絀
+sign \x7D41 234-24 絁
+sign \x7D42 14-236 終
+sign \x7D43 256-3 絃
+sign \x7D44 14-1236-1 組
+sign \x7D45 12345-356-1 絅
+sign \x7D46 1234-2346-2 絆
+sign \x7D47 1235-245-3 絇
+sign \x7D4E 125-56-3 絎
+sign \x7D4F 234-23456-5 絏
+sign \x7D50 13-23456-5 結
+sign \x7D53 12345-12-4 絓
+sign \x7D55 14-12356-3 絕
+sign \x7D56 12456-56-4 絖
+sign \x7D5B 23456-1236 絛
+sign \x7D5C 13-23456-5 絜
+sign \x7D5D 124-136-4
+sign \x7D5E 13-34-1 絞
+sign \x7D61 123-12456-5 絡
+sign \x7D62 125-23-4 絢
+sign \x7D63 134-14 絣
+sign \x7D66 1235-26 給
+sign \x7D68 245-236-3 絨
+sign \x7D6A 245-1246 絪
+sign \x7D6E 234-245-6 絮
+sign \x7D70 2345-23456-3 絰
+sign \x7D71 23456-236-1 統
+sign \x7D72 234-24 絲
+sign \x7D73 13-56-4 絳
+sign \x7D79 13-23-4 絹
+sign \x7D7A 1346-24 絺
+sign \x7D7B 134-1246-2 絻
+sign \x7D7F 1235-16-3 絿
+sign \x7D80 234-356 綀
+sign \x7D81 1234-56-1 綁
+sign \x7D83 234-13456 綃
+sign \x7D85 1346-235 綅
+sign \x7D86 13-1245-1 綆
+sign \x7D88 23456-146-3 綈
+sign \x7D89 234-16-4 綉
+sign \x7D8C 12345-1235 綌
+sign \x7D8D 124-35 綍
+sign \x7D8F 234-245 綏
+sign \x7D91 12456-1246-1 綑
+sign \x7D93 13-356 經
+sign \x7D96 256-3 綖
+sign \x7D9C 14-236 綜
+sign \x7D9D 234-456 綝
+sign \x7D9E 2345-135-1 綞
+sign \x7DA0 123-12345-3 綠
+sign \x7DA2 1346-16-3 綢
+sign \x7DA3 125-23-4 綣
+sign \x7DA6 1235-125-3 綦
+sign \x7DA9 1234-13456-1 綩
+sign \x7DAA 234-256-4 綪
+sign \x7DAB 234-256-4 綫
+sign \x7DAC 234-16-2 綬
+sign \x7DAD 2456-146-3 維
+sign \x7DAE 125-356-4 綮
+sign \x7DAF 23456-1236-3 綯
+sign \x7DB0 2456-45-1 綰
+sign \x7DB1 13-56 綱
+sign \x7DB2 134-56-6 網
+sign \x7DB4 14-245-2 綴
+sign \x7DB5 1346-126-1 綵
+sign \x7DB7 1346-245-4 綷
+sign \x7DB8 123-234-3 綸
+sign \x7DB9 123-16-6 綹
+sign \x7DBA 24-1 綺
+sign \x7DBB 14-45-2 綻
+sign \x7DBD 1346-246-5 綽
+sign \x7DBE 123-356-3 綾
+sign \x7DBF 134-256-3 綿
+sign \x7DC1 14-23456-3 緁
+sign \x7DC4 12345-1246-1 緄
+sign \x7DC5 14-16 緅
+sign \x7DC7 14-24 緇
+sign \x7DC9 123-25-6 緉
+sign \x7DCA 13-1246-1 緊
+sign \x7DCB 124-125 緋
+sign \x7DCC 245-245-6 緌
+sign \x7DCE 2456-1235-3 緎
+sign \x7DD2 234-245-6 緒
+sign \x7DD7 234-25 緗
+sign \x7DD8 13-345 緘
+sign \x7DD9 1235-13 緙
+sign \x7DDA 234-256-4 線
+sign \x7DDD 1346-26 緝
+sign \x7DDE 2345-23-2 緞
+sign \x7DE0 23456-146-4 締
+sign \x7DE1 134-1246-3 緡
+sign \x7DE3 23-3 緣
+sign \x7DE6 234-24 緦
+sign \x7DE7 1346-16 緧
+sign \x7DE8 12346-256 編
+sign \x7DE9 2346-2 緩
+sign \x7DEC 134-256-6 緬
+sign \x7DEF 2456-146-6 緯
+sign \x7DF0 234-245 緰
+sign \x7DF1 13-16 緱
+sign \x7DF2 134-13456-6 緲
+sign \x7DF4 123-256-2 練
+sign \x7DF6 1234-256 緶
+sign \x7DF9 23456-146-3 緹
+sign \x7DFA 2456-12 緺
+sign \x7DFB 14-24-4 緻
+sign \x7E03 14-13-3
+sign \x7E05 125-34
+sign \x7E08 245-356-3 縈
+sign \x7E09 14-234-4 縉
+sign \x7E0A 146-4 縊
+sign \x7E0B 14-245-2 縋
+sign \x7E0D 1234-56 縍
+sign \x7E0E 12345-35 縎
+sign \x7E10 14-16-4 縐
+sign \x7E11 13-235 縑
+sign \x7E15 2456-1246-4 縕
+sign \x7E17 1346-245 縗
+sign \x7E1A 23456-1236 縚
+sign \x7E1B 1234-12456-5 縛
+sign \x7E1D 1346-1246-1 縝
+sign \x7E1E 13-1236-1 縞
+sign \x7E1F 245-12345-3 縟
+sign \x7E20 125-12345-3 縠
+sign \x7E23 23-2 縣
+sign \x7E27 23456-1236
+sign \x7E29 1346-126-4 縩
+sign \x7E2A 1234-35 縪
+sign \x7E2B 124-236-3 縫
+sign \x7E2D 123-125-3 縭
+sign \x7E2E 234-12345 縮
+sign \x7E2F 245-1246-1 縯
+sign \x7E30 234-24-1 縰
+sign \x7E31 14-236-4 縱
+sign \x7E32 123-245-3 縲
+sign \x7E33 14-23-4 縳
+sign \x7E34 125-256 縴
+sign \x7E35 134-45-2 縵
+sign \x7E36 14-26 縶
+sign \x7E37 123-16-6 縷
+sign \x7E39 12346-13456 縹
+sign \x7E3B 134-125-3 縻
+sign \x7E3D 14-236-1 總
+sign \x7E3E 14-1235 績
+sign \x7E3F 234-345 縿
+sign \x7E41 124-45-3 繁
+sign \x7E42 123-1346-3 繂
+sign \x7E43 1234-1245 繃
+sign \x7E44 24-0 繄
+sign \x7E45 234-1236 繅
+sign \x7E46 134-16-3 繆
+sign \x7E47 245-16-3 繇
+sign \x7E48 1235-25-6 繈
+sign \x7E50 234-245-2 繐
+sign \x7E51 125-13456 繑
+sign \x7E52 14-1245 繒
+sign \x7E53 1346-12356-5 繓
+sign \x7E54 14-1235 織
+sign \x7E55 234-256-2 繕
+sign \x7E56 234-45-4 繖
+sign \x7E58 2456-35-3 繘
+sign \x7E59 124-45 繙
+sign \x7E5A 123-13456-3 繚
+sign \x7E5E 13456-1 繞
+sign \x7E61 234-16-4 繡
+sign \x7E62 1235-1256-1 繢
+sign \x7E68 2345-2345-3 繨
+sign \x7E69 234-356-3 繩
+sign \x7E6A 1235-1256-1 繪
+sign \x7E6B 125-146-2 繫
+sign \x7E6D 13-45-1 繭
+sign \x7E6E 13-14
+sign \x7E6F 2456-45-2 繯
+sign \x7E70 14-1236-1 繰
+sign \x7E72 125-346-6 繲
+sign \x7E73 13-13456-1 繳
+sign \x7E75 14-256-2 繵
+sign \x7E76 245-1235 繶
+sign \x7E78 234-245-2 繸
+sign \x7E79 245-1235-3 繹
+sign \x7E7B 234-245 繻
+sign \x7E7C 13-146-4 繼
+sign \x7E7D 1234-1246 繽
+sign \x7E7E 125-256-1 繾
+sign \x7E81 124-1246 纁
+sign \x7E82 14-23-1 纂
+sign \x7E86 134-46-3 纆
+sign \x7E87 123-245-2 纇
+sign \x7E88 1235-23456-5 纈
+sign \x7E8A 1235-56-4 纊
+sign \x7E8C 14-12345-3 續
+sign \x7E8D 123-245-3 纍
+sign \x7E8F 1346-256-3 纏
+sign \x7E91 123-1236-3 纑
+sign \x7E93 245-356 纓
+sign \x7E94 1346-126-3 纔
+sign \x7E96 1346-235 纖
+sign \x7E98 14-23-1 纘
+sign \x7E9A 234-24-1 纚
+sign \x7E9B 2345-12345-3 纛
+sign \x7E9C 123-345-2 纜
+sign \x7F36 124-16-1 缶
+sign \x7F38 13-56 缸
+sign \x7F39 124-16-1 缹
+sign \x7F3A 1235-12356-5 缺
+sign \x7F3D 1234-1356-5 缽
+sign \x7F3E 12346-356-3 缾
+sign \x7F3F 125-25-4 缿
+sign \x7F43 1245-0 罃
+sign \x7F44 125-356-4 罄
+sign \x7F45 123-12-4 罅
+sign \x7F47 14-234
+sign \x7F48 23456-345-3 罈
+sign \x7F4B 236-4 罋
+sign \x7F4C 1245-0 罌
+sign \x7F4D 123-245-3 罍
+sign \x7F4E 23456-345-3 罎
+sign \x7F4F 123-1236-3 罏
+sign \x7F50 13-2346-4 罐
+sign \x7F51 134-56-6 网
+sign \x7F54 134-56-6 罔
+sign \x7F55 125-1345-1 罕
+sign \x7F58 124-16-3 罘
+sign \x7F5D 14-15 罝
+sign \x7F5F 13-136-1 罟
+sign \x7F61 13-56 罡
+sign \x7F63 12345-12-4 罣
+sign \x7F65 13-23-4 罥
+sign \x7F66 124-236-3 罦
+sign \x7F68 235-1 罨
+sign \x7F69 14-34-4 罩
+sign \x7F6A 14-245-2 罪
+sign \x7F6B 12345-346-1 罫
+sign \x7F6C 14-12356-5 罬
+sign \x7F6D 2456-1235-3 罭
+sign \x7F6E 14-24-4 置
+sign \x7F70 124-35-3 罰
+sign \x7F72 1346-1456-6 署
+sign \x7F73 234-24 罳
+sign \x7F75 134-12-2 罵
+sign \x7F77 1234-12-2 罷
+sign \x7F79 123-125-3 罹
+sign \x7F7A 1346-34 罺
+sign \x7F7B 2456-146-4 罻
+sign \x7F7D 13-146-4 罽
+sign \x7F7E 14-1245 罾
+sign \x7F7F 1346-236 罿
+sign \x7F85 123-135-3 羅
+sign \x7F86 1234-125 羆
+sign \x7F87 13-125 羇
+sign \x7F88 13-125 羈
+sign \x7F89 123-23-3 羉
+sign \x7F8A 245-25-3 羊
+sign \x7F8B 134-15 羋
+sign \x7F8C 13-25 羌
+sign \x7F8E 134-125-6 美
+sign \x7F91 245-16-6 羑
+sign \x7F94 13-1236 羔
+sign \x7F95 245-25-2 羕
+sign \x7F96 13-136-1 羖
+sign \x7F97 13-25
+sign \x7F9A 123-356-3 羚
+sign \x7F9C 1346-1456-6 羜
+sign \x7F9D 2345-146 羝
+sign \x7F9E 234-16 羞
+sign \x7FA1 234-256-2 羡
+sign \x7FA2 245-236-1 羢
+sign \x7FA4 12456-1246-3 群
+sign \x7FA5 1235-25-6 羥
+sign \x7FA7 234-135 羧
+sign \x7FA8 234-256-2 羨
+sign \x7FA9 24-2 義
+sign \x7FAD 1456-3 羭
+sign \x7FAF 1235-23456-5 羯
+sign \x7FB0 23456-56 羰
+sign \x7FB1 23-3 羱
+sign \x7FB2 125-125 羲
+sign \x7FB3 124-45-3 羳
+sign \x7FB5 124-1246-3 羵
+sign \x7FB6 14-256 羶
+sign \x7FB7 123-235-6 羷
+sign \x7FB8 123-245-3 羸
+sign \x7FB9 13-1245 羹
+sign \x7FBC 1346-45-4 羼
+sign \x7FBD 1456-6 羽
+sign \x7FBF 1245-146-2 羿
+sign \x7FC0 1346-236 翀
+sign \x7FC1 245-236 翁
+sign \x7FC3 2456-1245-3 翃
+sign \x7FC5 1346-24-4 翅
+sign \x7FCA 245-1235-3 翊
+sign \x7FCC 245-1235-3 翌
+sign \x7FCE 123-356-3 翎
+sign \x7FD2 14-1234-3 習
+sign \x7FD4 1346-25-3 翔
+sign \x7FD5 245-26 翕
+sign \x7FDB 234-13456 翛
+sign \x7FDF 14-13-3 翟
+sign \x7FE0 1346-245-4 翠
+sign \x7FE1 124-125-1 翡
+sign \x7FE2 124-45
+sign \x7FE3 234-1234-5 翣
+sign \x7FE5 14-1456-4 翥
+sign \x7FE6 14-256-1 翦
+sign \x7FE9 12346-256 翩
+sign \x7FEB 2346-2 翫
+sign \x7FEC 124-146 翬
+sign \x7FED 125-16-3 翭
+sign \x7FEE 125-35-3 翮
+sign \x7FEF 125-12456-3 翯
+sign \x7FF0 125-1345-2 翰
+sign \x7FF1 1245-1236-3 翱
+sign \x7FF3 146-4 翳
+sign \x7FF9 1235-13456-4 翹
+sign \x7FFB 124-45 翻
+sign \x7FFC 245-1235-3 翼
+sign \x7FFD 2456-146-4 翽
+sign \x7FFE 125-23 翾
+sign \x7FFF 2345-1236-2 翿
+sign \x8000 13456-2 耀
+sign \x8001 123-1236-6 老
+sign \x8003 125-34-1 考
+sign \x8004 134-1236-2 耄
+sign \x8005 14-15-1 者
+sign \x8006 1235-125-3 耆
+sign \x8007 13-16-1 耇
+sign \x800B 2345-23456-3 耋
+sign \x800C 24-3 而
+sign \x800D 234-12-1 耍
+sign \x800E 23-6 耎
+sign \x800F 24-3 耏
+sign \x8010 1345-126-2 耐
+sign \x8011 14-23 耑
+sign \x8012 123-126-2 耒
+sign \x8014 14-24-1 耔
+sign \x8015 13-14 耕
+sign \x8016 1346-34-4 耖
+sign \x8017 125-1236-4 耗
+sign \x8018 2456-1246-3 耘
+sign \x8019 12346-12-3 耙
+sign \x801C 14-24-2 耜
+sign \x801E 13-12 耞
+sign \x8021 1346-135-3 耡
+sign \x8024 14-1235-3 耤
+sign \x8026 1245-16-6 耦
+sign \x8028 1345-16-2 耨
+sign \x8029 13-56-1 耩
+sign \x802A 12346-56-6 耪
+sign \x802C 123-16-3 耬
+sign \x8030 245-16 耰
+sign \x8033 24-6 耳
+sign \x8035 2345-356 耵
+sign \x8036 245-15-3 耶
+sign \x8037 2345-1234-5 耷
+sign \x803D 2345-345 耽
+sign \x803E 2456-1245-3 耾
+sign \x803F 13-1245-1 耿
+sign \x8043 2345-345 聃
+sign \x8046 123-356-3 聆
+sign \x804A 123-13456-3 聊
+sign \x8052 1235-1356-5 聒
+sign \x8056 234-356-4 聖
+sign \x8058 12346-356-4 聘
+sign \x805A 14-245-2 聚
+sign \x805D 12345-1235 聝
+sign \x805E 134-1246-3 聞
+sign \x8067 12456-146-3 聧
+sign \x806F 123-23-3 聯
+sign \x8070 1346-236 聰
+sign \x8071 1245-1236-3 聱
+sign \x8072 234-356 聲
+sign \x8073 234-236-1 聳
+sign \x8075 1235-1256-1 聵
+sign \x8076 1345-12346-3 聶
+sign \x8077 14-1235 職
+sign \x8079 1345-356-3 聹
+sign \x807D 23456-356-4 聽
+sign \x807E 123-236-3 聾
+sign \x807F 2456-35-3 聿
+sign \x8084 24-2 肄
+sign \x8085 234-12345 肅
+sign \x8086 234-24-4 肆
+sign \x8087 234-13456-2 肇
+sign \x8089 245-12345-3 肉
+sign \x808A 245-1235 肊
+sign \x808B 123-46-3 肋
+sign \x808C 13-125 肌
+sign \x808F 1346-1236-4 肏
+sign \x8090 13-13-5 肐
+sign \x8093 124-56 肓
+sign \x8095 1345-346-3 肕
+sign \x8096 1346-13456-4 肖
+sign \x8098 14-34-1 肘
+sign \x8099 23-0 肙
+sign \x809A 23456-1236-6 肚
+sign \x809B 13-56 肛
+sign \x809C 56-0 肜
+sign \x809D 13-1345 肝
+sign \x80A1 13-136-1 股
+sign \x80A2 14-24 肢
+sign \x80A5 124-125-3 肥
+sign \x80A9 13-256 肩
+sign \x80AA 124-56 肪
+sign \x80AB 14-234 肫
+sign \x80AD 1345-1346-3 肭
+sign \x80AE 56-0 肮
+sign \x80AF 125-1245-1 肯
+sign \x80B1 12345-1245 肱
+sign \x80B2 245-12345-3 育
+sign \x80B4 1245-34-3 肴
+sign \x80B5 134-16-3 肵
+sign \x80B8 245-35-3 肸
+sign \x80BA 124-146-4 肺
+sign \x80C2 234-1246-2 胂
+sign \x80C3 2456-146-2 胃
+sign \x80C4 14-16-2 胄
+sign \x80C8 1234-35-3 胈
+sign \x80CA 1235-245-3 胊
+sign \x80CC 1234-1256-4 背
+sign \x80CD 12345-12 胍
+sign \x80CE 23456-126 胎
+sign \x80CF 14-24-1 胏
+sign \x80D0 124-125-1 胐
+sign \x80D1 14-24 胑
+sign \x80D4 14-24-4 胔
+sign \x80D5 124-136 胕
+sign \x80D6 1234-2346-2 胖
+sign \x80D7 14-1246 胗
+sign \x80D9 14-1236-2 胙
+sign \x80DA 12346-1256 胚
+sign \x80DB 13-1234-5 胛
+sign \x80DC 234-356-4 胜
+sign \x80DD 14-24 胝
+sign \x80DE 1234-34 胞
+sign \x80E0 1235-245 胠
+sign \x80E1 136-3 胡
+sign \x80E3 1346-24-1 胣
+sign \x80E4 245-1246-2 胤
+sign \x80E5 234-245 胥
+sign \x80E9 123-12346-3
+sign \x80ED 256-0 胭
+sign \x80EF 12456-12 胯
+sign \x80F0 24-3 胰
+sign \x80F1 12345-56 胱
+sign \x80F2 125-126-1 胲
+sign \x80F3 13-13-5 胳
+sign \x80F4 23456-236-3 胴
+sign \x80F8 125-236 胸
+sign \x80F9 24-3 胹
+sign \x80FA 1345-0 胺
+sign \x80FC 12346-256-3 胼
+sign \x80FD 1345-1245-3 能
+sign \x80FE 14-24-4 胾
+sign \x8101 23456-13456-4
+sign \x8102 14-24 脂
+sign \x8105 125-12346-5 脅
+sign \x8106 1346-245-4 脆
+sign \x8108 134-46-3 脈
+sign \x810A 14-2456-5 脊
+sign \x8116 1234-1356-3 脖
+sign \x8117 134-1246-6 脗
+sign \x8118 13-2346-1 脘
+sign \x811B 13-356-4 脛
+sign \x811D 125-1245 脝
+sign \x811E 1346-135-1 脞
+sign \x8121 23456-356-6 脡
+sign \x8122 134-1256-3 脢
+sign \x8123 234-234-3 脣
+sign \x8124 234-1246-2 脤
+sign \x8127 14-234 脧
+sign \x8129 234-16 脩
+sign \x812B 23456-12356-5
+sign \x812C 12346-34 脬
+sign \x812F 12346-1236-1 脯
+sign \x8130 2345-16-2 脰
+sign \x8137 123-125-2 脷
+sign \x8139 14-25-4 脹
+sign \x813A 234-245-2 脺
+sign \x813E 12346-125-3 脾
+sign \x8146 23456-256-1 腆
+sign \x814A 123-1234-3 腊
+sign \x814B 245-1235-3 腋
+sign \x814C 235-0 腌
+sign \x814D 1345-456-6 腍
+sign \x814E 234-1246-2 腎
+sign \x814F 14-12356-5 腏
+sign \x8150 124-136-2 腐
+sign \x8151 124-136-1 腑
+sign \x8152 13-245 腒
+sign \x8153 124-125-3 腓
+sign \x8154 125-56 腔
+sign \x8155 2346-1 腕
+sign \x8160 1346-16-4 腠
+sign \x8161 123-135-3 腡
+sign \x8164 456-0 腤
+sign \x8165 234-356 腥
+sign \x8166 1345-1236-6 腦
+sign \x8167 234-1456-2 腧
+sign \x8169 1345-345-6 腩
+sign \x816B 14-236-1 腫
+sign \x816E 234-126 腮
+sign \x816F 2345-35 腯
+sign \x8170 13456-0 腰
+sign \x8171 13-256-2 腱
+sign \x8173 13-246-5 腳
+sign \x8174 1456-3 腴
+sign \x8176 2345-23-4 腶
+sign \x8177 1234-1235 腷
+sign \x8178 1346-25-3 腸
+sign \x8179 124-12345 腹
+sign \x817A 234-256-4 腺
+sign \x817F 23456-245-1 腿
+sign \x8180 1234-56-1 膀
+sign \x8182 123-245-6 膂
+sign \x8183 2456-35 膃
+sign \x8186 234-1236-4 膆
+sign \x8187 14-245-2 膇
+sign \x8188 13-13-5 膈
+sign \x818A 1234-12456-5 膊
+sign \x818B 123-13456-3 膋
+sign \x818D 12346-125-3 膍
+sign \x818F 13-1236 膏
+sign \x8195 1245-12456-5 膕
+sign \x8197 1346-245-3 膗
+sign \x8198 1234-13456 膘
+sign \x8199 14-25-1 膙
+sign \x819A 124-136 膚
+sign \x819B 23456-56-3 膛
+sign \x819C 134-12456-3 膜
+sign \x819D 234-35 膝
+sign \x819E 14-23 膞
+sign \x81A0 13-34 膠
+sign \x81A3 14-35-3 膣
+sign \x81A5 1346-234 膥
+sign \x81A7 23456-236-3 膧
+sign \x81A8 12346-14-3 膨
+sign \x81A9 1345-125-2 膩
+sign \x81AB 123-13456-3 膫
+sign \x81AC 1346-245-4 膬
+sign \x81AE 125-13456 膮
+sign \x81B0 124-45-3 膰
+sign \x81B1 14-1235 膱
+sign \x81B2 14-13456 膲
+sign \x81B3 234-256-2 膳
+sign \x81B4 124-136 膴
+sign \x81B5 234-245-2 膵
+sign \x81B6 245-234-1 膶
+sign \x81B7 125-25 膷
+sign \x81BA 245-356 膺
+sign \x81BB 14-256 膻
+sign \x81BD 2345-345-1 膽
+sign \x81BE 1235-1256-1 膾
+sign \x81BF 1345-236-3 膿
+sign \x81C0 23456-23-3 臀
+sign \x81C2 1234-125-4 臂
+sign \x81C3 245-236-1 臃
+sign \x81C4 1235-2456-3 臄
+sign \x81C6 245-1235 臆
+sign \x81C9 123-235-6 臉
+sign \x81CA 234-1236-4 臊
+sign \x81CC 13-136-1 臌
+sign \x81CD 1346-24-3 臍
+sign \x81CF 1234-1246-4 臏
+sign \x81D0 124-1246 臐
+sign \x81D2 136-2 臒
+sign \x81D5 1234-13456 臕
+sign \x81D8 123-1234-3 臘
+sign \x81D9 256-0 臙
+sign \x81DA 123-1236-3 臚
+sign \x81DB 124-12456-5 臛
+sign \x81DD 123-135-1 臝
+sign \x81DE 1235-245-3 臞
+sign \x81DF 14-56-2 臟
+sign \x81E0 123-23-3 臠
+sign \x81E1 1345-146-3 臡
+sign \x81E2 14-235 臢
+sign \x81E3 234-1246-3 臣
+sign \x81E4 234-1246-3
+sign \x81E5 1245-135-2 臥
+sign \x81E6 1245-135-2
+sign \x81E7 14-56 臧
+sign \x81E8 123-456-3 臨
+sign \x81E9 123-456-3
+sign \x81EA 14-24-2 自
+sign \x81EC 23456-3 臬
+sign \x81ED 1346-16-4 臭
+sign \x81F2 23456-3 臲
+sign \x81F3 14-24-4 至
+sign \x81F4 14-24-4 致
+sign \x81FA 23456-126-3 臺
+sign \x81FB 14-234 臻
+sign \x81FC 1235-16-6 臼
+sign \x81FE 1456-3 臾
+sign \x81FF 1346-1234-5 臿
+sign \x8200 13456-6 舀
+sign \x8201 1456-3 舁
+sign \x8202 14-236 舂
+sign \x8204 234-1235 舄
+sign \x8205 1235-16-6 舅
+sign \x8207 1456-6 與
+sign \x8208 125-356 興
+sign \x8209 13-245-1 舉
+sign \x820A 13-16-2 舊
+sign \x820B 245-1246-2 舋
+sign \x820C 234-23456-3 舌
+sign \x820D 234-15-4 舍
+sign \x8210 234-346-6 舐
+sign \x8212 234-1456 舒
+sign \x8214 23456-235-1 舔
+sign \x8216 12346-1236-4 舖
+sign \x8218 13-2346-4
+sign \x821B 1346-23-1 舛
+sign \x821C 234-234-4 舜
+sign \x821D 125-35-3 舝
+sign \x821E 134-1236-6 舞
+sign \x821F 14-16 舟
+sign \x8221 234-23-3 舡
+sign \x8222 234-45 舢
+sign \x8226 23456-346-6 舦
+sign \x8228 1234-45-1 舨
+sign \x822A 125-56-3 航
+sign \x822B 124-56-1 舫
+sign \x822C 1234-2346 般
+sign \x8232 123-356-3 舲
+sign \x8233 14-12345-3 舳
+sign \x8234 14-13-5 舴
+sign \x8235 23456-135-3 舵
+sign \x8236 1234-12456-3 舶
+sign \x8237 256-3 舷
+sign \x8238 13-135-1 舸
+sign \x8239 234-23-3 船
+sign \x8244 234-34 艄
+sign \x8245 1456-3 艅
+sign \x8247 23456-2356-6 艇
+sign \x824B 134-14-6 艋
+sign \x824E 2456-56-3 艎
+sign \x8251 1234-256 艑
+sign \x8255 1234-56-2 艕
+sign \x8257 245-1235-3 艗
+sign \x8258 234-16-1 艘
+sign \x8259 1346-56 艙
+sign \x825A 1346-1236-3 艚
+sign \x825B 123-16-3 艛
+sign \x825E 23456-13456-4
+sign \x825F 23456-236-3 艟
+sign \x8261 2345-56 艡
+sign \x8263 123-1236-3 艣
+sign \x8264 1245-146-6 艤
+sign \x8266 123-345-2 艦
+sign \x8268 134-236-3 艨
+sign \x826B 123-1236-3 艫
+sign \x826D 234-25 艭
+sign \x826E 13-1246-4 艮
+sign \x826F 123-25-3 良
+sign \x8271 13-45 艱
+sign \x8272 234-1235 色
+sign \x8274 124-35 艴
+sign \x8277 235-2 艷
+sign \x8278 1346-1236-1 艸
+sign \x827B 123-46-3
+sign \x827D 1235-16-3 艽
+sign \x827E 1245-346-2 艾
+sign \x827F 1345-346-6 艿
+sign \x8283 12346-236-3 芃
+sign \x8284 23-3 芄
+sign \x8285 1346-24-3 芅
+sign \x828A 1346-256 芊
+sign \x828B 136-2 芋
+sign \x828D 1346-246-5 芍
+sign \x828E 13-236 芎
+sign \x828F 2345-1236-2 芏
+sign \x8291 125-125-1 芑
+sign \x8292 134-56 芒
+sign \x8299 124-136-3 芙
+sign \x829D 14-24 芝
+sign \x829F 234-345 芟
+sign \x82A1 125-235-4 芡
+sign \x82A3 124-16-3 芣
+sign \x82A5 13-346-4 芥
+sign \x82A7 14-245-2 芧
+sign \x82A8 1235-26 芨
+sign \x82A9 1235-456-3 芩
+sign \x82AA 1235-125-3 芪
+sign \x82AB 256-3 芫
+sign \x82AC 124-1246 芬
+sign \x82AD 1234-12 芭
+sign \x82AE 245-245-2 芮
+sign \x82AF 234-456 芯
+sign \x82B0 13-125-2 芰
+sign \x82B1 124-12 花
+sign \x82B3 124-56 芳
+sign \x82B5 1235-12356-5 芵
+sign \x82B6 13-16-1 芶
+sign \x82B7 14-24-1 芷
+sign \x82B8 2456-1246-3 芸
+sign \x82B9 1235-1246-3 芹
+sign \x82BB 1346-135 芻
+sign \x82BD 1245-12-3 芽
+sign \x82BE 124-146-4 芾
+sign \x82D1 23-1 苑
+sign \x82D2 235-6 苒
+sign \x82D3 123-356-3 苓
+sign \x82D4 23456-126-3 苔
+sign \x82D5 23456-13456-3
+sign \x82D7 134-13456-3 苗
+sign \x82D9 123-26 苙
+sign \x82DB 125-135 苛
+sign \x82DC 134-12345-3 苜
+sign \x82DE 1234-34 苞
+sign \x82DF 13-16-1 苟
+sign \x82E0 134-1246-3 苠
+sign \x82E1 24-6 苡
+sign \x82E2 24-6
+sign \x82E3 13-245-2 苣
+sign \x82E4 12346-125-1 苤
+sign \x82E5 245-246-3 若
+sign \x82E6 124-136-1 苦
+sign \x82E7 1346-1456-6 苧
+sign \x82E8 1346-1456-6
+sign \x82EB 234-235-4 苫
+sign \x82EF 1234-2346-1 苯
+sign \x82F1 245-356 英
+sign \x82F2 14-12-4 苲
+sign \x82F4 14-245 苴
+sign \x82F6 125-12346-3 苶
+sign \x82F9 12346-356-3 苹
+sign \x82FB 124-136-3 苻
+sign \x82FE 1234-35-3 苾
+sign \x8300 124-35 茀
+sign \x8301 14-12356-5 茁
+sign \x8302 134-16-2 茂
+sign \x8303 124-45-2 范
+sign \x8304 1235-15-1 茄
+sign \x8305 134-34-3 茅
+sign \x8306 134-34-3 茆
+sign \x8307 1234-35-3 茇
+sign \x8308 1346-346-3 茈
+sign \x8309 134-1356-3 茉
+sign \x830C 1346-24-3 茌
+sign \x830D 13-16-1 茍
+sign \x8316 13-13-5 茖
+sign \x8317 134-356-6 茗
+sign \x8318 123-146-2
+sign \x831A 245-1246
+sign \x831B 13-1246-4 茛
+sign \x831C 234-146 茜
+sign \x8320 125-1236 茠
+sign \x8322 123-23456-3 茢
+sign \x8326 1346-13-5 茦
+sign \x8327 13-45-1 茧
+sign \x8328 1346-24-3 茨
+sign \x832B 134-56-3 茫
+sign \x832C 1346-12-3 茬
+sign \x832D 13-34 茭
+sign \x832F 124-12345-3 茯
+sign \x8331 14-1456 茱
+sign \x8332 14-24 茲
+sign \x8333 13-56 茳
+sign \x8334 1256-3 茴
+sign \x8335 245-1246 茵
+sign \x8336 1346-12-3 茶
+sign \x8337 124-35-3 茷
+sign \x8338 245-236-3 茸
+sign \x8339 1456-3 茹
+sign \x833A 1346-236 茺
+sign \x833C 23456-236-3 茼
+sign \x8340 234-234 荀
+sign \x8343 1346-23-3 荃
+sign \x8344 13-126 荄
+sign \x8345 2345-1234-5 荅
+sign \x8347 125-1245-2 荇
+sign \x8348 1346-23-1 荈
+sign \x8349 1346-1236-1 草
+sign \x834A 13-356 荊
+sign \x834D 1235-125-3 荍
+sign \x834E 1346-24-3
+sign \x834F 245-456-6 荏
+sign \x8350 14-256-4 荐
+sign \x8351 23456-146-3 荑
+sign \x8352 124-56 荒
+sign \x8354 123-146-2 荔
+sign \x8373 2345-16-2 荳
+sign \x8375 245-1246-1 荵
+sign \x8377 125-135-3 荷
+sign \x8378 1234-1356-3 荸
+sign \x837B 2345-1235-3 荻
+sign \x837C 23456-1236-3 荼
+sign \x837D 234-146 荽
+sign \x8385 123-125-2
+sign \x8386 12346-1236-3 莆
+sign \x8389 123-125-2 莉
+sign \x838A 14-56 莊
+sign \x838E 234-12 莎
+sign \x8392 13-245-1 莒
+sign \x8393 134-1256-3 莓
+sign \x8395 125-1245-2 莕
+sign \x8396 13-356-4 莖
+sign \x8398 234-1246 莘
+sign \x8399 12456-1246-1 莙
+sign \x839B 23456-356-3 莛
+sign \x839C 245-16-3
+sign \x839D 1346-135-4 莝
+sign \x839E 2346-6 莞
+sign \x83A0 245-16-6 莠
+sign \x83A2 13-1234-5 莢
+sign \x83A6 234-34 莦
+sign \x83A7 256-2 莧
+sign \x83A8 123-56-3 莨
+sign \x83A9 124-136 莩
+sign \x83AA 1245-135-3 莪
+sign \x83AB 134-12456-3 莫
+sign \x83B0 125-456-4 莰
+sign \x83B9 245-356-3
+sign \x83BD 134-56-6 莽
+sign \x83BF 1346-24-4 莿
+sign \x83C0 23-1 菀
+sign \x83C1 1346-356 菁
+sign \x83C2 2345-1235 菂
+sign \x83C5 13-45 菅
+sign \x83C6 14-16 菆
+sign \x83C7 13-136 菇
+sign \x83C9 123-12345-3 菉
+sign \x83CA 13-12345 菊
+sign \x83CC 12456-1246-1 菌
+sign \x83CF 125-135-3 菏
+sign \x83D1 14-24 菑
+sign \x83D3 12345-135-1 菓
+sign \x83D4 124-12345-3 菔
+sign \x83D5 123-234-3 菕
+sign \x83D6 1346-25 菖
+sign \x83D8 234-236 菘
+sign \x83DC 1346-126-4 菜
+sign \x83DD 1234-35-3
+sign \x83DF 23456-1236-4 菟
+sign \x83E0 1234-135 菠
+sign \x83E1 125-345-6 菡
+sign \x83E2 12346-1236-6 菢
+sign \x83E3 12346-1236-6
+sign \x83E4 13-23-1 菤
+sign \x83E5 234-1235 菥
+sign \x83E6 234-1235
+sign \x83E8 1346-12346-5 菨
+sign \x83E9 12346-1236-3 菩
+sign \x83EA 2345-56-2 菪
+sign \x83EF 2456-12-3 華
+sign \x83F0 13-136 菰
+sign \x83F1 123-356-3 菱
+sign \x83F2 124-125 菲
+sign \x83F4 456-0 菴
+sign \x83F8 256-0 菸
+sign \x83F9 14-245 菹
+sign \x83FC 23456-345-1 菼
+sign \x83FD 234-12345-3 菽
+sign \x83FE 23456-235-3 菾
+sign \x8401 13-125 萁
+sign \x8403 234-245-2 萃
+sign \x8404 23456-1236-3 萄
+sign \x8406 1234-125 萆
+sign \x8407 1346-25-3 萇
+sign \x840A 123-126-3 萊
+sign \x840B 1346-146 萋
+sign \x840C 134-1245-3 萌
+sign \x840D 12346-356-3 萍
+sign \x840E 2456-146-1 萎
+sign \x840F 2345-345-2 萏
+sign \x8410 1346-146 萐
+sign \x8411 2346-3 萑
+sign \x8429 1346-16 萩
+sign \x842C 134-45-2 萬
+sign \x842D 1456-6 萭
+sign \x8431 125-23 萱
+sign \x8432 125-23 萲
+sign \x8434 14-46 萴
+sign \x8435 2456-135 萵
+sign \x8438 1456-3 萸
+sign \x843C 1245-12456-3 萼
+sign \x843D 123-12456-3 落
+sign \x8445 14-245 葅
+sign \x8446 1234-1236-1 葆
+sign \x8447 245-16-3 葇
+sign \x8449 12346-3 葉
+sign \x844D 124-12345 葍
+sign \x844E 123-1346-3 葎
+sign \x8450 12346-2346-2 葐
+sign \x8451 124-236 葑
+sign \x8452 125-236-3 葒
+sign \x8456 2345-35-3 葖
+sign \x8457 14-246-3 著
+sign \x8459 234-25 葙
+sign \x845A 234-456-2 葚
+sign \x845B 13-124-5 葛
+sign \x8460 234-456 葠
+sign \x8461 12346-1236-3 葡
+sign \x8463 2345-236-1 董
+sign \x8465 14-256-4 葥
+sign \x8466 2456-146-6 葦
+sign \x8467 1234-1356-3 葧
+sign \x8469 1234-12 葩
+sign \x846B 136-3 葫
+sign \x846C 14-56-4 葬
+sign \x846D 13-12 葭
+sign \x846F 245-246-3 葯
+sign \x8471 1346-236 葱
+sign \x8473 2456-146 葳
+sign \x8474 14-456 葴
+sign \x8475 12456-146-3 葵
+sign \x8476 23456-356-3 葶
+sign \x8477 124-1246 葷
+sign \x8478 234-346-1 葸
+sign \x8479 234-24 葹
+sign \x847A 1346-26 葺
+sign \x847D 13456-0 葽
+sign \x8482 23456-146-4 蒂
+sign \x848D 2456-146-1 蒍
+sign \x8490 234-16-1 蒐
+sign \x8494 234-24-2 蒔
+sign \x8497 123-56-2 蒗
+sign \x8499 134-236-3 蒙
+sign \x849B 1235-12356-5 蒛
+sign \x849C 234-23-4 蒜
+sign \x849E 123-125-2 蒞
+sign \x849F 13-245-1 蒟
+sign \x84A1 1234-56-1 蒡
+sign \x84A8 234-256-2 蒨
+sign \x84AF 12345-346-1 蒯
+sign \x84B1 12346-1236-3 蒱
+sign \x84B2 12346-1236-3 蒲
+sign \x84B4 234-12456-5 蒴
+sign \x84B8 14-356 蒸
+sign \x84B9 13-235 蒹
+sign \x84BA 14-35-3 蒺
+sign \x84BB 245-246-3 蒻
+sign \x84BC 1346-56 蒼
+sign \x84BD 245-1246
+sign \x84BF 125-1236 蒿
+sign \x84C0 234-23 蓀
+sign \x84C1 14-234 蓁
+sign \x84C2 134-356-6 蓂
+sign \x84C4 1346-12345 蓄
+sign \x84C6 14-2456-3 蓆
+sign \x84C7 12345-35 蓇
+sign \x84C9 245-236-3 蓉
+sign \x84CA 245-236-1 蓊
+sign \x84CB 1235-126-4 蓋
+sign \x84CD 234-24 蓍
+sign \x84CF 123-135-1 蓏
+sign \x84D0 245-12345-3 蓐
+sign \x84D1 234-135 蓑
+sign \x84D3 12346-1256-3 蓓
+sign \x84D6 1234-125 蓖
+sign \x84E7 2345-13456-2 蓧
+sign \x84E8 234-16 蓨
+sign \x84E9 234-16
+sign \x84EB 14-12345-3 蓫
+sign \x84EC 12346-236-3 蓬
+sign \x84EE 123-256-3 蓮
+sign \x84EF 1346-236 蓯
+sign \x84F0 234-346-1 蓰
+sign \x84F4 234-234-3 蓴
+sign \x84F7 23456-245 蓷
+sign \x84FA 1245-146-2 蓺
+sign \x84FC 123-12345-3 蓼
+sign \x84FD 1234-35 蓽
+sign \x84FE 123-1236-6 蓾
+sign \x84FF 234-12345 蓿
+sign \x8500 1234-1236-2 蔀
+sign \x8506 123-356-3 蔆
+sign \x8507 13-125-4 蔇
+sign \x8509 12345-1246-1 蔉
+sign \x850C 1346-12345 蔌
+sign \x8511 134-23456-3 蔑
+sign \x8513 134-45-2 蔓
+sign \x8514 1234-13-3 蔔
+sign \x8515 2345-146-4 蔕
+sign \x8517 14-15-4 蔗
+sign \x8518 234-456
+sign \x851A 2456-146-4 蔚
+sign \x851E 123-16 蔞
+sign \x851F 1346-12345 蔟
+sign \x8521 1346-126-4 蔡
+sign \x8523 14-25-1 蔣
+sign \x8524 134-35-3 蔤
+sign \x8525 1346-236 蔥
+sign \x8526 1345-13456-6 蔦
+sign \x8527 2456-146-2 蔧
+sign \x852B 256-0 蔫
+sign \x852C 234-135 蔬
+sign \x852D 245-456-4 蔭
+sign \x852F 1346-1246-3 蔯
+sign \x8534 134-12-3 蔴
+sign \x853B 1235-16-4 蔻
+sign \x853D 1234-146-4 蔽
+sign \x853E 123-125-3 蔾
+sign \x8541 1346-456-3 蕁
+sign \x8543 124-45-3 蕃
+sign \x8546 1346-256-1 蕆
+sign \x8548 1346-456-6 蕈
+sign \x8549 14-13456 蕉
+sign \x854A 245-245-6 蕊
+sign \x854B 245-245-6
+sign \x854D 1456-3 蕍
+sign \x854E 1235-13456-3 蕎
+sign \x8551 13-45 蕑
+sign \x8553 2456-1246-3 蕓
+sign \x8555 245-16-3 蕕
+sign \x8556 1235-245-3 蕖
+sign \x8558 13456-3 蕘
+sign \x8559 2456-146-2 蕙
+sign \x855D 1346-12356-5 蕝
+sign \x855E 14-245-4 蕞
+sign \x8561 124-1246-3 蕡
+sign \x8562 12345-146-2 蕢
+sign \x8563 234-234-4 蕣
+sign \x8564 245-245-3 蕤
+sign \x8568 1235-12356-5 蕨
+sign \x8569 2345-56-2 蕩
+sign \x856A 134-1236-3 蕪
+sign \x856D 234-13456 蕭
+sign \x856E 234-1235 蕮
+sign \x8577 1456-2 蕷
+sign \x8578 125-12-3 蕸
+sign \x8579 236-4 蕹
+sign \x857A 1346-26 蕺
+sign \x857B 125-236-3 蕻
+sign \x857E 123-245-3 蕾
+sign \x8580 2456-1246 薀
+sign \x8581 245-12345 薁
+sign \x8584 1234-12456-3 薄
+sign \x8585 125-1236 薅
+sign \x8586 126-4 薆
+sign \x8587 134-125-3 薇
+sign \x8588 1256-2 薈
+sign \x8589 2456-146-4 薉
+sign \x858A 13-146-4 薊
+sign \x858B 1346-24-3 薋
+sign \x858C 125-25 薌
+sign \x858F 24-4 薏
+sign \x8590 123-356-3 薐
+sign \x8591 13-25 薑
+sign \x8594 1346-25-3 薔
+sign \x8596 12345-135 薖
+sign \x8599 23456-146-4 薙
+sign \x859B 234-23456-5 薛
+sign \x859C 12346-2456 薜
+sign \x859F 123-235-6 薟
+sign \x85A2 125-346-6 薢
+sign \x85A4 125-346-2 薤
+sign \x85A6 14-256-4 薦
+sign \x85A7 125-34-1 薧
+sign \x85A8 12345-1246 薨
+sign \x85A9 234-2345-5 薩
+sign \x85AA 234-1246 薪
+sign \x85AF 234-1456-3 薯
+sign \x85B0 124-1246 薰
+sign \x85B3 23-6 薳
+sign \x85B6 134-346-3 薶
+sign \x85B7 1456-3 薷
+sign \x85B8 12346-13456 薸
+sign \x85B9 23456-126-3 薹
+sign \x85BA 1346-146-3 薺
+sign \x85BD 14-1246 薽
+sign \x85BF 24-6 薿
+sign \x85C1 13-1236-1
+sign \x85C2 1346-236-3 藂
+sign \x85C7 1456-2 藇
+sign \x85C9 14-1235-3 藉
+sign \x85CD 123-345-3 藍
+sign \x85CE 14-234-1 藎
+sign \x85CF 1346-56-3 藏
+sign \x85D0 134-13456-6 藐
+sign \x85D1 1235-356-3 藑
+sign \x85D5 1245-16-6 藕
+sign \x85D8 123-245-3 藘
+sign \x85DA 14-12345-3 藚
+sign \x85DC 123-146-3 藜
+sign \x85DD 1245-146-2 藝
+sign \x85DF 123-245-6 藟
+sign \x85E1 124-45-3
+sign \x85E4 23456-1245-3 藤
+sign \x85E5 245-246-3 藥
+sign \x85E6 134-135-3 藦
+sign \x85E7 134-135-3
+sign \x85E8 1234-13456 藨
+sign \x85E9 124-45-3 藩
+sign \x85EA 234-16-1 藪
+sign \x85EB 23456-345-3 藫
+sign \x85EC 23456-245-3 藬
+sign \x85ED 1235-236-3 藭
+sign \x85F6 123-1235-3 藶
+sign \x85F7 234-1456-3 藷
+sign \x85F8 1346-1456-3 藸
+sign \x85F9 126-1 藹
+sign \x85FA 123-234-2 藺
+sign \x85FB 14-1236-1 藻
+sign \x85FE 123-346-4 藾
+sign \x85FF 124-12456-5 藿
+sign \x8600 23456-12456-5
+sign \x8604 1235-125-3 蘄
+sign \x8605 125-1245-3 蘅
+sign \x8606 123-1236-3 蘆
+sign \x8607 234-1236 蘇
+sign \x860A 2456-1246-6 蘊
+sign \x860B 12346-356-3 蘋
+sign \x8611 134-135-3 蘑
+sign \x8616 23456-3
+sign \x8617 1234-13-5 蘗
+sign \x8618 245-25-3 蘘
+sign \x861A 234-256-1 蘚
+sign \x861E 123-235-6 蘞
+sign \x8620 1346-25-3 蘠
+sign \x8621 245-356 蘡
+sign \x8622 123-236-3 蘢
+sign \x8624 124-12 蘤
+sign \x8625 245-246-3 蘥
+sign \x8626 123-356-3 蘦
+sign \x8627 1235-245-3 蘧
+sign \x862D 123-45-3 蘭
+sign \x862E 13-146-4 蘮
+sign \x8632 123-245-3 蘲
+sign \x8635 14-1235 蘵
+sign \x8638 14-345-4 蘸
+sign \x8639 2456-346-3 蘹
+sign \x863A 123-125-3 蘺
+sign \x863C 134-125-3 蘼
+sign \x863E 2456-346-2 蘾
+sign \x863F 123-135-3 蘿
+sign \x8640 14-146 虀
+sign \x8646 123-245-3 虆
+sign \x8647 125-23-1 虇
+sign \x864B 134-2346-3 虋
+sign \x864C 1234-23456-5 虌
+sign \x864D 124-136 虍
+sign \x864E 124-136-1 虎
+sign \x8650 245-246-3 虐
+sign \x8652 234-24 虒
+sign \x8653 125-34 虓
+sign \x8654 1235-256-3 虔
+sign \x8655 1346-1456-4 處
+sign \x8656 124-136 虖
+sign \x8659 124-12345-3 虙
+sign \x865B 125-245 虛
+sign \x865C 123-1236-6 虜
+sign \x865E 1456-3 虞
+sign \x865F 125-1236-2 號
+sign \x8662 12345-1235 虢
+sign \x8663 1234-1236-2 虣
+sign \x8667 12456-146 虧
+sign \x8669 12345-1235 虩
+sign \x866B 1346-236-3 虫
+sign \x866E 13-125-1 虮
+sign \x866F 1235-16-3 虯
+sign \x8671 234-35 虱
+sign \x8679 125-236-3 虹
+sign \x867A 2456-146-1 虺
+sign \x867B 134-56-3 虻
+sign \x867C 13-35 虼
+sign \x868A 134-1246 蚊
+sign \x868B 245-245-2 蚋
+sign \x868C 12346-56-6 蚌
+sign \x868D 12346-125-3 蚍
+sign \x8693 245-1246-6 蚓
+sign \x8695 1346-345-3 蚕
+sign \x869C 1245-12-3 蚜
+sign \x869D 125-1236-3 蚝
+sign \x86A1 124-1246-3 蚡
+sign \x86A3 13-236 蚣
+sign \x86A4 14-1236-1 蚤
+sign \x86A7 13-346-4 蚧
+sign \x86A8 124-136-3 蚨
+sign \x86A9 1346-24 蚩
+sign \x86AA 2345-16-1 蚪
+sign \x86AF 245-16 蚯
+sign \x86B0 245-16-3 蚰
+sign \x86B1 14-12-4 蚱
+sign \x86B3 1346-24-3 蚳
+sign \x86B4 245-16-4 蚴
+sign \x86B5 125-135-1 蚵
+sign \x86B6 125-456 蚶
+sign \x86B7 13-245-2 蚷
+sign \x86BA 235-3 蚺
+sign \x86BB 14-2345-5 蚻
+sign \x86BF 256-3 蚿
+sign \x86C0 14-1456-4 蛀
+sign \x86C4 13-136 蛄
+sign \x86C6 14-245 蛆
+sign \x86C7 234-15-3 蛇
+sign \x86C9 123-356-3 蛉
+sign \x86CB 2345-45-2 蛋
+sign \x86CC 13-136-1 蛌
+sign \x86D0 1235-12345 蛐
+sign \x86D1 134-16-3 蛑
+sign \x86D4 1256-3 蛔
+sign \x86D8 245-25-3 蛘
+sign \x86D9 2456-12 蛙
+sign \x86DA 123-23456-3 蛚
+sign \x86DB 14-1456 蛛
+sign \x86DC 24-0 蛜
+sign \x86DE 1235-1356-5 蛞
+sign \x86DF 13-34 蛟
+sign \x86E1 1235-236-3
+sign \x86E4 13-26-5 蛤
+sign \x86E5 125-12
+sign \x86E9 1235-236-3 蛩
+sign \x86ED 14-35-3 蛭
+sign \x86F8 234-34 蛸
+sign \x86F9 245-236-1 蛹
+sign \x86FA 13-1234-5 蛺
+sign \x86FB 23456-245-4 蛻
+sign \x86FE 1245-135-3 蛾
+sign \x8700 234-12345-3 蜀
+sign \x8702 124-236 蜂
+sign \x8703 234-1246-6 蜃
+sign \x8706 125-256-1 蜆
+sign \x8707 14-23456-5 蜇
+sign \x8708 1245-3 蜈
+sign \x8709 124-16-3 蜉
+sign \x870A 123-125-3 蜊
+sign \x870B 123-56-3 蜋
+sign \x870D 1346-1456-3 蜍
+sign \x870E 23-0 蜎
+sign \x8711 2345-45-2 蜑
+sign \x8712 256-3 蜒
+sign \x8713 23456-356-3 蜓
+sign \x8718 14-24 蜘
+sign \x871A 124-125 蜚
+sign \x871C 134-35-3 蜜
+sign \x871E 1235-125-3 蜞
+sign \x8721 14-12-4 蜡
+sign \x8722 134-14-6 蜢
+sign \x8723 13-25 蜣
+sign \x8725 234-1235 蜥
+sign \x8728 2345-12346-3 蜨
+sign \x8729 23456-13456-3
+sign \x872E 2456-1235-3 蜮
+sign \x8730 124-125-3 蜰
+sign \x8731 12346-125-3 蜱
+sign \x8734 245-1235-3 蜴
+sign \x8737 13-23-1 蜷
+sign \x873A 1245-146-3 蜺
+sign \x873B 1346-356 蜻
+sign \x873E 12345-135-1 蜾
+sign \x873F 23-1 蜿
+sign \x8740 2345-236-4 蝀
+sign \x8742 1234-45-1 蝂
+sign \x8743 2345-146-4 蝃
+sign \x874C 124-135 蝌
+sign \x874D 14-1235 蝍
+sign \x874E 1235-23456-5 蝎
+sign \x8751 234-245 蝑
+sign \x8753 1456-3 蝓
+sign \x8754 13-346 蝔
+sign \x8755 234-1235-3 蝕
+sign \x8757 2456-56-3 蝗
+sign \x8758 256-1 蝘
+sign \x8759 12346-256 蝙
+sign \x875B 2456-146 蝛
+sign \x875D 23-3 蝝
+sign \x875F 2456-146-2 蝟
+sign \x8760 124-12345 蝠
+sign \x8761 1456-3 蝡
+sign \x8763 245-16-3 蝣
+sign \x8764 245-16-3 蝤
+sign \x8765 134-34-3 蝥
+sign \x8766 125-12 蝦
+sign \x8768 234-35 蝨
+sign \x876E 124-12345 蝮
+sign \x876F 23-3 蝯
+sign \x8774 136-3 蝴
+sign \x8776 2345-12346-3 蝶
+sign \x8778 2456-135 蝸
+sign \x877B 1345-345-3 蝻
+sign \x8782 123-56-3 螂
+sign \x8783 12346-56-3 螃
+sign \x8784 234-24 螄
+sign \x8785 234-1235 螅
+sign \x8786 14-24 螆
+sign \x8787 125-146-3 螇
+sign \x8788 23-3 螈
+sign \x8789 245-236 螉
+sign \x878D 245-236-3 融
+sign \x8793 1346-234-3 螓
+sign \x8796 123-1234-3
+sign \x8797 23456-56-3 螗
+sign \x8798 1245-146-6 螘
+sign \x879E 134-12-6 螞
+sign \x879F 134-12-3 螟
+sign \x87A2 245-356-3 螢
+sign \x87AB 234-1235 螫
+sign \x87AC 1346-1236-3 螬
+sign \x87AD 1346-24 螭
+sign \x87AE 2345-146-4 螮
+sign \x87AF 1245-1236-3 螯
+sign \x87B3 23456-56-3 螳
+sign \x87B5 12346-13456 螵
+sign \x87BA 123-135-1 螺
+sign \x87BB 123-16-3 螻
+sign \x87BD 14-236 螽
+sign \x87BE 245-1246-6 螾
+sign \x87BF 14-25 螿
+sign \x87C0 234-1346 蟀
+sign \x87C4 14-1235-3 蟄
+sign \x87C6 134-1236 蟆
+sign \x87C8 12345-12456-5
+sign \x87CA 134-1236-3 蟊
+sign \x87CB 234-1235 蟋
+sign \x87CE 134-2346-6 蟎
+sign \x87D1 14-25 蟑
+sign \x87D2 134-56-6 蟒
+sign \x87DB 12346-56-3 蟛
+sign \x87DC 13-13456-1 蟜
+sign \x87E0 12346-2346-3 蟠
+sign \x87E1 12346-2346-3
+sign \x87E2 125-125-1 蟢
+sign \x87E3 13-125 蟣
+sign \x87E4 13-125
+sign \x87E5 2456-56-3 蟥
+sign \x87E6 2456-56-3
+sign \x87E7 123-1236-3 蟧
+sign \x87E8 123-1236-3
+sign \x87EA 2456-146-2 蟪
+sign \x87EB 23456-345-3 蟫
+sign \x87EC 234-235-3 蟬
+sign \x87EF 13456-3 蟯
+sign \x87F2 1346-236-3 蟲
+sign \x87F4 234-24 蟴
+sign \x87F6 1346-356 蟶
+sign \x87F7 2345-56 蟷
+sign \x87F9 125-346-6 蟹
+sign \x87FA 234-256-2 蟺
+sign \x87FB 1245-146-6 蟻
+sign \x87FC 13-356-1 蟼
+sign \x87FE 234-235-3 蟾
+sign \x8801 125-25-4 蠁
+sign \x8803 123-135-1 蠃
+sign \x8804 1235-456-3 蠄
+sign \x8805 245-356-3 蠅
+sign \x8806 1346-346-4 蠆
+sign \x8809 125-23 蠉
+sign \x880A 123-235-3 蠊
+sign \x880B 14-12345 蠋
+sign \x880C 14-13-3 蠌
+sign \x880D 1235-23456-5 蠍
+sign \x8810 1346-146-3 蠐
+sign \x8811 2456-356-3 蠑
+sign \x8813 134-236-6 蠓
+sign \x8814 125-1236-3 蠔
+sign \x8815 1456-3 蠕
+sign \x8816 2456-12456-3 蠖
+sign \x8819 1234-1246 蠙
+sign \x881B 134-23456-3 蠛
+sign \x881C 124-45-2 蠜
+sign \x881F 123-1234-3 蠟
+sign \x8821 123-146-6 蠡
+sign \x8822 1346-234-1 蠢
+sign \x8823 123-146-2 蠣
+sign \x8826 123-1236-3 蠦
+sign \x8828 234-13456 蠨
+sign \x882A 123-236-3 蠪
+sign \x882D 124-236
+sign \x8831 13-136-1 蠱
+sign \x8832 13-23 蠲
+sign \x8835 12456-146-3 蠵
+sign \x8836 1346-345-3 蠶
+sign \x8837 124-12456-5 蠷
+sign \x8838 1235-23-3 蠸
+sign \x8839 2345-1236-4 蠹
+sign \x883B 134-45-3 蠻
+sign \x883C 124-12456-5 蠼
+sign \x883D 14-23456-3 蠽
+sign \x8840 125-12356-5 血
+sign \x8841 124-56 衁
+sign \x8843 124-16-3 衃
+sign \x8844 1345-12345-3 衄
+sign \x8845 245-1246-2
+sign \x8846 14-236-4
+sign \x8848 24-2 衈
+sign \x884A 134-23456-3 衊
+sign \x884B 234-1235 衋
+sign \x884C 125-1245-3 行
+sign \x884D 125-256-1 衍
+sign \x884F 23-1
+sign \x8852 23-3 衒
+sign \x8853 234-1346-3 術
+sign \x8855 23456-236-3 衕
+sign \x8856 125-56-2 衖
+sign \x8857 13-346 街
+sign \x8859 1245-12-3 衙
+sign \x885A 136-3 衚
+sign \x885B 2456-146-2 衛
+sign \x885D 1346-236 衝
+sign \x885E 2456-146-2 衞
+sign \x8861 125-1245-3 衡
+sign \x8862 1235-245-3 衢
+sign \x8863 24-0 衣
+sign \x8868 1234-13456-1 表
+sign \x8869 1346-12-4 衩
+sign \x886B 234-345 衫
+sign \x886D 124-136-4 衭
+sign \x8870 234-245 衰
+sign \x8872 1345-1234-3 衲
+sign \x8875 1345-1235 衵
+sign \x8877 1346-236 衷
+sign \x8879 14-24-1 衹
+sign \x887D 245-456-2 衽
+sign \x887E 1235-456 衾
+sign \x887F 1235-456 衿
+sign \x8881 23-3 袁
+sign \x8882 134-146-2 袂
+sign \x8888 13-12 袈
+sign \x888B 2345-126-2 袋
+sign \x888D 12346-1236-3 袍
+sign \x8892 23456-45-1 袒
+sign \x8896 14-16-2 袖
+sign \x8897 1346-1246-1 袗
+sign \x8899 12346-13-5 袙
+sign \x889A 124-35 袚
+sign \x889B 14-24-1 袛
+sign \x889E 12345-1246-1 袞
+sign \x88A2 12346-45-4 袢
+sign \x88A4 134-16-2 袤
+sign \x88AA 1235-245 袪
+sign \x88AB 1234-125-2 被
+sign \x88B1 124-12345-3 袱
+sign \x88B2 24-3 袲
+sign \x88B4 124-136-4
+sign \x88B5 245-456-2
+sign \x88B7 13-1234-5 袷
+sign \x88BA 13-23456-5 袺
+sign \x88BC 13-12456-5 袼
+sign \x88BD 1456-3 袽
+sign \x88BE 14-1456 袾
+sign \x88C0 245-1246 裀
+sign \x88C1 1346-126-3 裁
+sign \x88C2 123-23456-3 裂
+sign \x88C5 14-56
+sign \x88C7 234-1346 裇
+sign \x88C9 1235-1245-4 裉
+sign \x88CA 1345-13456-6 裊
+sign \x88CC 13-1234-5 裌
+sign \x88CE 1346-356-3 裎
+sign \x88CF 123-245-6 裏
+sign \x88D2 12346-1236-3 裒
+sign \x88D4 245-245-2 裔
+sign \x88D5 1456-2 裕
+sign \x88D8 1235-16-3 裘
+sign \x88D9 12456-1246-3 裙
+sign \x88DB 245-26 裛
+sign \x88DC 1234-1236-1 補
+sign \x88DD 14-56 裝
+sign \x88DF 234-12 裟
+sign \x88E1 123-245-6 裡
+sign \x88E8 1234-125 裨
+sign \x88E9 12346-125-3
+sign \x88EF 1346-16-3 裯
+sign \x88F0 14-12356-5 裰
+sign \x88F1 1234-13456-1 裱
+sign \x88F2 123-25-6 裲
+sign \x88F3 234-25-3 裳
+sign \x88F4 12346-1256-3 裴
+sign \x88F8 123-135-1 裸
+sign \x88F9 12345-135-1 裹
+sign \x88FC 234-1235-5 裼
+sign \x88FD 14-146-4 製
+sign \x88FE 13-245 裾
+sign \x8902 12456-12-1 褂
+sign \x8907 124-12345 複
+sign \x890A 12346-256-1 褊
+sign \x890C 12345-1246 褌
+sign \x890E 14-16-2 褎
+sign \x8910 125-124-5 褐
+sign \x8912 1234-1236 褒
+sign \x8913 1234-1236-1 褓
+sign \x8914 124-12345
+sign \x8915 1456-3 褕
+sign \x8918 124-146 褘
+sign \x8919 1234-1256-4 褙
+sign \x891A 1346-1456-1 褚
+sign \x891E 2456-1246 褞
+sign \x891F 23456-1234-5 褟
+sign \x8921 2345-1234-5 褡
+sign \x8922 2456-346-3 褢
+sign \x8925 245-12345-3 褥
+sign \x8926 123-15-6 褦
+sign \x8927 12345-356-1 褧
+sign \x892A 23456-245-4 褪
+sign \x892B 1346-24-1 褫
+sign \x892D 1345-13456-6 褭
+sign \x892F 14-1235-3 褯
+sign \x8930 125-256 褰
+sign \x8931 2456-346-3 褱
+sign \x8932 124-136-4 褲
+sign \x8933 123-256-3 褳
+sign \x8935 123-125-3 褵
+sign \x8936 14-12346-5 褶
+sign \x8938 123-16 褸
+sign \x893B 234-23456-5 褻
+sign \x893C 234-256 褼
+sign \x893D 2456-146-4 褽
+sign \x893E 1234-13456-1 褾
+sign \x8941 1235-25-6 襁
+sign \x8943 1234-1236 襃
+sign \x8944 234-25 襄
+sign \x8946 124-12345-3 襆
+sign \x8949 13-45-1 襉
+sign \x894C 2345-45 襌
+sign \x894F 1234-1356-3 襏
+sign \x8956 1236-4 襖
+sign \x895A 234-245-2 襚
+sign \x895B 1345-236-3 襛
+sign \x895C 14-235 襜
+sign \x895D 123-235-6 襝
+sign \x895E 1234-1235 襞
+sign \x895F 1235-456 襟
+sign \x8960 123-56-2 襠
+sign \x8962 23456-45-1 襢
+sign \x8964 123-345-3 襤
+sign \x8966 1456-3 襦
+sign \x896A 134-35-3 襪
+sign \x896C 1234-346-1 襬
+sign \x896D 1235-23456-5 襭
+sign \x896E 1234-12456-5 襮
+sign \x896F 1346-1246-4 襯
+sign \x8971 123-236-3 襱
+sign \x8972 14-1234-3 襲
+sign \x8973 1346-235 襳
+sign \x8974 123-45-3 襴
+sign \x8976 2345-15-1 襶
+sign \x8979 234-24-1 襹
+sign \x897B 12346-45-4 襻
+sign \x897C 134-146-4 襼
+sign \x897E 123-25-1
+sign \x897F 234-146 西
+sign \x8981 13456-4 要
+sign \x8982 124-236-4 覂
+sign \x8983 23456-345-3 覃
+sign \x8986 124-12345 覆
+sign \x8988 125-35-3 覈
+sign \x898A 13-125
+sign \x898B 13-256-4 見
+sign \x898F 12456-146 規
+sign \x8993 134-1235-3 覓
+sign \x8996 234-24-2 視
+sign \x8997 14-24-2 覗
+sign \x8998 14-235 覘
+sign \x899C 23456-13456-4
+sign \x89A1 125-35-3 覡
+sign \x89A6 1456-3 覦
+sign \x89AA 1346-1246 親
+sign \x89AC 13-125-4 覬
+sign \x89AF 13-16-4 覯
+sign \x89B2 13-1246-2 覲
+sign \x89B6 123-135-3 覶
+sign \x89B7 1346-245-4 覷
+sign \x89BA 13-12456-5 覺
+sign \x89BD 123-345-6 覽
+sign \x89BF 2345-1235-3 覿
+sign \x89C0 13-2346 觀
+sign \x89D2 13-12456-5 角
+sign \x89D3 1235-16-3 觓
+sign \x89D4 13-1246 觔
+sign \x89D5 1346-1236 觕
+sign \x89D6 1235-12356-5 觖
+sign \x89DA 13-136 觚
+sign \x89DC 14-24 觜
+sign \x89DD 2345-146-1 觝
+sign \x89E1 1235-16-3
+sign \x89E3 13-346-1 解
+sign \x89E4 125-346-2
+sign \x89E5 12345-1245 觥
+sign \x89E6 14-12345 触
+sign \x89E7 14-12345
+sign \x89E9 1235-16-3 觩
+sign \x89EB 1346-12345 觫
+sign \x89ED 13-125 觭
+sign \x89F0 14-12 觰
+sign \x89F1 1234-23456 觱
+sign \x89F3 125-12345-3 觳
+sign \x89F4 234-25 觴
+sign \x89F6 24-4 觶
+sign \x89F7 125-12456-3 觷
+sign \x89F8 14-12345 觸
+sign \x89FA 24-3 觺
+sign \x89FC 1346-45-4 觼
+sign \x89FF 12456-146-3 觿
+sign \x8A00 256-3 言
+sign \x8A02 2345-356-4 訂
+sign \x8A03 124-136-2 訃
+sign \x8A04 1235-16-3 訄
+sign \x8A07 12345-1245 訇
+sign \x8A08 13-146-4 計
+sign \x8A0A 234-234-4 訊
+sign \x8A0C 125-236-4 訌
+sign \x8A0E 23456-1236-1 討
+sign \x8A0F 125-245 訏
+sign \x8A10 1235-23456-3 訐
+sign \x8A11 24-3 訑
+sign \x8A12 245-1246-2 訒
+sign \x8A13 124-1246-4 訓
+sign \x8A15 234-45-4 訕
+sign \x8A16 1245-35-3 訖
+sign \x8A17 23456-12456-5
+sign \x8A18 13-125-4 記
+sign \x8A1B 1245-135-3 訛
+sign \x8A1D 1245-12-2 訝
+sign \x8A1F 14-236-2 訟
+sign \x8A22 245-1246 訢
+sign \x8A23 1235-12356-5 訣
+sign \x8A25 1345-1234-3 訥
+sign \x8A27 245-16-3 訧
+sign \x8A2A 124-56-1 訪
+sign \x8A2C 1346-34-1 訬
+sign \x8A2D 1346-23456-5 設
+sign \x8A31 125-245-1 許
+sign \x8A34 234-1236-4 訴
+sign \x8A36 125-135 訶
+sign \x8A39 14-1346 訹
+sign \x8A3A 1346-1246-1 診
+sign \x8A3B 14-1456-4 註
+sign \x8A3C 14-356-4 証
+sign \x8A3E 14-24-1 訾
+sign \x8A40 14-235 詀
+sign \x8A41 13-136-1 詁
+sign \x8A45 123-356-3 詅
+sign \x8A46 2345-146-1 詆
+sign \x8A48 123-125-2 詈
+sign \x8A4E 13-245-2 詎
+sign \x8A4F 34-1 詏
+sign \x8A50 14-12-4 詐
+sign \x8A52 24-3 詒
+sign \x8A54 14-13456-2 詔
+sign \x8A55 12346-356-3 評
+sign \x8A56 1234-125-4 詖
+sign \x8A57 12345-356-1 詗
+sign \x8A58 2456-35 詘
+sign \x8A5B 14-135-4 詛
+sign \x8A5E 1346-24-3 詞
+sign \x8A60 2456-356-2 詠
+sign \x8A61 125-245-1 詡
+sign \x8A62 234-234 詢
+sign \x8A63 1245-146-2 詣
+sign \x8A66 234-24-4 試
+sign \x8A68 13-34 詨
+sign \x8A69 234-24 詩
+sign \x8A6B 1346-12-4 詫
+sign \x8A6C 13-16-4 詬
+sign \x8A6D 12345-146-1 詭
+sign \x8A6E 1346-23-3 詮
+sign \x8A70 1235-23456-5 詰
+sign \x8A71 2456-12-2 話
+sign \x8A72 13-126 該
+sign \x8A73 1346-25-3 詳
+sign \x8A75 234-1246 詵
+sign \x8A76 1346-16-3 詶
+sign \x8A79 14-235 詹
+sign \x8A7B 1245-13-3 詻
+sign \x8A7C 124-1256 詼
+sign \x8A7F 12345-12-4 詿
+sign \x8A82 23456-13456-6
+sign \x8A84 123-126-2 誄
+sign \x8A85 14-1456 誅
+sign \x8A86 125-56 誆
+sign \x8A87 12456-12 誇
+sign \x8A8C 14-24-4 誌
+sign \x8A8D 245-356-2 認
+sign \x8A91 1235-56-3 誑
+sign \x8A92 15-0 誒
+sign \x8A93 234-146-2 誓
+sign \x8A95 2345-45-4 誕
+sign \x8A96 1234-1256-2 誖
+sign \x8A98 245-16-6 誘
+sign \x8A9A 1346-13456-4 誚
+sign \x8A9E 1456-6 語
+sign \x8AA0 234-356-3 誠
+sign \x8AA1 13-346-4 誡
+sign \x8AA3 134-1236-3 誣
+sign \x8AA4 1245-2 誤
+sign \x8AA5 13-1236-4 誥
+sign \x8AA6 14-236-2 誦
+sign \x8AA8 124-1256-4 誨
+sign \x8AAA 234-12356-5 說
+sign \x8AB0 234-245-3 誰
+sign \x8AB2 124-135-4 課
+sign \x8AB6 234-245-2 誶
+sign \x8AB9 124-125-1 誹
+sign \x8ABB 2345-1234-3 誻
+sign \x8ABC 24-3 誼
+sign \x8ABF 2345-13456-2
+sign \x8AC2 1346-235-1 諂
+sign \x8AC4 14-234 諄
+sign \x8AC6 125-125 諆
+sign \x8AC7 23456-345-3 談
+sign \x8AC8 14-245-2 諈
+sign \x8AC9 2456-146-1 諉
+sign \x8ACB 1346-356-1 請
+sign \x8ACD 14-14-4 諍
+sign \x8ACF 14-16 諏
+sign \x8AD1 2345-246-5 諑
+sign \x8AD2 123-25-2 諒
+sign \x8AD3 14-256-4 諓
+sign \x8AD4 1346-12345 諔
+sign \x8AD5 125-13-5 諕
+sign \x8AD6 123-234-2 論
+sign \x8AD7 1345-456-1 諗
+sign \x8ADB 1456-3 諛
+sign \x8ADC 2345-12346-3 諜
+sign \x8ADD 234-245 諝
+sign \x8ADE 12346-256-3 諞
+sign \x8ADF 234-24-2 諟
+sign \x8AE0 125-23 諠
+sign \x8AE1 234-24-4 諡
+sign \x8AE2 2456-1246-2 諢
+sign \x8AE4 1245-12456-3 諤
+sign \x8AE6 2345-146-4 諦
+sign \x8AE7 125-346-3 諧
+sign \x8AEB 13-45-4 諫
+sign \x8AED 1456-2 諭
+sign \x8AEE 14-24 諮
+sign \x8AF0 234-346-1 諰
+sign \x8AF1 2456-146-6 諱
+sign \x8AF2 245-1246 諲
+sign \x8AF3 456-0 諳
+sign \x8AF4 125-345-3 諴
+sign \x8AF5 1345-345-3 諵
+sign \x8AF6 234-456-3 諶
+sign \x8AF7 124-236-4 諷
+sign \x8AF8 14-1456 諸
+sign \x8AFA 256-2 諺
+sign \x8AFC 125-23 諼
+sign \x8AFE 1345-12456-3 諾
+sign \x8B00 134-16-3 謀
+sign \x8B01 23456-5 謁
+sign \x8B02 2456-146-2 謂
+sign \x8B04 23456-1245-3 謄
+sign \x8B05 14-16 謅
+sign \x8B06 234-256-4 謆
+sign \x8B07 13-256-1 謇
+sign \x8B0A 124-56 謊
+sign \x8B0B 2456-13-3 謋
+sign \x8B0E 134-146-3 謎
+sign \x8B0F 234-16-1 謏
+sign \x8B10 134-35-3 謐
+sign \x8B12 1346-25 謒
+sign \x8B14 245-246-3 謔
+sign \x8B16 234-12345 謖
+sign \x8B17 12346-56-4 謗
+sign \x8B19 125-235 謙
+sign \x8B1A 234-24-4 謚
+sign \x8B1B 13-56-1 講
+sign \x8B1D 14-15-2 謝
+sign \x8B1F 23456-1236
+sign \x8B20 13456-3 謠
+sign \x8B22 136-2
+sign \x8B26 125-356-4 謦
+sign \x8B28 134-1236-3 謨
+sign \x8B2A 234-25 謪
+sign \x8B2B 14-13-3 謫
+sign \x8B2C 134-16-2 謬
+sign \x8B33 16-0 謳
+sign \x8B37 1245-1236-3 謷
+sign \x8B39 13-1246-1 謹
+sign \x8B3C 124-136 謼
+sign \x8B3E 134-45-2 謾
+sign \x8B3F 14-16
+sign \x8B41 2456-12 譁
+sign \x8B45 234-26 譅
+sign \x8B46 125-125 譆
+sign \x8B48 2345-245-2 譈
+sign \x8B49 14-356-4 證
+sign \x8B4A 1345-34-3 譊
+sign \x8B4E 1235-12356-5 譎
+sign \x8B4F 13-125 譏
+sign \x8B52 1234-135-4 譒
+sign \x8B53 2456-146-2 譓
+sign \x8B54 14-45-2 譔
+sign \x8B56 14-456-4 譖
+sign \x8B58 234-1235 識
+sign \x8B59 1346-13456-3 譙
+sign \x8B5A 23456-345-3 譚
+sign \x8B5C 12346-1236-1 譜
+sign \x8B5F 1346-1236-4 譟
+sign \x8B66 13-356-1 警
+sign \x8B68 1345-16-1 譨
+sign \x8B69 24-0
+sign \x8B6A 126-1 譪
+sign \x8B6B 14-235 譫
+sign \x8B6C 12346-125-4 譬
+sign \x8B6D 2456-146-1 譭
+sign \x8B6F 245-1235-3 譯
+sign \x8B70 24-6 議
+sign \x8B74 125-256-1 譴
+sign \x8B77 136-2 護
+sign \x8B78 14-16 譸
+sign \x8B7A 245-1235-3 譺
+sign \x8B7D 1456-2 譽
+sign \x8B7E 14-256-1 譾
+sign \x8B80 2345-12345-3 讀
+sign \x8B85 234-456-1 讅
+sign \x8B86 1245-146-2 讆
+sign \x8B8A 1234-256-4 變
+sign \x8B8B 14-23456-5 讋
+sign \x8B8C 256-4 讌
+sign \x8B8E 1346-16-3 讎
+sign \x8B92 1346-345-3 讒
+sign \x8B93 245-25-2 讓
+sign \x8B94 245-1246-1 讔
+sign \x8B95 123-45-3 讕
+sign \x8B96 1346-345-4 讖
+sign \x8B98 14-12346-5 讘
+sign \x8B99 124-2346 讙
+sign \x8B9A 14-45-4 讚
+sign \x8B9C 2345-56-1 讜
+sign \x8B9E 256-2 讞
+sign \x8B9F 2345-12345-3 讟
+sign \x8C37 13-12345 谷
+sign \x8C39 2456-1245-3 谹
+sign \x8C3D 125-456-3 谽
+sign \x8C3F 1235-146 谿
+sign \x8C41 1235-1356-5 豁
+sign \x8C42 123-12345-3 豂
+sign \x8C46 2345-16-2 豆
+sign \x8C47 13-56 豇
+sign \x8C48 125-125-1 豈
+sign \x8C49 234-24-2 豉
+sign \x8C4C 2346-1 豌
+sign \x8C4E 234-1456-2 豎
+sign \x8C4F 125-256-4 豏
+sign \x8C50 124-236 豐
+sign \x8C54 235-2 豔
+sign \x8C55 1346-24-1 豕
+sign \x8C57 124-1256 豗
+sign \x8C5A 23456-23-3 豚
+sign \x8C5C 13-256 豜
+sign \x8C5D 1234-12 豝
+sign \x8C61 14-25-2 象
+sign \x8C62 2456-45-2 豢
+sign \x8C66 1235-245-3 豦
+sign \x8C68 125-125 豨
+sign \x8C6A 125-1236-3 豪
+sign \x8C6B 1456-2 豫
+sign \x8C6C 14-1456 豬
+sign \x8C6D 13-12 豭
+sign \x8C73 1234-1246 豳
+sign \x8C75 14-236 豵
+sign \x8C76 124-1246-3 豶
+sign \x8C77 24-4 豷
+sign \x8C78 14-24-2 豸
+sign \x8C79 12346-34-4 豹
+sign \x8C7A 1346-346-3 豺
+sign \x8C7B 1245-1345-2 豻
+sign \x8C82 2345-13456 貂
+sign \x8C85 245-16 貅
+sign \x8C86 2346-3 貆
+sign \x8C89 123-12456-3 貉
+sign \x8C8A 134-46-3 貊
+sign \x8C8C 134-34-2 貌
+sign \x8C8D 123-125-3 貍
+sign \x8C90 1456-6 貐
+sign \x8C92 23456-234 貒
+sign \x8C93 134-34 貓
+sign \x8C94 12346-125-3 貔
+sign \x8C95 125-146-3 貕
+sign \x8C98 134-12456-3 貘
+sign \x8C99 1235-245 貙
+sign \x8C9C 124-12456-5 貜
+sign \x8C9D 1234-1256-4 貝
+sign \x8C9E 14-356 貞
+sign \x8CA0 124-136-2 負
+sign \x8CA1 1346-126-3 財
+sign \x8CA2 13-236-4 貢
+sign \x8CA4 24-3 貤
+sign \x8CA7 12346-1246-3 貧
+sign \x8CA8 124-135-4 貨
+sign \x8CA9 124-45-4 販
+sign \x8CAA 23456-345 貪
+sign \x8CAB 13-2346-4 貫
+sign \x8CAC 14-13-5 責
+sign \x8CAF 1346-1456-6 貯
+sign \x8CB0 234-146-4 貰
+sign \x8CB2 14-24 貲
+sign \x8CB3 24-2 貳
+sign \x8CB4 12345-146-4 貴
+sign \x8CB6 1234-256-1 貶
+sign \x8CB7 134-346-6 買
+sign \x8CB8 23456-346-4 貸
+sign \x8CBA 124-56-4 貺
+sign \x8CBB 124-146-4 費
+sign \x8CBC 23456-12346
+sign \x8CBD 24-3 貽
+sign \x8CBF 134-16-2 貿
+sign \x8CC0 125-135-2 賀
+sign \x8CC1 1234-125-4 賁
+sign \x8CC2 123-1236-2 賂
+sign \x8CC3 245-456-2 賃
+sign \x8CC4 1235-1256-1 賄
+sign \x8CC5 13-126 賅
+sign \x8CC7 14-24 資
+sign \x8CC8 13-136-1 賈
+sign \x8CCA 1346-13-3 賊
+sign \x8CD1 14-1246-4 賑
+sign \x8CD2 234-15 賒
+sign \x8CD3 1234-1246 賓
+sign \x8CD5 1235-16-3 賕
+sign \x8CD9 14-16 賙
+sign \x8CDA 123-126-2 賚
+sign \x8CDC 1346-24-4 賜
+sign \x8CDE 234-25-1 賞
+sign \x8CE0 12346-1256-3 賠
+sign \x8CE1 13-1245 賡
+sign \x8CE2 256-3 賢
+sign \x8CE3 134-346-2 賣
+sign \x8CE4 14-256-2 賤
+sign \x8CE6 124-136-4 賦
+sign \x8CE7 23456-345-2 賧
+sign \x8CE8 1346-236-2 賨
+sign \x8CEA 14-35 質
+sign \x8CEC 14-25-4 賬
+sign \x8CED 2345-1236-1 賭
+sign \x8CEE 14-234-1 賮
+sign \x8CF0 1346-234-1 賰
+sign \x8CF4 123-346-2 賴
+sign \x8CF5 124-236-4 賵
+sign \x8CF8 23456-1245-3 賸
+sign \x8CFA 14-45-2 賺
+sign \x8CFB 124-136-2 賻
+sign \x8CFC 1235-16-4 購
+sign \x8CFD 1346-126-4 賽
+sign \x8CFE 14-13-5 賾
+sign \x8D03 14-45-4
+sign \x8D04 14-24-4 贄
+sign \x8D05 14-245-2 贅
+sign \x8D07 2456-1246 贇
+sign \x8D08 14-1245-2 贈
+sign \x8D09 23456-345-6 贉
+sign \x8D0A 14-45-4 贊
+sign \x8D0B 1245-45-2 贋
+sign \x8D0D 234-256-2 贍
+sign \x8D0F 245-2356-3 贏
+sign \x8D10 14-234-2 贐
+sign \x8D11 13-345-4
+sign \x8D13 14-56 贓
+sign \x8D14 1234-125-2 贔
+sign \x8D16 234-12345-3 贖
+sign \x8D17 1245-45-2 贗
+sign \x8D1B 13-345-4 贛
+sign \x8D64 1346-2456-5 赤
+sign \x8D66 234-15-4 赦
+sign \x8D67 1345-45-6 赧
+sign \x8D69 234-1235 赩
+sign \x8D6B 125-13 赫
+sign \x8D6C 1346-356 赬
+sign \x8D6D 14-15-1 赭
+sign \x8D6F 23456-56-3 赯
+sign \x8D70 14-16-1 走
+sign \x8D73 2345-16-1 赳
+sign \x8D74 124-136-2 赴
+sign \x8D76 13-1345-1 赶
+sign \x8D77 125-125-1 起
+sign \x8D78 234-45-4 赸
+sign \x8D81 1346-1246-4 趁
+sign \x8D84 14-245 趄
+sign \x8D85 1346-13456 超
+sign \x8D8A 12356-3 越
+sign \x8D8D 1346-245 趍
+sign \x8D8E 14-1456 趎
+sign \x8D91 14-24 趑
+sign \x8D94 123-23456-3 趔
+sign \x8D95 13-1345-1 趕
+sign \x8D96 234-135 趖
+sign \x8D99 14-13456-2 趙
+sign \x8D9F 23456-56-4 趟
+sign \x8DA0 1346-246-5 趠
+sign \x8DA3 1346-245-4 趣
+sign \x8DA8 1346-245 趨
+sign \x8DAB 1235-13456-3 趫
+sign \x8DAC 125-13456 趬
+sign \x8DAE 1346-1236-4 趮
+sign \x8DAF 23456-1235 趯
+sign \x8DB2 14-45-1 趲
+sign \x8DB3 14-12345 足
+sign \x8DB4 12346-12 趴
+sign \x8DB5 12346-34-4 趵
+sign \x8DB7 13-35-3 趷
+sign \x8DB9 1235-12356-5 趹
+sign \x8DBA 124-136 趺
+sign \x8DBC 13-256-1 趼
+sign \x8DBE 14-24-1 趾
+sign \x8DBF 23456-2345-5 趿
+sign \x8DC1 12346-12 跁
+sign \x8DC2 1235-125-3 跂
+sign \x8DC5 23456-12456-5
+sign \x8DC6 23456-126-3 跆
+sign \x8DCB 1234-35-3 跋
+sign \x8DCC 2345-23456-5 跌
+sign \x8DCE 23456-135-3 跎
+sign \x8DCF 13-12 跏
+sign \x8DD0 1346-24-1 跐
+sign \x8DD1 12346-34-1 跑
+sign \x8DD5 2345-235-4 跕
+sign \x8DD6 14-2456-5 跖
+sign \x8DD7 124-136 跗
+sign \x8DD9 14-245 跙
+sign \x8DDA 234-45 跚
+sign \x8DDB 12346-135-1 跛
+sign \x8DDD 1235-245-6 距
+sign \x8DDF 13-1246 跟
+sign \x8DE1 14-1235 跡
+sign \x8DE3 234-256-1 跣
+sign \x8DE4 13-34 跤
+sign \x8DE6 14-1456 跦
+sign \x8DE8 12456-12 跨
+sign \x8DE9 245-146-2 跩
+sign \x8DEA 12345-146-2 跪
+sign \x8DEB 1235-236-3 跫
+sign \x8DEC 12456-146-1 跬
+sign \x8DEE 14-24-4 跮
+sign \x8DEF 123-1236-2 路
+sign \x8DF2 13-1234-5 跲
+sign \x8DF3 23456-13456-4
+sign \x8DF4 1346-346-1 跴
+sign \x8DFA 2345-135-1 跺
+sign \x8DFC 13-12345-3 跼
+sign \x8DFD 13-125-2 跽
+sign \x8E01 1235-245
+sign \x8E02 136-3
+sign \x8E04 1346-24-1
+sign \x8E05 1346-12356-5 踅
+sign \x8E06 234-234 踆
+sign \x8E09 123-56-3 踉
+sign \x8E0A 245-236-1 踊
+sign \x8E0E 134-16 踎
+sign \x8E0F 2345-1234-3 踏
+sign \x8E10 1346-256-6 踐
+sign \x8E12 2456-135 踒
+sign \x8E14 1346-246-5 踔
+sign \x8E15 14-23456-3 踕
+sign \x8E16 14-1235 踖
+sign \x8E18 13-12345 踘
+sign \x8E1D 2456-12-6 踝
+sign \x8E1E 13-245-4 踞
+sign \x8E1F 1346-24-3 踟
+sign \x8E21 1235-23-3 踡
+sign \x8E22 23456-2456-5 踢
+sign \x8E23 1234-13-3 踣
+sign \x8E25 1346-12346-5 踥
+sign \x8E26 13-125-1 踦
+sign \x8E27 1346-12345 踧
+sign \x8E29 1346-346-1 踩
+sign \x8E2A 14-236
+sign \x8E2B 12346-236-4
+sign \x8E2D 14-14 踭
+sign \x8E2E 2345-235-1 踮
+sign \x8E30 1456-3 踰
+sign \x8E31 2345-12456-3 踱
+sign \x8E33 1346-23-1 踳
+sign \x8E34 245-236-1 踴
+sign \x8E35 14-236-1 踵
+sign \x8E36 2345-146-2 踶
+sign \x8E38 1346-456-1 踸
+sign \x8E39 1346-346-1 踹
+sign \x8E3D 13-245-1 踽
+sign \x8E40 2345-12346-3 蹀
+sign \x8E41 12346-256 蹁
+sign \x8E42 245-16-3 蹂
+sign \x8E44 23456-146-3 蹄
+sign \x8E45 1346-12 蹅
+sign \x8E47 13-256-1 蹇
+sign \x8E48 2345-1236-2 蹈
+sign \x8E49 1346-135 蹉
+sign \x8E4A 1235-146 蹊
+sign \x8E4B 23456-2345-5 蹋
+sign \x8E4C 1346-56 蹌
+sign \x8E4D 14-256-1 蹍
+sign \x8E4E 2345-256 蹎
+sign \x8E50 14-2456-5 蹐
+sign \x8E54 14-345-2 蹔
+sign \x8E55 1234-35 蹕
+sign \x8E59 1346-12345 蹙
+sign \x8E5A 23456-56-1 蹚
+sign \x8E5D 234-346-1 蹝
+sign \x8E5F 14-1235 蹟
+sign \x8E60 14-1235-5 蹠
+sign \x8E61 1346-25 蹡
+sign \x8E62 14-13-3 蹢
+sign \x8E63 134-2346-3 蹣
+sign \x8E64 14-236 蹤
+sign \x8E66 1234-1245 蹦
+sign \x8E67 14-1236 蹧
+sign \x8E69 1234-23456-3 蹩
+sign \x8E6C 2345-1245-2 蹬
+sign \x8E6D 234-1245-4 蹭
+sign \x8E6F 124-45-3 蹯
+sign \x8E72 2345-234 蹲
+sign \x8E74 1346-12345 蹴
+sign \x8E76 1235-12356-5 蹶
+sign \x8E7A 1235-13456-1 蹺
+sign \x8E7B 1235-13456-4 蹻
+sign \x8E7C 12346-12456-5
+sign \x8E7E 2345-1246-4 蹾
+sign \x8E80 12345-45-4 躀
+sign \x8E81 1346-1236-4 躁
+sign \x8E82 2345-2345-3 躂
+sign \x8E84 1234-1235 躄
+sign \x8E85 14-12345-3 躅
+sign \x8E87 1346-1456-3 躇
+sign \x8E89 2345-1246-1 躉
+sign \x8E8A 1346-16-3 躊
+sign \x8E8B 14-146 躋
+sign \x8E8D 245-246-5 躍
+sign \x8E90 123-12346-3 躐
+sign \x8E91 14-13-3 躑
+sign \x8E92 123-12456-3 躒
+sign \x8E93 14-24-4 躓
+sign \x8E95 1346-1456-3 躕
+sign \x8E98 123-236-3 躘
+sign \x8E9A 1346-256 躚
+sign \x8E9D 123-45-3 躝
+sign \x8E9E 1346-12346-5 躞
+sign \x8E9F 1345-56-6 躟
+sign \x8EA0 234-23456-5 躠
+sign \x8EA1 1345-12346-3 躡
+sign \x8EA5 1346-23 躥
+sign \x8EA6 14-23 躦
+sign \x8EA9 124-12456-5 躩
+sign \x8EAA 123-234-2 躪
+sign \x8EAB 234-1246 身
+sign \x8EAC 13-236 躬
+sign \x8EB2 2345-135-1 躲
+sign \x8EB6 123-135-1
+sign \x8EBA 23456-56-1 躺
+sign \x8EC0 1235-245 軀
+sign \x8ECA 1346-15 車
+sign \x8ECB 14-2345-5 軋
+sign \x8ECC 12345-146-1 軌
+sign \x8ECD 12345-1246 軍
+sign \x8ECF 12356-3 軏
+sign \x8ED1 2345-146-2 軑
+sign \x8ED2 125-256 軒
+sign \x8ED3 124-45-3 軓
+sign \x8ED4 245-1246-2 軔
+sign \x8ED7 13-12345 軗
+sign \x8ED8 23456-23-3 軘
+sign \x8EDA 23456-346-6 軚
+sign \x8EDB 13-0 軛
+sign \x8EDC 1345-1234-3 軜
+sign \x8EDF 23-6 軟
+sign \x8EE5 1235-245-3 軥
+sign \x8EE8 123-356-3 軨
+sign \x8EEB 14-1246-1 軫
+sign \x8EEC 124-45-2 軬
+sign \x8EF2 13-136 軲
+sign \x8EF6 13-0 軶
+sign \x8EF8 14-12345-3 軸
+sign \x8EF9 14-24-1 軹
+sign \x8EFA 13456-3 軺
+sign \x8EFB 135-0 軻
+sign \x8EFC 245-35-3 軼
+sign \x8EFE 234-1235 軾
+sign \x8EFF 12346-356-3 軿
+sign \x8F00 24-3 輀
+sign \x8F02 13-12345 輂
+sign \x8F03 13-34-4 較
+sign \x8F05 123-1236-2 輅
+sign \x8F07 1346-23-3 輇
+sign \x8F08 14-16 輈
+sign \x8F09 14-126-4 載
+sign \x8F0A 14-24-4 輊
+sign \x8F0B 1346-15-3
+sign \x8F12 14-12346-5 輒
+sign \x8F13 2456-45-6 輓
+sign \x8F14 124-136-2 輔
+sign \x8F15 125-356 輕
+sign \x8F16 14-16 輖
+sign \x8F17 1245-146-3 輗
+sign \x8F18 123-356-3 輘
+sign \x8F19 14-12346-5
+sign \x8F1A 14-45-2 輚
+sign \x8F1B 123-25-2 輛
+sign \x8F1C 14-24 輜
+sign \x8F1D 124-146 輝
+sign \x8F1E 134-56-6 輞
+sign \x8F1F 14-12356-5 輟
+sign \x8F20 12345-135-1 輠
+sign \x8F25 12345-1246-1 輥
+sign \x8F26 123-256-6 輦
+sign \x8F29 1234-1256-4 輩
+sign \x8F2A 123-234-3 輪
+sign \x8F2C 123-25-3 輬
+sign \x8F2E 245-16-3 輮
+sign \x8F2F 1346-26 輯
+sign \x8F33 1346-16-4 輳
+sign \x8F35 13-124-5 輵
+sign \x8F36 245-16-3 輶
+sign \x8F37 12345-1245 輷
+sign \x8F38 234-1456 輸
+sign \x8F39 124-12345 輹
+sign \x8F3B 124-12345 輻
+sign \x8F3E 14-256-1 輾
+sign \x8F3F 1456-3 輿
+sign \x8F40 2456-1246 轀
+sign \x8F42 13-12345 轂
+sign \x8F44 125-35-3 轄
+sign \x8F45 23-3 轅
+sign \x8F46 123-12345 轆
+sign \x8F47 13-34 轇
+sign \x8F49 14-23-4 轉
+sign \x8F4D 1346-23456-5 轍
+sign \x8F4E 13-13456-1 轎
+sign \x8F50 12346-12456-5
+sign \x8F51 123-1236-6 轑
+sign \x8F54 123-234-3 轔
+sign \x8F55 13-124-5 轕
+sign \x8F56 234-1235 轖
+sign \x8F57 125-456-1 轗
+sign \x8F58 2456-45-2 轘
+sign \x8F59 1245-146-6 轙
+sign \x8F5B 2345-245-4 轛
+sign \x8F5D 1456-3 轝
+sign \x8F5F 12345-1245 轟
+sign \x8F61 1234-125-4 轡
+sign \x8F62 123-1235 轢
+sign \x8F63 123-1235-3 轣
+sign \x8F64 123-1236-3 轤
+sign \x8F9B 234-1246 辛
+sign \x8F9C 13-136 辜
+sign \x8F9F 12346-1235 辟
+sign \x8FA3 123-2345-3 辣
+sign \x8FA6 1234-45-2 辦
+sign \x8FA8 1234-256-2 辨
+sign \x8FAD 1346-24-3 辭
+sign \x8FAE 1234-256 辮
+sign \x8FAF 1234-256-2 辯
+sign \x8FB0 234-1246-3 辰
+sign \x8FB1 245-12345-3 辱
+sign \x8FB2 1345-236-3 農
+sign \x8FB4 1346-1246-1 辴
+sign \x8FBF 1346-345 辿
+sign \x8FC2 1456-0 迂
+sign \x8FC4 1245-35-3 迄
+sign \x8FC5 234-234-4 迅
+sign \x8FC6 24-3 迆
+sign \x8FCD 14-234 迍
+sign \x8FCE 245-356-3 迎
+sign \x8FD1 13-1246-2 近
+sign \x8FD2 125-56-3 迒
+sign \x8FD3 1245-12-2 迓
+sign \x8FD4 124-45-1 返
+sign \x8FD5 1245-2 迕
+sign \x8FE2 23456-13456-3
+sign \x8FE4 24-3 迤
+sign \x8FE5 12345-356-1 迥
+sign \x8FE6 13-12 迦
+sign \x8FE8 2345-126-2 迨
+sign \x8FEA 2345-1235-3 迪
+sign \x8FEB 1234-1235 迫
+sign \x8FED 2345-23456-3 迭
+sign \x8FEE 14-12456-5 迮
+sign \x8FF0 234-1346-3 述
+sign \x8FF4 1256-3 迴
+sign \x8FF7 134-146-3 迷
+sign \x8FF8 1234-356-4 迸
+sign \x8FF9 14-1235
+sign \x8FFA 1345-346-6 迺
+sign \x8FFB 24-3 迻
+sign \x8FFD 14-245 追
+sign \x9000 23456-245-4 退
+sign \x9001 234-236-4 送
+sign \x9002 234-1235 适
+sign \x9003 23456-1236-3 逃
+sign \x9004 12346-56-3 逄
+sign \x9005 125-16-2 逅
+sign \x9006 245-1235-3 逆
+sign \x900B 1234-1236 逋
+sign \x900D 234-13456 逍
+sign \x900F 23456-16-4 透
+sign \x9010 14-12345-3 逐
+sign \x9011 1235-16-3 逑
+sign \x9014 23456-1236-3 途
+sign \x9015 13-356-4 逕
+sign \x9016 2345-1235-3 逖
+sign \x9017 2345-16-2 逗
+sign \x9019 14-15-6 這
+sign \x901A 23456-236 通
+sign \x901B 12456-14-4 逛
+sign \x901D 234-146-2 逝
+sign \x901E 1346-356-1 逞
+sign \x901F 1346-12345 速
+sign \x9020 14-1236-2 造
+sign \x9021 1346-234 逡
+sign \x9022 124-236-3 逢
+sign \x9023 123-256-3 連
+sign \x9024 234-12 逤
+sign \x902D 2346-2 逭
+sign \x902E 2345-146-2 逮
+sign \x902F 123-12345-3 逯
+sign \x9031 14-16 週
+sign \x9032 14-234-4 進
+sign \x9034 1346-246-5 逴
+sign \x9035 12456-146-3 逵
+sign \x9036 2456-146 逶
+sign \x9037 23456-1235
+sign \x9038 245-35-3 逸
+sign \x903C 1234-1235 逼
+sign \x903E 1456-2 逾
+sign \x903F 2345-56-2 逿
+sign \x9041 2345-234-2 遁
+sign \x9042 234-245-2 遂
+sign \x9044 1346-23-3 遄
+sign \x9047 1456-2 遇
+sign \x9049 14-356 遉
+sign \x904A 245-16-3 遊
+sign \x904B 2456-1246-2 運
+sign \x904D 12346-256-4 遍
+sign \x904E 12345-135-4 過
+sign \x904F 2345-5 遏
+sign \x9050 125-12-3 遐
+sign \x9051 2456-56-3 遑
+sign \x9052 245-16-3 遒
+sign \x9053 2345-1236-2 道
+sign \x9054 2345-2345-3 達
+sign \x9055 2456-146-3 違
+sign \x9058 13-16-4 遘
+sign \x9059 13456-3 遙
+sign \x905B 123-16-3 遛
+sign \x905C 234-234-4 遜
+sign \x905D 2345-1234-3 遝
+sign \x905E 2345-146-2 遞
+sign \x9060 23-6 遠
+sign \x9062 23456-1234-5 遢
+sign \x9063 125-256-1 遣
+sign \x9068 1245-1236-3 遨
+sign \x9069 234-1235 適
+sign \x906D 14-1236 遭
+sign \x906E 14-15 遮
+sign \x906F 2345-234-2 遯
+sign \x9070 2345-146-4 遰
+sign \x9072 1346-24-3 遲
+sign \x9074 123-234-3 遴
+sign \x9075 14-234 遵
+sign \x9076 13456-6 遶
+sign \x9077 1346-256 遷
+sign \x9078 234-23-1 選
+sign \x9079 2456-35-3 遹
+sign \x907A 2456-146-3 遺
+sign \x907B 1245-2 遻
+sign \x907C 123-13456-3 遼
+sign \x907D 13-245-2 遽
+sign \x907E 234-146-2 遾
+sign \x907F 1234-125-2 避
+sign \x9080 13456-0 邀
+sign \x9081 134-346-2 邁
+sign \x9082 125-346-2 邂
+sign \x9083 234-245-2 邃
+sign \x9084 2456-45-3 還
+sign \x9085 14-256 邅
+sign \x9087 24-6 邇
+sign \x9088 134-13456-6 邈
+sign \x908A 1234-256 邊
+sign \x908B 123-1234-3 邋
+sign \x908F 123-135-3 邏
+sign \x9090 123-146-6 邐
+sign \x9091 245-26 邑
+sign \x9095 245-236 邕
+sign \x9097 125-1345-3 邗
+sign \x9099 134-56-3 邙
+sign \x909B 1235-236-3 邛
+sign \x90A0 1234-1246 邠
+sign \x90A1 124-56 邡
+sign \x90A2 245-356-3 邢
+sign \x90A3 1345-12-6 那
+sign \x90A5 23456-45-1 邥
+sign \x90A6 1234-56 邦
+sign \x90A8 1346-23 邨
+sign \x90AA 1346-15-3 邪
+sign \x90AE 245-16-3
+sign \x90AF 125-1345-3 邯
+sign \x90B0 23456-126-3 邰
+sign \x90B1 245-16 邱
+sign \x90B2 1234-23456 邲
+sign \x90B3 12346-125-3 邳
+sign \x90B4 1234-356-1 邴
+sign \x90B5 234-13456-2 邵
+sign \x90B6 1234-1256-4 邶
+sign \x90B8 2345-146-1 邸
+sign \x90BB 123-234-3
+sign \x90BD 12345-146 邽
+sign \x90BE 14-1456 邾
+sign \x90BF 234-24 邿
+sign \x90C1 245-12345 郁
+sign \x90C3 125-26-3 郃
+sign \x90C5 14-24-2 郅
+sign \x90C7 234-234 郇
+sign \x90C8 125-16-2 郈
+sign \x90CA 13-34 郊
+sign \x90CE 123-56-3 郎
+sign \x90D5 234-356-3 郕
+sign \x90D7 1346-24 郗
+sign \x90D8 123-245-6 郘
+sign \x90DA 1245-3 郚
+sign \x90DB 124-136 郛
+sign \x90DC 13-1236-4 郜
+sign \x90DD 1235-12456-5 郝
+sign \x90DF 13-1234-5 郟
+sign \x90E1 12345-1246-2 郡
+sign \x90E2 245-356-6 郢
+sign \x90E4 12345-1235 郤
+sign \x90E8 1234-1236-2 部
+sign \x90EA 1346-146 郪
+sign \x90EB 12346-125-3 郫
+sign \x90ED 12345-12456-5
+sign \x90EF 23456-345-3 郯
+sign \x90F0 14-16 郰
+sign \x90F2 123-126-3 郲
+sign \x90F3 1245-146-3 郳
+sign \x90F4 234-456 郴
+sign \x90F5 245-16-3 郵
+sign \x90F9 12345-1235 郹
+sign \x90FC 24-0 郼
+sign \x90FD 2345-1236 都
+sign \x90FE 256-1 郾
+sign \x90FF 134-125-3 郿
+sign \x9100 245-246-3 鄀
+sign \x9102 1245-12456-3 鄂
+sign \x9104 13-23-4 鄄
+sign \x9105 13-245-1 鄅
+sign \x9106 2456-1246-2 鄆
+sign \x9109 125-25 鄉
+sign \x910B 234-16 鄋
+sign \x910F 245-12345-3 鄏
+sign \x9112 14-16 鄒
+sign \x9114 136-0 鄔
+sign \x9116 2456-1246-3 鄖
+sign \x9117 125-1236-2 鄗
+sign \x9118 245-236-3 鄘
+sign \x9119 12346-125-1 鄙
+sign \x911A 134-12456-3 鄚
+sign \x911C 124-136 鄜
+sign \x911E 1245-1246-3 鄞
+sign \x911F 14-23 鄟
+sign \x9120 136-2 鄠
+sign \x9122 256-0 鄢
+sign \x9123 14-25 鄣
+sign \x9126 125-245-1 鄦
+sign \x9127 2345-1245-2 鄧
+sign \x9129 1346-456-3 鄩
+sign \x912B 1346-1245-3 鄫
+sign \x912D 14-2356-2 鄭
+sign \x912F 234-256-2 鄯
+sign \x9130 123-234-3 鄰
+sign \x9131 12346-135-3 鄱
+sign \x9132 2345-45 鄲
+sign \x9133 134-14-6 鄳
+sign \x9134 12346-3 鄴
+sign \x9136 1235-1256-4 鄶
+sign \x9139 14-16 鄹
+sign \x913A 1235-56-4 鄺
+sign \x9140 256-4 酀
+sign \x9143 123-356-3 酃
+sign \x9145 12456-146-3 酅
+sign \x9146 124-236 酆
+sign \x9147 14-23-1 酇
+sign \x9148 123-1235-3 酈
+sign \x9149 245-16-6 酉
+sign \x914A 2345-356-1 酊
+sign \x914B 245-16-3 酋
+sign \x914C 14-246-5 酌
+sign \x914D 12346-1256-4 配
+sign \x914E 14-16-2 酎
+sign \x9150 13-1345 酐
+sign \x9152 14-16-1 酒
+sign \x9155 134-1236-3 酕
+sign \x9156 14-456-2 酖
+sign \x9157 1456-4 酗
+sign \x915A 124-1246 酚
+sign \x9161 23456-135-3 酡
+sign \x9162 14-12456-3 酢
+sign \x9163 125-456-3 酣
+sign \x9164 13-136 酤
+sign \x9165 234-1236 酥
+sign \x9169 134-356-6 酩
+sign \x916A 123-12456-5 酪
+sign \x916C 1346-16-3 酬
+sign \x916E 23456-236-3 酮
+sign \x916F 14-24 酯
+sign \x9172 1346-356-3 酲
+sign \x9173 245-1246-1 酳
+sign \x9174 23456-1236-3 酴
+sign \x9175 125-34 酵
+sign \x9176 134-1256-3 酶
+sign \x9177 125-12345-3 酷
+sign \x9178 234-23 酸
+sign \x9179 123-12356-3 酹
+sign \x917A 12346-1236-3 酺
+sign \x9181 123-12345-3 醁
+sign \x9183 235-0 醃
+sign \x9184 23456-1236-3 醄
+sign \x9185 12346-1256 醅
+sign \x9186 14-45-1 醆
+sign \x9187 234-234-3 醇
+sign \x9189 14-245-4 醉
+sign \x918A 14-12356-5 醊
+sign \x918B 1346-1236-4 醋
+sign \x918D 23456-146-3 醍
+sign \x9190 136-3 醐
+sign \x9191 234-245-1 醑
+sign \x9192 234-356-1 醒
+sign \x9193 23456-345-3 醓
+sign \x919A 134-146-3 醚
+sign \x919B 1346-23-3 醛
+sign \x919C 1346-16-1 醜
+sign \x919E 2456-1246-6 醞
+sign \x91A1 14-12-4 醡
+sign \x91A2 125-126-1 醢
+sign \x91A3 23456-56-3 醣
+sign \x91A5 12346-13456-6
+sign \x91A8 123-125-3 醨
+sign \x91A9 14-1236
+sign \x91AA 123-1236-3 醪
+sign \x91AB 24-0 醫
+sign \x91AC 14-25-4 醬
+sign \x91AD 12346-12456-5
+sign \x91AE 14-13456-4 醮
+sign \x91AF 125-125 醯
+sign \x91B0 23456-345-3 醰
+sign \x91B1 12346-1356-5 醱
+sign \x91B2 1345-236-3 醲
+sign \x91B3 245-1235-3 醳
+sign \x91B4 123-146-6 醴
+sign \x91B5 13-245-2 醵
+sign \x91B7 245-1235 醷
+sign \x91BA 124-1246 醺
+sign \x91BC 256-4 醼
+sign \x91BD 123-356-3 醽
+sign \x91BE 134-125-3 醾
+sign \x91C0 245-25-2 釀
+sign \x91C1 245-1246-2 釁
+sign \x91C2 14-13456-4 釂
+sign \x91C3 234-24 釃
+sign \x91C5 235-2 釅
+sign \x91C6 1346-126-1 釆
+sign \x91C7 1346-126-1 采
+sign \x91C9 245-16-1 釉
+sign \x91CB 234-1235 釋
+sign \x91CC 123-125-6 里
+sign \x91CD 1346-236-3 重
+sign \x91CE 245-15-6 野
+sign \x91CF 123-25-2 量
+sign \x91D0 123-125-3 釐
+sign \x91D1 13-456 金
+sign \x91D3 13-12 釓
+sign \x91D4 12356-5 釔
+sign \x91D5 123-13456 釕
+sign \x91D7 1346-13456 釗
+sign \x91D8 2345-2356 釘
+sign \x91D9 12346-12456-5
+sign \x91DA 1235-16-3 釚
+sign \x91DC 124-136-1 釜
+sign \x91DD 14-456 針
+sign \x91E1 124-45-3
+sign \x91E2 1345-346-6 釢
+sign \x91E3 2345-13456-4 釣
+sign \x91E4 234-256-4 釤
+sign \x91E5 234-256-4
+sign \x91E6 1235-16-4 釦
+sign \x91E7 1346-23-4 釧
+sign \x91E8 1346-23-4
+sign \x91E9 124-45-3 釩
+sign \x91EC 125-1345-2 釬
+sign \x91ED 13-56 釭
+sign \x91F5 1346-346 釵
+sign \x91F7 23456-1236-1 釷
+sign \x91F9 1345-245-6 釹
+sign \x91FF 1245-1246-3 釿
+sign \x9200 12346-12-3 鈀
+sign \x9201 124-56 鈁
+sign \x9203 245-356-3 鈃
+sign \x9204 2345-16-1 鈄
+sign \x9205 245-246-3 鈅
+sign \x9207 124-136 鈇
+sign \x9208 1234-35 鈈
+sign \x9209 1345-1234-3 鈉
+sign \x920D 2345-234-2 鈍
+sign \x920E 1245-16 鈎
+sign \x9210 1235-235-3 鈐
+sign \x9211 1234-45-1 鈑
+sign \x9212 1235-26 鈒
+sign \x9214 1346-34 鈔
+sign \x9215 1345-16-1 鈕
+sign \x921C 2456-1245-3 鈜
+sign \x921E 12345-1246 鈞
+sign \x9223 1235-126-4 鈣
+sign \x9225 124-135-1 鈥
+sign \x9226 23456-346-4 鈦
+sign \x9227 1235-56-4 鈧
+sign \x922A 1245-13-5 鈪
+sign \x922E 1345-125-3 鈮
+sign \x9230 234-24-1 鈰
+sign \x9233 1235-135 鈳
+sign \x9234 123-356-3 鈴
+sign \x9237 13-136-1 鈷
+sign \x9238 1234-35-3 鈸
+sign \x9239 12346-125-3 鈹
+sign \x923A 245-12345-3 鈺
+sign \x923D 1234-1236-4 鈽
+sign \x923E 245-16-1 鈾
+sign \x923F 23456-256-3 鈿
+sign \x9240 13-1234-5 鉀
+sign \x9244 23456-23456-5
+sign \x9245 13-245-2 鉅
+sign \x9246 14-23-4 鉆
+sign \x9248 23456-12 鉈
+sign \x9249 23-6 鉉
+sign \x924B 12346-34-3 鉋
+sign \x924D 1234-23456 鉍
+sign \x924F 1346-135-3 鉏
+sign \x9251 1234-12456-3 鉑
+sign \x9257 1235-235-3 鉗
+sign \x925A 134-34-6 鉚
+sign \x925B 23-3 鉛
+sign \x925E 12356-3 鉞
+sign \x9264 1245-16 鉤
+sign \x9265 234-1346-3 鉥
+sign \x9266 14-356 鉦
+sign \x9267 134-1236-6 鉧
+sign \x926C 134-12345-3 鉬
+sign \x926D 2345-45-4 鉭
+sign \x9276 245-356-3 鉶
+sign \x9278 13-34-4 鉸
+sign \x927A 24-6 鉺
+sign \x927B 123-12456-5 鉻
+sign \x927F 125-12 鉿
+sign \x9280 1245-1246-3 銀
+sign \x9283 1346-236-4 銃
+sign \x9285 23456-236-3 銅
+sign \x928D 14-35-3 銍
+sign \x928E 1235-236-3 銎
+sign \x9291 234-256-1 銑
+sign \x9293 1346-23-3 銓
+sign \x9295 23456-23456-5
+sign \x9296 14-1456 銖
+sign \x9298 134-356-6 銘
+sign \x929A 2345-13456-2 銚
+sign \x929B 1346-235 銛
+sign \x929C 125-345-3 銜
+sign \x92A0 123-1236-6 銠
+sign \x92A3 1456-3 銣
+sign \x92A5 24-0 銥
+sign \x92A6 245-1246 銦
+sign \x92A7 12345-56 銧
+sign \x92A8 1345-0 銨
+sign \x92A9 2345-13456 銩
+sign \x92AA 245-16-6 銪
+sign \x92AB 234-1235 銫
+sign \x92AC 1235-34-4 銬
+sign \x92B2 125-1345-2 銲
+sign \x92B3 245-245-2 銳
+sign \x92B6 1235-16-3 銶
+sign \x92B7 234-13456 銷
+sign \x92B9 234-16-4 銹
+sign \x92BB 23456-146 銻
+sign \x92BC 1346-135-4 銼
+sign \x92C0 2345-16-2 鋀
+sign \x92C1 123-245-6 鋁
+sign \x92C3 123-56-3 鋃
+sign \x92C5 234-1246 鋅
+sign \x92C6 2456-1246-3 鋆
+sign \x92C7 1234-1256-4 鋇
+sign \x92C8 245-12345 鋈
+sign \x92CA 13-12345 鋊
+sign \x92CC 23456-356-6 鋌
+sign \x92CD 1234-1356-3 鋍
+sign \x92CF 13-1234-5 鋏
+sign \x92D0 2456-1245-3 鋐
+sign \x92D1 14-234-4 鋑
+sign \x92D2 124-236 鋒
+sign \x92D5 14-24-4 鋕
+sign \x92D8 1245-3 鋘
+sign \x92D9 1456-6 鋙
+sign \x92DB 14-46
+sign \x92DD 123-12356-5 鋝
+sign \x92DF 1346-235 鋟
+sign \x92E1 134-56-3
+sign \x92E4 1346-135-3 鋤
+sign \x92E5 1346-135-3
+sign \x92E6 13-12345-3 鋦
+sign \x92E7 125-256-1 鋧
+sign \x92E8 1245-135-3 鋨
+sign \x92E9 134-56-3 鋩
+sign \x92EA 12346-1236 鋪
+sign \x92EC 12346-45-4
+sign \x92EE 234-356-3 鋮
+sign \x92EF 13-1236-4 鋯
+sign \x92F0 123-125-6 鋰
+sign \x92F1 23456-1235 鋱
+sign \x92F8 13-156-4 鋸
+sign \x92FC 13-56-4 鋼
+sign \x9301 12345-135-1 錁
+sign \x9304 123-12345-3 錄
+sign \x9307 12346-1256-3
+sign \x9310 14-245 錐
+sign \x9312 12-4 錒
+sign \x9314 2345-1234-3 錔
+sign \x9315 12456-1246 錕
+sign \x9318 1346-245-3 錘
+sign \x9319 14-24 錙
+sign \x931A 14-1245 錚
+sign \x931B 1234-1246 錛
+sign \x931F 23456-45-1 錟
+sign \x9320 2345-356-2 錠
+sign \x9321 1235-125-3 錡
+sign \x9322 1346-256-3 錢
+sign \x9326 13-456-1 錦
+sign \x9327 13-2346-1 錧
+sign \x9328 1345-34-3 錨
+sign \x9329 1346-25 錩
+sign \x932B 234-2456-5 錫
+sign \x932E 13-136-4 錮
+sign \x932F 1346-135-4 錯
+sign \x9333 134-14-6 錳
+sign \x9336 1234-13456 錶
+sign \x9338 123-126-3 錸
+sign \x9346 134-2346-3 鍆
+sign \x9347 13-346 鍇
+sign \x9348 245-356 鍈
+sign \x9349 234-24-3 鍉
+sign \x934A 123-256-2 鍊
+sign \x934B 2456-135 鍋
+sign \x934D 2345-1236-2 鍍
+sign \x9352 245-16-3 鍒
+sign \x9354 1245-12456-3 鍔
+sign \x9358 14-1234-3 鍘
+sign \x935A 234-2456-5 鍚
+sign \x935B 2345-23-4 鍛
+sign \x9360 2456-56-3 鍠
+sign \x9364 1346-1234-5 鍤
+sign \x9365 1235-23456-5 鍥
+sign \x9367 12345-1245 鍧
+sign \x936A 134-16-3 鍪
+sign \x936C 1346-13456 鍬
+sign \x936D 125-16-3 鍭
+sign \x9370 2456-45-3 鍰
+sign \x9371 12346-3 鍱
+sign \x9375 13-256-2 鍵
+sign \x9376 234-24 鍶
+sign \x937A 14-15-1 鍺
+sign \x937C 14-456 鍼
+sign \x937E 14-236 鍾
+sign \x9381 245-15-3
+sign \x9382 134-125-6 鎂
+sign \x9389 23456-1234-5 鎉
+sign \x938A 1234-56-2 鎊
+sign \x938C 123-235-3 鎌
+sign \x938D 234-12456-5 鎍
+sign \x938F 123-16-3 鎏
+sign \x9392 1345-16-2 鎒
+sign \x9394 245-236-3 鎔
+sign \x9396 234-135-1 鎖
+sign \x9397 1346-25 鎗
+sign \x9398 13-13-5 鎘
+sign \x9399 234-12456-5 鎙
+sign \x939A 1346-245-3 鎚
+sign \x939B 1234-12456-5 鎛
+sign \x93A1 14-24 鎡
+sign \x93A2 136-0 鎢
+sign \x93A3 245-356-3 鎣
+sign \x93A6 123-16-3 鎦
+sign \x93A7 125-126-1 鎧
+sign \x93A9 234-2345-5 鎩
+sign \x93AA 234-16-1 鎪
+sign \x93AC 13-1236-1 鎬
+sign \x93AE 14-1246-4 鎮
+sign \x93B0 245-35-3 鎰
+sign \x93B2 2345-56-1 鎲
+sign \x93B3 1345-12346 鎳
+sign \x93B5 13-12 鎵
+sign \x93B7 134-12-6 鎷
+sign \x93C3 14-12345-3 鏃
+sign \x93C7 234-23-3 鏇
+sign \x93C8 123-256-1 鏈
+sign \x93CA 1245-1236-3 鏊
+sign \x93CC 134-12456-3 鏌
+sign \x93CD 123-135-3 鏍
+sign \x93D0 123-16-3 鏐
+sign \x93D1 2345-1235 鏑
+sign \x93D2 234-456-4 鏒
+sign \x93D6 1236-0 鏖
+sign \x93D7 125-1245 鏗
+sign \x93D8 1346-25 鏘
+sign \x93DA 1346-1235 鏚
+sign \x93DC 23456-56-3 鏜
+sign \x93DD 134-45-2 鏝
+sign \x93DE 245-236-3 鏞
+sign \x93DF 1346-45-1 鏟
+sign \x93E1 13-2356-4 鏡
+sign \x93E2 1234-13456 鏢
+sign \x93E3 1234-13456
+sign \x93E4 123-16-6 鏤
+sign \x93E5 123-16-6
+sign \x93E6 1346-236 鏦
+sign \x93E7 1346-236
+sign \x93E8 14-345-2 鏨
+sign \x93E9 14-345-2
+sign \x93EE 1235-56-4 鏮
+sign \x93F5 2456-12-3 鏵
+sign \x93F7 12346-12456-5
+sign \x93F9 1235-25-6 鏹
+sign \x93FA 12346-1356-5 鏺
+sign \x93FD 234-16-4 鏽
+sign \x93FE 234-256-4 鏾
+sign \x9403 13456-3 鐃
+sign \x940B 23456-56 鐋
+sign \x940D 1235-12356-5 鐍
+sign \x940E 14-13456 鐎
+sign \x940F 14-234 鐏
+sign \x9410 123-13456-3 鐐
+sign \x9412 123-1236-3 鐒
+sign \x9414 23456-345-3 鐔
+sign \x9415 14-345 鐕
+sign \x9418 14-236 鐘
+sign \x9419 2345-1245-4 鐙
+sign \x9420 12346-1236-1 鐠
+sign \x9427 13-45-1 鐧
+sign \x9428 124-146-4 鐨
+sign \x942B 14-23 鐫
+sign \x942E 123-235-3 鐮
+sign \x9432 14-12345-3 鐲
+sign \x9433 123-245-3 鐳
+sign \x9435 23456-23456-5
+sign \x9436 2456-45-3 鐶
+sign \x9438 2345-12456-3 鐸
+sign \x943A 2345-56 鐺
+sign \x943B 13-245-2 鐻
+sign \x943D 2345-2345-3 鐽
+sign \x943F 24-4 鐿
+sign \x9440 126-4 鑀
+sign \x9444 14-1456-4 鑄
+sign \x944A 2456-12456-3 鑊
+sign \x944C 1234-1246 鑌
+sign \x9450 245-16-3 鑐
+sign \x9451 13-345-4 鑑
+sign \x9452 13-345-4 鑒
+sign \x9455 14-35 鑕
+sign \x945E 123-1234-3 鑞
+sign \x9460 234-246-5 鑠
+sign \x9462 123-245-2 鑢
+sign \x9463 1234-13456 鑣
+sign \x9464 12346-34-3 鑤
+sign \x946A 123-1236-3 鑪
+sign \x946B 245-456 鑫
+sign \x946D 123-45-3 鑭
+sign \x946E 1234-12456-3 鑮
+sign \x9470 245-246-3 鑰
+sign \x9471 1346-345-3 鑱
+sign \x9472 234-25 鑲
+sign \x9474 12456-146-3 鑴
+sign \x9475 13-2346-4 鑵
+sign \x9477 1345-12346-3 鑷
+sign \x947C 123-135-3 鑼
+sign \x947D 14-23-4 鑽
+sign \x947E 123-23-3 鑾
+sign \x947F 14-12456-3 鑿
+sign \x9481 1235-12356-5 钁
+sign \x9482 23456-56-1 钂
+sign \x9577 1346-25-3 長
+sign \x957C 2456-35 镼
+sign \x9580 134-2346-3 門
+sign \x9582 234-45 閂
+sign \x9583 234-235-1 閃
+sign \x9586 235-3 閆
+sign \x9588 125-1345-2 閈
+sign \x9589 1234-146-4 閉
+sign \x958B 125-126 開
+sign \x958E 2456-1245-3 閎
+sign \x958F 245-234-2 閏
+sign \x9591 125-45-3 閑
+sign \x9592 125-45-3 閒
+sign \x9593 13-45 間
+sign \x9594 134-1246-6 閔
+sign \x9598 14-1234-3 閘
+sign \x959F 1234-125-4 閟
+sign \x95A1 125-35-3 閡
+sign \x95A3 13-12456-5 閣
+sign \x95A4 125-26-3 閤
+sign \x95A5 124-35-3 閥
+sign \x95A8 12345-146 閨
+sign \x95A9 134-1246-6 閩
+sign \x95AA 124-146 閪
+sign \x95AB 12456-1246-1 閫
+sign \x95AC 123-56-6 閬
+sign \x95AD 123-245-3 閭
+sign \x95B1 12356-3 閱
+sign \x95B5 123-234-2 閵
+sign \x95B6 1346-25 閶
+sign \x95B9 235-0 閹
+sign \x95BB 235-3 閻
+sign \x95BC 256-0 閼
+sign \x95BD 124-1246 閽
+sign \x95BE 2456-1235-3 閾
+sign \x95BF 134-1246-3 閿
+sign \x95C3 12456-1235 闃
+sign \x95C6 1234-45-1 闆
+sign \x95C7 456-4 闇
+sign \x95C8 2456-146-3 闈
+sign \x95C9 245-1246 闉
+sign \x95CA 124-1356-5 闊
+sign \x95CB 1235-12356-5 闋
+sign \x95CC 123-45-3 闌
+sign \x95CD 234-15-3 闍
+sign \x95D0 23456-256-3 闐
+sign \x95D1 23456-3 闑
+sign \x95D2 23456-1234-5 闒
+sign \x95D3 125-126-1 闓
+sign \x95D4 125-26-3 闔
+sign \x95D5 1235-12356-5 闕
+sign \x95D6 1346-56-1 闖
+sign \x95DA 12456-146 闚
+sign \x95DC 12345-45 關
+sign \x95DE 125-456-4 闞
+sign \x95E0 1235-1256-1 闠
+sign \x95E1 14-256-1 闡
+sign \x95E2 12346-1235 闢
+sign \x95E3 12346-1235
+sign \x95E4 2456-45-3 闤
+sign \x95E5 23456-2345-5 闥
+sign \x95E6 23456-2345-5
+sign \x961C 124-16-2 阜
+sign \x961E 123-46-3 阞
+sign \x9620 23456-45-1 阠
+sign \x9621 1346-256 阡
+sign \x9622 1245-35-3 阢
+sign \x9623 1245-35-3 阣
+sign \x9624 23456-1235 阤
+sign \x9628 46-0 阨
+sign \x962A 1234-45-1 阪
+sign \x962C 125-14 阬
+sign \x962E 23-1 阮
+sign \x962F 14-24-1 阯
+sign \x9631 14-356-2 阱
+sign \x9632 124-56-3 防
+sign \x963B 14-135-1 阻
+sign \x963C 14-1236-2 阼
+sign \x963D 2345-235-4 阽
+sign \x963F 12-4 阿
+sign \x9640 23456-135-3 陀
+sign \x9642 12346-135 陂
+sign \x9644 124-136-2 附
+sign \x964B 123-16-2 陋
+sign \x964C 134-46-3 陌
+sign \x964D 13-56-4 降
+sign \x9650 125-45-2 限
+sign \x9654 13-126 陔
+sign \x9658 245-356-3 陘
+sign \x965B 1234-146-2 陛
+sign \x965C 234-235-1 陜
+sign \x965D 234-235-1 陝
+sign \x965E 234-356 陞
+sign \x965F 14-1235 陟
+sign \x9661 2345-16-1 陡
+sign \x9662 23-1 院
+sign \x9663 14-1246-2 陣
+sign \x9664 1346-245-3 除
+sign \x966A 12346-1256-3 陪
+sign \x966C 14-16 陬
+sign \x9670 245-456 陰
+sign \x9672 234-245-3 陲
+sign \x9673 1346-1246-3 陳
+sign \x9674 12346-125-3 陴
+sign \x9675 123-356-3 陵
+sign \x9676 23456-1236-3 陶
+sign \x9677 125-456-2 陷
+sign \x9678 123-12345-3 陸
+sign \x967D 245-25-3 陽
+sign \x9683 1456-3 隃
+sign \x9684 23456-146-3 隄
+sign \x9685 1456-3 隅
+sign \x9686 123-236-3 隆
+sign \x9688 1256-0 隈
+sign \x9689 1345-12346-3 隉
+sign \x968A 2345-245-2 隊
+sign \x968B 1346-245-3 隋
+sign \x968D 2456-56-3 隍
+sign \x968E 13-346 階
+sign \x9694 13-13-5 隔
+sign \x9695 2456-1246-6 隕
+sign \x9697 12456-146-4 隗
+sign \x9698 346-4 隘
+sign \x9699 12456-1235 隙
+sign \x969B 14-146-4 際
+sign \x969C 14-25-4 障
+sign \x96A3 123-234-3
+sign \x96A4 23456-245-3 隤
+sign \x96A7 234-245-2 隧
+sign \x96A8 1346-245-3 隨
+sign \x96A9 245-12345 隩
+sign \x96AA 125-235-1 險
+sign \x96AE 14-146 隮
+sign \x96B0 14-1234-3 隰
+sign \x96B1 245-1246-1 隱
+sign \x96B3 124-146 隳
+sign \x96B4 123-236-6 隴
+sign \x96B8 2345-146-2 隸
+sign \x96B9 14-245 隹
+sign \x96BB 14-2456-5 隻
+sign \x96BC 14-234-1 隼
+sign \x96BD 14-234-4
+sign \x96C0 14-246-5 雀
+sign \x96C1 1245-45-2 雁
+sign \x96C4 125-236-3 雄
+sign \x96C5 1245-12-6 雅
+sign \x96C6 14-1234-3 集
+sign \x96C7 13-136-4 雇
+sign \x96C8 2346-3 雈
+sign \x96C9 1346-24-3 雉
+sign \x96CA 13-16-4 雊
+sign \x96CB 14-234-4 雋
+sign \x96CC 1346-24 雌
+sign \x96CD 245-236 雍
+sign \x96CE 14-245 雎
+sign \x96D2 123-12456-5 雒
+sign \x96D4 1346-16-3 雔
+sign \x96D5 2345-13456 雕
+sign \x96D6 234-245 雖
+sign \x96D8 2456-12456-5 雘
+sign \x96D9 234-25 雙
+sign \x96DA 124-2346-1 雚
+sign \x96DB 1346-135 雛
+sign \x96DC 14-1234-3 雜
+sign \x96DD 245-236 雝
+sign \x96DE 13-146 雞
+sign \x96DF 12456-146 雟
+sign \x96E2 123-125-3 離
+sign \x96E3 1345-45-3 難
+sign \x96E4 1345-45-3
+sign \x96E5 14-1234-3 雥
+sign \x96E6 14-1234-3
+sign \x96E8 1456-6 雨
+sign \x96E9 1456-3 雩
+sign \x96EA 234-12356-5 雪
+sign \x96EF 134-1246-3 雯
+sign \x96F1 12346-56-3 雱
+sign \x96F2 2456-1246-3 雲
+sign \x96F6 123-356-3 零
+sign \x96F7 123-245-3 雷
+sign \x96F9 1234-12456-3 雹
+sign \x96FB 2345-256-2 電
+sign \x9700 234-245 需
+sign \x9702 134-12345-3 霂
+sign \x9704 234-13456 霄
+sign \x9705 14-12346-5 霅
+sign \x9706 23456-356-3 霆
+sign \x9707 14-1246-4 震
+sign \x9708 12346-1256-4 霈
+sign \x9709 134-1256-3 霉
+sign \x970D 124-12456-5 霍
+sign \x970E 234-1234-5 霎
+sign \x970F 124-125 霏
+sign \x9711 14-235 霑
+sign \x9713 1245-146-3 霓
+sign \x9716 123-456-3 霖
+sign \x971B 123-356-3
+sign \x971C 234-25 霜
+sign \x971D 123-356-3 霝
+sign \x971E 125-12-3 霞
+sign \x9722 134-13-3 霢
+sign \x9723 2456-1246-6 霣
+sign \x9724 123-16-2 霤
+sign \x9727 134-1236-2 霧
+sign \x9728 2456-146-4 霨
+sign \x9729 12456-12456-5
+sign \x972A 245-456-3 霪
+sign \x9730 234-256-4 霰
+sign \x9732 123-1236-2 露
+sign \x9736 12346-56
+sign \x9738 1234-12-4 霸
+sign \x9739 12346-1235 霹
+sign \x973D 14-146-4 霽
+sign \x973E 134-346-3 霾
+sign \x9742 123-1235 靂
+sign \x9744 126-1 靄
+sign \x9746 2345-126-2 靆
+sign \x9748 123-356-3 靈
+sign \x9749 126-1 靉
+sign \x9752 1346-356 青
+sign \x9756 14-356-2 靖
+sign \x975A 123-2356-4 靚
+sign \x975B 2345-256-2 靛
+sign \x975C 14-356-2 靜
+sign \x975E 124-125 非
+sign \x9760 1235-34-4 靠
+sign \x9761 134-125-3 靡
+sign \x9762 134-256-2 面
+sign \x9766 134-256-6 靦
+sign \x9768 12346-5 靨
+sign \x9769 13-13-5 革
+sign \x976A 2345-356 靪
+sign \x9770 136-0 靰
+sign \x9773 13-1246-4 靳
+sign \x9774 125-156 靴
+sign \x9776 1234-12-1 靶
+sign \x9777 245-1246-6 靷
+sign \x9778 234-1234-5 靸
+sign \x977A 134-1356-3 靺
+sign \x977C 2345-45-2 靼
+sign \x977D 1234-2346-2 靽
+sign \x977E 245-1246-2 靾
+sign \x977F 34-4 靿
+sign \x9780 23456-1236-3 鞀
+sign \x9781 1234-125-2 鞁
+sign \x9783 2456-1245-3 鞃
+sign \x9784 12346-34-3 鞄
+sign \x9785 245-25 鞅
+sign \x978B 125-346-3 鞋
+sign \x978D 1345-0 鞍
+sign \x978F 13-236-1 鞏
+sign \x9797 23456-13456-3
+sign \x9798 1346-13456-4 鞘
+sign \x9799 13-23 鞙
+sign \x979A 125-236-4 鞚
+sign \x979D 234-25-6 鞝
+sign \x979E 1234-356-1 鞞
+sign \x97A0 13-12345 鞠
+sign \x97A1 123-346 鞡
+sign \x97A3 245-16-3 鞣
+sign \x97A5 1245-0 鞥
+sign \x97A6 1346-16 鞦
+sign \x97A8 125-124-5 鞨
+sign \x97AB 13-12345 鞫
+sign \x97AC 13-256 鞬
+sign \x97AD 1234-256 鞭
+sign \x97AE 23456-146-3 鞮
+sign \x97B3 2345-1234-3 鞳
+sign \x97B6 12346-2346-3 鞶
+sign \x97B9 12456-12456-5
+sign \x97BF 13-125 鞿
+sign \x97C1 13-25 韁
+sign \x97C3 23456-2345-5 韃
+sign \x97C5 125-256-1 韅
+sign \x97C6 1346-256 韆
+sign \x97C7 2345-12345-3 韇
+sign \x97C9 14-256 韉
+sign \x97CB 2456-146-6 韋
+sign \x97CC 245-1246-2 韌
+sign \x97CD 124-35 韍
+sign \x97CE 134-1256-2 韎
+sign \x97CF 13-23-4 韏
+sign \x97D0 13-1234-5 韐
+sign \x97D3 125-1345-3 韓
+sign \x97D8 234-12346-5 韘
+sign \x97D9 2456-146-6 韙
+sign \x97DC 23456-1236 韜
+sign \x97DD 13-16 韝
+sign \x97DE 2456-1246-4 韞
+sign \x97E1 156-0 韡
+sign \x97ED 13-16-1 韭
+sign \x97EE 13-16-1 韮
+sign \x97F1 1346-235 韱
+sign \x97F3 245-456 音
+sign \x97F6 234-13456-3 韶
+sign \x97F9 1234-256 韹
+sign \x97FB 2456-1246-6 韻
+sign \x97FF 125-25-1 響
+sign \x9801 12346-3 頁
+sign \x9802 2345-356-1 頂
+sign \x9803 1235-356-1 頃
+sign \x9804 1235-16-3 頄
+sign \x9805 125-56-2 項
+sign \x9806 234-234-2 順
+sign \x9807 125-1345 頇
+sign \x9808 234-245 須
+sign \x980A 245-12345 頊
+sign \x980C 14-236-2 頌
+sign \x980E 1235-125-3 頎
+sign \x980F 125-56-3 頏
+sign \x9810 1456-2 預
+sign \x9811 2456-45-3 頑
+sign \x9812 1234-45 頒
+sign \x9813 2345-234-2 頓
+sign \x9816 12346-2346-4 頖
+sign \x9817 12346-135-1 頗
+sign \x9818 123-356-6 領
+sign \x981C 125-26-3 頜
+sign \x981E 2345-5 頞
+sign \x9821 1235-23456-5 頡
+sign \x9824 24-3 頤
+sign \x9826 125-126-3 頦
+sign \x982B 124-136-1 頫
+sign \x982D 23456-16-3 頭
+sign \x9830 13-1234-5 頰
+sign \x9832 23456-356-6 頲
+sign \x9835 12345-1246 頵
+sign \x9837 125-456-6 頷
+sign \x9838 13-2356-1 頸
+sign \x9839 23456-245-3 頹
+sign \x983B 12346-1246-3 頻
+sign \x9846 124-135-1 顆
+sign \x9848 2456-356-2
+sign \x984C 23456-146-3 題
+sign \x984D 1245-13-3 額
+sign \x984E 1245-12456-3 顎
+sign \x984F 1245-45-3 顏
+sign \x9851 125-456-1 顑
+sign \x9852 245-236-3 顒
+sign \x9853 14-23 顓
+sign \x9857 1245-146-6 顗
+sign \x9858 23-2 願
+sign \x9859 234-56-1 顙
+sign \x985B 2345-256 顛
+sign \x985C 13-56-1 顜
+sign \x985E 123-245-2 類
+sign \x9862 134-2346-3 顢
+sign \x9863 1346-12345 顣
+sign \x9865 125-1236-2 顥
+sign \x9867 13-136-4 顧
+sign \x986B 14-256-4 顫
+sign \x986C 1456-3
+sign \x986F 125-256-1 顯
+sign \x9870 12346-1246-3 顰
+sign \x9871 123-1236-3 顱
+sign \x9873 1345-12346-3 顳
+sign \x9874 1235-23-3 顴
+sign \x98A8 124-236 風
+sign \x98AD 14-235-1 颭
+sign \x98AF 234-1234-5 颯
+sign \x98B1 23456-126-3 颱
+sign \x98B3 12345-2345-5 颳
+sign \x98B6 13-245-2 颶
+sign \x98B8 234-24 颸
+sign \x98BA 245-25-3 颺
+sign \x98BB 13456-3 颻
+sign \x98BC 234-16 颼
+sign \x98C0 123-16-3 飀
+sign \x98C1 14-1234-3 飁
+sign \x98C2 123-12345-3 飂
+sign \x98C4 12346-13456 飄
+sign \x98C6 1234-13456 飆
+sign \x98C8 1234-13456 飈
+sign \x98DB 124-125 飛
+sign \x98DC 124-45
+sign \x98DF 234-1235-3 食
+sign \x98E2 13-125 飢
+sign \x98E3 2345-356-4 飣
+sign \x98E4 2345-356-4
+sign \x98E5 23456-12456-5
+sign \x98E6 14-256
+sign \x98E7 234-23 飧
+sign \x98E8 234-23
+sign \x98E9 23456-1246 飩
+sign \x98EA 245-456-2 飪
+sign \x98EB 1456-4 飫
+sign \x98ED 1346-1235 飭
+sign \x98EF 124-45-2 飯
+sign \x98F2 245-456-1 飲
+sign \x98F4 24-3 飴
+sign \x98F6 1234-125-4 飶
+sign \x98FC 14-24-2 飼
+sign \x98FD 1234-34-1 飽
+sign \x98FE 234-1235 飾
+sign \x9902 23456-235-6 餂
+sign \x9903 13-34-1 餃
+sign \x9905 1234-2356-1 餅
+sign \x9908 1346-24-3 餈
+sign \x9909 125-25-1 餉
+sign \x990A 245-25-6 養
+sign \x990C 1345-125-2 餌
+sign \x9910 1346-45 餐
+sign \x9911 1234-1356-3 餑
+sign \x9912 1345-245-6 餒
+sign \x9913 1245-135-2 餓
+sign \x9914 1234-1236 餔
+sign \x9915 14-234-4 餕
+sign \x9916 2345-16-2 餖
+sign \x9917 1346-12345 餗
+sign \x9918 1456-3 餘
+sign \x991A 1245-34-3 餚
+sign \x991B 2456-1246-3 餛
+sign \x991E 14-256-4 餞
+sign \x991F 14-12356-5 餟
+sign \x9921 125-345-1 餡
+sign \x9924 2345-345-2 餤
+sign \x9927 2456-146-4 餧
+sign \x9928 13-2346-1 館
+sign \x992A 1345-23-6 餪
+sign \x992B 2456-1246-3 餫
+sign \x992C 136-3 餬
+sign \x992D 2456-56-3 餭
+sign \x992E 23456-23456-5
+sign \x9931 125-16-3 餱
+sign \x9932 346-4 餲
+sign \x9933 1346-356-3 餳
+sign \x9935 2456-146-4 餵
+sign \x9938 234-236-4 餸
+sign \x9939 23456-56-3
+sign \x993A 1234-12456-5 餺
+sign \x993B 13-1236
+sign \x993C 125-125-4 餼
+sign \x993D 12345-146-2 餽
+sign \x993E 123-16-2 餾
+sign \x993F 234-34-4 餿
+sign \x9941 12346-3 饁
+sign \x9943 134-135-3 饃
+sign \x9945 134-45-2 饅
+sign \x9947 1456-4 饇
+sign \x9948 234-16 饈
+sign \x9949 13-1246-1 饉
+sign \x994B 12345-146-2 饋
+sign \x994C 14-45-4
+sign \x994E 1346-24-4 饎
+sign \x9950 245-35 饐
+sign \x9951 13-125 饑
+sign \x9952 13456-3 饒
+sign \x9954 245-236 饔
+sign \x9955 23456-1236 饕
+sign \x9957 125-25-1 饗
+sign \x9958 14-256 饘
+sign \x9959 12346-1246-4 饙
+sign \x995B 134-236-3 饛
+sign \x995C 235-4 饜
+sign \x995E 1346-345-3 饞
+sign \x995F 125-25-1 饟
+sign \x9961 14-45-4 饡
+sign \x9996 234-16-1 首
+sign \x9997 12456-146-3 馗
+sign \x9998 12345-1235 馘
+sign \x9999 125-25 香
+sign \x999D 1234-23456 馝
+sign \x99A1 124-125 馡
+sign \x99A5 124-12345 馥
+sign \x99A8 125-356 馨
+sign \x99AC 134-12-6 馬
+sign \x99AD 1456-2 馭
+sign \x99AE 124-236-3 馮
+sign \x99B1 23456-135-3 馱
+sign \x99B3 1346-24-3 馳
+sign \x99B4 234-234-3 馴
+sign \x99B9 245-1235-3 馹
+sign \x99C1 1234-12456-5 駁
+sign \x99C3 1235-12356-5 駃
+sign \x99C9 12345-356 駉
+sign \x99D0 14-1456-4 駐
+sign \x99D1 1345-1236-3 駑
+sign \x99D2 1235-245 駒
+sign \x99D4 14-56-1 駔
+sign \x99D5 13-12-4 駕
+sign \x99D8 23456-126-3 駘
+sign \x99D9 124-136-2 駙
+sign \x99DB 234-146-1 駛
+sign \x99DD 23456-135-3 駝
+sign \x99DF 234-24-4 駟
+sign \x99E2 12346-256-3 駢
+sign \x99E3 12346-256-3
+sign \x99EA 234-1246 駪
+sign \x99EC 24-6 駬
+sign \x99ED 125-346-6 駭
+sign \x99EE 1234-12456-5 駮
+sign \x99F0 245-1246 駰
+sign \x99F1 123-12456-5 駱
+sign \x99F5 123-16-3
+sign \x99F8 1346-456 駸
+sign \x99F9 134-56-3 駹
+sign \x99FB 125-1345-1 駻
+sign \x99FC 23456-1236-3 駼
+sign \x99FD 13-23 駽
+sign \x99FF 14-234-4 駿
+sign \x9A01 1346-356-1 騁
+sign \x9A03 1245-126-3 騃
+sign \x9A04 123-12345-3 騄
+sign \x9A05 14-245 騅
+sign \x9A09 12456-1246 騉
+sign \x9A0A 23456-1236-3 騊
+sign \x9A0B 123-126-3 騋
+sign \x9A0C 14-236
+sign \x9A0D 124-135-4 騍
+sign \x9A0E 1235-15-3 騎
+sign \x9A0F 1235-125-3 騏
+sign \x9A10 235-2
+sign \x9A11 124-125 騑
+sign \x9A15 13456-1 騕
+sign \x9A16 134-1236-2 騖
+sign \x9A19 12346-256-4 騙
+sign \x9A1E 2456-13-3 騞
+sign \x9A20 23456-146-3 騠
+sign \x9A22 125-12-3 騢
+sign \x9A23 14-236 騣
+sign \x9A24 12456-146-3 騤
+sign \x9A27 2456-12 騧
+sign \x9A2B 125-256 騫
+sign \x9A2D 14-35 騭
+sign \x9A2E 123-16 騮
+sign \x9A30 23456-1245-3 騰
+sign \x9A32 1346-1236-1 騲
+sign \x9A35 23-3 騵
+sign \x9A36 14-16 騶
+sign \x9A37 234-1236 騷
+sign \x9A38 234-256-4 騸
+sign \x9A3E 123-245-3 騾
+sign \x9A40 134-46-3 驀
+sign \x9A41 1245-1236-3 驁
+sign \x9A42 1346-345 驂
+sign \x9A43 1234-13456 驃
+sign \x9A44 1346-236 驄
+sign \x9A45 1235-245 驅
+sign \x9A48 2456-35-3 驈
+sign \x9A4A 2456-12-3 驊
+sign \x9A4C 234-12345 驌
+sign \x9A4D 125-13456 驍
+sign \x9A4E 123-234-3 驎
+sign \x9A4F 1346-45-4 驏
+sign \x9A54 23456-235-6 驔
+sign \x9A55 13-13456 驕
+sign \x9A56 23456-23456-5
+sign \x9A57 235-2 驗
+sign \x9A58 123-135-3
+sign \x9A5A 13-356 驚
+sign \x9A5B 245-1235-3 驛
+sign \x9A5F 14-34-2 驟
+sign \x9A60 256-0 驠
+sign \x9A62 123-1236-3 驢
+sign \x9A64 234-25 驤
+sign \x9A65 1235-125-4 驥
+sign \x9A66 234-25 驦
+sign \x9A68 12456-146-3 驨
+sign \x9A69 124-2346 驩
+sign \x9A6A 123-125-3 驪
+sign \x9AA8 12345-35 骨
+sign \x9AAB 2456-146-1 骫
+sign \x9AAD 13-1345-4 骭
+sign \x9AAF 56-0 骯
+sign \x9AB0 234-1235 骰
+sign \x9AB1 125-346-2 骱
+sign \x9AB3 1234-125-2 骳
+sign \x9AB4 1346-24 骴
+sign \x9AB7 124-136 骷
+sign \x9AB8 125-346-3 骸
+sign \x9ABB 12456-12-4 骻
+sign \x9ABC 13-13-5 骼
+sign \x9ABE 13-1245-1 骾
+sign \x9AC0 1234-125-1 髀
+sign \x9AC1 124-135 髁
+sign \x9AC2 1235-12-4 髂
+sign \x9AC6 1234-12456-5 髆
+sign \x9ACF 123-16-3 髏
+sign \x9AD0 125-34 髐
+sign \x9AD1 2345-12345-3 髑
+sign \x9AD2 14-56 髒
+sign \x9AD3 234-245-6 髓
+sign \x9AD4 23456-146-1 體
+sign \x9AD5 1234-1246-4 髕
+sign \x9AD6 124-2346 髖
+sign \x9AD8 13-1236 高
+sign \x9ADF 1234-13456 髟
+sign \x9AE0 12456-1246
+sign \x9AE1 12456-1246 髡
+sign \x9AE2 23456-146-4
+sign \x9AE3 124-56-1 髣
+sign \x9AE6 134-1236-3 髦
+sign \x9AEB 23456-13456-3
+sign \x9AEC 12346-125 髬
+sign \x9AED 14-24 髭
+sign \x9AEE 124-2345-5 髮
+sign \x9AEF 235-2 髯
+sign \x9AF2 1234-125-2 髲
+sign \x9AF9 245-16 髹
+sign \x9AFB 13-146-4 髻
+sign \x9AFC 12346-236-3 髼
+sign \x9AFD 14-12 髽
+sign \x9AFE 234-34 髾
+sign \x9B01 123-125 鬁
+sign \x9B03 14-236 鬃
+sign \x9B04 12346-236-3 鬄
+sign \x9B05 12346-1245-3 鬅
+sign \x9B06 234-236 鬆
+sign \x9B08 1235-23-3 鬈
+sign \x9B0B 14-256 鬋
+sign \x9B0D 136-3 鬍
+sign \x9B0E 123-2345-5 鬎
+sign \x9B10 1235-125-3 鬐
+sign \x9B11 123-235-3 鬑
+sign \x9B12 14-1246-1 鬒
+sign \x9B16 234-345 鬖
+sign \x9B18 134-45-3 鬘
+sign \x9B19 14-1245 鬙
+sign \x9B1A 234-1236 鬚
+sign \x9B1F 2456-45-3 鬟
+sign \x9B22 1234-1246-4 鬢
+sign \x9B23 123-12346-3 鬣
+sign \x9B24 245-25-6 鬤
+sign \x9B25 2345-16-4 鬥
+sign \x9B27 1345-34-2 鬧
+sign \x9B28 125-236-4 鬨
+sign \x9B29 245-1235 鬩
+sign \x9B2B 125-345-1 鬫
+sign \x9B2E 13-16 鬮
+sign \x9B2F 1346-25-4 鬯
+sign \x9B31 2456-35 鬱
+sign \x9B32 123-1235-3 鬲
+sign \x9B35 1346-456-3 鬵
+sign \x9B37 14-236 鬷
+sign \x9B3B 245-12345-3 鬻
+sign \x9B3C 12345-146-1 鬼
+sign \x9B41 124-1256 魁
+sign \x9B42 2456-1246-3 魂
+sign \x9B43 1234-2345-3 魃
+sign \x9B44 12346-13-5 魄
+sign \x9B45 134-125-2 魅
+sign \x9B48 234-13456 魈
+sign \x9B4A 2456-1235-3 魊
+sign \x9B4B 23456-245-3 魋
+sign \x9B4D 134-56-6 魍
+sign \x9B4E 123-25-6 魎
+sign \x9B4F 1245-146-2 魏
+sign \x9B51 1346-24 魑
+sign \x9B54 134-135 魔
+sign \x9B58 235-1 魘
+sign \x9B5A 1456-3 魚
+sign \x9B5B 2345-1236 魛
+sign \x9B66 234-12 魦
+sign \x9B68 23456-23-3 魨
+sign \x9B6F 123-1236-6 魯
+sign \x9B74 124-56 魴
+sign \x9B77 245-16-3 魷
+sign \x9B80 23456-135-3 鮀
+sign \x9B82 1346-16-3 鮂
+sign \x9B8B 245-16-1 鮋
+sign \x9B90 23456-126-3 鮐
+sign \x9B91 1234-34 鮑
+sign \x9B92 124-136-2 鮒
+sign \x9B93 14-12-4 鮓
+sign \x9B9A 13-23456-5 鮚
+sign \x9B9E 24-3 鮞
+sign \x9BA0 2456-146-3 鮠
+sign \x9BA6 23456-236-3 鮦
+sign \x9BA8 14-24-1 鮨
+sign \x9BAA 124-1256-1 鮪
+sign \x9BAB 13-34 鮫
+sign \x9BAD 12345-146 鮭
+sign \x9BAE 234-256 鮮
+sign \x9BB8 134-256-6 鮸
+sign \x9BB9 234-34 鮹
+sign \x9BC0 12345-1246-1 鯀
+sign \x9BC1 13-1245-1 鯁
+sign \x9BC7 2456-45-6 鯇
+sign \x9BC8 245-16-3 鯈
+sign \x9BC9 123-125-6 鯉
+sign \x9BCA 234-12 鯊
+sign \x9BD4 24-0 鯔
+sign \x9BD6 1346-356 鯖
+sign \x9BD7 14-12-4 鯗
+sign \x9BDB 2345-13456 鯛
+sign \x9BDC 1346-12346-5 鯜
+sign \x9BE0 123-126-3 鯠
+sign \x9BE1 234-456
+sign \x9BE2 1245-146-3 鯢
+sign \x9BE4 12456-1246 鯤
+sign \x9BE7 1346-25 鯧
+sign \x9BE8 1235-356-3 鯨
+sign \x9BEA 123-356-3 鯪
+sign \x9BEB 14-16 鯫
+sign \x9BED 134-14 鯭
+sign \x9BF0 1345-235-3 鯰
+sign \x9BF7 23456-146-3
+sign \x9BFD 14-1235 鯽
+sign \x9C02 14-46 鰂
+sign \x9C06 1346-234 鰆
+sign \x9C08 2345-12346-3 鰈
+sign \x9C09 2456-56-3 鰉
+sign \x9C0B 256-1 鰋
+sign \x9C0D 1346-16 鰍
+sign \x9C10 12-12456-3
+sign \x9C12 124-12345 鰒
+sign \x9C13 234-126 鰓
+sign \x9C14 14-456 鰔
+sign \x9C1C 13-235 鰜
+sign \x9C23 234-24-3 鰣
+sign \x9C24 234-24
+sign \x9C25 12345-45 鰥
+sign \x9C28 23456-1234-5 鰨
+sign \x9C29 13456-3 鰩
+sign \x9C2D 1235-125-3 鰭
+sign \x9C31 123-256-3 鰱
+sign \x9C32 1245-1236-3 鰲
+sign \x9C33 123-46-3 鰳
+sign \x9C37 23456-13456-3
+sign \x9C39 13-256 鰹
+sign \x9C3B 134-45-2 鰻
+sign \x9C3C 14-1234-3 鰼
+sign \x9C3D 1346-1236-3
+sign \x9C3E 1234-13456 鰾
+sign \x9C44 14-23 鱄
+sign \x9C45 245-236-3
+sign \x9C48 234-12356-5 鱈
+sign \x9C49 1234-23456-5 鱉
+sign \x9C4A 2456-35-3 鱊
+sign \x9C4D 1234-1356-3 鱍
+sign \x9C52 14-23 鱒
+sign \x9C54 234-256-6 鱔
+sign \x9C56 12345-146-4 鱖
+sign \x9C57 123-234-3 鱗
+sign \x9C58 1346-456-3 鱘
+sign \x9C5F 125-16-2 鱟
+sign \x9C60 1235-1256-4 鱠
+sign \x9C63 14-256 鱣
+sign \x9C67 123-146-6 鱧
+sign \x9C68 234-25-3 鱨
+sign \x9C6D 1346-146-3 鱭
+sign \x9C6E 14-245-2 鱮
+sign \x9C72 123-1234-3 鱲
+sign \x9C77 1245-12456-3 鱷
+sign \x9C78 123-1236-3 鱸
+sign \x9C7A 123-125-3 鱺
+sign \x9CE5 1345-13456-6 鳥
+sign \x9CE6 12356-3 鳦
+sign \x9CE7 124-136-3 鳧
+sign \x9CE9 1235-16 鳩
+sign \x9CF2 234-24 鳲
+sign \x9CF3 124-236-2 鳳
+sign \x9CF4 134-356-3 鳴
+sign \x9CF6 23-0 鳶
+sign \x9CF7 14-24 鳷
+sign \x9D00 124-16-1 鴀
+sign \x9D03 12345-1235 鴃
+sign \x9D06 14-456-2 鴆
+sign \x9D07 1234-1236-1 鴇
+sign \x9D08 1245-45-2 鴈
+sign \x9D09 12-0 鴉
+sign \x9D10 13-12 鴐
+sign \x9D12 123-356-3 鴒
+sign \x9D15 23456-135-3 鴕
+sign \x9D1B 23-0 鴛
+sign \x9D1D 1235-245-3 鴝
+sign \x9D1E 125-13456 鴞
+sign \x9D1F 1346-24 鴟
+sign \x9D20 2345-45-4
+sign \x9D23 13-136 鴣
+sign \x9D25 2456-35-3 鴥
+sign \x9D26 245-25 鴦
+sign \x9D28 1234-5 鴨
+sign \x9D2F 24-3 鴯
+sign \x9D30 1235-1356-5 鴰
+sign \x9D34 125-1245
+sign \x9D37 123-23456-3 鴷
+sign \x9D3B 125-236-3 鴻
+sign \x9D3F 13-26-5 鴿
+sign \x9D40 245-456-2 鵀
+sign \x9D41 13-34 鵁
+sign \x9D42 245-16 鵂
+sign \x9D43 14-16 鵃
+sign \x9D4B 13-125-2 鵋
+sign \x9D51 13-23 鵑
+sign \x9D52 245-12345-3 鵒
+sign \x9D53 1234-1356-3 鵓
+sign \x9D59 1235-12356-5 鵙
+sign \x9D5A 23456-12345 鵚
+sign \x9D5C 23456-146-3 鵜
+sign \x9D5D 1245-135-3 鵝
+sign \x9D60 13-12345 鵠
+sign \x9D61 134-1236-6 鵡
+sign \x9D69 124-12345-3 鵩
+sign \x9D6A 456-0 鵪
+sign \x9D6B 14-34-2 鵫
+sign \x9D6C 12346-14-3 鵬
+sign \x9D70 2345-13456 鵰
+sign \x9D72 14-246-5 鵲
+sign \x9D77 23-0 鵷
+sign \x9D79 123-125-3 鵹
+sign \x9D7B 14-245 鵻
+sign \x9D7E 12456-1246
+sign \x9D80 1235-125-3 鶀
+sign \x9D81 13-356 鶁
+sign \x9D82 245-1235 鶂
+sign \x9D83 245-1235-3
+sign \x9D84 14-356 鶄
+sign \x9D86 123-126-3 鶆
+sign \x9D87 2345-236 鶇
+sign \x9D89 1346-234 鶉
+sign \x9D8A 13-1245 鶊
+sign \x9D92 1346-1235 鶒
+sign \x9D96 1346-16 鶖
+sign \x9D97 23456-146-3 鶗
+sign \x9D98 136-3 鶘
+sign \x9D9A 1245-12456-3 鶚
+sign \x9DA0 256-1 鶠
+sign \x9DA1 125-124-5 鶡
+sign \x9DA4 12456-146-3 鶤
+sign \x9DA6 136-3 鶦
+sign \x9DA9 134-1236-2 鶩
+sign \x9DAA 12456-1235 鶪
+sign \x9DAC 1346-56 鶬
+sign \x9DAF 1245-0 鶯
+sign \x9DB1 125-256 鶱
+sign \x9DB2 245-236 鶲
+sign \x9DB4 125-12456-3 鶴
+sign \x9DB5 1346-135 鶵
+sign \x9DB8 245-246-3 鶸
+sign \x9DB9 123-16-3 鶹
+sign \x9DBA 14-1235-5 鶺
+sign \x9DBB 2456-35-3 鶻
+sign \x9DBC 13-235 鶼
+sign \x9DBF 1346-24 鶿
+sign \x9DC1 245-1235-3 鷁
+sign \x9DC2 13456-2 鷂
+sign \x9DC3 45-4 鷃
+sign \x9DC4 13-146
+sign \x9DC7 1235-16-4 鷇
+sign \x9DC8 23456-146-3 鷈
+sign \x9DD2 1346-23-3 鷒
+sign \x9DD3 14-15-4 鷓
+sign \x9DD6 24-0 鷖
+sign \x9DD7 16-0 鷗
+sign \x9DD8 1346-1235 鷘
+sign \x9DD9 14-24-4 鷙
+sign \x9DDA 123-16-2 鷚
+sign \x9DDF 14-12456-3 鷟
+sign \x9DE5 234-24 鷥
+sign \x9DE6 14-13456 鷦
+sign \x9DE9 1234-146-2 鷩
+sign \x9DEB 234-12345 鷫
+sign \x9DEE 13-13456 鷮
+sign \x9DEF 123-13456-3 鷯
+sign \x9DF0 256-0 鷰
+sign \x9DF2 14-16-2 鷲
+sign \x9DF3 125-45-3 鷳
+sign \x9DF4 125-45-3 鷴
+sign \x9DF8 2456-35-3 鷸
+sign \x9DF9 245-356 鷹
+sign \x9DFA 123-1236-2 鷺
+sign \x9DFD 125-12456-3 鷽
+sign \x9DFE 24-4 鷾
+sign \x9DFF 12346-1235 鷿
+sign \x9E01 123-135-3 鸁
+sign \x9E02 1235-146 鸂
+sign \x9E03 24-3 鸃
+sign \x9E05 12345-1235
+sign \x9E07 14-256 鸇
+sign \x9E09 1234-1236-2
+sign \x9E0E 1245-0
+sign \x9E10 2345-1235-3 鸐
+sign \x9E11 1245-12456-3 鸑
+sign \x9E12 1456-2 鸒
+sign \x9E15 123-1236-3 鸕
+sign \x9E1A 245-356 鸚
+sign \x9E1B 13-2346-4 鸛
+sign \x9E1D 123-125-3 鸝
+sign \x9E1E 123-23-3 鸞
+sign \x9E75 123-1236-6 鹵
+sign \x9E79 125-345-3 鹹
+sign \x9E7A 1346-135 鹺
+sign \x9E7C 13-45-1 鹼
+sign \x9E7D 235-3 鹽
+sign \x9E7F 123-12345-3 鹿
+sign \x9E80 245-16 麀
+sign \x9E82 13-125-1 麂
+sign \x9E83 1234-13456 麃
+sign \x9E87 12456-1246-3 麇
+sign \x9E88 14-1456-1 麈
+sign \x9E8B 134-125-3 麋
+sign \x9E8C 1456-6 麌
+sign \x9E90 123-234-3
+sign \x9E91 1245-146-3 麑
+sign \x9E92 1235-125-3 麒
+sign \x9E93 123-12345 麓
+sign \x9E96 13-2356 麖
+sign \x9E97 123-146-2 麗
+sign \x9E9D 234-15-2 麝
+sign \x9E9E 14-25
+sign \x9E9F 123-234-3 麟
+sign \x9EA4 1346-1236 麤
+sign \x9EA5 134-46-3 麥
+sign \x9EA7 125-35-3 麧
+sign \x9EA9 124-136 麩
+sign \x9EB0 134-16-3 麰
+sign \x9EB4 1235-12345 麴
+sign \x9EB5 134-256-2 麵
+sign \x9EB7 124-236 麷
+sign \x9EBB 134-12-3 麻
+sign \x9EBC 134-135 麼
+sign \x9EBE 124-146 麾
+sign \x9EC2 124-1246-3 黂
+sign \x9EC3 2456-56-3 黃
+sign \x9EC8 23456-16-1 黈
+sign \x9ECC 125-236-3 黌
+sign \x9ECD 234-1456-1 黍
+sign \x9ECE 123-146-3 黎
+sign \x9ECF 1345-235 黏
+sign \x9ED0 1346-24 黐
+sign \x9ED1 125-46 黑
+sign \x9ED3 245-1235-3 黓
+sign \x9ED4 1235-235-3 黔
+sign \x9ED8 134-46-3 默
+sign \x9EDA 1235-235-3 黚
+sign \x9EDB 2345-126-2 黛
+sign \x9EDC 14-12356-5 黜
+sign \x9EDD 245-16-1 黝
+sign \x9EDE 2345-235-1 點
+sign \x9EDF 24-0 黟
+sign \x9EE0 1235-23456-5 黠
+sign \x9EE5 1235-356-3 黥
+sign \x9EE6 2456-35 黦
+sign \x9EE7 123-146-3 黧
+sign \x9EE8 2345-56-1 黨
+sign \x9EEE 23456-45-1 黮
+sign \x9EEF 456-1 黯
+sign \x9EF0 14-1246-1 黰
+sign \x9EF2 1346-345-1 黲
+sign \x9EF3 24-0 黳
+sign \x9EF4 134-1256-3 黴
+sign \x9EF5 14-345-1 黵
+sign \x9EF6 235-1 黶
+sign \x9EF7 2345-12345-3 黷
+sign \x9EF9 14-24-1 黹
+sign \x9EFB 124-35 黻
+sign \x9EFC 124-136-1 黼
+sign \x9EFD 134-1246-6 黽
+sign \x9EFF 23-3 黿
+sign \x9F01 125-245-4 鼁
+sign \x9F07 1245-1236-3 鼇
+sign \x9F08 1234-23456-5 鼈
+sign \x9F09 23456-135-3 鼉
+sign \x9F0E 2345-356-1 鼎
+sign \x9F10 1345-346-6 鼐
+sign \x9F12 14-24 鼒
+sign \x9F13 13-136-1 鼓
+sign \x9F15 2345-236 鼕
+sign \x9F16 124-1246-3 鼖
+sign \x9F17 23456-1236
+sign \x9F18 23-0 鼘
+sign \x9F19 12346-125-3 鼙
+sign \x9F1A 1346-25 鼚
+sign \x9F1B 13-1236 鼛
+sign \x9F20 234-1456-1 鼠
+sign \x9F22 124-1246-3 鼢
+sign \x9F25 1234-35-3 鼥
+sign \x9F29 1235-245-3 鼩
+sign \x9F2A 234-1245 鼪
+sign \x9F2B 234-2456-3 鼫
+sign \x9F2C 245-16-3 鼬
+sign \x9F2E 23456-356-3 鼮
+sign \x9F2F 1245-3 鼯
+sign \x9F31 14-356
+sign \x9F32 2456-1246-3 鼲
+sign \x9F34 256-1 鼴
+sign \x9F37 125-146-3 鼷
+sign \x9F3B 1234-125-2 鼻
+sign \x9F3D 1235-16-3 鼽
+sign \x9F3E 125-1345-3 鼾
+sign \x9F41 125-16 齁
+sign \x9F46 2456-236-4 齆
+sign \x9F47 14-12 齇
+sign \x9F49 1345-56-2 齉
+sign \x9F4A 1346-146-3 齊
+sign \x9F4B 14-346 齋
+sign \x9F4C 14-146 齌
+sign \x9F4D 14-24 齍
+sign \x9F4E 14-146 齎
+sign \x9F4F 14-146 齏
+sign \x9F52 1346-24-1 齒
+sign \x9F54 1346-1246-4 齔
+sign \x9F55 125-35-3 齕
+sign \x9F57 1245-1246-3 齗
+sign \x9F59 1234-34-2 齙
+sign \x9F5C 14-24 齜
+sign \x9F5F 14-245-1 齟
+sign \x9F60 23456-13456-3
+sign \x9F61 123-356-3 齡
+sign \x9F62 123-356-3
+sign \x9F63 1346-1346 齣
+sign \x9F66 1245-1246-3 齦
+sign \x9F67 1245-23456-3 齧
+sign \x9F6A 1346-12345 齪
+sign \x9F6C 1456-6 齬
+sign \x9F6E 24-1 齮
+sign \x9F6F 1245-146-3 齯
+sign \x9F72 13-245-1 齲
+sign \x9F75 1456-3 齵
+sign \x9F76 1245-12456-3 齶
+sign \x9F77 46-0 齷
+sign \x9F78 125-2456-5
+sign \x9F7B 2345-256 齻
+sign \x9F7E 1245-12 齾
+sign \x9F8D 123-236-3 龍
+sign \x9F90 12346-56-3 龐
+sign \x9F91 235-1 龑
+sign \x9F94 13-236 龔
+sign \x9F95 456-0 龕
+sign \x9F99 123-236-3 
+sign \x9F9C 12345-146 龜
+sign \x9FA0 245-246-3 龠
+sign \x9FA2 2456-135-3 龢
+sign \x9FA4 125-346-3 龤
+sign \xE012 13-45-1
+sign \xE01A 1246-3
+sign \xE022 13-23456-3
+sign \xE02E 24-0
+sign \xE049 12346-1245-3
+sign \xE074 125-356 
+sign \xE087 245-245-2
+sign \xE088 2345-12346-3
+sign \xE096 2456-356-2
+sign \xE09C 123-125-6
+sign \xE11C 256-2 
+sign \xE121 124-236 
+sign \xE134 13-16-4
+sign \xE151 12346-256-4
+sign \xE17F 14-236 
+sign \xE185 234-356-2 
+sign \xE1BE 125-13456-1
+sign \xE1CC 13-23456-3 
+sign \xE1D0 12346-13-5
+sign \xE1FA 1346-24-4 
+sign \xE204 12346-125-1
+sign \xE22D 1456-3
+sign \xE248 123-235-3 
+sign \xE24D 14-234-4
+sign \xE266 14-1456-1
+sign \xE286 14-1456
+sign \xE2A3 1456-3
+sign \xE2BF 123-356-3 
+sign \xE2C9 12346-35 
+sign \xE33A 14-1456-4
+sign \xE348 14-56 
+sign \xE357 234-256-4
+sign \xE362 1234-12345-5 
+sign \xE372 13-24 
+sign \xE3C5 14-356
+sign \xE403 2456-146-2
+sign \xE440 123-126-3
+sign \xE441 1346-24-4 
+sign \xE44A 125-125-1
+sign \xE4C5 14-356-2
+sign \xE50D 125-2 
+sign \xE50F 124-1256 
+sign \xE52C 123-125-3
+sign \xE545 124-1246-6
+sign \xE562 245-12345 
+sign \xE563 12346-12-4
+sign \xE5D9 124-236-3 
+sign \xE5EB 23456-16
+sign \xE64E 1346-24-4 
+sign \xE77C 2456-1246-5 
+sign \xE7FF 1346-24-4 
+sign \xE91E 235-2 
+sign \xEAEA 123-236-3 
+sign \xEB55 125-125 
+sign \xEB78 13-346-4 
+sign \xEBB9 14-234-4
+sign \xEBC7 1346-24-4 
+sign \xEBC9 245-356-3
+sign \xEBF6 14-24-1 
+sign \xEC98 134-35-3 
+sign \xECA7 1245-135-3 
+sign \xECA8 134-125-3 
+sign \xECAA 12346-14-3
+sign \xECAF 123-26-3 
+sign \xECC7 234-346
+sign \xECD4 123-12346
+sign \xECDB 23456-456-3
+sign \xECFD 12346-34
+sign \xED72 14-246-5 
+sign \xED91 1346-24-4 
+sign \xEEA7 1234-23456-3 
+sign \xF071 125-234-12345
+sign \xF076 16
+sign \xF0A7 124-234-12345
+sign \xF0B7 124-1235-1345-145
+sign \xF0D8 1-1235-1235
+sign \xF0E0 124-145-134-1345-145
+sign \xF0FC 14-125-13
+sign \xF6CF 46
+sign \xF6E8 3-3
+sign \xF6F2 456-135
+sign \xF6F3 456-36
+sign \xF6F4 6-2356
+sign \xF6F5 2356-3
+sign \xF6F6 35-35
+sign \xF712 1234-1236-1
+sign \xF907 12345-146 
+sign \xFA0C 1245-35-3 兀
+sign \xFA0D 124-135-4 嗀
+sign \xFE30 25
+sign \xFE31 456-123
+sign \xFE33 36-36
+sign \xFE34 456-123
+sign \xFE35 6-2356
+sign \xFE36 2356-3
+sign \xFE37 6-2356
+sign \xFE38 2356-3
+sign \xFE39 6-2356
+sign \xFE3A 2356-3
+sign \xFE3B 246
+sign \xFE3C 12456
+sign \xFE3D 126-126
+sign \xFE3E 345-345
+sign \xFE3F 126
+sign \xFE40 345
+sign \xFE41 3-2356
+sign \xFE42 2356-3
+sign \xFE43 6-236
+sign \xFE44 356-3
+sign \xFE49 456-36
+sign \xFE4A 456-36
+sign \xFE4B 456-36
+sign \xFE4C 456-36
+sign \xFE4F 456-36
+sign \xFE50 36
+sign \xFE51 45
+sign \xFE52 256-0
+sign \xFE54 26-0
+sign \xFE55 25
+sign \xFE56 236
+sign \xFE57 2346
+sign \xFE59 236
+sign \xFE5A 356
+sign \xFE5B 236
+sign \xFE5C 356
+sign \xFE5D 236
+sign \xFE5E 356
+sign \xFE60 56-12346
+sign \xFE61 1346-123
+sign \xFE62 56-235
+sign \xFE63 36
+sign \xFE64 56-126
+sign \xFE66 56-2356
+sign \xFE68 56-1456
+sign \xFE69 56-1246
+sign \xFE6A 4-25-1234
+sign \xFE6B 56-1-2345
+sign \xFF03 56-3456
+sign \xFF04 56-1246
+sign \xFF05 25-1234
+sign \xFF06 56-12346
+sign \xFF08 2356
+sign \xFF09 2356
+sign \xFF0A 56-236
+sign \xFF0B 56-235
+sign \xFF0C 36
+sign \xFF0D 36-3
+sign \xFF10 3456-245
+sign \xFF11 3456-1
+sign \xFF12 3456-12
+sign \xFF13 3456-14
+sign \xFF14 3456-145
+sign \xFF15 3456-15
+sign \xFF16 3456-124
+sign \xFF17 3456-1245
+sign \xFF18 3456-125
+sign \xFF19 3456-24
+sign \xFF1A 25
+sign \xFF1B 26-0
+sign \xFF1C 56-126
+sign \xFF1D 56-2356
+sign \xFF1E 56-345
+sign \xFF1F 236-0
+sign \xFF20 56-1-2345
+sign \xFF21 56-6-1
+sign \xFF22 56-6-12
+sign \xFF23 56-6-14
+sign \xFF24 56-6-145
+sign \xFF25 56-6-15
+sign \xFF26 56-6-124
+sign \xFF27 56-6-1245
+sign \xFF28 56-6-125
+sign \xFF29 56-6-24
+sign \xFF2A 56-6-245
+sign \xFF2B 56-6-13
+sign \xFF2C 56-6-123
+sign \xFF2D 56-6-134
+sign \xFF2E 56-6-1345
+sign \xFF2F 56-6-135
+sign \xFF30 56-6-1234
+sign \xFF31 56-6-12345
+sign \xFF32 56-6-1235
+sign \xFF33 56-6-234
+sign \xFF34 56-6-2345
+sign \xFF35 56-6-136
+sign \xFF36 56-6-1236
+sign \xFF37 56-6-2456
+sign \xFF38 56-6-1346
+sign \xFF39 56-6-13456
+sign \xFF3A 56-6-1356
+sign \xFF5C 456-123
+sign \xFF5E 36
+sign \xFFE0 56-14-15-1345-2345
+sign \xFFE1 56-1234-135-136-1345-145
+sign \xFFE5 56-13456-15-1345
diff --git a/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb b/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb
new file mode 100644
index 0000000..dbfe4aa
--- /dev/null
+++ b/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb
@@ -0,0 +1,29136 @@
+# Chinese braille table by Coscell Kao <coscell@molerat.net> (C) 2011
+
+#English characters
+space \t 9 tab
+space \s 0 blank
+space \x00a0 a unbreakable space
+sign \x000a 78 newline
+space \x000d 0 carriage return
+include loweredDigits6Dots.uti
+
+include latinLetterDef8Dots.uti
+
+punctuation , 6
+punctuation ; 56
+punctuation : 156
+punctuation . 46
+punctuation ! 2346
+punctuation " 5
+punctuation ' 3
+punctuation ( 12356
+punctuation ) 23456
+punctuation - 36
+sign _ 456
+math < 126
+math = 123456
+math > 345
+sign % 146
+math + 346
+math ~ 45
+sign ` 4
+sign & 12346
+sign $ 1246
+punctuation ? 1456
+punctuation { 246
+punctuation [ 2467
+punctuation } 12456
+punctuation ] 124567
+sign ^ 457
+sign @ 47
+sign # 3456
+sign \\ 12567
+sign | 1256
+math / 34
+sign * 16
+
+#Chinese characters 
+sign \x00A0 0
+sign \x00A1 34-2346
+sign \x00A2 36-14-36
+sign \x00A3 36-1237-36
+sign \x00A4 456-1246
+sign \x00A5 36-134567-157-13457-36
+sign \x00A6 46-36
+sign \x00A7 1246-256
+sign \x00A8 456-36
+sign \x00A9 12356-147-23456
+sign \x00AA 36-1247-157-1347-36
+sign \x00AB 126-126
+sign \x00AC 36-13457-1357-23457-36
+sign \x00AD 36
+sign \x00AE 12356-12357-23456
+sign \x00AF 156-36
+sign \x00B0 45-46-16
+sign \x00B1 346-36
+sign \x00B2 457-23
+sign \x00B3 457-25
+sign \x00B4 4
+sign \x00B5 46-134
+sign \x00B6 1246-1234
+sign \x00B7 46
+sign \x00B8 2346-4
+sign \x00B9 457-2
+sign \x00BA 36-1347-17-2347-36
+sign \x00BB 345-345
+sign \x00BC 2-34-256
+sign \x00BD 2-34-23
+sign \x00BE 25-34-256
+sign \x00C0 456-17
+sign \x00C1 457-17
+sign \x00C2 346-17
+sign \x00C3 45-17
+sign \x00C4 36-17
+sign \x00C5 1357-17
+sign \x00C6 17-157
+sign \x00D7 4-16
+sign \x00F7 46-34
+sign \x02C6 378-35678
+sign \x02C7 34567-4
+sign \x02C9 34567-3
+sign \x02CA 34567-2
+sign \x02CB 34567-5
+sign \x02CD 23467-34578
+sign \x02D9 34567-1
+sign \x0391 46-17
+sign \x0392 46-127
+sign \x0393 46-12457
+sign \x0394 46-1457
+sign \x0395 46-157
+sign \x0396 46-13567
+sign \x0397 46-1567
+sign \x0398 46-14567
+sign \x0399 46-247
+sign \x039A 46-137
+sign \x039B 46-1237
+sign \x039C 46-1347
+sign \x039D 46-13457
+sign \x039E 46-13467
+sign \x039F 46-1357
+sign \x03A0 46-12347
+sign \x03A1 46-12357
+sign \x03A3 46-2347
+sign \x03A4 46-23457
+sign \x03A5 46-1367
+sign \x03A6 46-1257
+sign \x03A7 46-123467
+sign \x03A8 46-134567
+sign \x03A9 46-24567
+sign \x03B1 46-1
+sign \x03B2 46-12
+sign \x03B3 46-1245
+sign \x03B4 46-145
+sign \x03B5 46-15
+sign \x03B6 46-1356
+sign \x03B7 46-156
+sign \x03B9 46-24
+sign \x03BA 46-13
+sign \x03BB 46-123
+sign \x03BC 46-134
+sign \x03BD 46-1345
+sign \x03BE 46-1346
+sign \x03BF 46-135
+sign \x03C0 46-1234
+sign \x03C1 46-1235
+sign \x03C3 46-234
+sign \x03C4 46-2345
+sign \x03C5 46-136
+sign \x03C6 46-125
+sign \x03C7 46-12346
+sign \x03C8 46-13456
+sign \x03C9 46-2456
+sign \x0401 34678-3568
+sign \x0410 34678-14568
+sign \x0411 34678-2568
+sign \x0412 34678-568
+sign \x0413 34678-23468
+sign \x0414 34678-347
+sign \x0415 34678-348
+sign \x0416 34678-1568
+sign \x0417 34678-268
+sign \x0418 34678-234568
+sign \x0419 34678-12468
+sign \x041A 34678-368
+sign \x041B 235678-47
+sign \x041C 235678-17
+sign \x041D 235678-127
+sign \x041E 235678-147
+sign \x041F 235678-1457
+sign \x0420 235678-157
+sign \x0421 235678-1247
+sign \x0422 235678-12457
+sign \x0423 235678-1257
+sign \x0424 235678-247
+sign \x0425 235678-2457
+sign \x0426 235678-137
+sign \x0427 235678-1237
+sign \x0428 235678-1347
+sign \x0429 235678-13457
+sign \x042A 235678-1357
+sign \x042B 235678-12347
+sign \x042C 235678-123457
+sign \x042D 235678-12357
+sign \x042E 235678-2347
+sign \x042F 235678-23457
+sign \x0430 235678-1367
+sign \x0431 235678-12367
+sign \x0432 235678-24567
+sign \x0433 235678-13467
+sign \x0434 235678-134567
+sign \x0435 235678-13567
+sign \x0436 235678-12567
+sign \x0437 235678-124567
+sign \x0438 235678-457
+sign \x0439 235678-456
+sign \x043A 235678-4
+sign \x043B 235678-1
+sign \x043C 235678-12
+sign \x043D 235678-14
+sign \x043E 235678-145
+sign \x043F 235678-15
+sign \x0440 235678-124
+sign \x0441 235678-1245
+sign \x0442 235678-125
+sign \x0443 235678-24
+sign \x0444 235678-245
+sign \x0445 235678-13
+sign \x0446 235678-123
+sign \x0447 235678-134
+sign \x0448 235678-1345
+sign \x0449 235678-135
+sign \x044A 235678-1234
+sign \x044B 235678-12345
+sign \x044C 235678-1235
+sign \x044D 235678-234
+sign \x044E 235678-2345
+sign \x044F 235678-136
+sign \x0451 235678-2467
+sign \x2003 0
+sign \x2013 5-2
+sign \x2014 36-36
+sign \x2015 36-36
+sign \x2016 1246-123
+sign \x2018 4
+sign \x2019 3
+sign \x201C 236-236
+sign \x201D 356-356
+sign \x2020 346
+sign \x2022 36
+sign \x2024 34567-1
+sign \x2025 5-5-5
+sign \x2026 5-5-5
+sign \x2027 36
+sign \x2032 3
+sign \x2033 4-3456
+sign \x2035 3
+sign \x203B 46-16
+sign \x203E 23467-578
+sign \x2103 45-46-16-0-147
+sign \x2105 146
+sign \x2109 45-46-16-0-1247
+sign \x2116 235678-3578
+sign \x2121 235678-145678
+sign \x2160 247
+sign \x2161 247-247
+sign \x2162 247-247-247
+sign \x2163 247-12367
+sign \x2164 12367
+sign \x2165 12367-247
+sign \x2166 12367-247-247
+sign \x2167 12367-247-247-247
+sign \x2168 247-13467
+sign \x2169 13467
+sign \x2170 247
+sign \x2171 247-247
+sign \x2172 247-247-247
+sign \x2173 247-12367
+sign \x2174 12367
+sign \x2175 12367-247
+sign \x2176 12367-247-247
+sign \x2177 12367-247-247-247
+sign \x2178 247-13467
+sign \x2179 13467
+sign \x2190 1246-246-25-25
+sign \x2191 1246-126-25-25-135
+sign \x2192 1246-25-25-135
+sign \x2193 1246-146-25-25-135
+sign \x2196 23467-348
+sign \x2197 23467-3568
+sign \x2198 23467-268
+sign \x2199 23467-1568
+sign \x21B8 235678-2456
+sign \x21B9 235678-1346
+sign \x21E7 235678-1236
+sign \x21E8 1246-25-25-135
+sign \x2207 46-1246
+sign \x220F 46-12347
+sign \x2211 46-2347
+sign \x2212 36
+sign \x2215 34
+sign \x2216 12467-127
+sign \x2218 45-46-16
+sign \x221A 345-12456
+sign \x221E 6-123456
+sign \x221F 23467-23568
+sign \x2220 1246-246
+sign \x2223 1256
+sign \x2225 1246-123
+sign \x2227 46-1237
+sign \x2228 12367
+sign \x2229 46-146
+sign \x222A 46-346
+sign \x222B 23467-2368
+sign \x222E 23467-1468
+sign \x2234 6-16
+sign \x2235 4-34
+sign \x2236 25-25
+sign \x2248 23467-2345678
+sign \x2251 123456
+sign \x2252 5-46-13-126-156-12456
+sign \x2260 34-46-13
+sign \x2261 4-156-46-13
+sign \x2263 4-156-46-13
+sign \x2264 5-13-156
+sign \x2265 46-2-156
+sign \x2266 5-13-156
+sign \x2267 46-2-156
+sign \x2295 23467-358
+sign \x2299 23467-14568
+sign \x22A5 1246-1234
+sign \x22BF 23467-1268
+sign \x2307 45
+sign \x2400 34567-23578
+sign \x2401 34567-1678
+sign \x2402 34567-278
+sign \x2403 34567-578
+sign \x2404 34567-1234678
+sign \x2405 34567-34578
+sign \x2406 34567-378
+sign \x2407 34567-34678
+sign \x2408 34567-235678
+sign \x2409 34567-12678
+sign \x240A 34567-2378
+sign \x240B 34567-12345678
+sign \x240C 34567-23678
+sign \x240D 34567-14678
+sign \x240E 34567-2578
+sign \x240F 34567-1235678
+sign \x2410 34567-678
+sign \x2411 34567-4678
+sign \x2412 34567-3578
+sign \x2413 34567-145678
+sign \x2414 34567-25678
+sign \x2415 34567-5678
+sign \x2416 34567-234678
+sign \x2417 34567-167
+sign \x2418 34567-3478
+sign \x2419 34567-35678
+sign \x241A 34567-15678
+sign \x241B 34567-2678
+sign \x241C 34567-2345678
+sign \x241D 34567-124678
+sign \x241E 34567-3678
+sign \x241F 34567-345678
+sign \x2421 34567-2358
+sign \x2460 378-23467
+sign \x2461 378-12467
+sign \x2462 378-34567
+sign \x2463 378-1467
+sign \x2464 378-123467
+sign \x2465 378-1567
+sign \x2466 378-357
+sign \x2467 378-57
+sign \x2468 378-23567
+sign \x2469 378-8
+sign \x2474 12356-2-23456
+sign \x2475 12356-23-23456
+sign \x2476 12356-25-23456
+sign \x2477 12356-256-23456
+sign \x2478 12356-26-23456
+sign \x2479 12356-235-23456
+sign \x247A 12356-2356-23456
+sign \x247B 12356-236-23456
+sign \x247C 12356-35-23456
+sign \x247D 12356-2-356-23456
+sign \x2500 36-36
+sign \x2502 1256
+sign \x2504 5-5-5
+sign \x2505 5-5-5
+sign \x2506 25-25
+sign \x2507 25-25
+sign \x2508 5-5-5
+sign \x2509 5-5-5
+sign \x250A 1256-0
+sign \x250B 1256-0
+sign \x250C 12467-1356
+sign \x250D 12467-1356
+sign \x250E 12467-1356
+sign \x250F 12467-1356
+sign \x2510 12467-246
+sign \x2511 12467-246
+sign \x2512 12467-246
+sign \x2513 12467-246
+sign \x2514 12467-1256
+sign \x2515 12467-1256
+sign \x2516 12467-1256
+sign \x2517 12467-1256
+sign \x2518 12467-12456
+sign \x2519 12467-12456
+sign \x251A 12467-12456
+sign \x251B 12467-12456
+sign \x251C 12467-136
+sign \x251D 12467-136
+sign \x251E 12467-136
+sign \x251F 12467-136
+sign \x2520 12467-136
+sign \x2521 12467-136
+sign \x2522 12467-136
+sign \x2523 12467-136
+sign \x2524 12467-2345
+sign \x2525 12467-2345
+sign \x2526 12467-2345
+sign \x2527 12467-2345
+sign \x2528 12467-2345
+sign \x2529 12467-2345
+sign \x252A 12467-2345
+sign \x252B 12467-2345
+sign \x252C 12467-234
+sign \x252D 12467-234
+sign \x252E 12467-234
+sign \x252F 12467-234
+sign \x2530 12467-234
+sign \x2531 12467-234
+sign \x2532 12467-234
+sign \x2533 12467-234
+sign \x2534 12467-1235
+sign \x2535 12467-1235
+sign \x2536 12467-1235
+sign \x2537 12467-1235
+sign \x2538 12467-1235
+sign \x2539 12467-1235
+sign \x253A 12467-1235
+sign \x253B 12467-1235
+sign \x253C 12467-12345
+sign \x253D 12467-12345
+sign \x253E 12467-12345
+sign \x253F 12467-12345
+sign \x2540 12467-12345
+sign \x2541 12467-12345
+sign \x2542 12467-12345
+sign \x2543 12467-12345
+sign \x2544 12467-12345
+sign \x2545 12467-12345
+sign \x2546 12467-12345
+sign \x2547 12467-12345
+sign \x2548 12467-12345
+sign \x2549 12467-12345
+sign \x254A 12467-12345
+sign \x254B 12467-12345
+sign \x2550 3568-3568
+sign \x2551 3568-348
+sign \x2552 3568-38
+sign \x2553 3568-123568
+sign \x2554 3568-124678
+sign \x2555 3568-23568
+sign \x2556 3568-468
+sign \x2557 3568-345678
+sign \x2558 3568-2368
+sign \x2559 3568-568
+sign \x255A 3568-58
+sign \x255B 3568-258
+sign \x255C 3568-347
+sign \x255D 3568-3458
+sign \x255E 3568-1268
+sign \x255F 3568-358
+sign \x2560 3568-2358
+sign \x2561 3568-1234568
+sign \x2562 3568-2568
+sign \x2563 3568-28
+sign \x2564 3568-3468
+sign \x2565 3568-68
+sign \x2566 3568-3678
+sign \x2567 3568-1468
+sign \x2568 3568-23468
+sign \x2569 3568-123468
+sign \x256A 3568-238
+sign \x256B 3568-14568
+sign \x256C 3568-168
+sign \x256D 12467-45
+sign \x256E 12467-23467
+sign \x256F 12467-34567
+sign \x2570 12467-12467
+sign \x2571 34
+sign \x2572 12467-367
+sign \x2573 135-246
+sign \x2574 36-0
+sign \x2581 456
+sign \x2582 12467-14
+sign \x2583 12467-145
+sign \x2584 12467-15
+sign \x2585 12467-124
+sign \x2586 12467-1245
+sign \x2587 12467-125
+sign \x2588 12467-24
+sign \x2589 12467-1234
+sign \x258A 12467-135
+sign \x258B 12467-1345
+sign \x258C 12467-134
+sign \x258D 12467-123
+sign \x258E 12467-13
+sign \x258F 12467-245
+sign \x2593 3568-368
+sign \x2594 12467-1236
+sign \x2595 12467-13456
+sign \x25A0 12345678-12345678
+sign \x25A1 12346-13456
+sign \x25B2 1246-126
+sign \x25B3 1246-2345
+sign \x25BC 1246-146
+sign \x25BD 46-1246
+sign \x25C6 1246-145
+sign \x25C7 23467-7
+sign \x25CB 14-13456-2
+sign \x25CE 246-246-135-135
+sign \x25CF 246-123456-135
+sign \x25E2 12467-57
+sign \x25E3 12467-23567
+sign \x25E4 12467-1267
+sign \x25E5 12467-8
+sign \x25EF 14-13456-2
+sign \x2605 23467-27
+sign \x2606 23467-67
+sign \x2609 23467-14568
+sign \x2640 46-2-15-13456-5
+sign \x2641 23467-358
+sign \x2642 1456-3-15-13456-5
+sign \x266D 12
+sign \x266F 3456
+sign \x273D 378-38
+sign \x2780 378-23467
+sign \x2781 378-12467
+sign \x2782 378-34567
+sign \x2783 378-1467
+sign \x2784 378-123467
+sign \x2785 378-1567
+sign \x2786 378-357
+sign \x2787 378-57
+sign \x2788 378-23567
+sign \x2789 378-8
+sign \x2F02 378-14567
+sign \x2F03 1234-346-4
+sign \x2F05 378-1678
+sign \x2F07 124-12356-2
+sign \x2F0C 13-235-3
+sign \x2F0D 134-16-5
+sign \x2F0E 135-13456-3
+sign \x2F13 135-146-3
+sign \x2F16 15-16-5
+sign \x2F19 13-346-2
+sign \x2F1B 378-12678
+sign \x2F22 378-2378
+sign \x2F27 134-2345-2
+sign \x2F2E 378-23678
+sign \x2F33 378-14678
+sign \x2F34 2345-4
+sign \x2F35 378-1235678
+sign \x2F39 378-678
+sign \x2F3A 24-1236-3
+sign \x2F41 1234-34-3
+sign \x2F46 378-145678
+sign \x2F67 12-456-2
+sign \x2F68 135-126-3
+sign \x2FA1 12-25-5
+sign \x2FAA 378-167
+sign \x3000 0
+sign \x3001 6-0
+sign \x3002 36-0
+sign \x3003 4-3456
+sign \x3005 378-2358
+sign \x3006 378-168
+sign \x3007 378-28
+sign \x3008 126
+sign \x3009 345
+sign \x300A 126-126
+sign \x300B 345-345
+sign \x300C 56-36
+sign \x300D 36-23
+sign \x300E 236-236
+sign \x300F 356-356
+sign \x3010 2467-0
+sign \x3011 124567-0
+sign \x3012 12347-1357
+sign \x3013 12467-1467
+sign \x3014 12346-0
+sign \x3015 13456-0
+sign \x301C 45
+sign \x301D 236
+sign \x301E 236
+sign \x3021 24
+sign \x3022 24-24
+sign \x3023 24-24-24
+sign \x3024 24-1236
+sign \x3025 1236
+sign \x3026 1236-24
+sign \x3027 1236-24-24
+sign \x3028 1236-24-24-24
+sign \x3029 24-1346
+sign \x3030 23467-2378
+sign \x3038 1346
+sign \x3039 1346-1346
+sign \x303A 1346-1346-1346
+sign \x3041 378-3468
+sign \x3042 1
+sign \x3043 378-1268
+sign \x3044 12
+sign \x3045 378-1234568
+sign \x3046 14
+sign \x3047 378-1468
+sign \x3048 124
+sign \x3049 378-123568
+sign \x304A 24
+sign \x304B 16
+sign \x304C 5-16
+sign \x304D 126
+sign \x304E 5-126
+sign \x304F 146
+sign \x3050 5-146
+sign \x3051 1246
+sign \x3052 5-1246
+sign \x3053 246
+sign \x3054 5-246
+sign \x3055 156
+sign \x3056 5-156
+sign \x3057 1256
+sign \x3058 5-1256
+sign \x305B 12456
+sign \x305C 5-12456
+sign \x305D 2456
+sign \x305E 5-2456
+sign \x305F 135
+sign \x3060 5-135
+sign \x3061 1235
+sign \x3062 5-1235
+sign \x3063 34678-2457
+sign \x3064 1345
+sign \x3065 5-1345
+sign \x3066 12345
+sign \x3067 5-12345
+sign \x3068 2345
+sign \x3069 5-2345
+sign \x306A 13
+sign \x306B 123
+sign \x306C 134
+sign \x306D 1234
+sign \x306E 234
+sign \x306F 136
+sign \x3070 5-136
+sign \x3071 6-136
+sign \x3072 1236
+sign \x3073 5-1236
+sign \x3074 6-1236
+sign \x3075 1346
+sign \x3076 5-1346
+sign \x3077 6-1346
+sign \x3078 12346
+sign \x3079 5-12346
+sign \x307A 6-12346
+sign \x307B 2346
+sign \x307C 5-2346
+sign \x307D 6-2346
+sign \x307E 1356
+sign \x307F 12356
+sign \x3080 13456
+sign \x3081 123456
+sign \x3082 23456
+sign \x3083 34678-245
+sign \x3084 346
+sign \x3085 34678-123
+sign \x3086 34
+sign \x3087 34678-1345
+sign \x3088 345
+sign \x3089 15
+sign \x308A 125
+sign \x308B 145
+sign \x308C 1245
+sign \x308D 245
+sign \x308E 34678-136
+sign \x308F 3
+sign \x3090 34678-2456
+sign \x3091 34678-1346
+sign \x3092 35
+sign \x3093 356
+sign \x3094 235678-257
+sign \x309B 235678-3467
+sign \x309C 235678-237
+sign \x309D 378-2345678
+sign \x309E 378-124678
+sign \x30A1 34678-246
+sign \x30A2 34678-1256
+sign \x30A3 34678-12456
+sign \x30A4 34678-45
+sign \x30A5 34678-23467
+sign \x30A6 34678-12467
+sign \x30A7 34678-34567
+sign \x30A8 34678-1467
+sign \x30A9 34678-123467
+sign \x30AA 34678-1567
+sign \x30AB 34678-357
+sign \x30AC 34678-57
+sign \x30AD 34678-23567
+sign \x30AE 34678-8
+sign \x30AF 34678-1267
+sign \x30B0 34678-2567
+sign \x30B1 34678-367
+sign \x30B2 34678-2367
+sign \x30B3 34678-267
+sign \x30B4 34678-3567
+sign \x30B5 34678-3467
+sign \x30B6 34678-237
+sign \x30B7 34678-257
+sign \x30B8 34678-37
+sign \x30B9 34678-567
+sign \x30BA 34678-2357
+sign \x30BB 34678-467
+sign \x30BC 34678-67
+sign \x30BD 34678-27
+sign \x30BE 34678-7
+sign \x30BF 34678-3457
+sign \x30C0 34678-123567
+sign \x30C1 34678-1234567
+sign \x30C2 34678-234567
+sign \x30C3 34678-14567
+sign \x30C4 34678-23578
+sign \x30C5 34678-1678
+sign \x30C6 34678-278
+sign \x30C7 34678-578
+sign \x30C8 34678-1234678
+sign \x30C9 34678-34578
+sign \x30CA 34678-378
+sign \x30CB 34678-34678
+sign \x30CC 34678-235678
+sign \x30CD 34678-12678
+sign \x30CE 34678-2378
+sign \x30CF 34678-12345678
+sign \x30D0 34678-23678
+sign \x30D1 34678-14678
+sign \x30D2 34678-2578
+sign \x30D3 34678-1235678
+sign \x30D4 34678-678
+sign \x30D5 34678-4678
+sign \x30D6 34678-3578
+sign \x30D7 34678-145678
+sign \x30D8 34678-25678
+sign \x30D9 34678-5678
+sign \x30DA 34678-234678
+sign \x30DB 34678-167
+sign \x30DC 34678-3478
+sign \x30DD 34678-35678
+sign \x30DE 34678-15678
+sign \x30DF 34678-2678
+sign \x30E0 34678-2345678
+sign \x30E1 34678-124678
+sign \x30E2 34678-3678
+sign \x30E3 34678-345678
+sign \x30E4 34678-2358
+sign \x30E5 34678-168
+sign \x30E6 34678-28
+sign \x30E7 34678-58
+sign \x30E8 34678-123468
+sign \x30E9 34678-3458
+sign \x30EA 34678-38
+sign \x30EB 34678-3468
+sign \x30EC 34678-23568
+sign \x30ED 34678-1268
+sign \x30EE 34678-238
+sign \x30EF 34678-1234568
+sign \x30F0 34678-2368
+sign \x30F1 34678-1468
+sign \x30F2 34678-258
+sign \x30F3 34678-123568
+sign \x30F4 34678-68
+sign \x30F5 34678-468
+sign \x30F6 34678-358
+sign \x30F7 235678-37
+sign \x30F8 235678-567
+sign \x30F9 235678-2357
+sign \x30FA 235678-467
+sign \x30FB 235678-67
+sign \x30FC 378-58
+sign \x30FD 378-15678
+sign \x30FE 378-2678
+sign \x3105 34567-135
+sign \x3106 34567-1234
+sign \x3107 34567-134
+sign \x3108 34567-12345
+sign \x3109 34567-145
+sign \x310A 34567-124
+sign \x310B 34567-1345
+sign \x310C 34567-14
+sign \x310D 34567-13
+sign \x310E 34567-123
+sign \x310F 34567-1235
+sign \x3110 34567-13
+sign \x3111 34567-245
+sign \x3112 34567-15
+sign \x3113 34567-1
+sign \x3114 34567-12
+sign \x3115 34567-24
+sign \x3116 34567-1245
+sign \x3117 34567-125
+sign \x3118 34567-245
+sign \x3119 34567-15
+sign \x311A 34567-345
+sign \x311B 34567-126
+sign \x311C 34567-2346
+sign \x311D 34567-26
+sign \x311E 34567-2456
+sign \x311F 34567-356
+sign \x3120 34567-146
+sign \x3121 34567-12356
+sign \x3122 34567-1236
+sign \x3123 34567-136
+sign \x3124 34567-1346
+sign \x3125 34567-1356
+sign \x3126 34567-156
+sign \x3127 34567-16
+sign \x3128 34567-34
+sign \x3129 34567-1256
+sign \x3192 16-3
+sign \x3193 156-5
+sign \x3194 15-1236-3
+sign \x3195 15-156-5
+sign \x3196 24-1346-5
+sign \x3197 1-12346-3
+sign \x3198 15-23456-5
+sign \x3199 13-23456-4
+sign \x319A 16-4
+sign \x319B 135-13456-4
+sign \x319C 145-13456-3
+sign \x319D 124-2345-3
+sign \x319E 145-16-5
+sign \x319F 1245-136-2
+sign \x31CF 235678-13456
+sign \x322A 236-5
+sign \x322B 1235-25-4
+sign \x322C 24-1246-4
+sign \x322D 134-34-5
+sign \x322E 13-1456-3
+sign \x322F 124-34-4
+sign \x3230 1245-156-5
+sign \x3231 235678-4678
+sign \x3233 24-2346-5
+sign \x3234 134-13456-2
+sign \x3235 124-2346-5
+sign \x3236 245-2456-2
+sign \x3237 1-34-5
+sign \x3238 14-146-2
+sign \x3239 145-2456-5
+sign \x323A 1235-34-3
+sign \x323B 15-236-2
+sign \x323C 13-2345-3
+sign \x323D 245-16-5
+sign \x323E 125-156-3
+sign \x323F 15-346-2
+sign \x3240 13-16-5
+sign \x3241 15-234-3
+sign \x3242 125-156-5
+sign \x3243 1-156-5
+sign \x3280 16-3
+sign \x3281 156-5
+sign \x3282 15-1236-3
+sign \x3283 15-156-5
+sign \x3284 34-4
+sign \x3285 14-234-5
+sign \x3286 245-16-3
+sign \x3287 135-345-3
+sign \x3288 13-234-4
+sign \x3289 24-156-2
+sign \x328A 236-5
+sign \x328B 1235-25-4
+sign \x328C 24-1246-4
+sign \x328D 134-34-5
+sign \x328E 13-1456-3
+sign \x328F 124-34-4
+sign \x3290 1245-156-5
+sign \x3291 1-34-3
+sign \x3292 234-4
+sign \x3293 24-2346-5
+sign \x3294 134-13456-2
+sign \x3295 124-2346-5
+sign \x3296 245-2456-2
+sign \x3297 1-34-5
+sign \x3298 14-146-2
+sign \x3299 134-16-5
+sign \x329A 1345-1236-2
+sign \x329B 1345-1256-4
+sign \x329C 24-156-5
+sign \x329D 234-3
+sign \x329E 1456-5
+sign \x329F 1-34-5
+sign \x32A0 15-46-5
+sign \x32A1 15-234-3
+sign \x32A2 15-346-4
+sign \x32A3 1-1356-5
+sign \x32A4 24-1346-5
+sign \x32A5 1-12346-3
+sign \x32A6 15-23456-5
+sign \x32A7 125-25-4
+sign \x32A8 234-5
+sign \x32A9 16-3
+sign \x32AA 125-12346-3
+sign \x32AB 15-236-2
+sign \x32AC 13-2345-3
+sign \x32AD 245-16-5
+sign \x32AE 125-156-3
+sign \x32AF 15-346-2
+sign \x32B0 346-5
+sign \x338E 134-1245
+sign \x338F 13-1245
+sign \x339C 134-134
+sign \x339D 14-134
+sign \x339E 13-134
+sign \x33A1 134-45-23
+sign \x33C4 14-14
+sign \x33CE 137-1347
+sign \x33D1 23467-1234568
+sign \x33D2 23467-238
+sign \x33D5 134-24-123
+sign \x3400 245-234-3
+sign \x3401 124-2345-4
+sign \x3404 123-35-5
+sign \x3405 34-4
+sign \x3406 1456-4
+sign \x340C 24-156-5
+sign \x3416 346-5
+sign \x341C 12-12356-2
+sign \x3421 1345-25-5
+sign \x3424 245-234-2
+sign \x3428 15-234-5
+sign \x3429 15-13456-2
+sign \x342B 15-235-3
+sign \x342C 14-234-2
+sign \x342D 14-1456-4
+sign \x342E 15-46-3
+sign \x342F 235-3
+sign \x3430 15-1456-5
+sign \x3431 1-136-4
+sign \x3432 145-2456-5
+sign \x3433 34-5
+sign \x3434 1234-1236-3
+sign \x3437 134-345-5
+sign \x3438 245-2345-5
+sign \x3439 16-5
+sign \x343A 1-12346-5
+sign \x343B 136-4
+sign \x343C 1-1356-4
+sign \x3441 1-25-3
+sign \x3442 12345-1346-4
+sign \x3443 146-4
+sign \x3444 34-4
+sign \x3445 125-25-5
+sign \x3447 1-12356-5
+sign \x3448 145-12346-5
+sign \x3449 15-34-5
+sign \x344A 16-5
+sign \x344B 13-235-5
+sign \x344C 123-456-3
+sign \x344D 14-356-4
+sign \x344E 1345-146-4
+sign \x344F 1-34-5
+sign \x3454 15-234-4
+sign \x3458 13-246-5
+sign \x3459 145-346-2
+sign \x345A 1345-25-2
+sign \x345B 15-34-5
+sign \x345C 16-5
+sign \x345D 14-12346-5
+sign \x345E 13456-5
+sign \x345F 135-1356-4
+sign \x3463 14-1236-2
+sign \x3464 134-246-2
+sign \x3465 16-5
+sign \x3466 14-16-5
+sign \x3467 13-16-5
+sign \x3468 234-4
+sign \x3469 14-25-2
+sign \x346A 12-2456-2
+sign \x346E 1235-123456-2
+sign \x346F 15-234-4
+sign \x3470 1235-1246-5
+sign \x3471 1235-146-4
+sign \x3473 1-12356-5
+sign \x3474 245-1456-3
+sign \x3475 1235-1236-5
+sign \x3476 15-16-5
+sign \x3477 1-456-5
+sign \x3478 2456-4
+sign \x3479 1235-1246-5
+sign \x347A 13-256-5
+sign \x347B 134-245-5
+sign \x347C 14-346-5
+sign \x347D 124-1346-2
+sign \x347E 15-246-2
+sign \x347F 124-246-2
+sign \x3480 1-345-4
+sign \x3481 1256-4
+sign \x3482 123-34-5
+sign \x3483 156-5
+sign \x3484 1345-1346-5
+sign \x3485 245-16-4
+sign \x3486 12-156-5
+sign \x3487 134-34-5
+sign \x3488 1235-1236-5
+sign \x3489 124-1346-4
+sign \x348A 15-2346-5
+sign \x348C 245-235-2
+sign \x348D 14-356-2
+sign \x348E 15-345-4
+sign \x3491 1235-1246-5
+sign \x3492 1234-34-2
+sign \x3493 124-345-5
+sign \x3494 24-34-4
+sign \x3496 12356-4
+sign \x3497 124-2456-2
+sign \x3499 134-2345-2
+sign \x349A 123456-4
+sign \x349B 145-246-5
+sign \x349C 1256-2
+sign \x349D 134-346-5
+sign \x349E 13-256-5
+sign \x349F 1345-246-4
+sign \x34A0 15-346-5
+sign \x34A1 234-2
+sign \x34A4 24-2346-5
+sign \x34A6 14-356-4
+sign \x34A7 14-16-5
+sign \x34A8 15-2345-3
+sign \x34A9 14-25-4
+sign \x34AB 13-16-5
+sign \x34B0 245-45-2
+sign \x34B2 245-2456-2
+sign \x34B3 14-46-4
+sign \x34B4 13-34-4
+sign \x34B5 134-146-5
+sign \x34B7 13-35-4
+sign \x34B8 15-1246-5
+sign \x34BA 456-4
+sign \x34BB 134-146-5
+sign \x34BC 134-1236-2
+sign \x34BE 24-156-5
+sign \x34BF 14-16-2
+sign \x34C1 456-4
+sign \x34C2 123-12356-5
+sign \x34C3 12-1246-2
+sign \x34C4 1-136-5
+sign \x34C8 135-1346-5
+sign \x34C9 1235-456-5
+sign \x34CA 145-12346-5
+sign \x34CB 13-12346-5
+sign \x34CE 14-2345-2
+sign \x34CF 13-235-4
+sign \x34D0 14-34-5
+sign \x34D1 15-13456-5
+sign \x34D3 1345-1236-2
+sign \x34D4 15-346-5
+sign \x34D6 135-16-5
+sign \x34D7 13-346-2
+sign \x34D8 15-34-5
+sign \x34DC 234-5
+sign \x34DD 15-13456-2
+sign \x34DE 245-16-5
+sign \x34E0 145-2345-5
+sign \x34E1 12345-4
+sign \x34E2 14-25-5
+sign \x34E3 245-23456-5
+sign \x34E4 13-346-2
+sign \x34E5 124-1346-3
+sign \x34E7 2345-4
+sign \x34E8 245-156-5
+sign \x34EA 14-1346-4
+sign \x34ED 1235-2346-2
+sign \x34EF 14-16-2
+sign \x34F0 1235-35-5
+sign \x34F1 124-12356-2
+sign \x34F2 1234-2345-5
+sign \x34F4 13-256-5
+sign \x34F5 2346-5
+sign \x34F6 245-16-5
+sign \x34F7 16-5
+sign \x34F8 13-236-2
+sign \x34F9 1245-1246-5
+sign \x34FA 13-2345-5
+sign \x34FC 12-156-5
+sign \x34FD 12-12346-2
+sign \x34FE 12-156-2
+sign \x3500 14-236-5
+sign \x3502 14-1456-2
+sign \x3503 13-236-2
+sign \x3504 15-34-5
+sign \x3505 15-246-5
+sign \x3506 12-1236-2
+sign \x3509 1-34-2
+sign \x350A 145-1236-4
+sign \x350B 13-2345-5
+sign \x350C 1-12356-5
+sign \x350D 145-25-4
+sign \x350E 15-346-5
+sign \x350F 14-16-5
+sign \x3511 12-156-5
+sign \x3512 15-16-2
+sign \x3513 13-2345-4
+sign \x3515 13-16-2
+sign \x3517 12345-356-5
+sign \x3518 12-34-5
+sign \x3519 135-1346-4
+sign \x351A 123-12356-4
+sign \x351C 135-345-2
+sign \x351D 14-46-4
+sign \x351E 123-2356-5
+sign \x3520 1235-2346-2
+sign \x3522 13-236-2
+sign \x3523 14-356-2
+sign \x3524 24-136-4
+sign \x3525 1234-16-2
+sign \x3526 46-4
+sign \x3527 15-236-5
+sign \x3528 135-356-5
+sign \x3529 2346-5
+sign \x352A 14-34-4
+sign \x352D 12-2346-5
+sign \x352E 1345-25-2
+sign \x352F 15-12456-4
+sign \x3530 1235-1356-2
+sign \x3531 1256-4
+sign \x3533 13-1246-4
+sign \x3534 16-5
+sign \x3535 15-2345-5
+sign \x3536 13-12346-5
+sign \x3537 14-12356-5
+sign \x3539 14-2346-5
+sign \x353A 24-156-5
+sign \x353C 15-12346-4
+sign \x353D 246-5
+sign \x353E 13-346-2
+sign \x353F 125-12356-5
+sign \x3541 245-236-5
+sign \x3542 1456-2
+sign \x3544 1-156-5
+sign \x3545 13-23456-4
+sign \x3546 1235-34-5
+sign \x3547 14-345-2
+sign \x3548 1235-12356-5
+sign \x3549 123-2346-5
+sign \x354B 13-13456-5
+sign \x354C 23456-5
+sign \x354E 2346-5
+sign \x354F 12-34-2
+sign \x3550 15-346-4
+sign \x3551 12-34-2
+sign \x3552 1246-2
+sign \x3554 124-13456-3
+sign \x3555 1235-12456-5
+sign \x3556 15-34-5
+sign \x3557 234-5
+sign \x355C 24-156-4
+sign \x3560 24-456-3
+sign \x3565 16-4
+sign \x3576 136-4
+sign \x3581 14-1456-5
+sign \x358A 15-256-2
+sign \x3590 1246-4
+sign \x3591 15-346-5
+sign \x3592 124-16-2
+sign \x3593 1235-12346-2
+sign \x3594 124-123456-4
+sign \x3595 135-126-5
+sign \x3596 1345-346-5
+sign \x3597 1456-2
+sign \x359E 13-25-3
+sign \x359F 24-12356-5
+sign \x35A0 135-345-5
+sign \x35A1 346-5
+sign \x35A2 13-16-2
+sign \x35A3 124-12356-5
+sign \x35A4 1235-1236-2
+sign \x35A5 13-235-4
+sign \x35A6 145-12346-4
+sign \x35A7 123456-4
+sign \x35A8 14-34-5
+sign \x35A9 15-12356-4
+sign \x35AA 13-25-2
+sign \x35AB 14-13456-2
+sign \x35AD 124-2345-4
+sign \x35AE 14-123456-2
+sign \x35B6 346-5
+sign \x35B7 24-156-2
+sign \x35B8 15-236-2
+sign \x35B9 12345-136-5
+sign \x35BA 12-123456-4
+sign \x35BB 1245-12356-2
+sign \x35BC 145-25-4
+sign \x35BD 125-2346-2
+sign \x35BE 2346-5
+sign \x35BF 15-346-2
+sign \x35C1 2346-5
+sign \x35C2 24-1356-4
+sign \x35C3 123456-4
+sign \x35C4 134-1236-2
+sign \x35C5 1235-34-2
+sign \x35C6 13-2346-2
+sign \x35C7 15-23456-2
+sign \x35C8 134-1236-5
+sign \x35C9 14-236-5
+sign \x35CA 14-356-2
+sign \x35CB 1235-12356-2
+sign \x35CC 1-156-5
+sign \x35D1 135-2456-5
+sign \x35D2 2456-5
+sign \x35D5 13-12356-5
+sign \x35D6 145-1236-5
+sign \x35D7 135-2456-4
+sign \x35D8 135-126-2
+sign \x35D9 1345-345-5
+sign \x35DA 14-16-5
+sign \x35DB 15-246-5
+sign \x35DC 15-234-5
+sign \x35E2 145-12346-5
+sign \x35E3 124-16-5
+sign \x35E4 245-34-5
+sign \x35E5 123-25-5
+sign \x35E6 14-146-2
+sign \x35E7 1-156-5
+sign \x35E8 2456-4
+sign \x35E9 15-16-3
+sign \x35EB 245-346-5
+sign \x35F0 12-34-5
+sign \x35F1 13-16-2
+sign \x35F2 1235-25-5
+sign \x35F3 124-345-4
+sign \x35F4 2345-2
+sign \x35F5 15-1256-5
+sign \x35F7 15-2456-4
+sign \x35FC 346-5
+sign \x35FD 15-46-4
+sign \x35FF 15-23456-5
+sign \x3600 125-25-5
+sign \x3601 16-5
+sign \x3602 245-156-2
+sign \x3605 15-2345-2
+sign \x3606 124-2456-2
+sign \x3607 1245-12346-2
+sign \x3608 16-3
+sign \x3609 13-16-3
+sign \x360A 16-5
+sign \x360B 15-2345-2
+sign \x360C 13-1256-5
+sign \x360D 13-16-2
+sign \x360E 1235-1236-4
+sign \x3610 1234-146-5
+sign \x3611 14-16-5
+sign \x3613 14-1236-2
+sign \x3614 245-1236-4
+sign \x3615 1235-1236-4
+sign \x3616 2345-2
+sign \x3619 2345-2
+sign \x361A 1235-1236-4
+sign \x361C 12-156-4
+sign \x361D 1345-2345-4
+sign \x361E 1235-25-5
+sign \x3620 135-16-5
+sign \x3621 15-23456-2
+sign \x3622 12346-4
+sign \x3623 15-45-2
+sign \x3625 234-2
+sign \x3626 245-1456-2
+sign \x3627 15-1256-5
+sign \x3628 1345-356-5
+sign \x3629 135-16-5
+sign \x362A 1235-146-5
+sign \x362B 13-13456-4
+sign \x362C 146-5
+sign \x362D 146-3
+sign \x3631 124-1236-3
+sign \x3632 13-1256-2
+sign \x3634 125-25-5
+sign \x3635 135-34-5
+sign \x3636 13-346-2
+sign \x3637 2456-5
+sign \x3638 125-1346-5
+sign \x3639 245-156-2
+sign \x363A 12345-345-2
+sign \x363F 1345-346-5
+sign \x3640 14-234-5
+sign \x3641 134-1346-4
+sign \x3642 145-1246-5
+sign \x3644 135-16-5
+sign \x3645 135-146-4
+sign \x3647 12-34-5
+sign \x3648 1235-1236-2
+sign \x3649 124-2345-4
+sign \x364A 12-1346-2
+sign \x364F 12345-34-5
+sign \x3650 145-25-4
+sign \x3651 1256-4
+sign \x3652 346-4
+sign \x3653 123-1246-2
+sign \x3654 1235-1236-2
+sign \x3655 123-2356-5
+sign \x3657 123-2356-5
+sign \x3659 14-12346-4
+sign \x365B 135-34-4
+sign \x365C 12-156-2
+sign \x365D 15-346-2
+sign \x365E 1345-346-5
+sign \x365F 14-1346-4
+sign \x3660 16-5
+sign \x3662 134-1236-2
+sign \x3663 1-1346-5
+sign \x3664 15-23456-5
+sign \x3665 13-123456-4
+sign \x3668 13-16-5
+sign \x3669 14-246-2
+sign \x366A 346-5
+sign \x366B 13-16-2
+sign \x366C 1456-2
+sign \x366E 145-345-3
+sign \x366F 16-5
+sign \x3670 15-346-5
+sign \x3671 1235-146-5
+sign \x3672 235-4
+sign \x3673 1235-1236-4
+sign \x3674 12-1236-5
+sign \x3675 124-2456-2
+sign \x3676 124-1346-2
+sign \x3677 1-156-2
+sign \x3678 135-146-5
+sign \x3679 134-1356-2
+sign \x367A 13-1246-5
+sign \x367B 12-1236-2
+sign \x367C 14-356-4
+sign \x367E 15-16-5
+sign \x3681 245-246-5
+sign \x3682 1245-1346-2
+sign \x3683 256-2
+sign \x3685 14-12346-2
+sign \x3686 12345-34-5
+sign \x3689 13-34-4
+sign \x368C 1235-35-5
+sign \x368D 13-25-2
+sign \x368F 13-146-4
+sign \x3690 124-146-5
+sign \x3692 24-1236-4
+sign \x3693 14-2456-2
+sign \x3694 1345-346-5
+sign \x3695 12345-34-2
+sign \x3696 13-146-4
+sign \x3697 245-346-2
+sign \x3698 135-1236-5
+sign \x369B 15-16-5
+sign \x369C 15-1256-5
+sign \x369D 123-1246-2
+sign \x369E 134-1356-4
+sign \x369F 12-25-5
+sign \x36A1 13-16-4
+sign \x36A2 1345-34-2
+sign \x36A3 15-246-2
+sign \x36A4 16-5
+sign \x36A5 1256-2
+sign \x36A6 16-2
+sign \x36A7 2345-4
+sign \x36A9 1245-1236-4
+sign \x36AA 1235-146-5
+sign \x36AB 24-345-5
+sign \x36AD 234-2
+sign \x36AF 15-1456-2
+sign \x36B0 135-16-4
+sign \x36B2 145-2345-4
+sign \x36B4 135-34-5
+sign \x36B6 15-156-5
+sign \x36B7 156-4
+sign \x36B9 134-146-4
+sign \x36BA 256-5
+sign \x36BD 245-246-4
+sign \x36BF 1234-146-2
+sign \x36C2 1345-25-4
+sign \x36C3 13-346-2
+sign \x36C5 156-5
+sign \x36C6 145-25-4
+sign \x36CA 145-25-4
+sign \x36CD 245-346-5
+sign \x36CF 12356-5
+sign \x36D0 15-12356-4
+sign \x36D1 245-1236-5
+sign \x36D2 145-12356-5
+sign \x36D4 1234-1356-2
+sign \x36D5 16-5
+sign \x36D7 125-25-5
+sign \x36D8 1234-126-5
+sign \x36D9 245-346-5
+sign \x36DA 124-12346-4
+sign \x36DB 15-1456-5
+sign \x36DC 234-2
+sign \x36DD 135-356-5
+sign \x36DE 14-12346-5
+sign \x36E5 124-345-5
+sign \x36E6 14-1236-4
+sign \x36E7 134-1236-4
+sign \x36E8 245-46-4
+sign \x36E9 1-12356-2
+sign \x36EA 2345-5
+sign \x36EC 14-34-5
+sign \x36EE 15-146-4
+sign \x36EF 134-2345-4
+sign \x36F0 1235-123456-3
+sign \x36F1 1245-1246-5
+sign \x36F2 12345-345-5
+sign \x36F3 12-345-5
+sign \x36F4 1345-146-4
+sign \x36F6 12-12356-2
+sign \x36F8 24-34-5
+sign \x36F9 1234-2345-2
+sign \x36FB 123-1246-4
+sign \x36FC 24-345-5
+sign \x36FE 15-2345-2
+sign \x36FF 1-156-5
+sign \x3703 14-2345-5
+sign \x3704 15-256-2
+sign \x3705 15-1256-5
+sign \x3706 134-16-5
+sign \x3707 1235-1246-5
+sign \x3708 134-34-5
+sign \x370A 1234-1346-5
+sign \x370B 16-5
+sign \x370C 13-12356-5
+sign \x370D 124-1346-2
+sign \x370E 245-16-2
+sign \x370F 256-2
+sign \x3710 24-34-5
+sign \x3711 1234-126-2
+sign \x3712 16-5
+sign \x3713 145-345-2
+sign \x3715 14-2345-2
+sign \x3716 245-146-2
+sign \x3717 245-1236-4
+sign \x3718 13-1256-5
+sign \x3719 14-34-5
+sign \x371A 15-34-5
+sign \x371B 1345-136-5
+sign \x371C 146-5
+sign \x371D 1236-4
+sign \x371E 245-2345-5
+sign \x3723 1245-1236-2
+sign \x3724 24-136-4
+sign \x3725 134-2456-2
+sign \x3726 1235-1236-5
+sign \x3727 236-5
+sign \x3728 156-2
+sign \x3729 146-5
+sign \x372A 15-2345-4
+sign \x372B 134-345-5
+sign \x372E 14-1236-5
+sign \x3730 236-5
+sign \x3731 145-12346-5
+sign \x3732 12346-4
+sign \x3733 1235-2356-2
+sign \x3734 134-1356-5
+sign \x3735 1345-246-4
+sign \x3736 12456-4
+sign \x3737 134-16-2
+sign \x3738 1345-346-5
+sign \x3739 245-1256-2
+sign \x373A 125-1236-5
+sign \x373B 14-2345-5
+sign \x373C 1-156-2
+sign \x373D 125-156-4
+sign \x373E 1235-2456-2
+sign \x373F 15-1256-5
+sign \x3740 1235-146-5
+sign \x3741 15-256-2
+sign \x3742 1-156-5
+sign \x3743 12345-1236-5
+sign \x3744 12-123456-2
+sign \x3745 13-12356-5
+sign \x3747 12-123456-2
+sign \x3748 14-12456-2
+sign \x3749 1-34-5
+sign \x374A 24-12356-4
+sign \x374B 14-246-2
+sign \x374C 13-346-2
+sign \x374D 15-346-4
+sign \x374E 145-13456-5
+sign \x374F 13-346-5
+sign \x3750 1245-12346-2
+sign \x3751 134-1346-2
+sign \x3753 13-2346-2
+sign \x3754 246-5
+sign \x3755 1345-13456-2
+sign \x3756 16-2
+sign \x3757 14-1346-2
+sign \x3758 235-2
+sign \x3759 1456-2
+sign \x375B 15-34-5
+sign \x375D 14-1456-2
+sign \x375E 23456-5
+sign \x375F 134-146-2
+sign \x3760 134-13456-2
+sign \x3761 125-1246-5
+sign \x3762 1256-4
+sign \x3763 346-5
+sign \x3764 13-12356-5
+sign \x3765 134-16-4
+sign \x3766 13-256-5
+sign \x3767 123456-4
+sign \x376A 145-2345-5
+sign \x376B 14-12346-2
+sign \x376D 15-13456-4
+sign \x376E 245-1246-5
+sign \x376F 245-246-2
+sign \x3770 134-2345-2
+sign \x3771 134-1356-5
+sign \x3772 245-1456-4
+sign \x3774 12456-2
+sign \x3775 145-2346-2
+sign \x3776 2456-5
+sign \x3778 135-2345-5
+sign \x3779 1345-12356-2
+sign \x377A 14-2345-2
+sign \x377B 13-1456-4
+sign \x377D 12-1246-2
+sign \x377E 125-25-4
+sign \x377F 135-126-4
+sign \x3781 246-5
+sign \x3782 124-1246-4
+sign \x3783 13-16-2
+sign \x3785 13-25-4
+sign \x3786 13-16-4
+sign \x3787 1246-4
+sign \x378A 15-1256-5
+sign \x378B 1345-2345-4
+sign \x378C 256-5
+sign \x378E 135-345-4
+sign \x378F 1-2346-2
+sign \x3790 13-1256-3
+sign \x3791 1246-4
+sign \x3792 15-16-5
+sign \x3793 245-16-4
+sign \x3794 16-2
+sign \x3795 15-346-5
+sign \x3796 245-156-5
+sign \x3797 245-234-2
+sign \x3798 124-123456-2
+sign \x3799 1345-246-5
+sign \x379A 245-16-5
+sign \x379B 13-16-4
+sign \x379F 145-2345-5
+sign \x37A0 14-146-2
+sign \x37A1 1-1236-4
+sign \x37A2 1-156-3
+sign \x37A4 1456-2
+sign \x37A5 245-136-2
+sign \x37A6 13-16-4
+sign \x37A7 1235-1246-5
+sign \x37A8 125-2456-4
+sign \x37A9 14-1236-2
+sign \x37AA 1345-146-2
+sign \x37AB 13-1256-5
+sign \x37AC 245-1456-5
+sign \x37AD 145-2456-5
+sign \x37AF 13-346-2
+sign \x37B0 15-1256-4
+sign \x37B2 235-5
+sign \x37B3 145-12356-4
+sign \x37B4 12-156-2
+sign \x37B6 134-1456-4
+sign \x37B7 1235-456-2
+sign \x37B8 15-1246-5
+sign \x37B9 123-2346-4
+sign \x37BA 125-34-2
+sign \x37BB 1235-146-5
+sign \x37BC 12-1356-2
+sign \x37BD 15-236-5
+sign \x37BE 1345-16-2
+sign \x37BF 12-156-5
+sign \x37C0 14-2345-2
+sign \x37C1 1236-5
+sign \x37C2 12-156-4
+sign \x37C4 15-46-2
+sign \x37C5 46-2
+sign \x37C6 1235-35-2
+sign \x37C7 245-25-2
+sign \x37C8 245-234-2
+sign \x37C9 14-146-2
+sign \x37CA 12345-34-2
+sign \x37CB 145-1246-5
+sign \x37CC 134-1346-2
+sign \x37CD 14-1346-2
+sign \x37CE 124-25-4
+sign \x37CF 1235-1236-2
+sign \x37D0 134-1346-4
+sign \x37D1 135-126-2
+sign \x37D3 245-16-2
+sign \x37D4 1235-1236-2
+sign \x37D6 14-12346-5
+sign \x37D8 124-246-2
+sign \x37D9 14-146-4
+sign \x37DA 245-16-2
+sign \x37DB 125-1236-5
+sign \x37DC 134-16-2
+sign \x37DD 1234-356-2
+sign \x37DE 1-1236-5
+sign \x37DF 15-46-5
+sign \x37E0 13-1346-4
+sign \x37E2 245-16-2
+sign \x37E4 14-34-5
+sign \x37E6 256-5
+sign \x37E7 2346-5
+sign \x37E8 245-45-2
+sign \x37E9 134-1456-2
+sign \x37EA 1246-4
+sign \x37EB 245-45-2
+sign \x37EC 24-34-4
+sign \x37ED 134-1456-2
+sign \x37F0 134-13456-4
+sign \x37F1 246-4
+sign \x37F2 13-236-2
+sign \x37F3 14-16-5
+sign \x37F4 123-2356-5
+sign \x37F5 13-1346-4
+sign \x37F6 45-2
+sign \x37F7 145-345-1
+sign \x37F9 14-146-2
+sign \x37FA 14-12356-2
+sign \x37FB 245-2345-5
+sign \x37FC 146-2
+sign \x37FD 135-246-4
+sign \x37FF 134-1346-2
+sign \x3800 145-146-4
+sign \x3802 146-2
+sign \x3804 15-16-2
+sign \x3805 12345-34-2
+sign \x3807 13-234-5
+sign \x3808 1245-123456-5
+sign \x3809 124-12346-2
+sign \x380A 245-1256-3
+sign \x380B 2346-5
+sign \x380D 13-16-2
+sign \x380E 13-16-2
+sign \x380F 1235-35-2
+sign \x3810 13-246-5
+sign \x3811 125-1246-5
+sign \x3812 135-246-4
+sign \x3813 134-1356-2
+sign \x3814 135-2456-5
+sign \x3815 1246-4
+sign \x3816 13-16-5
+sign \x3817 146-5
+sign \x3818 1256-4
+sign \x3819 1235-146-2
+sign \x381A 145-1246-5
+sign \x381B 25-5
+sign \x381C 1345-16-5
+sign \x381D 245-12456-2
+sign \x381F 14-16-2
+sign \x3820 14-34-2
+sign \x3821 1345-246-4
+sign \x3822 1235-35-5
+sign \x3823 14-2456-5
+sign \x3825 14-1256-5
+sign \x3827 134-16-2
+sign \x3828 1256-5
+sign \x382A 13-1256-5
+sign \x382D 1-1236-4
+sign \x382F 16-4
+sign \x3831 13-16-5
+sign \x3832 135-16-4
+sign \x3834 1245-136-5
+sign \x3836 12345-1236-2
+sign \x3837 12345-1236-2
+sign \x3838 123-34-5
+sign \x3839 13-346-5
+sign \x383A 134-246-2
+sign \x383D 124-12346-2
+sign \x383F 245-156-4
+sign \x3840 135-16-5
+sign \x3841 123-2456-4
+sign \x3842 14-16-5
+sign \x3844 15-123456-4
+sign \x3845 1345-25-4
+sign \x3847 13-16-2
+sign \x3848 134-136-2
+sign \x3849 15-2345-2
+sign \x384A 245-23456-5
+sign \x384B 2346-5
+sign \x384C 134-146-5
+sign \x384F 124-12356-2
+sign \x3851 245-246-4
+sign \x3854 34-5
+sign \x3856 12-456-2
+sign \x3857 124-16-2
+sign \x3858 14-2345-2
+sign \x3859 135-16-5
+sign \x385B 134-1346-2
+sign \x385C 15-236-4
+sign \x385D 12345-1356-5
+sign \x385E 14-356-4
+sign \x3860 1-1356-5
+sign \x3861 12-34-2
+sign \x3862 134-1236-5
+sign \x3863 14-12346-2
+sign \x3865 1456-4
+sign \x3867 1-1356-5
+sign \x3868 245-2345-3
+sign \x3869 14-12456-2
+sign \x386A 1345-346-2
+sign \x386B 16-5
+sign \x386D 13-16-5
+sign \x386E 13-16-2
+sign \x386F 1-2456-2
+sign \x3870 1256-4
+sign \x3871 13-234-4
+sign \x3872 1235-12456-2
+sign \x3873 145-16-4
+sign \x3875 14-13456-2
+sign \x3876 13-16-5
+sign \x3877 135-136-4
+sign \x3878 1-345-4
+sign \x3879 245-156-5
+sign \x387A 145-1236-5
+sign \x387B 14-246-5
+sign \x387C 16-5
+sign \x387D 1-146-5
+sign \x387E 15-2345-5
+sign \x387F 12-156-5
+sign \x3880 245-156-5
+sign \x3881 12-156-4
+sign \x3882 2345-4
+sign \x3883 14-1346-2
+sign \x3884 145-12356-5
+sign \x3885 14-12346-5
+sign \x3886 12-1236-2
+sign \x3888 124-1246-2
+sign \x3889 12-345-2
+sign \x388A 2456-4
+sign \x388B 12-156-4
+sign \x388D 13456-2
+sign \x388E 12-345-5
+sign \x388F 124-12356-2
+sign \x3891 124-1246-2
+sign \x3892 12-345-2
+sign \x3893 1-1346-5
+sign \x3894 125-12346-4
+sign \x3897 245-246-5
+sign \x3898 14-2345-2
+sign \x3899 245-1456-2
+sign \x389A 14-34-4
+sign \x389B 2345-5
+sign \x389E 16-5
+sign \x389F 12-1236-4
+sign \x38A0 13-235-4
+sign \x38A1 13-46-4
+sign \x38A3 13-13456-5
+sign \x38A5 145-12346-5
+sign \x38A7 13-45-5
+sign \x38A8 1235-1236-5
+sign \x38A9 145-16-5
+sign \x38AC 1235-12346-2
+sign \x38AE 12-156-2
+sign \x38AF 134-1456-2
+sign \x38B0 135-16-5
+sign \x38B2 15-256-5
+sign \x38B3 14-34-2
+sign \x38B5 24-2346-5
+sign \x38B6 135-16-5
+sign \x38B8 135-16-5
+sign \x38BA 15-2345-2
+sign \x38BB 1246-4
+sign \x38BC 135-346-5
+sign \x38BD 156-4
+sign \x38BE 13-45-5
+sign \x38C0 1-136-5
+sign \x38C1 135-356-5
+sign \x38C2 16-5
+sign \x38C3 1256-4
+sign \x38C4 245-1256-2
+sign \x38C5 125-1236-5
+sign \x38C6 134-16-2
+sign \x38C7 1345-16-4
+sign \x38C8 15-156-5
+sign \x38CC 24-1236-5
+sign \x38CD 124-2456-2
+sign \x38CE 134-34-5
+sign \x38CF 13-13456-5
+sign \x38D0 135-2345-5
+sign \x38D1 1245-12346-2
+sign \x38D2 245-1356-5
+sign \x38D3 245-1236-5
+sign \x38D9 145-16-2
+sign \x38DA 124-12346-2
+sign \x38DB 124-345-5
+sign \x38DC 15-13456-2
+sign \x38DE 145-25-2
+sign \x38DF 15-16-5
+sign \x38E0 124-12346-2
+sign \x38E2 124-16-2
+sign \x38E3 24-1236-4
+sign \x38E4 13-2345-5
+sign \x38E5 1-156-5
+sign \x38E7 1456-5
+sign \x38EA 1235-12456-4
+sign \x38EB 1-12346-4
+sign \x38EC 245-16-5
+sign \x38EF 15-346-5
+sign \x38F0 15-346-5
+sign \x38F1 125-2346-2
+sign \x38F2 1246-2
+sign \x38F5 124-345-5
+sign \x38F6 1-1236-3
+sign \x38F7 1345-13456-5
+sign \x38FB 16-5
+sign \x38FC 1245-136-4
+sign \x38FD 24-34-5
+sign \x38FE 12-345-5
+sign \x38FF 1-25-2
+sign \x3901 134-2345-4
+sign \x3902 13-16-2
+sign \x3903 12345-1346-2
+sign \x3904 1234-356-5
+sign \x3905 2456-5
+sign \x3906 12345-1236-5
+sign \x3907 146-4
+sign \x3908 245-1456-5
+sign \x3909 245-23456-5
+sign \x390A 15-246-5
+sign \x390D 245-246-4
+sign \x390F 124-12346-2
+sign \x3911 234-5
+sign \x3913 135-136-5
+sign \x3914 12345-34-2
+sign \x3915 12-34-5
+sign \x3916 1345-25-5
+sign \x3918 12-34-5
+sign \x3919 136-3
+sign \x391A 1235-1346-2
+sign \x391B 1345-1456-2
+sign \x391C 13-236-2
+sign \x391E 12-345-5
+sign \x391F 123-12346-4
+sign \x3920 14-346-5
+sign \x3921 14-16-5
+sign \x3922 15-1256-5
+sign \x3924 1256-2
+sign \x3925 1235-2456-5
+sign \x3926 14-16-5
+sign \x3927 1235-12356-2
+sign \x3928 13-12346-4
+sign \x3929 123-2346-5
+sign \x392A 45-5
+sign \x392B 145-2346-2
+sign \x392C 1235-1246-5
+sign \x392D 13-246-3
+sign \x392E 123-456-2
+sign \x392F 13-235-4
+sign \x3930 125-1236-4
+sign \x3931 12345-34-5
+sign \x3932 245-346-5
+sign \x3933 135-356-4
+sign \x3934 15-16-2
+sign \x3935 245-156-2
+sign \x3936 1234-1346-2
+sign \x3938 15-16-5
+sign \x3939 245-234-2
+sign \x393A 1235-456-4
+sign \x393D 12-12356-2
+sign \x393E 15-1236-5
+sign \x3940 145-2346-2
+sign \x3941 145-2346-2
+sign \x3942 124-2346-5
+sign \x3943 134-136-5
+sign \x3944 14-13456-2
+sign \x3945 24-12356-5
+sign \x3946 145-2345-5
+sign \x3947 245-1236-2
+sign \x3948 145-346-2
+sign \x3949 12-2346-5
+sign \x394A 1234-1356-2
+sign \x394C 13-1256-2
+sign \x394D 13-16-5
+sign \x394E 14-2456-2
+sign \x394F 124-2345-4
+sign \x3950 45-5
+sign \x3952 245-2456-4
+sign \x3953 245-16-4
+sign \x3954 1256-2
+sign \x3955 14-2345-2
+sign \x395A 1256-2
+sign \x395B 13-16-2
+sign \x395C 1246-5
+sign \x395D 134-16-4
+sign \x395E 245-1246-5
+sign \x395F 15-346-2
+sign \x3960 15-1256-4
+sign \x3961 15-16-5
+sign \x3962 245-234-2
+sign \x3963 1235-1246-5
+sign \x3965 1256-2
+sign \x3966 245-346-5
+sign \x3967 24-123456-5
+sign \x3968 12-1246-2
+sign \x3969 145-25-4
+sign \x396A 14-12356-2
+sign \x396B 1-123456-3
+sign \x396C 1234-1346-2
+sign \x396D 124-2456-5
+sign \x396E 1-12356-5
+sign \x396F 1456-4
+sign \x3971 12345-356-4
+sign \x3972 24-136-5
+sign \x3973 45-2
+sign \x3974 16-2
+sign \x3975 1235-123456-5
+sign \x3976 15-2346-5
+sign \x3977 346-5
+sign \x3978 134-1456-4
+sign \x3979 12345-136-4
+sign \x397A 1235-2346-2
+sign \x397C 1456-4
+sign \x397D 245-2346-5
+sign \x397E 1345-16-5
+sign \x397F 146-5
+sign \x3980 12345-1356-2
+sign \x3981 14-2345-2
+sign \x3982 12-1346-2
+sign \x3983 12-1236-4
+sign \x3984 134-345-2
+sign \x3985 145-16-5
+sign \x3987 14-34-5
+sign \x3989 16-5
+sign \x398A 1235-35-2
+sign \x398C 124-1246-5
+sign \x398D 2346-5
+sign \x398E 1235-35-5
+sign \x398F 15-123456-4
+sign \x3990 1345-16-5
+sign \x3991 14-2345-4
+sign \x3992 14-16-2
+sign \x3993 15-2345-5
+sign \x3994 2345-5
+sign \x3995 14-12346-2
+sign \x3996 134-136-5
+sign \x3997 13-2345-5
+sign \x399A 135-2345-4
+sign \x399B 1256-2
+sign \x399C 1235-25-5
+sign \x399D 134-246-4
+sign \x399E 12-12356-2
+sign \x399F 1235-2456-5
+sign \x39A1 14-2346-5
+sign \x39A2 13-346-2
+sign \x39A3 1246-5
+sign \x39A4 16-5
+sign \x39A5 1235-12456-2
+sign \x39A6 1235-2346-5
+sign \x39A7 245-1236-4
+sign \x39A8 14-1236-2
+sign \x39A9 1456-4
+sign \x39AA 15-346-5
+sign \x39AC 14-25-4
+sign \x39AD 14-13456-2
+sign \x39AE 245-2345-2
+sign \x39AF 1235-25-5
+sign \x39B1 25-4
+sign \x39B4 13-2346-2
+sign \x39B6 145-346-2
+sign \x39B7 235-4
+sign \x39B8 13-16-4
+sign \x39B9 1346-5
+sign \x39BA 1245-34-4
+sign \x39BB 15-16-2
+sign \x39BC 24-456-5
+sign \x39BD 15-1256-5
+sign \x39BE 16-2
+sign \x39BF 1235-34-5
+sign \x39C0 13-16-2
+sign \x39C1 245-1256-5
+sign \x39C2 124-2345-2
+sign \x39C4 245-2345-4
+sign \x39C5 134-34-5
+sign \x39C7 134-146-4
+sign \x39C8 1456-4
+sign \x39C9 13-2456-5
+sign \x39CA 135-345-2
+sign \x39CB 15-2345-4
+sign \x39CC 134-146-5
+sign \x39CD 12345-1346-4
+sign \x39CE 23456-2
+sign \x39D0 15-12346-4
+sign \x39D1 1235-1246-3
+sign \x39D2 15-236-2
+sign \x39D4 13-2356-5
+sign \x39D5 13-234-5
+sign \x39D6 2346-5
+sign \x39D7 125-156-4
+sign \x39D8 245-1246-5
+sign \x39D9 135-16-5
+sign \x39DA 35-4
+sign \x39DB 14-1236-4
+sign \x39DC 14-346-5
+sign \x39DF 123-2356-4
+sign \x39E1 1235-2456-5
+sign \x39E3 1-34-5
+sign \x39E4 12-12346-5
+sign \x39E5 15-2345-4
+sign \x39E6 15-45-5
+sign \x39E8 245-234-2
+sign \x39E9 1234-356-5
+sign \x39EA 13-1246-4
+sign \x39EB 156-2
+sign \x39EC 13-12346-4
+sign \x39ED 245-235-2
+sign \x39EF 14-146-4
+sign \x39F0 14-16-5
+sign \x39F1 1345-345-2
+sign \x39F2 15-1236-4
+sign \x39F3 135-126-2
+sign \x39F4 25-4
+sign \x39F5 1234-12356-2
+sign \x39F7 145-25-5
+sign \x39F9 124-2346-5
+sign \x39FA 124-345-5
+sign \x39FB 1-156-4
+sign \x39FC 135-246-5
+sign \x39FD 13-34-5
+sign \x3A00 135-13456-4
+sign \x3A01 1-156-2
+sign \x3A02 145-12346-4
+sign \x3A03 12-1356-2
+sign \x3A04 1-146-5
+sign \x3A05 1345-356-5
+sign \x3A06 14-1456-4
+sign \x3A07 1234-126-2
+sign \x3A08 13-16-4
+sign \x3A09 134-1456-4
+sign \x3A0A 1246-4
+sign \x3A0B 12-2346-4
+sign \x3A0C 13-12356-5
+sign \x3A0E 1245-34-2
+sign \x3A10 135-34-4
+sign \x3A12 123-1246-2
+sign \x3A13 14-146-2
+sign \x3A14 1235-1236-5
+sign \x3A15 13456-2
+sign \x3A16 1-156-5
+sign \x3A17 13-346-2
+sign \x3A18 15-13456-4
+sign \x3A19 15-346-2
+sign \x3A1A 15-256-2
+sign \x3A1B 24-1236-4
+sign \x3A1C 245-2345-2
+sign \x3A1D 15-346-5
+sign \x3A1E 15-34-5
+sign \x3A1F 1235-2456-2
+sign \x3A20 134-16-5
+sign \x3A21 1235-123456-2
+sign \x3A24 1235-1246-5
+sign \x3A25 1345-345-5
+sign \x3A26 15-12346-4
+sign \x3A27 135-136-5
+sign \x3A28 14-234-5
+sign \x3A29 13-346-2
+sign \x3A2A 1235-456-5
+sign \x3A2B 14-1236-4
+sign \x3A2D 1235-34-5
+sign \x3A2E 145-12356-3
+sign \x3A2F 1235-25-5
+sign \x3A30 13-2346-2
+sign \x3A31 246-2
+sign \x3A32 245-2346-5
+sign \x3A33 13-1246-4
+sign \x3A34 13-2345-5
+sign \x3A35 13-2345-4
+sign \x3A36 12-12356-2
+sign \x3A37 13-1456-5
+sign \x3A38 134-345-5
+sign \x3A39 1235-1246-5
+sign \x3A3A 134-136-2
+sign \x3A3B 245-1236-2
+sign \x3A3C 14-236-5
+sign \x3A3D 135-16-3
+sign \x3A3E 46-5
+sign \x3A3F 13-1256-5
+sign \x3A40 13-1256-5
+sign \x3A41 245-236-5
+sign \x3A44 24-2456-3
+sign \x3A46 13-234-5
+sign \x3A47 1235-35-5
+sign \x3A48 15-2345-5
+sign \x3A49 15-346-2
+sign \x3A4B 15-34-5
+sign \x3A4C 12345-356-5
+sign \x3A4D 245-2346-5
+sign \x3A4E 346-5
+sign \x3A50 145-123456-5
+sign \x3A52 245-1456-2
+sign \x3A53 1235-1246-4
+sign \x3A54 124-123456-2
+sign \x3A56 245-46-2
+sign \x3A57 15-16-2
+sign \x3A58 16-4
+sign \x3A5A 134-1356-2
+sign \x3A5B 124-12456-2
+sign \x3A5C 14-1236-4
+sign \x3A5D 1235-146-2
+sign \x3A5E 245-156-5
+sign \x3A5F 1-2456-5
+sign \x3A60 1234-246-4
+sign \x3A61 14-25-4
+sign \x3A62 134-16-2
+sign \x3A63 1235-1246-3
+sign \x3A66 15-346-2
+sign \x3A67 135-126-2
+sign \x3A68 1235-1246-5
+sign \x3A69 245-16-4
+sign \x3A6A 13-346-2
+sign \x3A6D 135-126-2
+sign \x3A6E 245-2345-2
+sign \x3A6F 135-1236-4
+sign \x3A70 13-246-4
+sign \x3A71 13-236-2
+sign \x3A72 123-123456-4
+sign \x3A73 15-12346-4
+sign \x3A74 13-1256-2
+sign \x3A75 2346-5
+sign \x3A76 1345-346-5
+sign \x3A78 145-346-2
+sign \x3A79 145-346-2
+sign \x3A7B 13-1246-4
+sign \x3A7D 245-16-2
+sign \x3A7E 12-1246-2
+sign \x3A80 1256-2
+sign \x3A81 245-1456-2
+sign \x3A83 123-2346-4
+sign \x3A84 12345-34-2
+sign \x3A86 145-16-4
+sign \x3A87 15-2345-5
+sign \x3A88 13-1246-5
+sign \x3A89 1235-2346-2
+sign \x3A8A 245-256-2
+sign \x3A8B 1235-1236-5
+sign \x3A8C 124-12346-4
+sign \x3A8D 135-126-2
+sign \x3A8E 24-1236-4
+sign \x3A8F 135-16-4
+sign \x3A90 14-34-5
+sign \x3A91 346-5
+sign \x3A92 1345-16-2
+sign \x3A93 12-2356-2
+sign \x3A94 15-1236-5
+sign \x3A95 145-246-5
+sign \x3A96 14-34-5
+sign \x3A97 124-12356-4
+sign \x3A98 14-2345-4
+sign \x3A99 123-2346-4
+sign \x3A9A 15-1236-5
+sign \x3A9B 1-136-4
+sign \x3A9C 12-2356-4
+sign \x3A9D 14-2345-5
+sign \x3A9E 134-146-5
+sign \x3A9F 145-123456-3
+sign \x3AA0 245-2345-5
+sign \x3AA1 123-2346-4
+sign \x3AA2 24-146-4
+sign \x3AA3 245-246-5
+sign \x3AA4 135-16-5
+sign \x3AA6 1456-5
+sign \x3AA8 24-1236-5
+sign \x3AA9 15-34-5
+sign \x3AAA 15-345-5
+sign \x3AAB 1245-1246-5
+sign \x3AAC 1-25-2
+sign \x3AAD 14-34-2
+sign \x3AAE 14-13456-2
+sign \x3AAF 12-345-2
+sign \x3AB1 1235-12456-5
+sign \x3AB4 13-23456-2
+sign \x3AB5 135-1236-5
+sign \x3AB6 1235-34-2
+sign \x3AB7 145-12356-4
+sign \x3AB9 14-12356-4
+sign \x3ABB 13-45-5
+sign \x3ABC 123-2346-4
+sign \x3ABD 15-25-4
+sign \x3ABE 13-2346-2
+sign \x3ABF 1-2346-2
+sign \x3AC0 145-13456-4
+sign \x3AC1 145-12456-5
+sign \x3AC2 1-34-5
+sign \x3AC3 2345-4
+sign \x3AC4 1234-1346-2
+sign \x3AC5 12-345-2
+sign \x3ACA 16-4
+sign \x3ACD 234-2
+sign \x3ACE 13-123456-4
+sign \x3ACF 246-4
+sign \x3AD0 246-4
+sign \x3AD1 24-156-2
+sign \x3AD2 13-12346-4
+sign \x3AD3 245-16-4
+sign \x3AD4 13-136-5
+sign \x3AD7 1235-12356-5
+sign \x3AD8 134-16-5
+sign \x3AD9 12345-34-2
+sign \x3ADA 1235-34-3
+sign \x3ADB 13-456-5
+sign \x3ADC 145-1236-5
+sign \x3ADF 2345-2
+sign \x3AE2 245-1256-5
+sign \x3AE4 12-1346-4
+sign \x3AE5 134-13456-4
+sign \x3AE7 135-146-5
+sign \x3AEB 15-2345-4
+sign \x3AEF 134-146-5
+sign \x3AF0 14-1346-4
+sign \x3AF1 1345-1236-4
+sign \x3AF2 1234-356-5
+sign \x3AF3 12-136-2
+sign \x3AF4 15-246-5
+sign \x3AF6 245-12356-4
+sign \x3AF8 245-346-5
+sign \x3AF9 145-2456-5
+sign \x3AFB 123-123456-5
+sign \x3AFC 145-346-2
+sign \x3AFD 14-34-5
+sign \x3B02 1256-2
+sign \x3B03 124-2456-2
+sign \x3B04 12-1236-5
+sign \x3B05 134-1236-5
+sign \x3B06 134-2345-2
+sign \x3B07 1235-12456-5
+sign \x3B09 1345-12456-4
+sign \x3B0A 1235-12456-4
+sign \x3B0B 1235-12356-2
+sign \x3B0C 13-13456-5
+sign \x3B0D 135-126-2
+sign \x3B0E 15-2345-4
+sign \x3B0F 14-16-5
+sign \x3B10 13-1456-4
+sign \x3B12 134-1346-4
+sign \x3B13 1234-246-5
+sign \x3B14 1235-146-2
+sign \x3B15 46-2
+sign \x3B17 15-2345-5
+sign \x3B18 15-34-5
+sign \x3B19 1246-4
+sign \x3B1A 12-2346-5
+sign \x3B1C 13-1456-5
+sign \x3B1D 245-1356-2
+sign \x3B1E 1235-2346-5
+sign \x3B20 24-2456-5
+sign \x3B21 14-13456-2
+sign \x3B23 145-1246-5
+sign \x3B25 1234-34-5
+sign \x3B26 236-5
+sign \x3B27 135-126-2
+sign \x3B29 1235-1246-5
+sign \x3B2A 145-346-2
+sign \x3B2B 2345-5
+sign \x3B2C 13-1256-5
+sign \x3B2D 13-246-5
+sign \x3B2E 123-2356-5
+sign \x3B2F 14-346-5
+sign \x3B30 1256-2
+sign \x3B31 124-16-5
+sign \x3B33 34-4
+sign \x3B34 1235-12346-4
+sign \x3B35 15-246-2
+sign \x3B36 1235-146-5
+sign \x3B3B 1235-456-4
+sign \x3B3C 12345-34-5
+sign \x3B3F 145-123456-5
+sign \x3B41 1245-1356-2
+sign \x3B42 13-246-4
+sign \x3B44 15-1456-5
+sign \x3B47 45-5
+sign \x3B48 13-236-2
+sign \x3B49 1235-35-2
+sign \x3B4A 15-16-3
+sign \x3B4B 135-1346-5
+sign \x3B4C 134-12356-2
+sign \x3B4F 1246-4
+sign \x3B51 134-356-5
+sign \x3B52 15-156-5
+sign \x3B53 135-2345-5
+sign \x3B54 14-34-2
+sign \x3B58 1235-2346-2
+sign \x3B59 24-2346-2
+sign \x3B5A 14-1256-4
+sign \x3B5B 1234-2456-5
+sign \x3B5C 1245-12346-2
+sign \x3B5D 245-234-2
+sign \x3B5E 14-346-5
+sign \x3B5F 13-12346-4
+sign \x3B60 15-2345-4
+sign \x3B61 15-16-5
+sign \x3B64 1345-246-4
+sign \x3B68 346-2
+sign \x3B69 14-356-5
+sign \x3B6B 245-12456-2
+sign \x3B6C 1-25-2
+sign \x3B6D 12345-356-5
+sign \x3B6E 125-25-5
+sign \x3B6F 145-346-2
+sign \x3B70 13-16-5
+sign \x3B71 1235-2346-2
+sign \x3B72 13-16-2
+sign \x3B78 124-34-2
+sign \x3B79 15-2345-2
+sign \x3B7A 2345-4
+sign \x3B7B 124-1346-2
+sign \x3B7C 124-345-5
+sign \x3B7D 145-16-4
+sign \x3B7E 13-236-2
+sign \x3B7F 1346-2
+sign \x3B80 1235-1236-2
+sign \x3B81 246-2
+sign \x3B82 13-1256-2
+sign \x3B83 1245-1246-2
+sign \x3B84 135-1346-4
+sign \x3B86 1345-346-5
+sign \x3B87 124-2345-5
+sign \x3B88 1345-2456-5
+sign \x3B8B 234-4
+sign \x3B8C 134-2345-2
+sign \x3B8F 1345-2456-5
+sign \x3B90 15-13456-4
+sign \x3B91 245-16-5
+sign \x3B93 13-136-5
+sign \x3B94 124-12346-2
+sign \x3B95 156-2
+sign \x3B96 13-23456-2
+sign \x3B97 245-1456-2
+sign \x3B98 134-146-5
+sign \x3B99 2346-5
+sign \x3B9A 14-16-5
+sign \x3B9B 12-156-2
+sign \x3B9D 1235-2346-2
+sign \x3B9E 13-346-2
+sign \x3B9F 13-16-2
+sign \x3BA1 13-12456-5
+sign \x3BA2 1235-12356-2
+sign \x3BA3 13-2456-5
+sign \x3BA5 12345-136-5
+sign \x3BA6 15-2346-5
+sign \x3BA8 13-16-2
+sign \x3BAA 245-235-2
+sign \x3BAB 1235-2346-2
+sign \x3BAD 15-2345-2
+sign \x3BAE 13-346-2
+sign \x3BAF 1235-35-2
+sign \x3BB0 135-16-2
+sign \x3BB3 1-136-5
+sign \x3BB5 1-1236-3
+sign \x3BB6 24-156-5
+sign \x3BB8 15-12346-5
+sign \x3BB9 1-156-4
+sign \x3BBA 135-136-4
+sign \x3BBE 14-1346-4
+sign \x3BBF 135-16-5
+sign \x3BC0 15-2345-4
+sign \x3BC1 135-1346-5
+sign \x3BC2 145-2456-5
+sign \x3BC5 1234-16-2
+sign \x3BC6 12-1236-4
+sign \x3BC7 135-16-5
+sign \x3BC8 15-34-5
+sign \x3BC9 1235-25-5
+sign \x3BCA 1235-136-2
+sign \x3BCB 13456-4
+sign \x3BCC 12-12456-2
+sign \x3BCD 13-46-4
+sign \x3BCE 1345-136-5
+sign \x3BCF 13-34-4
+sign \x3BD0 124-25-4
+sign \x3BD3 124-345-5
+sign \x3BD4 245-1246-5
+sign \x3BD6 145-2346-2
+sign \x3BD7 1245-1236-4
+sign \x3BD8 123-12456-4
+sign \x3BD9 12-2346-5
+sign \x3BDA 145-345-2
+sign \x3BDB 1235-34-2
+sign \x3BDC 245-1246-5
+sign \x3BDD 14-34-5
+sign \x3BDE 13-45-5
+sign \x3BDF 14-34-5
+sign \x3BE0 245-2345-5
+sign \x3BE1 1234-146-5
+sign \x3BE2 1-136-5
+sign \x3BE4 14-16-5
+sign \x3BE5 245-146-2
+sign \x3BE6 245-16-2
+sign \x3BE9 124-16-5
+sign \x3BEA 14-13456-2
+sign \x3BEB 245-1256-2
+sign \x3BEC 14-2345-4
+sign \x3BED 14-34-4
+sign \x3BEE 24-34-4
+sign \x3BEF 13-12346-5
+sign \x3BF0 1-2346-2
+sign \x3BF1 135-246-4
+sign \x3BF2 13-1456-5
+sign \x3BF3 245-13456-2
+sign \x3BF6 125-12346-3
+sign \x3BF7 1234-34-2
+sign \x3BF8 13-1456-4
+sign \x3BF9 135-246-4
+sign \x3BFA 13-2345-5
+sign \x3BFB 13-123456-4
+sign \x3BFF 14-346-5
+sign \x3C00 14-16-2
+sign \x3C01 14-25-4
+sign \x3C02 24-136-4
+sign \x3C03 134-2345-2
+sign \x3C04 13-2345-5
+sign \x3C05 145-16-2
+sign \x3C06 135-356-5
+sign \x3C08 14-2345-4
+sign \x3C0A 15-256-2
+sign \x3C0B 1234-1456-2
+sign \x3C0C 245-236-5
+sign \x3C0D 14-12346-2
+sign \x3C0E 125-1246-5
+sign \x3C10 13-236-2
+sign \x3C12 24-2346-2
+sign \x3C14 15-346-5
+sign \x3C16 14-1236-4
+sign \x3C17 245-34-5
+sign \x3C18 16-2
+sign \x3C19 1345-25-2
+sign \x3C1A 14-16-2
+sign \x3C1B 236-5
+sign \x3C1D 16-4
+sign \x3C1F 13-16-5
+sign \x3C20 123-1346-5
+sign \x3C21 15-346-5
+sign \x3C23 125-156-5
+sign \x3C24 123-2346-4
+sign \x3C25 1235-1246-5
+sign \x3C26 245-1256-5
+sign \x3C2A 35-2
+sign \x3C2C 15-256-2
+sign \x3C2E 24-136-5
+sign \x3C2F 123-12356-5
+sign \x3C30 245-346-5
+sign \x3C31 24-345-5
+sign \x3C32 15-1256-5
+sign \x3C33 23456-5
+sign \x3C34 1234-126-2
+sign \x3C35 125-34-2
+sign \x3C36 234-4
+sign \x3C37 125-156-5
+sign \x3C38 14-2345-4
+sign \x3C39 13-1456-5
+sign \x3C3A 15-23456-2
+sign \x3C3B 16-4
+sign \x3C3C 245-346-5
+sign \x3C3D 134-16-4
+sign \x3C3E 13-246-5
+sign \x3C40 12-156-4
+sign \x3C41 24-156-5
+sign \x3C43 1456-4
+sign \x3C44 134-126-5
+sign \x3C45 16-5
+sign \x3C47 15-2346-5
+sign \x3C48 13-1456-5
+sign \x3C49 346-5
+sign \x3C4B 245-236-5
+sign \x3C4C 12-2346-5
+sign \x3C4D 14-12456-2
+sign \x3C4F 1-1356-5
+sign \x3C55 13-1246-3
+sign \x3C56 245-1246-5
+sign \x3C58 1236-5
+sign \x3C59 15-234-4
+sign \x3C5A 245-1236-2
+sign \x3C5B 12-12456-4
+sign \x3C5C 1-345-2
+sign \x3C5E 13-16-2
+sign \x3C5F 135-126-2
+sign \x3C62 14-1346-2
+sign \x3C63 124-1246-4
+sign \x3C65 14-13456-2
+sign \x3C66 2346-5
+sign \x3C67 25-5
+sign \x3C68 14-2345-5
+sign \x3C69 145-34-2
+sign \x3C6A 134-136-5
+sign \x3C6B 14-1236-5
+sign \x3C6C 1246-4
+sign \x3C6D 145-12456-5
+sign \x3C6E 123-2356-5
+sign \x3C6F 2456-2
+sign \x3C70 125-2456-4
+sign \x3C71 1235-1246-5
+sign \x3C72 16-5
+sign \x3C73 134-126-5
+sign \x3C74 125-156-5
+sign \x3C75 135-136-5
+sign \x3C76 135-1356-5
+sign \x3C78 135-16-5
+sign \x3C79 14-16-5
+sign \x3C7A 14-34-2
+sign \x3C7B 14-25-4
+sign \x3C7D 145-1236-5
+sign \x3C7F 245-236-5
+sign \x3C80 12-136-2
+sign \x3C82 12-1356-2
+sign \x3C83 13-234-5
+sign \x3C84 123-12356-5
+sign \x3C85 13-16-5
+sign \x3C86 14-13456-2
+sign \x3C88 24-146-2
+sign \x3C89 123-2456-4
+sign \x3C8A 1245-1246-5
+sign \x3C8B 12-25-5
+sign \x3C8C 1345-1356-5
+sign \x3C8E 14-12356-2
+sign \x3C8F 135-146-4
+sign \x3C92 135-146-5
+sign \x3C93 1245-12346-2
+sign \x3C95 14-356-5
+sign \x3C98 245-1256-2
+sign \x3C9B 1-156-4
+sign \x3C9C 124-1236-2
+sign \x3C9D 1245-12346-4
+sign \x3C9E 125-34-2
+sign \x3C9F 13456-4
+sign \x3CA0 134-146-2
+sign \x3CA1 1345-2456-5
+sign \x3CA2 135-2345-5
+sign \x3CA5 124-1346-2
+sign \x3CA6 1235-1236-5
+sign \x3CA7 125-146-5
+sign \x3CA8 1245-12346-2
+sign \x3CAB 1234-34-2
+sign \x3CAD 124-1236-4
+sign \x3CAF 1245-1236-2
+sign \x3CB0 1345-13456-2
+sign \x3CB1 14-346-5
+sign \x3CB2 145-346-2
+sign \x3CB3 145-346-2
+sign \x3CB4 1-12346-5
+sign \x3CB6 14-1256-5
+sign \x3CB7 145-1236-5
+sign \x3CB9 13-1246-4
+sign \x3CBA 13-16-2
+sign \x3CBB 1345-16-5
+sign \x3CBC 16-5
+sign \x3CBD 1345-2345-5
+sign \x3CBE 1256-4
+sign \x3CBF 456-4
+sign \x3CC0 13-25-5
+sign \x3CC1 125-2346-5
+sign \x3CC2 2345-2
+sign \x3CC3 245-1246-5
+sign \x3CC4 15-2345-2
+sign \x3CC5 14-234-2
+sign \x3CC6 24-34-4
+sign \x3CC7 12345-34-5
+sign \x3CC8 1234-356-5
+sign \x3CCD 135-34-5
+sign \x3CCE 135-2345-5
+sign \x3CCF 12-156-4
+sign \x3CD0 15-345-5
+sign \x3CD1 16-5
+sign \x3CD2 12345-345-4
+sign \x3CD4 145-1246-5
+sign \x3CD5 14-1236-2
+sign \x3CD7 12-2456-5
+sign \x3CD9 15-45-5
+sign \x3CDA 1256-5
+sign \x3CDB 1256-2
+sign \x3CE0 124-345-5
+sign \x3CE1 25-3
+sign \x3CE5 13-1256-5
+sign \x3CE6 15-346-5
+sign \x3CE7 15-16-2
+sign \x3CE8 13-2345-4
+sign \x3CEA 1234-1236-5
+sign \x3CEB 124-345-5
+sign \x3CEC 15-45-2
+sign \x3CED 15-2345-2
+sign \x3CEE 1345-246-5
+sign \x3CF4 134-16-5
+sign \x3CF5 13-16-5
+sign \x3CF6 13-12356-5
+sign \x3CF7 123456-4
+sign \x3CF9 456-4
+sign \x3CFA 234-2
+sign \x3CFB 125-2346-2
+sign \x3CFC 135-16-5
+sign \x3CFD 134-16-4
+sign \x3CFF 15-346-5
+sign \x3D00 12345-1236-5
+sign \x3D01 16-5
+sign \x3D03 14-356-5
+sign \x3D04 13456-2
+sign \x3D06 13-1456-5
+sign \x3D07 24-2346-5
+sign \x3D08 1456-5
+sign \x3D09 13-16-4
+sign \x3D0B 15-34-5
+sign \x3D0F 456-4
+sign \x3D10 134-2345-5
+sign \x3D11 15-34-5
+sign \x3D12 16-5
+sign \x3D13 125-2456-4
+sign \x3D14 15-2346-5
+sign \x3D15 13-16-2
+sign \x3D16 14-25-5
+sign \x3D18 134-146-5
+sign \x3D19 1-345-2
+sign \x3D1A 15-1246-5
+sign \x3D1B 1-156-5
+sign \x3D1C 135-2345-5
+sign \x3D1D 14-16-2
+sign \x3D25 245-246-5
+sign \x3D26 13-12456-5
+sign \x3D28 1-136-5
+sign \x3D2A 1345-346-5
+sign \x3D2B 13-256-5
+sign \x3D2C 15-346-5
+sign \x3D2D 246-4
+sign \x3D2E 15-346-5
+sign \x3D30 1345-1356-2
+sign \x3D31 24-136-3
+sign \x3D33 14-12346-4
+sign \x3D34 12-136-2
+sign \x3D35 134-16-5
+sign \x3D36 245-236-5
+sign \x3D38 1345-345-5
+sign \x3D3C 15-34-5
+sign \x3D3D 15-346-5
+sign \x3D3E 135-126-2
+sign \x3D3F 145-13456-4
+sign \x3D40 245-12456-5
+sign \x3D42 12-456-4
+sign \x3D43 12-2346-5
+sign \x3D44 1235-1236-5
+sign \x3D45 145-1236-5
+sign \x3D46 1235-146-5
+sign \x3D4A 24-136-4
+sign \x3D4B 134-16-5
+sign \x3D4C 12-1236-5
+sign \x3D4D 134-136-5
+sign \x3D4E 1235-1236-4
+sign \x3D4F 245-1246-4
+sign \x3D50 13-236-2
+sign \x3D51 1235-2346-5
+sign \x3D52 12345-356-5
+sign \x3D53 24-156-2
+sign \x3D54 12-2346-4
+sign \x3D55 24-136-5
+sign \x3D56 1345-1256-5
+sign \x3D57 12345-34-5
+sign \x3D58 134-1236-5
+sign \x3D5D 16-5
+sign \x3D5E 12-12356-2
+sign \x3D61 135-146-2
+sign \x3D62 14-356-2
+sign \x3D63 123-2346-4
+sign \x3D64 145-2345-5
+sign \x3D65 135-16-5
+sign \x3D66 15-1246-2
+sign \x3D67 13-2346-2
+sign \x3D68 135-16-5
+sign \x3D69 16-5
+sign \x3D6A 15-2345-2
+sign \x3D6B 1345-16-4
+sign \x3D6C 13456-2
+sign \x3D6D 1-34-4
+sign \x3D6E 12-123456-2
+sign \x3D6F 12345-1356-2
+sign \x3D70 15-1256-5
+sign \x3D71 1234-246-4
+sign \x3D72 34-4
+sign \x3D73 14-246-2
+sign \x3D74 245-1346-2
+sign \x3D75 125-12356-5
+sign \x3D77 135-2345-5
+sign \x3D78 246-5
+sign \x3D79 1235-12456-2
+sign \x3D7A 1234-2456-2
+sign \x3D7B 15-12356-5
+sign \x3D7D 145-1246-5
+sign \x3D7E 13-13456-5
+sign \x3D7F 15-16-2
+sign \x3D81 13-25-2
+sign \x3D84 2345-2
+sign \x3D85 15-236-2
+sign \x3D86 12-34-2
+sign \x3D87 1235-1356-2
+sign \x3D88 13456-2
+sign \x3D89 23456-3
+sign \x3D8C 14-2345-2
+sign \x3D8D 15-2345-4
+sign \x3D8E 1235-12456-2
+sign \x3D91 14-2345-5
+sign \x3D92 24-1236-4
+sign \x3D93 245-1346-2
+sign \x3D94 135-356-5
+sign \x3D95 13-2345-4
+sign \x3D96 24-34-5
+sign \x3D97 12345-1236-5
+sign \x3D98 145-2345-5
+sign \x3D9A 135-345-5
+sign \x3D9B 1256-2
+sign \x3D9E 1345-1346-4
+sign \x3D9F 14-356-4
+sign \x3DA0 16-5
+sign \x3DA1 145-2456-5
+sign \x3DA3 12-1236-2
+sign \x3DA4 12-146-4
+sign \x3DA6 13-1456-5
+sign \x3DA7 1345-136-5
+sign \x3DAB 14-246-4
+sign \x3DAC 134-356-2
+sign \x3DAD 13-234-5
+sign \x3DAF 14-234-5
+sign \x3DB0 1235-1236-2
+sign \x3DB2 235-5
+sign \x3DB3 13-1456-5
+sign \x3DB4 12-156-4
+sign \x3DB5 1245-136-5
+sign \x3DB6 1345-12346-2
+sign \x3DB9 1235-12346-5
+sign \x3DBA 124-2345-5
+sign \x3DBF 135-126-2
+sign \x3DC0 245-235-2
+sign \x3DC2 24-34-5
+sign \x3DC3 245-1246-4
+sign \x3DC4 1235-1246-5
+sign \x3DC5 12-146-4
+sign \x3DC6 145-12356-5
+sign \x3DC7 13-2356-5
+sign \x3DC8 2346-5
+sign \x3DC9 1246-5
+sign \x3DCA 12345-136-2
+sign \x3DCB 124-1236-2
+sign \x3DCD 14-123456-2
+sign \x3DCE 1235-2346-5
+sign \x3DCF 235-4
+sign \x3DD0 1235-1246-4
+sign \x3DD2 1256-2
+sign \x3DD3 125-12346-4
+sign \x3DD4 2345-5
+sign \x3DD5 245-234-2
+sign \x3DD6 1-146-5
+sign \x3DD7 13-235-4
+sign \x3DD8 124-2456-2
+sign \x3DDF 124-1246-5
+sign \x3DE0 14-1456-2
+sign \x3DE1 13-235-4
+sign \x3DE2 1-345-4
+sign \x3DE4 1235-2346-5
+sign \x3DE6 15-1256-5
+sign \x3DEA 245-1246-5
+sign \x3DEB 245-13456-4
+sign \x3DEC 134-126-5
+sign \x3DEF 135-1356-5
+sign \x3DF0 14-16-2
+sign \x3DF3 2345-5
+sign \x3DF4 13-2346-2
+sign \x3DF5 134-126-5
+sign \x3DF6 135-356-5
+sign \x3DF7 13-45-4
+sign \x3DF8 145-346-2
+sign \x3DF9 24-146-5
+sign \x3DFB 34-2
+sign \x3DFC 2345-5
+sign \x3DFE 13-236-2
+sign \x3E00 124-2456-2
+sign \x3E01 1235-1236-4
+sign \x3E03 145-2345-4
+sign \x3E04 13-16-5
+sign \x3E05 13-346-2
+sign \x3E09 15-346-5
+sign \x3E0A 14-345-5
+sign \x3E0B 12345-1236-2
+sign \x3E0C 1235-25-5
+sign \x3E0D 15-16-5
+sign \x3E0E 1345-346-5
+sign \x3E0F 134-16-2
+sign \x3E10 1245-1236-2
+sign \x3E11 245-12456-5
+sign \x3E12 1456-2
+sign \x3E13 134-16-5
+sign \x3E15 13-236-2
+sign \x3E17 124-12346-2
+sign \x3E18 12456-5
+sign \x3E1A 14-16-4
+sign \x3E1B 24-146-2
+sign \x3E1C 123-12346-5
+sign \x3E1D 123-1236-4
+sign \x3E1E 135-1236-4
+sign \x3E20 124-246-4
+sign \x3E22 135-356-5
+sign \x3E23 346-5
+sign \x3E24 1234-2345-5
+sign \x3E25 12-1236-2
+sign \x3E26 1235-34-5
+sign \x3E27 123-136-5
+sign \x3E29 1236-5
+sign \x3E2A 12-123456-2
+sign \x3E2B 245-2345-2
+sign \x3E2C 135-356-5
+sign \x3E2E 12345-136-2
+sign \x3E30 124-25-2
+sign \x3E31 124-25-2
+sign \x3E32 125-25-2
+sign \x3E33 14-13456-2
+sign \x3E35 13-1246-4
+sign \x3E37 24-156-5
+sign \x3E38 1235-12356-4
+sign \x3E39 14-346-5
+sign \x3E3B 15-156-5
+sign \x3E3D 135-356-5
+sign \x3E3E 1245-136-5
+sign \x3E3F 145-34-2
+sign \x3E40 135-126-2
+sign \x3E41 14-46-2
+sign \x3E42 245-156-5
+sign \x3E43 135-16-5
+sign \x3E44 13-16-5
+sign \x3E45 125-12346-4
+sign \x3E47 1235-2346-2
+sign \x3E48 14-16-2
+sign \x3E49 45-2
+sign \x3E4A 236-5
+sign \x3E4C 12-1236-4
+sign \x3E4D 145-16-2
+sign \x3E4E 14-356-2
+sign \x3E4F 13-1456-4
+sign \x3E50 12-12346-2
+sign \x3E51 15-156-5
+sign \x3E52 1234-34-4
+sign \x3E53 16-5
+sign \x3E56 1235-12456-5
+sign \x3E57 124-146-2
+sign \x3E58 1245-34-2
+sign \x3E59 13456-2
+sign \x3E5A 13456-2
+sign \x3E5B 1245-146-2
+sign \x3E5C 1456-2
+sign \x3E5D 24-156-5
+sign \x3E5E 1456-2
+sign \x3E5F 13-236-2
+sign \x3E60 124-123456-2
+sign \x3E61 15-45-2
+sign \x3E64 245-346-5
+sign \x3E65 1-34-5
+sign \x3E68 234-5
+sign \x3E6B 15-16-5
+sign \x3E6C 24-156-4
+sign \x3E6D 16-5
+sign \x3E6E 134-126-5
+sign \x3E71 1235-34-2
+sign \x3E72 15-246-5
+sign \x3E73 34-2
+sign \x3E75 13-13456-5
+sign \x3E76 124-13456-2
+sign \x3E77 24-156-4
+sign \x3E78 1345-16-2
+sign \x3E7A 124-345-5
+sign \x3E7C 12-34-4
+sign \x3E7D 12-1236-4
+sign \x3E7E 1234-246-4
+sign \x3E7F 145-246-4
+sign \x3E80 1345-146-2
+sign \x3E81 1345-146-4
+sign \x3E82 13-1236-4
+sign \x3E83 13-12356-4
+sign \x3E84 1256-4
+sign \x3E85 1235-12356-2
+sign \x3E89 1235-34-5
+sign \x3E8A 46-5
+sign \x3E8C 15-2345-5
+sign \x3E8E 1245-12346-2
+sign \x3E8F 14-12356-2
+sign \x3E90 1-146-4
+sign \x3E91 245-1236-2
+sign \x3E92 14-246-5
+sign \x3E93 1234-246-5
+sign \x3E94 1235-2456-5
+sign \x3E95 12345-1236-2
+sign \x3E96 1235-1236-4
+sign \x3E97 145-1236-5
+sign \x3E98 1-1236-5
+sign \x3E9A 124-345-4
+sign \x3E9B 1-34-5
+sign \x3E9C 135-1236-4
+sign \x3E9D 13-2345-5
+sign \x3E9E 1256-2
+sign \x3E9F 1-25-2
+sign \x3EA0 234-5
+sign \x3EA1 14-16-5
+sign \x3EA5 12-1236-2
+sign \x3EA6 14-2345-2
+sign \x3EA9 13-234-5
+sign \x3EAA 1234-34-2
+sign \x3EAB 245-234-2
+sign \x3EAC 13-12346-4
+sign \x3EAD 125-156-4
+sign \x3EAE 1256-2
+sign \x3EB1 1245-1356-2
+sign \x3EB2 1345-234-4
+sign \x3EB3 134-356-2
+sign \x3EB5 13-234-2
+sign \x3EB7 15-1256-5
+sign \x3EB8 1234-13456-2
+sign \x3EB9 135-2345-5
+sign \x3EBA 134-146-5
+sign \x3EBF 16-2
+sign \x3EC0 234-2
+sign \x3EC2 1234-13456-2
+sign \x3EC4 135-146-4
+sign \x3EC5 1235-1246-5
+sign \x3EC9 135-34-5
+sign \x3ECA 134-1346-2
+sign \x3ECB 14-345-5
+sign \x3ECC 124-34-2
+sign \x3ECD 34-2
+sign \x3ECE 14-16-5
+sign \x3ECF 14-13456-2
+sign \x3ED1 13-16-5
+sign \x3ED2 13-256-5
+sign \x3ED4 145-25-4
+sign \x3ED5 13-236-2
+sign \x3ED6 145-2456-5
+sign \x3ED7 135-356-5
+sign \x3EDD 14-345-5
+sign \x3EDE 135-2345-5
+sign \x3EDF 15-1246-2
+sign \x3EE0 124-34-2
+sign \x3EE1 145-346-2
+sign \x3EE7 145-25-5
+sign \x3EEA 15-1246-5
+sign \x3EEB 135-16-5
+sign \x3EEC 124-34-2
+sign \x3EED 15-2346-5
+sign \x3EEE 245-1236-5
+sign \x3EEF 124-34-2
+sign \x3EF0 134-2345-4
+sign \x3EF2 14-1256-4
+sign \x3EF5 1-1236-5
+sign \x3EF6 135-16-4
+sign \x3EF7 13-16-2
+sign \x3EF8 245-136-2
+sign \x3EFA 14-16-5
+sign \x3EFD 15-1246-5
+sign \x3EFF 24-34-4
+sign \x3F02 2346-2
+sign \x3F07 245-235-2
+sign \x3F08 14-25-2
+sign \x3F09 1456-5
+sign \x3F0A 124-123456-2
+sign \x3F0B 13-34-4
+sign \x3F0C 1256-4
+sign \x3F0D 14-356-4
+sign \x3F0E 135-356-5
+sign \x3F0F 1345-356-4
+sign \x3F10 1234-2345-2
+sign \x3F11 14-2345-5
+sign \x3F12 245-234-4
+sign \x3F13 14-2345-2
+sign \x3F16 14-16-5
+sign \x3F17 145-13456-4
+sign \x3F18 35-4
+sign \x3F19 1-12356-5
+sign \x3F1B 15-13456-2
+sign \x3F1C 1346-5
+sign \x3F1D 12456-4
+sign \x3F1E 1234-1356-5
+sign \x3F1F 135-2456-2
+sign \x3F20 124-25-2
+sign \x3F22 2346-4
+sign \x3F23 135-2456-4
+sign \x3F24 245-16-5
+sign \x3F25 12-34-2
+sign \x3F26 13-12346-4
+sign \x3F27 124-12346-2
+sign \x3F28 1235-1236-2
+sign \x3F29 12-1356-2
+sign \x3F2A 13-23456-2
+sign \x3F2B 1235-12456-5
+sign \x3F2C 15-13456-5
+sign \x3F2D 145-2345-5
+sign \x3F2E 134-2456-2
+sign \x3F2F 145-12346-5
+sign \x3F30 2346-2
+sign \x3F31 1245-12456-4
+sign \x3F32 14-346-5
+sign \x3F33 24-1356-4
+sign \x3F34 12356-4
+sign \x3F35 145-16-5
+sign \x3F36 1256-2
+sign \x3F37 12-12456-2
+sign \x3F38 1245-12346-2
+sign \x3F3A 124-1346-2
+sign \x3F3B 245-12346-2
+sign \x3F3C 1234-246-2
+sign \x3F3D 24-456-4
+sign \x3F3E 14-34-5
+sign \x3F3F 124-12346-2
+sign \x3F40 1-1356-5
+sign \x3F41 14-16-5
+sign \x3F42 15-345-5
+sign \x3F47 13-2356-5
+sign \x3F48 16-5
+sign \x3F49 1235-1236-4
+sign \x3F4A 15-346-5
+sign \x3F4B 14-25-2
+sign \x3F4C 14-234-5
+sign \x3F4E 145-1236-4
+sign \x3F51 124-1236-2
+sign \x3F55 234-2
+sign \x3F56 1345-1236-2
+sign \x3F58 13-1346-4
+sign \x3F59 13-256-5
+sign \x3F5A 12-156-5
+sign \x3F5B 123-12356-5
+sign \x3F5C 12456-4
+sign \x3F5D 14-16-5
+sign \x3F5E 14-234-2
+sign \x3F5F 14-346-5
+sign \x3F60 15-23456-2
+sign \x3F62 1236-4
+sign \x3F63 1256-5
+sign \x3F64 13-1256-2
+sign \x3F65 1245-12356-2
+sign \x3F66 15-256-2
+sign \x3F68 245-25-2
+sign \x3F69 245-1236-5
+sign \x3F6A 125-1356-4
+sign \x3F6B 235-4
+sign \x3F6C 12345-34-5
+sign \x3F6D 1245-12456-4
+sign \x3F6F 15-16-2
+sign \x3F70 24-34-5
+sign \x3F71 13-246-4
+sign \x3F72 13-246-4
+sign \x3F73 1235-1236-5
+sign \x3F74 1-1346-5
+sign \x3F77 24-1246-5
+sign \x3F78 12-136-2
+sign \x3F79 12345-1236-5
+sign \x3F7A 13-16-2
+sign \x3F7D 13-34-5
+sign \x3F7E 34-5
+sign \x3F80 245-346-5
+sign \x3F81 24-34-5
+sign \x3F83 124-25-2
+sign \x3F84 145-34-2
+sign \x3F85 15-156-5
+sign \x3F86 1245-1236-2
+sign \x3F87 134-34-5
+sign \x3F88 12345-34-5
+sign \x3F89 14-13456-2
+sign \x3F8A 13-16-2
+sign \x3F8B 15-234-5
+sign \x3F8C 15-2345-4
+sign \x3F8D 1345-2456-2
+sign \x3F8F 13-346-5
+sign \x3F90 14-16-5
+sign \x3F91 145-345-2
+sign \x3F92 13-16-5
+sign \x3F94 14-1256-4
+sign \x3F95 24-136-4
+sign \x3F96 14-16-4
+sign \x3F97 14-1346-4
+sign \x3F98 13-1356-4
+sign \x3F99 1456-4
+sign \x3F9B 245-1456-4
+sign \x3F9C 245-346-5
+sign \x3F9D 12-2346-5
+sign \x3F9E 234-4
+sign \x3F9F 135-34-5
+sign \x3FA0 1235-456-2
+sign \x3FA1 245-236-5
+sign \x3FA2 14-2456-5
+sign \x3FA5 15-1256-5
+sign \x3FA6 135-1346-5
+sign \x3FA7 123-2346-5
+sign \x3FA8 245-16-4
+sign \x3FAA 24-1356-4
+sign \x3FAD 1-12356-5
+sign \x3FAE 1235-456-2
+sign \x3FAF 124-1246-2
+sign \x3FB0 1235-34-2
+sign \x3FB1 135-356-5
+sign \x3FB5 13-16-5
+sign \x3FB6 13-34-4
+sign \x3FB8 13-146-4
+sign \x3FB9 12-2456-2
+sign \x3FBA 134-345-5
+sign \x3FBB 1-34-5
+sign \x3FBC 124-1246-4
+sign \x3FBD 124-1246-2
+sign \x3FBE 14-2345-2
+sign \x3FBF 14-1346-2
+sign \x3FC3 145-2456-5
+sign \x3FC4 2456-5
+sign \x3FC5 15-2345-4
+sign \x3FC7 15-16-2
+sign \x3FC9 124-1246-2
+sign \x3FCA 245-1236-4
+sign \x3FCB 15-146-5
+sign \x3FCD 13-346-5
+sign \x3FCE 12345-136-5
+sign \x3FCF 245-256-2
+sign \x3FD1 246-5
+sign \x3FD2 145-146-4
+sign \x3FD3 13-23456-2
+sign \x3FD4 14-356-4
+sign \x3FD5 2345-2
+sign \x3FD6 14-34-2
+sign \x3FD7 124-1246-2
+sign \x3FD8 13456-2
+sign \x3FD9 1234-16-5
+sign \x3FDA 14-25-5
+sign \x3FDB 14-16-2
+sign \x3FDC 135-346-4
+sign \x3FDE 134-146-5
+sign \x3FDF 135-2456-2
+sign \x3FE1 145-12356-3
+sign \x3FE2 246-5
+sign \x3FE3 1235-2346-2
+sign \x3FE4 12-123456-4
+sign \x3FE5 1235-34-2
+sign \x3FE6 1345-13456-5
+sign \x3FE7 12-12356-2
+sign \x3FE8 14-16-5
+sign \x3FE9 124-1346-4
+sign \x3FEA 1235-12456-2
+sign \x3FEB 135-16-5
+sign \x3FED 12-2346-5
+sign \x3FEE 46-5
+sign \x3FEF 145-345-2
+sign \x3FF0 146-2
+sign \x3FF1 15-236-2
+sign \x3FF5 1245-1236-4
+sign \x3FF7 125-146-5
+sign \x3FF8 12456-4
+sign \x3FF9 124-345-5
+sign \x3FFA 135-146-2
+sign \x3FFC 2345-2
+sign \x3FFE 1-34-5
+sign \x3FFF 23456-4
+sign \x4000 12345-1236-2
+sign \x4001 234-5
+sign \x4003 124-1246-2
+sign \x4004 134-1356-2
+sign \x4005 24-2346-5
+sign \x4006 13-1456-5
+sign \x4007 13-34-4
+sign \x4008 245-16-5
+sign \x4009 245-246-2
+sign \x400A 13-246-4
+sign \x400B 2345-2
+sign \x400D 123-1236-5
+sign \x400E 134-2345-4
+sign \x400F 15-2345-5
+sign \x4010 15-1236-4
+sign \x4011 1345-345-5
+sign \x4013 1235-12456-5
+sign \x4014 1345-234-2
+sign \x4015 12-1356-5
+sign \x4017 13-236-2
+sign \x4018 15-16-2
+sign \x4019 245-16-5
+sign \x401A 1346-2
+sign \x401B 134-356-5
+sign \x401C 13-34-4
+sign \x401F 12345-1236-2
+sign \x4020 245-1256-2
+sign \x4021 12-1236-5
+sign \x4022 24-123456-5
+sign \x4023 135-16-5
+sign \x4024 134-146-5
+sign \x4025 24-25-5
+sign \x4026 13-34-4
+sign \x4027 1235-12346-4
+sign \x4028 1235-12456-5
+sign \x4029 14-25-5
+sign \x402A 1235-1346-2
+sign \x402B 13-23456-2
+sign \x402C 245-45-2
+sign \x402E 134-1346-2
+sign \x402F 135-34-4
+sign \x4030 13-34-4
+sign \x4032 134-34-5
+sign \x4033 2456-5
+sign \x4034 13456-4
+sign \x4035 24-123456-5
+sign \x4036 14-1346-4
+sign \x4037 13-346-2
+sign \x4038 145-16-5
+sign \x4039 13-346-2
+sign \x403B 1234-1456-5
+sign \x403C 1245-136-5
+sign \x403D 2345-2
+sign \x403E 145-34-4
+sign \x403F 145-16-5
+sign \x4041 14-1346-4
+sign \x4042 15-2345-5
+sign \x4044 15-13456-5
+sign \x4045 135-356-5
+sign \x4046 1236-4
+sign \x4047 134-16-5
+sign \x4048 245-16-5
+sign \x4049 245-16-5
+sign \x404A 25-5
+sign \x404B 24-2346-2
+sign \x404C 1256-5
+sign \x404D 13-23456-5
+sign \x404E 12-1356-2
+sign \x404F 246-4
+sign \x4050 13456-5
+sign \x4051 46-2
+sign \x4052 13-16-2
+sign \x4053 13-346-5
+sign \x4054 1235-1236-5
+sign \x4055 134-1456-2
+sign \x4056 14-12356-3
+sign \x4057 123-2456-4
+sign \x4058 246-4
+sign \x4059 2345-4
+sign \x405A 15-123456-4
+sign \x405B 13-1246-4
+sign \x405C 1235-456-4
+sign \x405D 13456-2
+sign \x405E 24-1356-4
+sign \x405F 12-345-2
+sign \x4060 14-2345-2
+sign \x4062 15-45-2
+sign \x4063 12-12456-2
+sign \x4064 12-2346-5
+sign \x4065 1345-16-5
+sign \x4066 245-1256-5
+sign \x4067 134-246-2
+sign \x4068 1235-25-5
+sign \x4069 1256-2
+sign \x406A 1345-1236-4
+sign \x406B 1235-34-2
+sign \x406C 245-1356-2
+sign \x406E 245-2345-2
+sign \x406F 24-2346-5
+sign \x4070 13-46-4
+sign \x4071 146-5
+sign \x4072 134-2456-2
+sign \x4073 134-1346-4
+sign \x4074 1-1236-4
+sign \x4075 135-2345-4
+sign \x4076 13-246-4
+sign \x4077 13-236-2
+sign \x4078 1345-12346-2
+sign \x4079 135-16-5
+sign \x407A 24-156-5
+sign \x407B 14-16-5
+sign \x407C 134-126-5
+sign \x407D 14-346-5
+sign \x407E 134-346-5
+sign \x407F 134-126-5
+sign \x4080 15-16-3
+sign \x4081 12-1236-2
+sign \x4082 245-1256-2
+sign \x4083 13-246-5
+sign \x4084 1235-25-5
+sign \x4086 15-1256-5
+sign \x4087 1345-1346-2
+sign \x4088 124-12346-2
+sign \x4089 1235-12356-2
+sign \x408A 1256-5
+sign \x408D 135-126-2
+sign \x408E 125-12456-4
+sign \x4090 12-25-5
+sign \x4092 13-346-2
+sign \x4094 15-13456-5
+sign \x4095 1235-1246-5
+sign \x4096 24-156-2
+sign \x409A 246-2
+sign \x409B 1256-2
+sign \x409C 135-1346-5
+sign \x409D 13-346-2
+sign \x409E 1-2346-5
+sign \x40A0 24-2346-2
+sign \x40A1 145-16-4
+sign \x40A2 145-12346-4
+sign \x40A3 245-156-2
+sign \x40A4 12345-34-5
+sign \x40A5 134-1456-2
+sign \x40A6 1-136-4
+sign \x40A7 1-136-4
+sign \x40A9 2345-5
+sign \x40AA 145-246-5
+sign \x40AB 1235-1346-4
+sign \x40AC 13-12346-4
+sign \x40AE 14-236-5
+sign \x40AF 13-2356-5
+sign \x40B0 14-345-5
+sign \x40B1 245-1246-5
+sign \x40B2 12345-345-4
+sign \x40B3 245-25-4
+sign \x40B4 2345-2
+sign \x40B6 13-346-2
+sign \x40B8 13-25-2
+sign \x40B9 15-25-4
+sign \x40BA 12456-4
+sign \x40BB 1-1356-5
+sign \x40BC 1345-346-5
+sign \x40BD 145-246-5
+sign \x40BE 14-2456-4
+sign \x40BF 124-345-5
+sign \x40C0 245-1246-5
+sign \x40C2 13-123456-4
+sign \x40C7 134-2345-2
+sign \x40C9 134-1456-2
+sign \x40CA 13-1256-4
+sign \x40CB 1256-2
+sign \x40CD 1-146-5
+sign \x40CE 125-2346-2
+sign \x40D1 1234-1236-2
+sign \x40D2 1235-2346-2
+sign \x40D3 13-12356-5
+sign \x40D4 1235-12346-2
+sign \x40D5 14-146-2
+sign \x40D6 34-5
+sign \x40D7 12-25-5
+sign \x40D9 14-34-5
+sign \x40DA 245-34-5
+sign \x40DB 14-2345-2
+sign \x40DD 245-246-5
+sign \x40DE 24-34-2
+sign \x40E1 245-136-2
+sign \x40E3 1235-1246-4
+sign \x40E4 15-34-5
+sign \x40E5 12-456-2
+sign \x40E7 14-12346-2
+sign \x40E9 1345-146-2
+sign \x40EA 124-1236-2
+sign \x40EB 145-1236-4
+sign \x40EC 1246-4
+sign \x40ED 13-1236-4
+sign \x40EE 145-345-2
+sign \x40EF 14-16-5
+sign \x40F1 15-2345-5
+sign \x40F2 1234-1236-2
+sign \x40F3 14-345-5
+sign \x40F5 1345-246-4
+sign \x40F6 1235-2356-2
+sign \x40F7 13456-2
+sign \x40F8 15-2345-5
+sign \x40F9 14-1236-5
+sign \x40FA 134-126-2
+sign \x40FB 135-345-5
+sign \x40FD 12345-34-2
+sign \x40FE 135-16-4
+sign \x4100 1235-25-5
+sign \x4101 16-5
+sign \x4102 14-234-5
+sign \x4105 13-45-5
+sign \x4106 1235-25-2
+sign \x4107 12-1356-2
+sign \x4108 145-12356-5
+sign \x4109 2346-2
+sign \x410B 2345-4
+sign \x410C 1-1246-5
+sign \x410D 145-34-5
+sign \x410E 245-16-4
+sign \x410F 1256-2
+sign \x4110 245-45-5
+sign \x4111 1235-25-2
+sign \x4112 1345-346-5
+sign \x4113 1235-1356-2
+sign \x4114 13-1256-4
+sign \x4115 24-2346-5
+sign \x4118 1234-1356-2
+sign \x4119 134-13456-2
+sign \x411A 245-146-2
+sign \x411B 14-12356-2
+sign \x411C 14-16-2
+sign \x411D 12-123456-4
+sign \x411F 245-1246-5
+sign \x4120 24-1236-5
+sign \x4122 245-16-2
+sign \x4124 14-2456-5
+sign \x4125 14-13456-2
+sign \x4126 14-246-4
+sign \x4127 1245-1356-2
+sign \x4128 1256-2
+sign \x4129 1345-146-2
+sign \x412A 12-25-5
+sign \x412B 245-16-4
+sign \x412C 16-2
+sign \x412D 1345-2345-2
+sign \x412F 13-2345-4
+sign \x4130 23456-2
+sign \x4132 12-1246-2
+sign \x4136 135-16-5
+sign \x4137 145-1236-5
+sign \x4138 1234-126-5
+sign \x4139 1345-2345-2
+sign \x413A 1-156-5
+sign \x413B 12-146-2
+sign \x413C 124-2345-4
+sign \x413D 124-2345-4
+sign \x413E 1245-12356-5
+sign \x413F 16-5
+sign \x4140 14-346-5
+sign \x4141 1236-5
+sign \x4142 1235-2346-2
+sign \x4143 245-235-2
+sign \x4144 14-16-5
+sign \x4146 125-156-5
+sign \x4147 15-34-5
+sign \x4148 45-5
+sign \x4149 23456-5
+sign \x414A 145-34-5
+sign \x414B 12456-4
+sign \x414D 145-12346-5
+sign \x414E 234-4
+sign \x414F 1235-1246-5
+sign \x4150 13-2345-4
+sign \x4151 1245-1246-2
+sign \x4152 134-1346-2
+sign \x4153 13-1256-4
+sign \x4156 1236-4
+sign \x4157 15-1246-5
+sign \x4158 14-2456-2
+sign \x4159 1235-123456-5
+sign \x415A 245-46-4
+sign \x415C 145-25-5
+sign \x415E 1345-345-5
+sign \x415F 24-1236-3
+sign \x4160 124-16-2
+sign \x4161 15-1256-4
+sign \x4162 13-234-5
+sign \x4163 1235-456-2
+sign \x4164 245-16-5
+sign \x4165 13-346-2
+sign \x4166 134-146-2
+sign \x4167 2345-5
+sign \x4169 1-156-4
+sign \x416A 124-1246-2
+sign \x416C 2456-5
+sign \x416D 1234-1346-2
+sign \x416E 245-1346-5
+sign \x416F 124-1346-2
+sign \x4170 136-4
+sign \x4171 1235-123456-5
+sign \x4172 245-16-2
+sign \x4173 12-34-2
+sign \x4174 15-25-4
+sign \x4175 1-25-2
+sign \x4176 1345-12356-5
+sign \x4177 124-34-2
+sign \x4178 125-34-2
+sign \x4179 14-12356-2
+sign \x417A 134-246-4
+sign \x417B 14-16-2
+sign \x417C 134-1236-2
+sign \x417D 13-34-4
+sign \x417E 245-136-2
+sign \x417F 1235-35-2
+sign \x4180 134-356-4
+sign \x4182 14-2345-2
+sign \x4183 145-146-4
+sign \x4184 24-1236-5
+sign \x4185 245-156-2
+sign \x4188 1-156-5
+sign \x4189 135-345-5
+sign \x418A 245-1246-5
+sign \x418B 245-234-3
+sign \x418D 14-12346-2
+sign \x418F 12345-356-5
+sign \x4190 13-25-2
+sign \x4191 12-1356-2
+sign \x4192 13-234-5
+sign \x4193 2346-5
+sign \x4195 13-236-2
+sign \x4196 1235-12346-2
+sign \x4197 13-246-5
+sign \x4198 245-12456-2
+sign \x4199 246-2
+sign \x419A 124-12346-2
+sign \x419B 12-345-2
+sign \x419C 234-5
+sign \x419D 24-34-5
+sign \x419E 246-4
+sign \x419F 13-2346-2
+sign \x41A0 1235-12456-5
+sign \x41A1 14-1346-2
+sign \x41A2 13-236-2
+sign \x41A3 12-136-2
+sign \x41A6 24-136-5
+sign \x41A8 134-13456-2
+sign \x41A9 134-13456-2
+sign \x41AB 12-456-3
+sign \x41AC 256-4
+sign \x41AE 13-1456-5
+sign \x41AF 12-25-5
+sign \x41B1 124-1236-4
+sign \x41B3 245-235-2
+sign \x41B5 12-1356-2
+sign \x41B7 1256-5
+sign \x41B8 12-1356-2
+sign \x41B9 124-12346-4
+sign \x41BB 245-246-5
+sign \x41BD 13-1256-5
+sign \x41BE 14-1236-2
+sign \x41BF 16-5
+sign \x41C0 1245-12346-2
+sign \x41C3 15-156-5
+sign \x41C5 12345-345-2
+sign \x41C7 134-1346-2
+sign \x41C8 13-1246-5
+sign \x41CB 1235-2456-5
+sign \x41CC 245-246-5
+sign \x41CD 12-25-5
+sign \x41CE 245-236-5
+sign \x41CF 145-1246-5
+sign \x41D0 14-16-5
+sign \x41D1 135-345-5
+sign \x41D2 13-346-5
+sign \x41D4 14-25-5
+sign \x41D6 256-4
+sign \x41D8 1235-34-5
+sign \x41D9 1456-4
+sign \x41DB 1-156-4
+sign \x41DC 14-2345-4
+sign \x41DE 13-1236-4
+sign \x41DF 13-2345-5
+sign \x41E0 1-12356-5
+sign \x41E1 1-34-5
+sign \x41E2 123-34-4
+sign \x41E3 1345-345-5
+sign \x41E4 145-1246-5
+sign \x41E5 125-2346-2
+sign \x41E6 46-4
+sign \x41E7 1-34-5
+sign \x41E8 13-12346-5
+sign \x41E9 16-5
+sign \x41EC 12-456-4
+sign \x41ED 14-146-4
+sign \x41EE 1245-136-5
+sign \x41EF 1245-12346-2
+sign \x41F1 1345-345-5
+sign \x41F2 245-2346-5
+sign \x41F5 16-2
+sign \x41F6 13-236-2
+sign \x41F7 135-16-4
+sign \x41F8 12-1356-2
+sign \x41F9 13-256-5
+sign \x41FA 12-12356-2
+sign \x41FB 1235-1246-5
+sign \x41FC 12-156-5
+sign \x41FD 1-156-5
+sign \x41FE 2345-2
+sign \x4201 14-123456-2
+sign \x4202 135-13456-5
+sign \x4203 1-146-4
+sign \x4204 1235-1236-2
+sign \x4205 1256-5
+sign \x4206 145-2456-5
+sign \x4207 1-146-5
+sign \x4208 12345-356-2
+sign \x4209 24-345-5
+sign \x420A 14-13456-2
+sign \x420B 124-345-5
+sign \x420D 134-1346-2
+sign \x420E 346-5
+sign \x420F 135-146-2
+sign \x4210 123-1246-5
+sign \x4211 13-35-4
+sign \x4212 1345-1236-4
+sign \x4213 13-2346-2
+sign \x4215 12-156-2
+sign \x4217 15-25-4
+sign \x4218 245-156-2
+sign \x4219 1-12356-5
+sign \x421A 124-2456-2
+sign \x421B 123-2356-5
+sign \x421C 245-1456-5
+sign \x421E 145-34-4
+sign \x421F 245-2346-5
+sign \x4220 1235-12456-4
+sign \x4222 15-2456-4
+sign \x4223 1-1356-5
+sign \x4224 245-2345-2
+sign \x4227 1246-4
+sign \x422A 15-16-5
+sign \x422B 1345-345-5
+sign \x422C 1234-34-2
+sign \x422D 1235-2356-2
+sign \x422E 13-1256-4
+sign \x4230 24-146-3
+sign \x4232 1234-1236-2
+sign \x4233 124-345-5
+sign \x4234 245-2345-5
+sign \x4236 1245-12346-2
+sign \x4237 14-25-5
+sign \x4238 1235-34-2
+sign \x4239 15-12356-4
+sign \x423B 1234-34-2
+sign \x423C 134-346-5
+sign \x423E 24-25-5
+sign \x423F 134-2456-5
+sign \x4240 24-34-5
+sign \x4241 14-13456-2
+sign \x4242 14-356-4
+sign \x4243 13-46-4
+sign \x4244 14-1356-2
+sign \x4245 1-156-5
+sign \x4246 145-246-4
+sign \x4248 15-1236-4
+sign \x4249 1235-34-2
+sign \x424A 12345-1236-5
+sign \x424B 134-356-5
+sign \x424C 15-1246-5
+sign \x424D 13-2345-4
+sign \x424E 124-1346-2
+sign \x424F 15-346-5
+sign \x4251 134-126-2
+sign \x4252 12345-1236-2
+sign \x4253 14-356-2
+sign \x4255 245-1356-2
+sign \x4256 14-13456-2
+sign \x4258 245-12346-2
+sign \x4259 256-2
+sign \x425A 134-1356-2
+sign \x425B 1256-5
+sign \x425C 1-156-5
+sign \x425D 245-16-4
+sign \x425E 145-1236-4
+sign \x425F 1235-25-5
+sign \x4260 1246-2
+sign \x4261 124-1236-2
+sign \x4262 15-2346-5
+sign \x4263 15-346-5
+sign \x4264 15-12356-4
+sign \x4265 15-12346-4
+sign \x4267 14-234-2
+sign \x4268 16-5
+sign \x426A 14-356-5
+sign \x426B 14-16-2
+sign \x426C 12345-356-5
+sign \x426D 14-346-5
+sign \x426E 14-1456-5
+sign \x426F 15-2345-5
+sign \x4270 246-2
+sign \x4272 135-346-5
+sign \x4273 15-2345-4
+sign \x4274 1245-1346-2
+sign \x4275 1-12456-5
+sign \x4277 145-1236-5
+sign \x4278 135-2345-5
+sign \x4279 14-13456-2
+sign \x427A 1235-12346-2
+sign \x427B 245-16-2
+sign \x427C 14-246-5
+sign \x427D 135-1236-4
+sign \x427E 134-16-5
+sign \x427F 1235-34-2
+sign \x4280 1235-34-2
+sign \x4282 245-2346-5
+sign \x4283 1234-356-5
+sign \x4284 245-235-2
+sign \x4285 134-13456-2
+sign \x4286 13-234-5
+sign \x4287 135-34-5
+sign \x4288 134-356-2
+sign \x4289 15-1236-4
+sign \x428A 134-356-5
+sign \x428B 1-456-3
+sign \x428D 14-16-2
+sign \x428E 245-45-4
+sign \x4290 136-5
+sign \x4291 15-46-4
+sign \x4293 24-156-5
+sign \x4296 14-1236-4
+sign \x4297 1235-456-2
+sign \x4298 13-234-5
+sign \x4299 2345-2
+sign \x429B 15-345-4
+sign \x429C 124-12456-2
+sign \x429D 15-346-5
+sign \x429E 1-2346-2
+sign \x429F 134-136-2
+sign \x42A0 15-16-5
+sign \x42A1 134-1236-2
+sign \x42A3 1235-456-2
+sign \x42A4 124-1236-2
+sign \x42A5 15-246-5
+sign \x42A6 23456-2
+sign \x42A7 135-16-5
+sign \x42A8 14-25-2
+sign \x42A9 12345-1236-2
+sign \x42AA 14-16-5
+sign \x42AB 245-1246-4
+sign \x42AC 12-345-5
+sign \x42AD 12-12356-2
+sign \x42AE 145-16-2
+sign \x42AF 123-456-5
+sign \x42B0 12-34-4
+sign \x42B2 12-1236-4
+sign \x42B3 134-16-2
+sign \x42B4 245-2345-5
+sign \x42B5 245-234-2
+sign \x42B6 1-136-5
+sign \x42B7 125-156-3
+sign \x42B7 1256-3
+sign \x42BA 13-34-4
+sign \x42BB 2345-4
+sign \x42BC 12-156-4
+sign \x42BD 13-2356-5
+sign \x42BE 134-34-5
+sign \x42BF 135-126-2
+sign \x42C0 123-35-5
+sign \x42C1 13-1356-4
+sign \x42C2 246-2
+sign \x42C3 134-146-5
+sign \x42C4 456-4
+sign \x42C8 1245-34-2
+sign \x42C9 13-236-2
+sign \x42CB 134-1456-2
+sign \x42CC 13-46-4
+sign \x42CE 1-1236-5
+sign \x42CF 125-25-5
+sign \x42D0 236-5
+sign \x42D1 135-13456-4
+sign \x42D2 24-34-3
+sign \x42D3 1-12356-5
+sign \x42D4 135-16-5
+sign \x42D5 1245-136-5
+sign \x42D6 1256-5
+sign \x42D8 12-25-5
+sign \x42D9 156-4
+sign \x42DA 16-5
+sign \x42DB 134-16-2
+sign \x42DC 245-13456-5
+sign \x42DE 456-4
+sign \x42DF 13-16-5
+sign \x42E0 135-34-4
+sign \x42E2 135-346-5
+sign \x42E3 12345-1236-2
+sign \x42E4 246-5
+sign \x42E5 14-16-2
+sign \x42E6 12345-1236-2
+sign \x42E7 245-1256-2
+sign \x42E8 12345-34-4
+sign \x42E9 156-2
+sign \x42ED 1235-25-5
+sign \x42EE 13-1456-5
+sign \x42EF 245-16-4
+sign \x42F0 13-1256-2
+sign \x42F1 14-2456-2
+sign \x42F2 12-2346-4
+sign \x42F3 135-356-5
+sign \x42F4 1345-234-5
+sign \x42F5 16-5
+sign \x42F6 15-1256-5
+sign \x42F7 14-234-2
+sign \x42F8 15-256-2
+sign \x42F9 12345-34-2
+sign \x42FB 1345-1456-2
+sign \x42FC 124-13456-4
+sign \x42FD 135-1356-4
+sign \x42FE 1-345-4
+sign \x4302 12356-5
+sign \x4303 24-25-5
+sign \x4304 13-1356-4
+sign \x4305 124-1346-2
+sign \x4306 13-1246-5
+sign \x4307 1235-1246-5
+sign \x4308 124-345-5
+sign \x430A 234-2
+sign \x430C 245-16-5
+sign \x430D 1235-1236-5
+sign \x430E 14-236-5
+sign \x430F 134-16-5
+sign \x4310 134-16-5
+sign \x4312 14-34-5
+sign \x4313 12345-1236-2
+sign \x4314 12356-5
+sign \x4315 134-16-2
+sign \x4316 13-346-2
+sign \x4317 12345-34-4
+sign \x4318 134-16-2
+sign \x4319 1235-456-4
+sign \x431A 15-34-5
+sign \x431B 246-2
+sign \x431C 1345-346-5
+sign \x431D 13-1456-5
+sign \x431E 14-2345-4
+sign \x431F 135-16-5
+sign \x4320 245-13456-5
+sign \x4321 124-16-4
+sign \x4322 14-13456-2
+sign \x4323 125-12456-4
+sign \x4324 1-156-4
+sign \x4325 1456-4
+sign \x4326 145-146-4
+sign \x4327 12-12356-2
+sign \x4328 245-2456-5
+sign \x4329 134-16-5
+sign \x432A 2345-2
+sign \x432B 14-1236-4
+sign \x432C 12-12346-2
+sign \x432F 13-12456-5
+sign \x4330 24-2346-5
+sign \x4331 14-25-5
+sign \x4334 14-25-5
+sign \x4335 1-34-2
+sign \x4336 125-156-3
+sign \x4337 12-12356-2
+sign \x4338 13-45-5
+sign \x4339 13-235-4
+sign \x433A 156-4
+sign \x433B 16-5
+sign \x433C 1245-1246-5
+sign \x433D 245-2456-4
+sign \x433E 1245-136-2
+sign \x433F 12345-34-2
+sign \x4340 14-1236-2
+sign \x4341 15-1246-5
+sign \x4342 1256-2
+sign \x4343 246-2
+sign \x4344 145-2345-4
+sign \x4345 14-13456-2
+sign \x4346 1-34-5
+sign \x4347 124-345-5
+sign \x4348 1234-13456-2
+sign \x4349 245-2345-2
+sign \x434A 13-236-2
+sign \x434B 12-1246-2
+sign \x434C 135-34-5
+sign \x434D 13-34-4
+sign \x434E 245-123456-5
+sign \x4350 1235-1236-4
+sign \x4351 1235-1236-4
+sign \x4352 134-12356-4
+sign \x4353 1235-34-5
+sign \x4354 1235-12346-2
+sign \x4355 145-16-4
+sign \x4356 12345-34-2
+sign \x4357 15-45-5
+sign \x4358 134-16-2
+sign \x4359 134-356-2
+sign \x435A 14-1346-5
+sign \x435B 13-34-5
+sign \x435C 1-146-5
+sign \x435D 124-345-5
+sign \x435E 1256-5
+sign \x435F 125-12346-5
+sign \x4360 14-16-2
+sign \x4361 14-246-5
+sign \x4362 34-2
+sign \x4363 14-356-2
+sign \x4364 13-16-4
+sign \x4365 14-356-5
+sign \x4366 14-16-2
+sign \x4368 135-126-2
+sign \x4369 46-4
+sign \x436A 123-1246-5
+sign \x436B 124-25-2
+sign \x436E 1-146-5
+sign \x436F 13-1246-4
+sign \x4371 15-1256-2
+sign \x4372 1345-2456-2
+sign \x4373 12-25-5
+sign \x4374 145-25-5
+sign \x4376 145-12346-5
+sign \x4377 13-1246-5
+sign \x4378 135-126-2
+sign \x437A 1235-12456-2
+sign \x437B 15-45-4
+sign \x437C 245-1236-2
+sign \x437D 14-16-5
+sign \x437E 124-1246-2
+sign \x437F 1235-456-2
+sign \x4380 15-236-5
+sign \x4381 1235-34-2
+sign \x4382 135-146-4
+sign \x4383 1245-1236-4
+sign \x4384 124-246-2
+sign \x4385 12345-34-5
+sign \x4386 14-246-5
+sign \x4388 16-5
+sign \x4389 24-34-5
+sign \x438A 1234-126-5
+sign \x438B 1235-2346-5
+sign \x438C 245-34-5
+sign \x438E 1345-345-5
+sign \x438F 1236-5
+sign \x4390 12-146-4
+sign \x4391 14-34-5
+sign \x4392 1-1236-4
+sign \x4393 124-345-5
+sign \x4397 245-246-2
+sign \x4398 15-34-5
+sign \x439A 13-12456-5
+sign \x439D 12-34-2
+sign \x439F 156-2
+sign \x43A0 156-2
+sign \x43A1 1345-12456-4
+sign \x43A2 245-16-4
+sign \x43A3 15-156-5
+sign \x43A4 12-34-2
+sign \x43A6 2345-4
+sign \x43A7 135-1346-5
+sign \x43A8 1236-5
+sign \x43AA 1345-2346-5
+sign \x43AB 12-456-5
+sign \x43AC 1234-345-2
+sign \x43AE 124-16-5
+sign \x43AF 1235-1236-5
+sign \x43B0 125-25-2
+sign \x43B1 1234-345-2
+sign \x43B2 1-2346-2
+sign \x43B3 35-5
+sign \x43B4 24-1356-5
+sign \x43B5 135-16-5
+sign \x43B6 156-5
+sign \x43B7 1-34-5
+sign \x43B8 34-5
+sign \x43B9 123456-2
+sign \x43BA 1-156-4
+sign \x43BB 1-12356-4
+sign \x43BC 14-34-5
+sign \x43BD 123456-2
+sign \x43BE 13-123456-4
+sign \x43BF 245-234-2
+sign \x43C0 14-345-5
+sign \x43C1 125-2456-4
+sign \x43C2 15-12356-4
+sign \x43C3 134-2345-2
+sign \x43C4 1-156-5
+sign \x43C5 245-16-5
+sign \x43C6 245-146-2
+sign \x43C7 1234-246-5
+sign \x43C8 14-2345-2
+sign \x43CA 14-12346-2
+sign \x43CB 15-34-5
+sign \x43CC 245-16-5
+sign \x43CD 45-5
+sign \x43CE 12345-1356-2
+sign \x43D0 13-236-2
+sign \x43D1 145-16-5
+sign \x43D2 1234-2345-5
+sign \x43D3 13-12456-4
+sign \x43D4 1345-234-4
+sign \x43D5 1245-136-4
+sign \x43D6 1-136-5
+sign \x43D7 13-2456-5
+sign \x43D8 1234-16-4
+sign \x43D9 124-1236-4
+sign \x43DA 12-146-4
+sign \x43DB 12-123456-4
+sign \x43DD 12-123456-2
+sign \x43DE 134-126-5
+sign \x43DF 135-346-5
+sign \x43E0 245-16-5
+sign \x43E1 24-156-5
+sign \x43E2 135-16-4
+sign \x43E3 13-236-2
+sign \x43E4 15-156-5
+sign \x43E6 1235-35-2
+sign \x43E7 1345-345-2
+sign \x43E8 1235-1246-4
+sign \x43EA 156-5
+sign \x43EC 134-12356-2
+sign \x43EE 15-16-2
+sign \x43EF 1-156-5
+sign \x43F0 1245-136-4
+sign \x43F1 13-1256-2
+sign \x43F2 145-346-2
+sign \x43F3 1-2346-5
+sign \x43F4 24-146-5
+sign \x43F5 134-1356-4
+sign \x43F6 135-16-5
+sign \x43F7 1235-1236-5
+sign \x43F8 1256-2
+sign \x43F9 15-2345-5
+sign \x43FB 1345-1356-2
+sign \x43FC 245-1236-2
+sign \x43FD 135-34-5
+sign \x43FF 245-16-4
+sign \x4400 13-16-5
+sign \x4401 1345-246-4
+sign \x4402 14-34-5
+sign \x4403 13-235-4
+sign \x4404 1235-1236-5
+sign \x4405 16-2
+sign \x4406 245-2456-4
+sign \x4407 12-123456-2
+sign \x4408 1-156-2
+sign \x4409 125-156-5
+sign \x440A 145-345-2
+sign \x440C 124-2345-4
+sign \x440D 1-12356-5
+sign \x440F 12-123456-4
+sign \x4411 1-2346-2
+sign \x4413 1245-12356-2
+sign \x4414 135-1456-5
+sign \x4415 13-16-2
+sign \x4416 16-2
+sign \x4417 145-34-4
+sign \x4418 13-236-2
+sign \x4419 13-2346-2
+sign \x441A 13-16-2
+sign \x441D 15-25-4
+sign \x441E 1245-25-5
+sign \x441F 15-46-5
+sign \x4420 1235-456-4
+sign \x4421 245-16-2
+sign \x4422 1-34-5
+sign \x4423 245-25-5
+sign \x4424 12-156-2
+sign \x4425 12346-4
+sign \x4427 123-146-5
+sign \x4428 13-34-4
+sign \x4429 123-2456-4
+sign \x442A 12345-1236-5
+sign \x442C 245-146-2
+sign \x442D 1-156-5
+sign \x442E 12-1236-4
+sign \x442F 14-356-2
+sign \x4432 1-2346-2
+sign \x4433 1256-2
+sign \x4434 13-1246-5
+sign \x4435 1235-456-2
+sign \x4436 13-1456-4
+sign \x4438 13-25-2
+sign \x4439 15-146-5
+sign \x443A 124-1236-5
+sign \x443C 15-16-5
+sign \x443D 134-1236-2
+sign \x443E 145-25-2
+sign \x443F 146-2
+sign \x4440 1234-16-5
+sign \x4441 34-5
+sign \x4442 2456-4
+sign \x4443 134-1356-2
+sign \x4444 1234-16-5
+sign \x4445 134-1356-2
+sign \x4446 46-4
+sign \x4447 1-156-5
+sign \x4448 135-126-2
+sign \x4449 13456-2
+sign \x444A 1246-2
+sign \x444B 1345-146-2
+sign \x444C 14-1236-2
+sign \x444D 2345-5
+sign \x444E 12-1236-4
+sign \x444F 245-45-2
+sign \x4450 1-136-4
+sign \x4451 1234-34-2
+sign \x4453 124-2456-2
+sign \x4454 12345-356-5
+sign \x4455 24-34-4
+sign \x4457 145-1346-5
+sign \x4458 12-345-2
+sign \x4459 1245-1236-2
+sign \x445A 124-2345-2
+sign \x445B 12-156-4
+sign \x445C 124-345-5
+sign \x445D 13-23456-4
+sign \x445E 24-123456-5
+sign \x445F 1235-456-2
+sign \x4460 14-246-4
+sign \x4464 13-1456-5
+sign \x4465 2346-5
+sign \x4467 12345-34-2
+sign \x4468 145-25-5
+sign \x446A 2346-5
+sign \x446C 246-5
+sign \x446D 145-16-5
+sign \x446F 145-16-5
+sign \x4470 135-34-5
+sign \x4471 134-1236-2
+sign \x4472 12-2346-5
+sign \x4473 14-123456-2
+sign \x4474 245-16-2
+sign \x4475 134-34-5
+sign \x4476 245-1236-2
+sign \x447B 234-2
+sign \x447D 145-345-2
+sign \x447F 15-34-5
+sign \x4480 12345-34-2
+sign \x4481 13-16-5
+sign \x4482 13-46-4
+sign \x4483 245-146-5
+sign \x4484 135-126-2
+sign \x4485 124-1356-2
+sign \x4486 12-2346-5
+sign \x4487 12345-34-5
+sign \x4488 135-34-4
+sign \x4489 34-4
+sign \x448B 46-4
+sign \x448C 134-13456-5
+sign \x448D 1234-1346-4
+sign \x448E 134-1346-4
+sign \x4490 134-1356-2
+sign \x4491 235678-45
+sign \x4492 124-246-2
+sign \x4493 123-2456-4
+sign \x4494 135-2456-5
+sign \x4495 15-246-4
+sign \x4496 15-1456-5
+sign \x4497 245-16-5
+sign \x449A 24-146-4
+sign \x449B 1235-1356-2
+sign \x449C 1345-234-2
+sign \x449D 15-246-2
+sign \x449E 12-136-2
+sign \x44A0 12345-1236-4
+sign \x44A1 1456-4
+sign \x44A2 1346-2
+sign \x44A3 1245-1236-4
+sign \x44A4 1245-156-5
+sign \x44A5 12345-345-5
+sign \x44A6 12345-1236-5
+sign \x44A7 245-1256-5
+sign \x44A8 24-156-4
+sign \x44A9 1235-2346-2
+sign \x44AA 135-2345-5
+sign \x44AB 145-2456-5
+sign \x44AC 134-126-5
+sign \x44AD 145-1356-4
+sign \x44B2 12-345-5
+sign \x44B3 145-25-4
+sign \x44B4 234-4
+sign \x44B5 1235-146-5
+sign \x44B7 123-2356-5
+sign \x44B8 15-2345-2
+sign \x44B9 14-356-5
+sign \x44BA 13-1456-4
+sign \x44BB 245-16-4
+sign \x44BD 134-356-2
+sign \x44C2 2345-2
+sign \x44C3 16-5
+sign \x44C4 1456-2
+sign \x44C5 245-16-2
+sign \x44C6 1-2346-2
+sign \x44C7 15-16-5
+sign \x44C8 16-5
+sign \x44C9 346-2
+sign \x44CA 2346-5
+sign \x44CC 1-156-5
+sign \x44CD 1235-1236-4
+sign \x44CE 12-25-5
+sign \x44D0 12-123456-2
+sign \x44D1 135-13456-4
+sign \x44D2 123-2356-4
+sign \x44D3 12-12356-2
+sign \x44D5 124-25-4
+sign \x44D6 245-235-2
+sign \x44D8 13-234-5
+sign \x44DA 245-34-2
+sign \x44DB 12345-34-4
+sign \x44DD 134-1356-2
+sign \x44DE 14-16-5
+sign \x44DF 14-346-5
+sign \x44E0 124-345-5
+sign \x44E2 13-34-5
+sign \x44E3 14-46-4
+sign \x44E5 14-345-5
+sign \x44E6 145-2345-4
+sign \x44E7 245-156-5
+sign \x44EA 46-2
+sign \x44EB 13-16-5
+sign \x44ED 12-345-5
+sign \x44EE 134-146-5
+sign \x44EF 145-34-2
+sign \x44F1 12-2456-2
+sign \x44F2 1245-1246-5
+sign \x44F3 1235-136-4
+sign \x44F4 1245-12456-2
+sign \x44F6 14-2456-5
+sign \x44F7 15-13456-5
+sign \x44F9 16-5
+sign \x44FA 134-356-4
+sign \x44FC 1235-2346-5
+sign \x44FD 13-16-5
+sign \x44FF 1235-1236-4
+sign \x4501 14-16-5
+sign \x4502 125-156-4
+sign \x4503 125-34-4
+sign \x4504 246-2
+sign \x4506 14-16-2
+sign \x4507 245-16-4
+sign \x4508 13-1236-4
+sign \x4509 14-16-5
+sign \x450D 145-34-4
+sign \x450E 15-34-5
+sign \x450F 12-12356-5
+sign \x4511 15-346-2
+sign \x4512 135-356-5
+sign \x4513 15-1256-4
+sign \x4514 13-13456-5
+sign \x4515 1234-34-2
+sign \x4516 14-13456-2
+sign \x4517 15-46-2
+sign \x4518 125-25-5
+sign \x4519 145-246-5
+sign \x451A 12-123456-2
+sign \x451B 245-13456-4
+sign \x451C 1345-1236-2
+sign \x451E 14-1256-5
+sign \x451F 12-156-2
+sign \x4520 24-146-4
+sign \x4521 1256-2
+sign \x4522 1235-35-2
+sign \x4523 14-16-2
+sign \x4527 14-16-2
+sign \x452A 145-1246-5
+sign \x452C 16-5
+sign \x452D 1345-13456-5
+sign \x452F 1235-34-2
+sign \x4530 12345-34-2
+sign \x4532 12-1356-2
+sign \x4533 1345-1236-4
+sign \x4534 245-2346-5
+sign \x4536 124-16-2
+sign \x4537 245-1456-2
+sign \x4538 135-246-4
+sign \x4539 15-1246-5
+sign \x453A 1246-2
+sign \x453C 15-2346-5
+sign \x453D 2456-5
+sign \x453E 2346-5
+sign \x453F 13-346-5
+sign \x4540 123-12456-4
+sign \x4541 12345-356-4
+sign \x4543 1456-5
+sign \x4545 15-146-4
+sign \x4546 145-12356-5
+sign \x4547 1235-1246-5
+sign \x4548 15-346-5
+sign \x4549 125-2346-2
+sign \x454A 124-1236-2
+sign \x454B 12-1346-4
+sign \x454C 1-156-5
+sign \x454D 16-5
+sign \x454E 12345-34-2
+sign \x454F 2346-2
+sign \x4551 13-256-5
+sign \x4553 12-345-2
+sign \x4554 15-2345-2
+sign \x4555 134-1236-5
+sign \x4557 135-16-5
+sign \x4558 14-13456-2
+sign \x4559 13-346-2
+sign \x455A 123-1246-5
+sign \x455B 13-23456-2
+sign \x455E 14-1346-5
+sign \x4560 12345-356-5
+sign \x4561 14-34-4
+sign \x4562 1-345-4
+sign \x4563 1235-2346-2
+sign \x4565 1345-16-4
+sign \x4566 13456-2
+sign \x4567 15-246-5
+sign \x4568 124-1356-2
+sign \x4569 14-146-4
+sign \x456A 125-2346-2
+sign \x456B 123-1246-2
+sign \x456D 15-256-2
+sign \x456E 13-1256-2
+sign \x456F 1234-246-2
+sign \x4570 135-1236-5
+sign \x4571 145-12356-4
+sign \x4572 14-1456-4
+sign \x4573 134-16-2
+sign \x4574 1-25-2
+sign \x4575 15-346-2
+sign \x4576 1235-34-5
+sign \x4577 134-16-2
+sign \x4578 13-346-3
+sign \x4579 125-345-2
+sign \x457A 245-12346-2
+sign \x457B 13-2346-2
+sign \x457C 1345-1236-2
+sign \x457D 1-34-2
+sign \x457E 2345-2
+sign \x457F 1235-1236-5
+sign \x4581 16-5
+sign \x4582 14-12456-2
+sign \x4583 236-5
+sign \x4584 1245-1236-2
+sign \x4585 14-13456-2
+sign \x4586 1345-46-5
+sign \x4587 1256-5
+sign \x4588 1345-236-5
+sign \x458A 16-2
+sign \x458B 1345-236-5
+sign \x458C 245-1456-2
+sign \x458D 245-2345-2
+sign \x458E 15-23456-2
+sign \x458F 12-34-4
+sign \x4590 13-1456-5
+sign \x4591 134-16-5
+sign \x4593 1345-345-5
+sign \x4594 1235-1236-5
+sign \x4595 125-34-4
+sign \x4596 15-23456-2
+sign \x4597 2345-2
+sign \x4598 124-34-2
+sign \x459B 15-25-4
+sign \x459C 1456-2
+sign \x459D 12-12346-2
+sign \x459E 1-12356-4
+sign \x459F 134-1346-4
+sign \x45A0 45-2
+sign \x45A1 1345-1256-5
+sign \x45A2 134-246-2
+sign \x45A3 15-146-5
+sign \x45A4 12456-4
+sign \x45A5 14-16-2
+sign \x45A7 1345-345-5
+sign \x45A8 24-156-2
+sign \x45A9 135-16-5
+sign \x45AA 245-156-2
+sign \x45AB 135-1346-5
+sign \x45AD 13-45-5
+sign \x45AE 15-46-4
+sign \x45AF 13-1246-5
+sign \x45B0 1234-2456-5
+sign \x45B2 15-256-2
+sign \x45B3 1-345-5
+sign \x45B4 246-2
+sign \x45B8 2346-2
+sign \x45B9 46-2
+sign \x45BA 124-246-2
+sign \x45BB 234-2
+sign \x45BC 13-236-2
+sign \x45BD 14-16-2
+sign \x45BF 14-16-2
+sign \x45C1 13-16-5
+sign \x45C2 1235-34-4
+sign \x45C3 1-1236-5
+sign \x45C4 12345-34-4
+sign \x45C5 12-1346-2
+sign \x45C6 13-12456-4
+sign \x45C7 13-1256-2
+sign \x45C8 134-1356-2
+sign \x45CA 12-1356-2
+sign \x45CB 134-12356-2
+sign \x45CD 14-16-4
+sign \x45D1 16-5
+sign \x45D2 135-13456-5
+sign \x45D4 1235-12356-2
+sign \x45D5 12456-4
+sign \x45D6 12-156-5
+sign \x45D8 13-2346-2
+sign \x45D9 1235-1236-2
+sign \x45DA 135-126-2
+sign \x45DC 14-234-2
+sign \x45DD 245-1236-2
+sign \x45DE 245-1236-2
+sign \x45DF 16-5
+sign \x45E0 15-45-2
+sign \x45E1 2345-2
+sign \x45E2 15-25-4
+sign \x45E3 13-146-4
+sign \x45E4 235-2
+sign \x45E8 1256-2
+sign \x45EA 1-2346-5
+sign \x45EB 134-345-2
+sign \x45EE 24-456-4
+sign \x45EF 13-1456-5
+sign \x45F0 13-12456-5
+sign \x45F1 1234-34-2
+sign \x45F2 14-1456-5
+sign \x45F4 124-13456-2
+sign \x45F6 14-345-5
+sign \x45F7 16-5
+sign \x45F9 245-156-5
+sign \x45FA 2345-4
+sign \x45FB 13-346-2
+sign \x45FD 1246-5
+sign \x45FE 15-2345-4
+sign \x45FF 1345-13456-2
+sign \x4600 12345-34-5
+sign \x4601 13-2346-2
+sign \x4603 134-126-5
+sign \x4604 12345-34-5
+sign \x4605 1345-2456-2
+sign \x4606 15-2345-4
+sign \x4607 123456-2
+sign \x4608 14-16-5
+sign \x4609 245-1236-2
+sign \x460A 134-346-5
+sign \x460C 1345-16-5
+sign \x460D 12-2456-5
+sign \x460F 15-1256-5
+sign \x4610 1345-1256-5
+sign \x4611 134-2456-5
+sign \x4613 123-1236-5
+sign \x4615 1235-1346-2
+sign \x4618 1256-5
+sign \x4619 1246-5
+sign \x461A 125-34-2
+sign \x461D 16-5
+sign \x4620 12345-34-2
+sign \x4621 135-16-4
+sign \x4622 1-34-4
+sign \x4623 125-156-4
+sign \x4624 24-34-5
+sign \x4625 15-23456-2
+sign \x4626 1345-16-2
+sign \x4628 13-246-4
+sign \x4629 15-45-5
+sign \x462B 1345-12356-5
+sign \x462C 1245-12346-2
+sign \x462D 145-346-2
+sign \x462E 15-1346-3
+sign \x4631 1256-5
+sign \x4633 13-1456-3
+sign \x4635 14-34-5
+sign \x4636 1235-1236-5
+sign \x4638 16-5
+sign \x4639 125-1246-5
+sign \x463A 1-1236-5
+sign \x463B 15-34-5
+sign \x463C 12456-4
+sign \x463D 1345-16-2
+sign \x463E 13-12456-4
+sign \x463F 13-236-2
+sign \x4640 135-1356-4
+sign \x4641 245-1236-2
+sign \x4643 145-25-5
+sign \x4644 245-16-5
+sign \x4645 246-5
+sign \x4646 13-1246-5
+sign \x4647 1345-12456-4
+sign \x4648 1235-12356-2
+sign \x4649 15-256-2
+sign \x464A 15-346-5
+sign \x464C 1235-1246-5
+sign \x464E 15-346-2
+sign \x464F 135-126-2
+sign \x4650 123-2346-5
+sign \x4652 15-1256-5
+sign \x4653 135-2456-4
+sign \x4655 12-34-5
+sign \x4657 124-16-5
+sign \x4658 12-34-4
+sign \x4659 12-156-2
+sign \x465A 1345-246-4
+sign \x465B 13-12456-5
+sign \x465C 12345-1356-2
+sign \x465D 15-346-5
+sign \x465F 145-25-5
+sign \x4660 13-236-2
+sign \x4661 1235-1246-5
+sign \x4662 125-1356-5
+sign \x4663 15-345-5
+sign \x4664 145-25-4
+sign \x4665 14-13456-2
+sign \x4666 134-1356-2
+sign \x4668 13-25-4
+sign \x4669 134-1356-2
+sign \x466A 14-12346-2
+sign \x466C 13456-5
+sign \x466E 13-12456-5
+sign \x466F 245-34-5
+sign \x4670 14-16-2
+sign \x4671 145-34-2
+sign \x4673 2346-5
+sign \x4677 145-2346-2
+sign \x4678 145-2346-2
+sign \x4679 13-46-4
+sign \x467A 14-2345-2
+sign \x467C 24-146-5
+sign \x467D 15-16-5
+sign \x467F 1246-5
+sign \x4682 1235-2346-5
+sign \x4683 234-2
+sign \x4684 14-34-5
+sign \x4685 14-2456-2
+sign \x4686 12356-4
+sign \x4687 24-1356-4
+sign \x4688 13-45-5
+sign \x4689 245-16-5
+sign \x468B 256-5
+sign \x468D 245-16-5
+sign \x468F 14-1356-5
+sign \x4690 13-16-2
+sign \x4691 134-2456-2
+sign \x4692 12-456-2
+sign \x4693 1345-2345-4
+sign \x4695 14-16-5
+sign \x4696 14-13456-2
+sign \x4698 12-136-2
+sign \x469A 15-2345-4
+sign \x469B 1235-34-2
+sign \x469D 125-34-2
+sign \x469E 145-2456-4
+sign \x469F 145-2456-4
+sign \x46A0 1235-123456-5
+sign \x46A2 12-2346-5
+sign \x46A3 124-16-2
+sign \x46A5 1345-25-5
+sign \x46A6 1-156-5
+sign \x46A7 14-234-2
+sign \x46A8 12345-356-5
+sign \x46A9 13-246-4
+sign \x46AB 146-2
+sign \x46AC 14-1456-2
+sign \x46AE 1245-1356-2
+sign \x46AF 124-146-4
+sign \x46B0 1234-16-4
+sign \x46B1 15-1456-5
+sign \x46B2 24-1236-5
+sign \x46B3 15-346-5
+sign \x46B4 35-5
+sign \x46B5 124-146-4
+sign \x46B7 15-16-5
+sign \x46B8 15-346-5
+sign \x46B9 1234-16-4
+sign \x46BA 246-2
+sign \x46BB 246-2
+sign \x46BC 1345-1256-5
+sign \x46BD 1235-146-5
+sign \x46BE 1345-1456-2
+sign \x46BF 1456-5
+sign \x46C0 12345-1236-4
+sign \x46C1 1345-1236-2
+sign \x46C2 12-156-2
+sign \x46C3 456-5
+sign \x46C4 45-4
+sign \x46C5 15-23456-2
+sign \x46C6 1-12356-5
+sign \x46C7 45-4
+sign \x46C8 24-156-5
+sign \x46C9 134-16-5
+sign \x46CB 13-2346-2
+sign \x46CC 1234-146-2
+sign \x46CD 12345-356-5
+sign \x46CE 1235-34-5
+sign \x46CF 1345-16-2
+sign \x46D0 245-156-2
+sign \x46D1 134-16-5
+sign \x46D2 135-2345-5
+sign \x46D4 1345-345-2
+sign \x46D5 1256-5
+sign \x46D6 2346-5
+sign \x46D7 1-156-4
+sign \x46D8 1345-1456-2
+sign \x46D9 15-1256-5
+sign \x46DA 14-236-5
+sign \x46DB 1235-1246-5
+sign \x46DC 15-256-5
+sign \x46DD 1345-146-2
+sign \x46DE 1235-1236-4
+sign \x46DF 13-23456-2
+sign \x46E0 145-12356-5
+sign \x46E1 1235-35-5
+sign \x46E4 245-34-5
+sign \x46E5 15-16-5
+sign \x46E6 15-12346-5
+sign \x46E7 134-16-2
+sign \x46E8 15-1456-5
+sign \x46E9 34-5
+sign \x46EA 245-235-2
+sign \x46EB 1-1356-5
+sign \x46EC 12-12356-2
+sign \x46ED 15-13456-5
+sign \x46EE 13-234-5
+sign \x46EF 13-1256-5
+sign \x46F0 1235-123456-2
+sign \x46F1 124-16-2
+sign \x46F2 134-1236-2
+sign \x46F3 13-2345-4
+sign \x46F4 245-16-4
+sign \x46F5 24-12356-5
+sign \x46F6 14-356-4
+sign \x46F7 12456-4
+sign \x46F8 12-2346-5
+sign \x46F9 245-1236-5
+sign \x46FA 13-346-5
+sign \x46FB 234-5
+sign \x46FC 1235-1246-4
+sign \x46FD 1-345-4
+sign \x46FE 15-34-5
+sign \x46FF 13-2346-2
+sign \x4700 1345-146-4
+sign \x4701 15-16-5
+sign \x4704 12-156-2
+sign \x4705 1246-2
+sign \x4706 134-126-5
+sign \x4707 13-123456-4
+sign \x470A 125-146-5
+sign \x470B 1235-1246-5
+sign \x470C 14-12456-2
+sign \x470D 14-246-2
+sign \x470E 14-146-2
+sign \x4711 245-23456-5
+sign \x4712 146-5
+sign \x4713 1345-346-5
+sign \x4714 15-1246-2
+sign \x4715 134-2456-5
+sign \x4716 124-1236-5
+sign \x4717 15-1456-5
+sign \x4718 13-13456-4
+sign \x4719 1236-2
+sign \x471A 124-345-5
+sign \x471B 12-1236-2
+sign \x471C 1246-5
+sign \x471D 124-12456-4
+sign \x471E 13-16-5
+sign \x471F 12-136-2
+sign \x4720 12-2346-5
+sign \x4721 15-1256-5
+sign \x4722 15-2345-4
+sign \x4723 15-1456-3
+sign \x4727 1345-146-4
+sign \x4729 2345-5
+sign \x472A 245-234-2
+sign \x472B 1235-12346-2
+sign \x472C 15-12346-4
+sign \x472D 13-256-5
+sign \x472E 14-246-2
+sign \x472F 13-1256-2
+sign \x4731 134-1236-4
+sign \x4732 14-346-5
+sign \x4734 12-34-5
+sign \x4735 12-156-4
+sign \x4736 15-46-2
+sign \x4738 134-356-4
+sign \x4739 24-34-5
+sign \x473A 245-2346-5
+sign \x473B 12-156-4
+sign \x473C 13-34-2
+sign \x473D 1256-2
+sign \x4740 14-246-2
+sign \x4741 14-146-2
+sign \x4742 24-34-5
+sign \x4743 1-2346-2
+sign \x4748 2346-5
+sign \x474A 24-345-5
+sign \x474B 125-12346-5
+sign \x474C 13-236-2
+sign \x474D 13-256-5
+sign \x474F 14-12356-2
+sign \x4750 1246-2
+sign \x4752 1-34-5
+sign \x4753 14-345-5
+sign \x4754 1235-12456-3
+sign \x4755 1-2346-2
+sign \x4756 1-146-4
+sign \x4758 16-5
+sign \x475A 1345-16-2
+sign \x475D 16-4
+sign \x475E 1235-146-5
+sign \x475F 23456-5
+sign \x4760 1235-12456-2
+sign \x4761 134-1236-5
+sign \x4762 134-1236-5
+sign \x4763 245-1256-2
+sign \x4764 14-146-4
+sign \x4765 1235-146-2
+sign \x4767 134-136-2
+sign \x4768 15-2345-2
+sign \x4769 1-136-5
+sign \x476A 24-34-2
+sign \x476B 125-25-2
+sign \x476C 1-34-5
+sign \x476D 13-12356-5
+sign \x476E 15-45-5
+sign \x476F 16-5
+sign \x4770 124-16-2
+sign \x4772 13-1456-5
+sign \x4773 245-1236-2
+sign \x4775 135-34-5
+sign \x4776 14-46-2
+sign \x4777 1-156-5
+sign \x4778 13-16-5
+sign \x4779 12456-4
+sign \x477A 13-12456-5
+sign \x477C 245-13456-2
+sign \x477D 2456-5
+sign \x477E 12345-34-5
+sign \x477F 13-1246-5
+sign \x4780 13-12356-5
+sign \x4781 15-2345-5
+sign \x4782 1245-12456-4
+sign \x4783 1-156-5
+sign \x4784 135-246-5
+sign \x4785 16-2
+sign \x4786 15-25-4
+sign \x4787 145-346-2
+sign \x4788 13-1246-4
+sign \x4789 24-1356-5
+sign \x478A 15-256-5
+sign \x478B 12-136-5
+sign \x478C 24-2346-2
+sign \x478D 245-13456-2
+sign \x4790 12-123456-4
+sign \x4791 1235-12346-2
+sign \x4792 145-12346-5
+sign \x4793 12-1356-3
+sign \x4794 1246-4
+sign \x4795 145-346-2
+sign \x4796 24-34-4
+sign \x4798 13-16-2
+sign \x4799 125-345-2
+sign \x479A 245-16-2
+sign \x479C 12345-34-5
+sign \x479D 146-4
+sign \x479E 12345-34-2
+sign \x479F 1234-126-5
+sign \x47A1 124-1236-4
+sign \x47A2 1-345-5
+sign \x47A3 12-2346-4
+sign \x47A4 245-1256-2
+sign \x47A5 234-5
+sign \x47A6 1235-2346-2
+sign \x47A7 1235-12356-5
+sign \x47A8 13-1246-4
+sign \x47A9 2346-5
+sign \x47AA 13-46-5
+sign \x47AB 256-4
+sign \x47AC 124-12356-5
+sign \x47AD 245-234-4
+sign \x47AF 12345-34-5
+sign \x47B0 125-25-2
+sign \x47B1 1235-34-2
+sign \x47B3 135-126-2
+sign \x47B5 13-236-4
+sign \x47B6 145-16-5
+sign \x47B7 13-236-2
+sign \x47B8 12345-34-5
+sign \x47B9 1235-456-2
+sign \x47BB 235-4
+sign \x47BC 12-1246-4
+sign \x47BD 15-25-4
+sign \x47BE 12-156-2
+sign \x47C2 134-1236-2
+sign \x47C3 245-345-5
+sign \x47C4 245-16-5
+sign \x47C5 13-2345-5
+sign \x47C6 135-16-5
+sign \x47C8 1-156-2
+sign \x47C9 1-34-2
+sign \x47CA 245-1256-2
+sign \x47CB 1-1236-4
+sign \x47CC 13-16-2
+sign \x47CD 145-2345-2
+sign \x47CF 14-16-5
+sign \x47D0 14-16-5
+sign \x47D1 14-345-4
+sign \x47D2 245-45-2
+sign \x47D4 12345-34-5
+sign \x47D5 12-345-5
+sign \x47D6 124-1346-5
+sign \x47D7 24-156-5
+sign \x47D8 1235-1346-5
+sign \x47D9 245-346-5
+sign \x47DA 245-16-2
+sign \x47DB 135-126-2
+sign \x47DC 1345-345-5
+sign \x47DD 124-12356-5
+sign \x47DE 12-34-2
+sign \x47DF 245-34-5
+sign \x47E0 236-5
+sign \x47E1 1-156-3
+sign \x47E2 12-136-2
+sign \x47E3 12-34-5
+sign \x47E4 135-16-5
+sign \x47E5 134-1346-2
+sign \x47E6 135-345-2
+sign \x47E7 124-2345-2
+sign \x47E8 134-1456-2
+sign \x47E9 14-346-4
+sign \x47EA 12345-1356-4
+sign \x47EB 12-1356-3
+sign \x47EC 245-234-5
+sign \x47ED 124-246-2
+sign \x47EE 12345-34-2
+sign \x47EF 123-25-5
+sign \x47F0 13-2345-4
+sign \x47F4 1-136-5
+sign \x47F5 245-234-2
+sign \x47F6 245-25-5
+sign \x47F7 12-156-5
+sign \x47F8 123-1246-2
+sign \x47F9 14-346-5
+sign \x47FA 135-1346-4
+sign \x47FB 145-34-5
+sign \x47FC 34-4
+sign \x47FE 13-236-4
+sign \x47FF 14-34-5
+sign \x4800 124-1346-5
+sign \x4802 12-34-2
+sign \x4803 14-46-4
+sign \x4804 124-2345-4
+sign \x4805 123-123456-4
+sign \x4806 12-1346-2
+sign \x4807 13-236-2
+sign \x4808 124-34-2
+sign \x4809 1235-35-5
+sign \x480A 12345-356-5
+sign \x480B 135-16-4
+sign \x480D 245-23456-2
+sign \x480E 25-5
+sign \x480F 13-16-5
+sign \x4810 245-1256-5
+sign \x4811 123-1246-4
+sign \x4812 1235-34-2
+sign \x4813 245-34-5
+sign \x4814 15-1246-5
+sign \x4817 245-234-5
+sign \x4818 1234-16-5
+sign \x4819 135-356-5
+sign \x481A 35-5
+sign \x481B 13-246-4
+sign \x481C 1245-12346-2
+sign \x481E 245-34-5
+sign \x481F 145-346-2
+sign \x4820 12-156-5
+sign \x4821 245-25-2
+sign \x4822 134-1356-5
+sign \x4823 15-45-4
+sign \x4824 145-25-4
+sign \x4825 135-346-2
+sign \x4826 1-2346-5
+sign \x4827 12-34-2
+sign \x4828 12-1236-5
+sign \x4829 13-1246-5
+sign \x482A 145-12456-5
+sign \x482B 125-12356-5
+sign \x482C 145-1356-5
+sign \x482D 14-2456-2
+sign \x482E 124-1356-2
+sign \x482F 236-5
+sign \x4830 245-45-2
+sign \x4831 24-34-4
+sign \x4832 14-13456-2
+sign \x4834 245-1456-4
+sign \x4835 12345-34-5
+sign \x4836 24-2346-5
+sign \x4837 124-246-4
+sign \x4839 2456-2
+sign \x483B 245-235-2
+sign \x483C 145-246-5
+sign \x483D 1235-2456-2
+sign \x483E 24-1236-4
+sign \x483F 2356-5
+sign \x4840 1-1236-4
+sign \x4841 14-12346-4
+sign \x4842 13-234-5
+sign \x4843 14-16-5
+sign \x4845 134-1456-4
+sign \x4846 1245-12346-2
+sign \x4847 236-5
+sign \x4848 13-236-2
+sign \x4849 123-1346-4
+sign \x484A 12345-1236-2
+sign \x484B 245-16-2
+sign \x484C 1235-12346-2
+sign \x484D 12345-34-2
+sign \x484E 14-34-2
+sign \x484F 1235-12346-2
+sign \x4850 124-25-2
+sign \x4851 134-1456-2
+sign \x4852 124-2345-2
+sign \x4853 13-45-5
+sign \x4854 245-16-4
+sign \x4855 1-1356-4
+sign \x4856 13-13456-5
+sign \x4857 13-12346-4
+sign \x4858 124-2345-2
+sign \x4859 14-1346-2
+sign \x485A 134-146-5
+sign \x485B 1456-5
+sign \x485C 14-34-5
+sign \x485D 256-4
+sign \x485E 13-1256-2
+sign \x485F 1234-16-5
+sign \x4861 15-346-2
+sign \x4862 135-2345-5
+sign \x4865 1245-12346-2
+sign \x4866 15-1346-4
+sign \x4867 34-4
+sign \x4868 12-345-5
+sign \x4869 13-34-4
+sign \x486A 12-1236-2
+sign \x486B 1234-1356-2
+sign \x486C 134-1236-5
+sign \x486F 24-456-5
+sign \x4870 123-1356-4
+sign \x4871 1-12456-4
+sign \x4872 12-1236-2
+sign \x4874 12-12346-3
+sign \x4875 15-1246-5
+sign \x4876 135-356-5
+sign \x4877 123-2456-4
+sign \x4879 1-156-5
+sign \x487A 1246-5
+sign \x487B 134-1456-2
+sign \x487C 14-13456-2
+sign \x487E 1345-356-5
+sign \x487F 14-13456-2
+sign \x4880 245-16-5
+sign \x4881 236-5
+sign \x4883 16-5
+sign \x4884 15-16-4
+sign \x4885 12-136-2
+sign \x4887 1245-12346-4
+sign \x4888 12-136-2
+sign \x4889 1345-12346-2
+sign \x488A 234-2
+sign \x488B 13-16-5
+sign \x488C 135-126-2
+sign \x488D 12345-1346-4
+sign \x4890 245-34-2
+sign \x4891 145-16-4
+sign \x4893 1256-2
+sign \x4894 13-2346-2
+sign \x4895 15-1256-5
+sign \x4896 14-1256-5
+sign \x4897 1235-2346-2
+sign \x4899 135-2456-5
+sign \x489A 13-12346-5
+sign \x489B 13-235-4
+sign \x489C 13-1246-3
+sign \x489D 23456-5
+sign \x489E 1345-34-5
+sign \x489F 234-2
+sign \x48A0 15-12346-5
+sign \x48A1 15-346-5
+sign \x48A2 245-1346-5
+sign \x48A3 246-2
+sign \x48A4 24-34-5
+sign \x48A5 2345-2
+sign \x48A6 24-2356-5
+sign \x48A7 14-246-5
+sign \x48A9 1256-5
+sign \x48AA 135-126-2
+sign \x48AB 15-1246-2
+sign \x48AD 2345-5
+sign \x48AE 14-356-5
+sign \x48AF 14-1456-2
+sign \x48B0 124-2456-2
+sign \x48B1 145-34-2
+sign \x48B2 236-5
+sign \x48B3 13-16-4
+sign \x48B5 256-2
+sign \x48B9 13-1256-4
+sign \x48BB 12-136-2
+sign \x48BD 15-46-5
+sign \x48BE 15-2345-4
+sign \x48C0 13-1246-4
+sign \x48C1 1256-4
+sign \x48C2 14-356-4
+sign \x48C3 15-346-5
+sign \x48C4 124-34-2
+sign \x48C5 12-136-2
+sign \x48C6 15-13456-2
+sign \x48C7 245-234-2
+sign \x48C8 1235-1346-5
+sign \x48CA 145-1346-4
+sign \x48CB 245-2456-4
+sign \x48CC 145-16-4
+sign \x48CD 2345-4
+sign \x48D1 12-1236-2
+sign \x48D3 14-16-2
+sign \x48D4 15-25-4
+sign \x48D5 134-345-4
+sign \x48D6 134-345-4
+sign \x48D8 124-1346-2
+sign \x48D9 1234-356-2
+sign \x48DA 14-12356-2
+sign \x48DB 15-16-3
+sign \x48DC 245-25-2
+sign \x48DD 124-34-2
+sign \x48DE 2346-5
+sign \x48DF 245-1236-2
+sign \x48E0 13-346-2
+sign \x48E1 124-16-2
+sign \x48E2 13-16-2
+sign \x48E3 145-1346-4
+sign \x48E4 13-246-5
+sign \x48E5 135-16-4
+sign \x48E6 14-356-5
+sign \x48E7 16-5
+sign \x48E8 12-123456-2
+sign \x48E9 12-123456-2
+sign \x48EA 1234-126-5
+sign \x48EB 14-16-2
+sign \x48EC 125-2456-4
+sign \x48ED 124-2456-5
+sign \x48EE 1234-126-5
+sign \x48EF 124-2345-4
+sign \x48F0 13-1256-5
+sign \x48F1 15-1256-5
+sign \x48F2 12345-1236-5
+sign \x48F4 15-1256-5
+sign \x48F5 156-5
+sign \x48F6 1235-25-2
+sign \x48F8 1245-1236-4
+sign \x48F9 12345-345-2
+sign \x48FC 14-46-2
+sign \x48FD 124-16-4
+sign \x48FE 134-16-5
+sign \x4901 245-136-2
+sign \x4902 134-356-2
+sign \x4903 1456-5
+sign \x4904 134-2345-4
+sign \x4905 124-34-2
+sign \x4906 123-1246-2
+sign \x4909 134-16-5
+sign \x490A 1245-12346-2
+sign \x490B 13-25-2
+sign \x490D 134-16-2
+sign \x490E 13-1256-2
+sign \x490F 1234-16-4
+sign \x4910 13-1456-4
+sign \x4911 456-5
+sign \x4912 13-16-4
+sign \x4913 134-1356-2
+sign \x4914 13-2345-5
+sign \x4915 15-236-5
+sign \x4916 135-146-5
+sign \x4917 13-1236-4
+sign \x4918 12-1236-4
+sign \x4919 14-16-5
+sign \x491A 14-16-4
+sign \x491B 245-234-2
+sign \x491C 145-123456-5
+sign \x491D 13456-5
+sign \x491E 256-4
+sign \x491F 12-136-2
+sign \x4920 13-16-3
+sign \x4921 1245-1236-4
+sign \x4923 14-236-5
+sign \x4925 13-1246-4
+sign \x4926 236-5
+sign \x4927 1235-1246-5
+sign \x4928 1234-16-5
+sign \x4929 12-345-2
+sign \x492A 145-25-4
+sign \x492B 12-1236-2
+sign \x492D 123-12456-5
+sign \x492E 24-2346-5
+sign \x492F 15-13456-2
+sign \x4930 12346-4
+sign \x4931 24-156-5
+sign \x4932 12-156-5
+sign \x4933 346-5
+sign \x4934 1235-1236-2
+sign \x4935 12345-356-5
+sign \x4936 346-5
+sign \x4937 2345-2
+sign \x4938 125-12456-5
+sign \x493A 1456-4
+sign \x493B 145-25-5
+sign \x493C 15-2345-5
+sign \x493F 245-346-5
+sign \x4940 12-1236-4
+sign \x4941 1235-1236-2
+sign \x4942 134-1356-5
+sign \x4943 236-5
+sign \x4944 245-34-5
+sign \x4945 245-2345-5
+sign \x4946 13-1456-4
+sign \x4947 24-1236-5
+sign \x4948 134-34-4
+sign \x494C 1-1356-5
+sign \x494D 1-156-5
+sign \x494E 12-123456-2
+sign \x494F 1256-4
+sign \x4950 134-12356-2
+sign \x4951 12456-5
+sign \x4952 12-12356-2
+sign \x4954 15-34-5
+sign \x4955 1234-346-4
+sign \x4956 124-2345-2
+sign \x4957 123-12456-4
+sign \x4958 245-34-5
+sign \x4959 15-1246-5
+sign \x495B 13-346-2
+sign \x495C 13-2345-5
+sign \x495D 146-2
+sign \x495E 13-246-4
+sign \x495F 346-5
+sign \x4961 346-5
+sign \x4962 14-12346-2
+sign \x4963 125-146-2
+sign \x4964 135-146-2
+sign \x4965 14-2345-2
+sign \x4967 1235-12456-2
+sign \x4968 14-1256-5
+sign \x4969 1246-2
+sign \x496A 15-2345-4
+sign \x496B 124-346-4
+sign \x496C 135-126-2
+sign \x496D 1-1356-5
+sign \x496E 1-34-2
+sign \x496F 135-345-5
+sign \x4970 134-1356-5
+sign \x4971 15-346-4
+sign \x4975 15-246-4
+sign \x4976 14-16-5
+sign \x4977 1-345-2
+sign \x4978 134-16-2
+sign \x497A 346-2
+sign \x497E 15-346-4
+sign \x4982 24-1236-5
+sign \x4985 24-1236-5
+sign \x4986 13-236-2
+sign \x4987 13-16-5
+sign \x4988 12345-1346-4
+sign \x498A 1345-246-4
+sign \x498B 146-2
+sign \x498C 12-34-5
+sign \x498D 34-5
+sign \x498E 13-12456-4
+sign \x498F 15-346-5
+sign \x4990 124-13456-4
+sign \x4991 15-346-5
+sign \x4992 145-1346-5
+sign \x4994 124-1236-4
+sign \x4996 15-23456-2
+sign \x4997 15-1256-5
+sign \x4998 135-16-5
+sign \x4999 15-156-5
+sign \x499A 1235-25-5
+sign \x499B 1-1356-5
+sign \x499C 34-2
+sign \x499E 1245-123456-5
+sign \x499F 12-2356-5
+sign \x49A0 24-156-4
+sign \x49A1 1235-12456-2
+sign \x49A2 123-25-5
+sign \x49A3 12345-34-5
+sign \x49A4 12-2356-5
+sign \x49A5 15-2345-2
+sign \x49A6 245-1456-2
+sign \x49A7 245-346-2
+sign \x49A8 14-1236-2
+sign \x49AA 23456-5
+sign \x49AC 245-236-5
+sign \x49AE 12-123456-4
+sign \x49AF 1-156-5
+sign \x49B1 123-1246-4
+sign \x49B2 245-2345-5
+sign \x49B3 1235-1346-5
+sign \x49B4 16-5
+sign \x49B5 1345-16-4
+sign \x49B6 1-1356-5
+sign \x49B7 12-2356-5
+sign \x49B9 24-156-2
+sign \x49BB 245-156-5
+sign \x49BC 13-236-2
+sign \x49BD 15-1256-5
+sign \x49BE 256-4
+sign \x49C1 12-34-5
+sign \x49C2 145-146-5
+sign \x49C3 145-2345-5
+sign \x49C4 13-2346-5
+sign \x49C5 124-16-5
+sign \x49C6 1235-12346-2
+sign \x49C7 1345-16-4
+sign \x49C9 14-16-4
+sign \x49CB 15-2345-4
+sign \x49CD 15-16-5
+sign \x49CE 15-45-5
+sign \x49D2 14-2456-2
+sign \x49D4 134-34-5
+sign \x49D5 12-1356-2
+sign \x49D6 13-2345-5
+sign \x49D7 135-16-5
+sign \x49D8 245-16-2
+sign \x49D9 14-13456-2
+sign \x49DA 1235-146-5
+sign \x49DB 135-1346-5
+sign \x49DC 124-1346-2
+sign \x49DD 145-16-5
+sign \x49DE 12345-34-5
+sign \x49DF 15-2345-5
+sign \x49E0 24-12456-5
+sign \x49E1 235-3
+sign \x49E4 1234-34-2
+sign \x49E5 1235-1246-5
+sign \x49E6 1246-2
+sign \x49E7 16-4
+sign \x49E8 346-5
+sign \x49EA 12-2346-5
+sign \x49EB 1235-146-2
+sign \x49EE 15-2345-4
+sign \x49EF 12-1236-2
+sign \x49F0 1235-123456-5
+sign \x49F2 1235-1236-5
+sign \x49F3 245-156-2
+sign \x49F5 245-16-2
+sign \x49F6 123-1246-2
+sign \x49F7 1245-12356-2
+sign \x49FA 15-235-2
+sign \x49FC 1235-34-2
+sign \x49FD 245-1246-4
+sign \x49FF 245-236-5
+sign \x4A00 145-16-2
+sign \x4A01 12-2346-5
+sign \x4A04 2345-5
+sign \x4A05 14-246-2
+sign \x4A06 135-16-2
+sign \x4A0B 1345-236-5
+sign \x4A0C 135-146-2
+sign \x4A0D 13456-4
+sign \x4A0E 1235-12346-2
+sign \x4A0F 245-156-2
+sign \x4A10 245-23456-5
+sign \x4A11 124-16-2
+sign \x4A12 1256-5
+sign \x4A13 14-356-2
+sign \x4A14 135-146-2
+sign \x4A16 13-16-5
+sign \x4A17 12345-34-2
+sign \x4A18 15-2345-5
+sign \x4A19 245-136-2
+sign \x4A1B 15-2346-5
+sign \x4A1E 1256-4
+sign \x4A20 2456-4
+sign \x4A21 1235-1236-2
+sign \x4A22 145-1236-5
+sign \x4A23 13-2346-2
+sign \x4A24 145-16-2
+sign \x4A25 1235-34-5
+sign \x4A26 1234-1346-3
+sign \x4A29 14-13456-2
+sign \x4A2A 134-2456-2
+sign \x4A2B 134-2456-5
+sign \x4A2C 14-2345-2
+sign \x4A2E 15-236-4
+sign \x4A2F 1-136-5
+sign \x4A30 1234-126-5
+sign \x4A31 12345-34-5
+sign \x4A32 1345-12356-2
+sign \x4A33 15-16-5
+sign \x4A34 145-1246-5
+sign \x4A35 145-1236-5
+sign \x4A36 256-4
+sign \x4A37 15-2345-5
+sign \x4A38 1456-4
+sign \x4A3A 145-1246-5
+sign \x4A3B 135-1356-5
+sign \x4A3C 1235-34-5
+sign \x4A3D 12345-356-4
+sign \x4A3E 12345-356-4
+sign \x4A3F 245-2345-2
+sign \x4A40 135-356-5
+sign \x4A43 24-156-5
+sign \x4A44 124-2345-4
+sign \x4A45 1-1236-4
+sign \x4A46 13-2345-4
+sign \x4A48 1235-1246-5
+sign \x4A49 12345-34-4
+sign \x4A4A 12456-4
+sign \x4A4B 134-126-4
+sign \x4A4C 245-246-2
+sign \x4A4D 14-246-4
+sign \x4A4F 134-346-5
+sign \x4A50 13-2346-2
+sign \x4A51 1235-12346-2
+sign \x4A52 1256-2
+sign \x4A53 245-16-2
+sign \x4A54 145-25-5
+sign \x4A55 1346-2
+sign \x4A57 135-345-5
+sign \x4A58 145-16-5
+sign \x4A59 15-45-5
+sign \x4A5A 145-16-5
+sign \x4A5B 135-16-5
+sign \x4A5C 1-12356-5
+sign \x4A5D 1234-146-2
+sign \x4A5E 1345-2345-2
+sign \x4A5F 16-2
+sign \x4A61 13-23456-2
+sign \x4A62 145-345-2
+sign \x4A63 145-25-4
+sign \x4A64 15-16-5
+sign \x4A65 145-1236-5
+sign \x4A66 124-246-2
+sign \x4A67 15-346-5
+sign \x4A68 12-1346-5
+sign \x4A69 45-4
+sign \x4A6A 13-12456-4
+sign \x4A6B 14-46-4
+sign \x4A6C 135-1356-4
+sign \x4A6D 13-16-3
+sign \x4A6E 14-34-5
+sign \x4A6F 13-16-2
+sign \x4A70 15-45-5
+sign \x4A71 24-34-5
+sign \x4A73 24-34-4
+sign \x4A74 1235-34-2
+sign \x4A75 256-5
+sign \x4A76 12-1236-4
+sign \x4A78 1245-12346-2
+sign \x4A79 2346-2
+sign \x4A7B 135-345-5
+sign \x4A7C 12345-1356-2
+sign \x4A7E 1-2346-5
+sign \x4A7F 12345-136-2
+sign \x4A80 13-12456-4
+sign \x4A81 135-34-4
+sign \x4A82 13-2346-2
+sign \x4A84 1235-456-2
+sign \x4A85 145-34-2
+sign \x4A86 124-16-4
+sign \x4A87 135-126-2
+sign \x4A88 245-2345-4
+sign \x4A89 14-345-5
+sign \x4A8A 14-12346-2
+sign \x4A8B 1246-5
+sign \x4A8C 1-1236-5
+sign \x4A8D 14-1236-2
+sign \x4A8F 1345-345-5
+sign \x4A90 135-16-5
+sign \x4A91 124-25-2
+sign \x4A92 13-246-5
+sign \x4A94 135-34-4
+sign \x4A95 13-1256-2
+sign \x4A96 1234-126-5
+sign \x4A97 15-23456-2
+sign \x4A98 1246-4
+sign \x4A99 12345-34-2
+sign \x4A9A 1235-2346-5
+sign \x4A9B 12345-1236-2
+sign \x4A9C 12-1236-5
+sign \x4A9D 1235-34-5
+sign \x4A9E 125-345-2
+sign \x4AA4 12345-1236-2
+sign \x4AA5 145-346-2
+sign \x4AA6 1235-12346-2
+sign \x4AA7 12-156-2
+sign \x4AA8 135-146-2
+sign \x4AA9 1456-2
+sign \x4AAC 135-126-2
+sign \x4AAD 1245-12456-4
+sign \x4AAE 12-12356-4
+sign \x4AAF 13456-2
+sign \x4AB1 13-2456-4
+sign \x4AB3 256-4
+sign \x4AB4 1-136-4
+sign \x4AB5 23456-4
+sign \x4AB7 1235-12356-5
+sign \x4AB8 134-1456-2
+sign \x4AB9 1234-356-2
+sign \x4ABA 13-2346-2
+sign \x4ABB 135-2345-5
+sign \x4ABD 1235-146-5
+sign \x4ABE 134-16-2
+sign \x4ABF 24-1356-4
+sign \x4AC0 13-136-4
+sign \x4AC1 135-16-5
+sign \x4AC2 145-25-4
+sign \x4AC3 12-123456-2
+sign \x4AC4 12-35-5
+sign \x4AC5 15-1236-5
+sign \x4AC6 12-1356-2
+sign \x4AC7 1245-1236-2
+sign \x4AC8 125-136-5
+sign \x4AC9 134-146-5
+sign \x4ACA 135-126-2
+sign \x4ACB 124-1246-2
+sign \x4ACC 1234-16-4
+sign \x4ACD 12345-34-4
+sign \x4AD0 14-1456-2
+sign \x4AD2 134-136-2
+sign \x4AD3 34-2
+sign \x4AD4 245-16-5
+sign \x4AD5 1-156-5
+sign \x4AD6 12-136-4
+sign \x4AD7 15-23456-2
+sign \x4AD8 1235-2346-2
+sign \x4AD9 15-1346-4
+sign \x4ADB 1235-12356-2
+sign \x4ADD 12345-34-4
+sign \x4ADE 1245-146-2
+sign \x4ADF 1235-123456-2
+sign \x4AE0 1234-356-2
+sign \x4AE1 245-2345-5
+sign \x4AE3 15-16-2
+sign \x4AE4 134-13456-2
+sign \x4AE5 123-1246-4
+sign \x4AE6 13-2346-2
+sign \x4AE8 146-5
+sign \x4AE9 15-1236-4
+sign \x4AEA 24-456-4
+sign \x4AEB 14-12356-2
+sign \x4AEC 1-136-4
+sign \x4AED 1235-1246-5
+sign \x4AEE 245-1236-2
+sign \x4AF0 14-1456-5
+sign \x4AF1 1345-345-2
+sign \x4AF2 1235-1236-5
+sign \x4AF3 145-34-2
+sign \x4AF4 13-1456-5
+sign \x4AF5 134-2345-2
+sign \x4AF6 12345-1236-2
+sign \x4AF7 2346-5
+sign \x4AF8 1345-146-2
+sign \x4AF9 1235-12346-2
+sign \x4AFA 1235-12346-2
+sign \x4AFB 15-236-2
+sign \x4AFC 15-236-5
+sign \x4AFE 135-16-5
+sign \x4B00 234-4
+sign \x4B01 16-2
+sign \x4B02 15-236-5
+sign \x4B03 15-345-5
+sign \x4B04 1256-5
+sign \x4B05 14-16-5
+sign \x4B06 14-16-5
+sign \x4B07 45-5
+sign \x4B08 145-1246-5
+sign \x4B09 1235-146-5
+sign \x4B0A 245-346-5
+sign \x4B0B 14-1356-2
+sign \x4B0E 13-25-2
+sign \x4B0F 135-34-5
+sign \x4B10 1246-4
+sign \x4B11 1246-5
+sign \x4B13 1236-5
+sign \x4B14 15-1256-5
+sign \x4B15 24-1346-4
+sign \x4B16 1235-1356-2
+sign \x4B17 46-2
+sign \x4B19 246-2
+sign \x4B1B 135-16-5
+sign \x4B1D 1235-1356-2
+sign \x4B1E 124-146-2
+sign \x4B1F 14-234-2
+sign \x4B21 1-34-5
+sign \x4B23 245-16-5
+sign \x4B24 12-146-2
+sign \x4B25 16-5
+sign \x4B26 145-12356-5
+sign \x4B27 45-2
+sign \x4B28 245-34-5
+sign \x4B2A 135-126-2
+sign \x4B2B 245-1236-4
+sign \x4B2C 46-4
+sign \x4B2E 16-2
+sign \x4B2F 1345-2345-2
+sign \x4B30 24-146-5
+sign \x4B31 135-136-5
+sign \x4B33 135-1236-4
+sign \x4B34 134-126-5
+sign \x4B35 2456-5
+sign \x4B36 136-5
+sign \x4B37 24-2346-4
+sign \x4B39 1-156-5
+sign \x4B3A 46-5
+sign \x4B3B 13-2345-5
+sign \x4B3C 45-5
+sign \x4B3D 145-1246-5
+sign \x4B3E 124-16-2
+sign \x4B3F 1246-4
+sign \x4B40 15-256-5
+sign \x4B41 1-156-5
+sign \x4B42 16-5
+sign \x4B43 1245-136-4
+sign \x4B44 24-156-5
+sign \x4B45 1235-34-2
+sign \x4B46 1345-2346-5
+sign \x4B47 16-5
+sign \x4B48 13-2345-5
+sign \x4B49 15-1246-4
+sign \x4B4A 13456-4
+sign \x4B4B 135-146-4
+sign \x4B4C 1235-34-2
+sign \x4B4D 1235-34-2
+sign \x4B4E 15-346-2
+sign \x4B50 46-5
+sign \x4B51 14-2345-2
+sign \x4B53 136-5
+sign \x4B55 13-2345-5
+sign \x4B56 1-34-5
+sign \x4B57 13456-4
+sign \x4B58 2345-5
+sign \x4B59 13-1456-4
+sign \x4B5A 12-456-2
+sign \x4B5B 145-1236-5
+sign \x4B5D 123-2356-5
+sign \x4B5E 16-5
+sign \x4B5F 346-5
+sign \x4B60 13-2345-4
+sign \x4B61 136-5
+sign \x4B62 1345-13456-2
+sign \x4B63 245-156-2
+sign \x4B64 245-2345-4
+sign \x4B65 15-236-5
+sign \x4B66 135-126-2
+sign \x4B67 134-16-4
+sign \x4B68 24-1246-5
+sign \x4B69 134-16-5
+sign \x4B6A 14-46-2
+sign \x4B6B 245-16-4
+sign \x4B6C 245-16-4
+sign \x4B6D 24-12356-4
+sign \x4B6E 135-16-5
+sign \x4B6F 135-126-2
+sign \x4B70 135-1356-4
+sign \x4B71 135-346-2
+sign \x4B72 1345-16-4
+sign \x4B73 1246-5
+sign \x4B74 1235-12456-2
+sign \x4B75 12345-1236-2
+sign \x4B76 245-16-2
+sign \x4B77 14-234-2
+sign \x4B78 12345-34-5
+sign \x4B79 1346-2
+sign \x4B7A 1346-2
+sign \x4B7C 245-16-2
+sign \x4B7D 245-256-2
+sign \x4B7E 124-25-2
+sign \x4B7F 16-5
+sign \x4B80 135-126-2
+sign \x4B81 1234-2345-2
+sign \x4B82 135-126-2
+sign \x4B84 15-45-2
+sign \x4B87 1256-5
+sign \x4B88 12-156-2
+sign \x4B89 14-34-2
+sign \x4B8A 16-2
+sign \x4B8B 14-16-5
+sign \x4B8D 1345-246-4
+sign \x4B8E 15-16-5
+sign \x4B8F 34-2
+sign \x4B91 14-356-5
+sign \x4B93 1-146-5
+sign \x4B94 125-1246-4
+sign \x4B95 12-25-5
+sign \x4B97 1236-5
+sign \x4B98 156-2
+sign \x4B99 1256-5
+sign \x4B9A 14-1356-5
+sign \x4B9B 12345-34-5
+sign \x4B9C 24-345-5
+sign \x4B9D 1235-12456-2
+sign \x4B9E 12-34-5
+sign \x4B9F 15-12356-4
+sign \x4BA1 135-16-5
+sign \x4BA2 145-346-2
+sign \x4BA4 145-16-2
+sign \x4BA5 14-16-5
+sign \x4BA7 1235-1236-2
+sign \x4BA8 125-2456-4
+sign \x4BA9 13-34-2
+sign \x4BAA 12-1356-2
+sign \x4BAB 14-12356-2
+sign \x4BAC 134-126-5
+sign \x4BAD 134-16-5
+sign \x4BAE 134-2456-5
+sign \x4BAF 146-5
+sign \x4BB0 145-1236-4
+sign \x4BB1 1-34-2
+sign \x4BB2 1235-456-2
+sign \x4BB3 12345-1236-2
+sign \x4BB4 145-1356-5
+sign \x4BB5 124-12346-2
+sign \x4BB7 145-34-2
+sign \x4BB8 1235-34-2
+sign \x4BB9 1246-5
+sign \x4BBA 13-16-5
+sign \x4BBB 12-156-5
+sign \x4BBC 14-1456-2
+sign \x4BBE 1234-1346-2
+sign \x4BBF 13-2345-4
+sign \x4BC0 1345-346-5
+sign \x4BC1 14-25-2
+sign \x4BC2 13-16-2
+sign \x4BC5 1345-346-5
+sign \x4BC6 16-5
+sign \x4BC8 12456-2
+sign \x4BC9 23456-5
+sign \x4BCA 245-23456-5
+sign \x4BCB 135-126-2
+sign \x4BCD 14-13456-2
+sign \x4BCE 13-1236-5
+sign \x4BCF 1235-25-2
+sign \x4BD0 1235-2456-2
+sign \x4BD2 1235-1356-2
+sign \x4BD3 123-1246-2
+sign \x4BD4 245-136-2
+sign \x4BD6 14-1346-2
+sign \x4BD7 135-16-5
+sign \x4BD8 1235-12456-5
+sign \x4BD9 1234-126-5
+sign \x4BDA 12356-4
+sign \x4BDB 13-2345-4
+sign \x4BDC 124-16-5
+sign \x4BDD 15-1246-4
+sign \x4BDF 145-1246-5
+sign \x4BE0 146-4
+sign \x4BE1 13-2345-4
+sign \x4BE2 134-126-2
+sign \x4BE3 13-1246-5
+sign \x4BE4 123-2356-5
+sign \x4BE5 1236-5
+sign \x4BE6 134-345-5
+sign \x4BE7 245-13456-4
+sign \x4BE8 12345-136-2
+sign \x4BEA 123-146-4
+sign \x4BEB 1235-146-5
+sign \x4BEC 145-25-4
+sign \x4BEE 1345-2456-2
+sign \x4BF0 13-346-5
+sign \x4BF1 12345-34-5
+sign \x4BF2 1234-345-2
+sign \x4BF4 12-1346-2
+sign \x4BF5 1345-346-5
+sign \x4BF6 134-1236-2
+sign \x4BF8 245-156-5
+sign \x4BFA 123-25-5
+sign \x4BFC 145-16-2
+sign \x4BFD 12345-34-4
+sign \x4BFE 124-246-2
+sign \x4BFF 125-34-2
+sign \x4C00 25-4
+sign \x4C01 12345-356-5
+sign \x4C02 245-2456-5
+sign \x4C03 1234-1356-2
+sign \x4C04 24-156-5
+sign \x4C06 1245-12356-2
+sign \x4C07 245-16-2
+sign \x4C08 12-345-4
+sign \x4C09 1234-1236-2
+sign \x4C0A 135-126-2
+sign \x4C0B 134-1236-2
+sign \x4C0C 125-12346-4
+sign \x4C0D 245-156-5
+sign \x4C0E 13-1246-5
+sign \x4C0F 13-16-5
+sign \x4C10 14-1236-2
+sign \x4C12 134-1356-2
+sign \x4C13 134-2345-2
+sign \x4C14 1234-1236-2
+sign \x4C15 14-34-2
+sign \x4C16 245-12456-2
+sign \x4C18 14-234-2
+sign \x4C19 16-4
+sign \x4C1A 123456-2
+sign \x4C1B 14-16-5
+sign \x4C1C 14-16-5
+sign \x4C1D 125-1356-5
+sign \x4C1E 1-34-4
+sign \x4C1F 1235-123456-2
+sign \x4C20 24-136-2
+sign \x4C21 12-156-5
+sign \x4C22 15-13456-5
+sign \x4C23 456-4
+sign \x4C25 1235-25-5
+sign \x4C26 1234-16-4
+sign \x4C28 134-356-5
+sign \x4C29 12-2346-4
+sign \x4C2A 134-356-5
+sign \x4C2B 12-146-2
+sign \x4C2C 13-1256-2
+sign \x4C2D 1345-12356-5
+sign \x4C2F 1345-16-4
+sign \x4C30 1245-34-2
+sign \x4C31 14-13456-2
+sign \x4C32 23456-5
+sign \x4C34 245-16-5
+sign \x4C37 135-1346-5
+sign \x4C39 125-2346-2
+sign \x4C3A 13-346-5
+sign \x4C3B 1256-2
+sign \x4C3C 15-1456-2
+sign \x4C3D 135-356-5
+sign \x4C3E 135-345-5
+sign \x4C3F 124-25-2
+sign \x4C41 245-246-2
+sign \x4C42 234-4
+sign \x4C43 145-16-4
+sign \x4C44 13-346-5
+sign \x4C45 134-126-5
+sign \x4C46 24-1356-2
+sign \x4C47 24-1236-5
+sign \x4C48 245-16-2
+sign \x4C49 24-1236-5
+sign \x4C4A 134-16-4
+sign \x4C4B 145-1236-4
+sign \x4C4C 16-2
+sign \x4C4D 13-1356-5
+sign \x4C4E 13-1356-5
+sign \x4C4F 124-12356-4
+sign \x4C51 15-236-2
+sign \x4C52 16-5
+sign \x4C53 124-13456-2
+sign \x4C54 124-246-2
+sign \x4C55 134-12356-2
+sign \x4C56 14-234-2
+sign \x4C58 14-16-2
+sign \x4C5A 14-34-5
+sign \x4C5B 15-1256-5
+sign \x4C5C 245-25-5
+sign \x4C5D 135-345-5
+sign \x4C5E 14-234-2
+sign \x4C5F 13-1256-5
+sign \x4C60 1-1236-5
+sign \x4C61 13-1256-2
+sign \x4C63 125-34-2
+sign \x4C64 15-2345-5
+sign \x4C65 1-156-2
+sign \x4C68 1-156-5
+sign \x4C6B 14-345-5
+sign \x4C6D 13-1356-5
+sign \x4C6E 2346-2
+sign \x4C6F 134-34-2
+sign \x4C70 1-12346-5
+sign \x4C71 145-16-5
+sign \x4C72 2345-2
+sign \x4C74 13-1356-5
+sign \x4C76 14-1346-2
+sign \x4C77 1256-2
+sign \x4C79 1345-345-5
+sign \x4C7A 1235-2456-2
+sign \x4C7B 1235-35-2
+sign \x4C7C 1-1236-4
+sign \x4C7E 14-12356-2
+sign \x4C7F 12-1236-5
+sign \x4C80 145-346-2
+sign \x4C81 1246-5
+sign \x4C82 15-45-2
+sign \x4C83 125-146-4
+sign \x4C84 134-1456-2
+sign \x4C8A 124-25-4
+sign \x4C8B 245-136-2
+sign \x4C8C 123-12456-4
+sign \x4C8D 124-1356-2
+sign \x4C8E 1345-356-4
+sign \x4C8F 14-146-2
+sign \x4C90 14-34-4
+sign \x4C91 16-2
+sign \x4C92 15-346-5
+sign \x4C93 2345-4
+sign \x4C94 13-13456-3
+sign \x4C95 1234-34-4
+sign \x4C96 12-12356-2
+sign \x4C97 15-2345-2
+sign \x4C98 13-12456-4
+sign \x4C99 13-346-2
+sign \x4C9A 14-2456-5
+sign \x4C9B 134-1356-2
+sign \x4C9C 346-5
+sign \x4C9E 14-16-5
+sign \x4C9F 1456-5
+sign \x4CA0 12-123456-3
+sign \x4CA2 124-1356-2
+sign \x4CA3 1256-2
+sign \x4CA6 12-345-2
+sign \x4CA7 145-34-5
+sign \x4CA8 1235-12346-2
+sign \x4CAA 15-16-5
+sign \x4CAB 13-234-3
+sign \x4CAC 245-16-2
+sign \x4CAE 45-2
+sign \x4CAF 13-16-2
+sign \x4CB0 256-5
+sign \x4CB1 12345-1346-4
+sign \x4CB3 1235-1346-2
+sign \x4CB4 1-136-5
+sign \x4CB5 1235-34-5
+sign \x4CB8 13-346-5
+sign \x4CB9 1234-356-2
+sign \x4CBA 13-1236-5
+sign \x4CBB 15-45-2
+sign \x4CBD 145-146-4
+sign \x4CBE 245-246-4
+sign \x4CBF 245-156-2
+sign \x4CC0 145-346-2
+sign \x4CC1 135-345-2
+sign \x4CC2 124-246-2
+sign \x4CC3 12456-4
+sign \x4CC4 245-156-2
+sign \x4CC5 1-156-4
+sign \x4CC6 135-2456-2
+sign \x4CC7 34-4
+sign \x4CC8 135-146-4
+sign \x4CC9 145-1236-5
+sign \x4CCA 135-345-2
+sign \x4CCB 124-12346-2
+sign \x4CCE 13-234-5
+sign \x4CCF 13-1246-5
+sign \x4CD0 245-156-5
+sign \x4CD1 234-4
+sign \x4CD2 45-3
+sign \x4CD3 14-146-4
+sign \x4CD4 13-234-5
+sign \x4CD5 12345-12356-2
+sign \x4CD6 1345-356-5
+sign \x4CD7 2346-2
+sign \x4CD8 2346-2
+sign \x4CD9 15-13456-4
+sign \x4CDA 1235-2346-2
+sign \x4CDB 2345-5
+sign \x4CDC 124-34-2
+sign \x4CDD 135-34-5
+sign \x4CDE 135-1356-4
+sign \x4CDF 123-12356-5
+sign \x4CE0 12-1246-2
+sign \x4CE2 245-16-2
+sign \x4CE3 45-2
+sign \x4CE7 1235-12356-2
+sign \x4CE8 1235-456-2
+sign \x4CEA 13-45-5
+sign \x4CEB 123-1246-2
+sign \x4CEC 2346-5
+sign \x4CED 13-16-2
+sign \x4CEE 134-126-5
+sign \x4CEF 12-12346-2
+sign \x4CF0 135-146-4
+sign \x4CF1 34-5
+sign \x4CF2 1-136-5
+sign \x4CF3 15-1256-5
+sign \x4CF4 145-345-2
+sign \x4CF5 12-156-5
+sign \x4CF7 245-12346-2
+sign \x4CF8 134-345-2
+sign \x4CF9 123-12356-5
+sign \x4CFA 1236-3
+sign \x4CFB 245-1236-2
+sign \x4CFD 1235-2346-5
+sign \x4CFF 14-1236-2
+sign \x4D00 124-12346-2
+sign \x4D01 1256-5
+sign \x4D02 1235-1346-5
+sign \x4D03 1345-146-2
+sign \x4D04 14-16-5
+sign \x4D05 12345-136-2
+sign \x4D06 1234-34-2
+sign \x4D07 14-13456-2
+sign \x4D08 146-4
+sign \x4D09 15-45-2
+sign \x4D0A 16-2
+sign \x4D0B 15-45-2
+sign \x4D0C 134-1356-2
+sign \x4D0E 14-356-4
+sign \x4D0F 2345-5
+sign \x4D10 135-146-4
+sign \x4D11 145-346-2
+sign \x4D12 14-13456-2
+sign \x4D13 24-156-3
+sign \x4D14 13-246-3
+sign \x4D15 14-346-5
+sign \x4D16 13-13456-3
+sign \x4D17 13-1256-2
+sign \x4D18 124-16-3
+sign \x4D19 1234-16-5
+sign \x4D1A 13-1346-4
+sign \x4D1B 13-246-4
+sign \x4D1C 1235-2356-2
+sign \x4D1D 135-34-5
+sign \x4D1E 145-16-2
+sign \x4D1F 1235-12456-2
+sign \x4D20 246-4
+sign \x4D21 14-16-5
+sign \x4D22 134-16-2
+sign \x4D26 1245-136-2
+sign \x4D29 1234-246-2
+sign \x4D2A 14-34-5
+sign \x4D2B 14-13456-2
+sign \x4D2C 16-5
+sign \x4D2D 245-2456-2
+sign \x4D2E 24-1236-5
+sign \x4D30 24-34-2
+sign \x4D31 124-25-2
+sign \x4D32 134-126-5
+sign \x4D33 1235-2346-5
+sign \x4D34 124-346-5
+sign \x4D35 135-13456-4
+sign \x4D36 1234-1356-2
+sign \x4D37 1235-123456-2
+sign \x4D38 12345-34-3
+sign \x4D39 13-25-4
+sign \x4D3A 135-34-5
+sign \x4D3B 14-16-2
+sign \x4D3C 12-1236-4
+sign \x4D3D 135-2456-5
+sign \x4D3E 245-25-2
+sign \x4D3F 134-1356-2
+sign \x4D40 15-25-4
+sign \x4D41 245-46-5
+sign \x4D42 1-156-2
+sign \x4D43 123-456-5
+sign \x4D44 135-16-2
+sign \x4D45 146-2
+sign \x4D46 134-1356-2
+sign \x4D47 15-2345-5
+sign \x4D49 124-12356-2
+sign \x4D4B 1246-4
+sign \x4D4F 14-146-4
+sign \x4D50 12-1236-4
+sign \x4D51 1345-16-5
+sign \x4D52 1345-16-5
+sign \x4D53 14-16-2
+sign \x4D54 145-12346-4
+sign \x4D55 13-1256-5
+sign \x4D56 13-2345-5
+sign \x4D57 12345-34-2
+sign \x4D58 24-345-5
+sign \x4D59 1-345-4
+sign \x4D5A 124-146-4
+sign \x4D5B 13-2345-5
+sign \x4D5C 1345-12346-4
+sign \x4D5D 23456-5
+sign \x4D5E 13-13456-5
+sign \x4D5F 13-1236-4
+sign \x4D60 145-16-2
+sign \x4D61 13-2345-4
+sign \x4D62 134-356-5
+sign \x4D63 145-345-2
+sign \x4D64 13-2345-4
+sign \x4D65 24-2346-5
+sign \x4D66 15-346-5
+sign \x4D67 125-2456-5
+sign \x4D68 134-1346-2
+sign \x4D69 14-16-2
+sign \x4D6A 13-123456-5
+sign \x4D6B 1256-5
+sign \x4D6C 124-345-5
+sign \x4D6D 1-2346-5
+sign \x4D6E 46-5
+sign \x4D6F 124-12456-4
+sign \x4D71 1235-2346-5
+sign \x4D72 145-246-5
+sign \x4D73 1246-5
+sign \x4D74 256-5
+sign \x4D75 1-345-2
+sign \x4D76 245-1256-2
+sign \x4D77 35-3
+sign \x4D7A 124-13456-4
+sign \x4D7B 13-34-4
+sign \x4D7D 245-345-5
+sign \x4D7E 12345-34-2
+sign \x4D7F 124-346-5
+sign \x4D80 124-345-5
+sign \x4D81 124-345-5
+sign \x4D82 1-25-2
+sign \x4D83 1235-1236-2
+sign \x4D84 1234-13456-2
+sign \x4D85 1235-2346-2
+sign \x4D87 1-12356-5
+sign \x4D88 135-126-2
+sign \x4D89 14-234-2
+sign \x4D8A 1345-1256-5
+sign \x4D8C 1234-146-5
+sign \x4D8D 145-16-5
+sign \x4D8E 24-345-5
+sign \x4D8F 124-16-4
+sign \x4D90 123-2356-5
+sign \x4D91 124-16-5
+sign \x4D92 245-16-2
+sign \x4D93 13-16-5
+sign \x4D94 12-156-2
+sign \x4D95 1234-345-2
+sign \x4D96 13-1456-5
+sign \x4D97 123-2346-5
+sign \x4D98 14-16-5
+sign \x4D99 13-1256-5
+sign \x4D9A 245-1256-4
+sign \x4D9B 14-345-5
+sign \x4D9C 13-34-5
+sign \x4D9D 245-23456-5
+sign \x4D9E 245-16-2
+sign \x4D9F 15-2345-5
+sign \x4DA0 13-2345-4
+sign \x4DA1 24-156-2
+sign \x4DA2 15-2345-2
+sign \x4DA3 2456-2
+sign \x4DA4 1235-35-2
+sign \x4DA5 13-1256-4
+sign \x4DA6 125-2346-2
+sign \x4DA7 246-4
+sign \x4DA9 13-16-5
+sign \x4DAA 12-345-2
+sign \x4DAB 123-1236-4
+sign \x4DAE 2345-2
+sign \x4DB1 124-12346-2
+sign \x4DB2 1345-1236-2
+sign \x4DB3 236-5
+sign \x4DB5 12-156-2
+sign \x4E00 16-3
+sign \x4E01 145-13456-3
+sign \x4E02 123-146-4
+sign \x4E03 245-16-3
+sign \x4E04 24-1346-5
+sign \x4E05 15-23456-5
+sign \x4E07 12456-5
+sign \x4E08 1-1346-5
+sign \x4E09 15-1236-3
+sign \x4E0A 24-1346-5
+sign \x4E0B 15-23456-5
+sign \x4E0C 245-16-2
+sign \x4E0D 135-34-5
+sign \x4E0E 1256-4
+sign \x4E0F 134-2345-4
+sign \x4E10 13-2456-5
+sign \x4E11 12-12356-4
+sign \x4E12 12-12356-4
+sign \x4E13 1-12456-3
+sign \x4E14 245-346-4
+sign \x4E15 1234-16-3
+sign \x4E16 24-156-5
+sign \x4E17 24-156-5
+sign \x4E18 245-234-3
+sign \x4E19 135-13456-4
+sign \x4E1A 346-5
+sign \x4E1B 245-12346-2
+sign \x4E1C 145-12346-3
+sign \x4E1D 15-156-3
+sign \x4E1E 12-1356-2
+sign \x4E1F 145-234-3
+sign \x4E20 245-234-3
+sign \x4E21 14-46-4
+sign \x4E22 145-234-3
+sign \x4E23 234-4
+sign \x4E24 14-46-4
+sign \x4E25 2345-2
+sign \x4E26 135-13456-5
+sign \x4E27 15-1346-5
+sign \x4E28 13-123456-4
+sign \x4E29 13-234-3
+sign \x4E2A 13-2346-5
+sign \x4E2B 23456-3
+sign \x4E2C 245-46-2
+sign \x4E2D 1-12346-3
+sign \x4E2E 13-16-4
+sign \x4E2F 13-346-5
+sign \x4E30 12345-1356-3
+sign \x4E31 13-12456-5
+sign \x4E32 12-12456-5
+sign \x4E33 12-1236-4
+sign \x4E34 14-1456-2
+sign \x4E35 1-25-4
+sign \x4E36 1-34-4
+sign \x4E38 12456-2
+sign \x4E39 145-1236-3
+sign \x4E3A 1246-2
+sign \x4E3B 1-34-4
+sign \x4E3C 13-13456-4
+sign \x4E3D 14-16-5
+sign \x4E3E 13-1256-4
+sign \x4E3F 1234-346-4
+sign \x4E40 12345-34-2
+sign \x4E41 16-2
+sign \x4E42 16-5
+sign \x4E43 1345-2456-4
+sign \x4E45 13-234-4
+sign \x4E46 13-234-4
+sign \x4E47 1-2346-2
+sign \x4E48 246-3
+sign \x4E49 16-5
+sign \x4E4B 1-156-3
+sign \x4E4C 34-3
+sign \x4E4D 1-345-5
+sign \x4E4E 1235-34-3
+sign \x4E4F 12345-345-2
+sign \x4E50 14-2346-5
+sign \x4E51 1-12346-5
+sign \x4E52 1234-13456-3
+sign \x4E53 1234-1346-3
+sign \x4E54 245-246-2
+sign \x4E55 1235-34-4
+sign \x4E56 13-2356-3
+sign \x4E57 12-1356-2
+sign \x4E58 12-1356-2
+sign \x4E59 16-4
+sign \x4E5A 16-4
+sign \x4E5C 134-346-3
+sign \x4E5D 13-234-4
+sign \x4E5E 245-16-4
+sign \x4E5F 346-4
+sign \x4E60 15-16-2
+sign \x4E61 15-46-3
+sign \x4E62 13-2456-5
+sign \x4E63 13-234-3
+sign \x4E66 24-34-3
+sign \x4E68 24-156-4
+sign \x4E69 13-16-3
+sign \x4E6A 1345-1346-2
+sign \x4E6B 13-23456-3
+sign \x4E6D 24-156-2
+sign \x4E70 134-2456-4
+sign \x4E71 14-12456-5
+sign \x4E73 1245-34-4
+sign \x4E74 15-236-2
+sign \x4E75 2345-4
+sign \x4E76 12345-34-4
+sign \x4E77 24-345-3
+sign \x4E78 1345-345-4
+sign \x4E79 13-1236-3
+sign \x4E7E 13-1236-3
+sign \x4E7F 12-156-5
+sign \x4E80 13-1246-3
+sign \x4E81 13-1236-3
+sign \x4E82 14-12456-5
+sign \x4E83 14-1456-2
+sign \x4E84 16-5
+sign \x4E85 378-1678
+sign \x4E86 14-2346-1
+sign \x4E88 1256-4
+sign \x4E89 1-1356-3
+sign \x4E8A 24-156-5
+sign \x4E8B 24-156-5
+sign \x4E8C 156-5
+sign \x4E8D 12-34-5
+sign \x4E8E 1256-2
+sign \x4E8F 123-1246-3
+sign \x4E90 1256-2
+sign \x4E91 256-2
+sign \x4E92 1235-34-5
+sign \x4E93 245-16-2
+sign \x4E94 34-4
+sign \x4E95 13-13456-4
+sign \x4E96 15-156-5
+sign \x4E97 15-1246-5
+sign \x4E98 13-136-5
+sign \x4E99 13-136-5
+sign \x4E9A 23456-4
+sign \x4E9B 15-346-3
+sign \x4E9C 23456-5
+sign \x4E9D 245-16-2
+sign \x4E9E 23456-4
+sign \x4E9F 245-16-5
+sign \x4EA0 124-12356-2
+sign \x4EA1 456-2
+sign \x4EA2 123-1346-5
+sign \x4EA3 124-345-5
+sign \x4EA4 13-246-3
+sign \x4EA5 1235-2456-5
+sign \x4EA6 16-5
+sign \x4EA7 12-1236-4
+sign \x4EA8 1235-1356-3
+sign \x4EA9 134-34-4
+sign \x4EAB 15-46-4
+sign \x4EAC 13-13456-3
+sign \x4EAD 124-13456-2
+sign \x4EAE 14-46-5
+sign \x4EAF 1235-1356-3
+sign \x4EB0 13-13456-3
+sign \x4EB1 346-5
+sign \x4EB2 245-1456-3
+sign \x4EB3 135-126-5
+sign \x4EB4 234-5
+sign \x4EB5 15-346-5
+sign \x4EB6 145-1236-4
+sign \x4EB7 14-2345-2
+sign \x4EB8 145-25-4
+sign \x4EB9 1246-4
+sign \x4EBA 1245-136-2
+sign \x4EBB 1245-136-2
+sign \x4EBC 13-16-2
+sign \x4EBE 456-2
+sign \x4EBF 16-5
+sign \x4EC0 24-156-2
+sign \x4EC1 1245-136-2
+sign \x4EC2 14-2346-5
+sign \x4EC3 145-13456-3
+sign \x4EC4 125-2346-5
+sign \x4EC5 13-1456-4
+sign \x4EC6 1234-34-3
+sign \x4EC7 12-12356-2
+sign \x4EC8 135-345-3
+sign \x4EC9 1-1346-4
+sign \x4ECA 13-1456-3
+sign \x4ECB 13-346-5
+sign \x4ECC 135-13456-3
+sign \x4ECD 1245-1356-2
+sign \x4ECE 245-12346-2
+sign \x4ECF 12345-126-2
+sign \x4ED0 15-1236-4
+sign \x4ED1 14-123456-2
+sign \x4ED3 245-1346-3
+sign \x4ED4 125-156-4
+sign \x4ED5 24-156-5
+sign \x4ED6 1247-345-3
+sign \x4ED7 1-1346-5
+sign \x4ED8 12345-34-5
+sign \x4ED9 15-2345-3
+sign \x4EDA 15-2345-3
+sign \x4EDB 124-25-3
+sign \x4EDC 1235-12346-2
+sign \x4EDD 124-12346-2
+sign \x4EDE 1245-136-5
+sign \x4EDF 245-2345-3
+sign \x4EE0 13-1236-2
+sign \x4EE1 16-5
+sign \x4EE2 145-16-2
+sign \x4EE3 145-2456-5
+sign \x4EE4 14-13456-5
+sign \x4EE5 16-4
+sign \x4EE6 12-146-5
+sign \x4EE7 12-1346-2
+sign \x4EE8 15-345-3
+sign \x4EE9 135-345-1
+sign \x4EEA 16-2
+sign \x4EEB 134-34-5
+sign \x4EEC 134-136-1
+sign \x4EED 1245-136-5
+sign \x4EEE 13-23456-4
+sign \x4EEF 12-146-5
+sign \x4EF0 46-4
+sign \x4EF1 245-2345-2
+sign \x4EF2 1-12346-5
+sign \x4EF3 1234-16-4
+sign \x4EF4 12456-5
+sign \x4EF5 34-4
+sign \x4EF6 13-2345-5
+sign \x4EF7 13-23456-5
+sign \x4EF8 246-4
+sign \x4EF9 12345-1356-3
+sign \x4EFA 245-1346-3
+sign \x4EFB 1245-136-5
+sign \x4EFC 456-2
+sign \x4EFD 12345-136-5
+sign \x4EFE 145-16-3
+sign \x4EFF 12345-1346-4
+sign \x4F00 1-12346-3
+sign \x4F01 245-16-5
+sign \x4F02 1234-356-5
+sign \x4F03 1256-2
+sign \x4F04 145-246-5
+sign \x4F05 145-123456-4
+sign \x4F06 123456-5
+sign \x4F07 16-5
+sign \x4F08 15-1456-4
+sign \x4F09 123-1346-5
+sign \x4F0A 16-3
+sign \x4F0B 13-16-2
+sign \x4F0C 2456-5
+sign \x4F0D 34-4
+sign \x4F0E 13-16-5
+sign \x4F0F 12345-34-2
+sign \x4F10 12345-345-2
+sign \x4F11 15-234-3
+sign \x4F12 13-1456-5
+sign \x4F13 135-356-3
+sign \x4F14 12-136-2
+sign \x4F15 12345-34-3
+sign \x4F16 124-1346-4
+sign \x4F17 1-12346-5
+sign \x4F18 234-3
+sign \x4F19 1235-25-4
+sign \x4F1A 1235-1246-5
+sign \x4F1B 1256-4
+sign \x4F1C 245-1246-5
+sign \x4F1D 256-2
+sign \x4F1E 15-1236-4
+sign \x4F1F 1246-4
+sign \x4F20 12-12456-2
+sign \x4F21 12-2346-3
+sign \x4F22 23456-2
+sign \x4F23 15-2345-5
+sign \x4F24 24-1346-3
+sign \x4F25 12-1346-3
+sign \x4F26 14-123456-2
+sign \x4F27 245-1346-3
+sign \x4F28 15-256-5
+sign \x4F29 15-1456-5
+sign \x4F2A 1246-5
+sign \x4F2B 1-34-5
+sign \x4F2C 135-345-1
+sign \x4F2D 15-45-2
+sign \x4F2E 1345-34-2
+sign \x4F2F 135-126-2
+sign \x4F30 13-34-3
+sign \x4F31 1345-16-4
+sign \x4F32 1345-16-4
+sign \x4F33 15-346-5
+sign \x4F34 135-1236-5
+sign \x4F35 15-1256-5
+sign \x4F36 14-13456-2
+sign \x4F37 1-12356-5
+sign \x4F38 24-136-3
+sign \x4F39 245-1256-3
+sign \x4F3A 15-156-5
+sign \x4F3B 135-1356-3
+sign \x4F3C 15-156-5
+sign \x4F3D 13-23456-3
+sign \x4F3E 1234-16-3
+sign \x4F3F 16-5
+sign \x4F40 15-156-5
+sign \x4F41 2456-4
+sign \x4F42 1-1356-3
+sign \x4F43 145-2345-5
+sign \x4F44 1235-1236-2
+sign \x4F45 134-2456-5
+sign \x4F46 145-1236-5
+sign \x4F47 1-34-5
+sign \x4F48 135-34-5
+sign \x4F49 245-1256-3
+sign \x4F4A 135-16-4
+sign \x4F4B 24-146-5
+sign \x4F4C 245-156-4
+sign \x4F4D 1246-5
+sign \x4F4E 145-16-3
+sign \x4F4F 1-34-5
+sign \x4F50 125-25-4
+sign \x4F51 234-5
+sign \x4F52 46-4
+sign \x4F53 124-16-4
+sign \x4F54 1-1236-5
+sign \x4F55 1235-2346-2
+sign \x4F56 135-16-5
+sign \x4F57 124-25-2
+sign \x4F58 24-2346-2
+sign \x4F59 1256-2
+sign \x4F5A 16-5
+sign \x4F5B 12345-126-2
+sign \x4F5C 125-25-5
+sign \x4F5D 123-12356-5
+sign \x4F5E 1345-13456-5
+sign \x4F5F 124-12346-2
+sign \x4F60 1345-16-4
+sign \x4F61 15-45-3
+sign \x4F62 13-1256-4
+sign \x4F63 235-5
+sign \x4F64 35-4
+sign \x4F65 245-2345-3
+sign \x4F67 123-345-4
+sign \x4F69 1234-356-5
+sign \x4F6A 1235-1246-2
+sign \x4F6B 1235-2346-5
+sign \x4F6C 14-146-4
+sign \x4F6D 15-46-2
+sign \x4F6E 13-2346-2
+sign \x4F6F 46-2
+sign \x4F70 135-2456-4
+sign \x4F71 12345-345-4
+sign \x4F72 134-13456-2
+sign \x4F73 13-23456-3
+sign \x4F74 156-5
+sign \x4F75 135-13456-5
+sign \x4F76 13-16-2
+sign \x4F77 1235-136-4
+sign \x4F78 1235-25-2
+sign \x4F79 13-1246-4
+sign \x4F7A 245-45-2
+sign \x4F7B 124-246-2
+sign \x4F7C 13-246-4
+sign \x4F7D 245-156-5
+sign \x4F7E 16-5
+sign \x4F7F 24-156-4
+sign \x4F80 15-13456-2
+sign \x4F81 24-136-3
+sign \x4F82 124-25-3
+sign \x4F83 123-1236-4
+sign \x4F84 1-156-2
+sign \x4F85 13-2456-3
+sign \x4F86 14-2456-2
+sign \x4F87 16-2
+sign \x4F88 12-156-4
+sign \x4F89 123-35-3
+sign \x4F8A 13-456-3
+sign \x4F8B 14-16-5
+sign \x4F8C 1456-3
+sign \x4F8D 24-156-5
+sign \x4F8E 134-16-4
+sign \x4F8F 1-34-3
+sign \x4F90 15-1256-5
+sign \x4F91 234-5
+sign \x4F92 1236-3
+sign \x4F93 14-34-5
+sign \x4F94 134-12356-2
+sign \x4F95 156-2
+sign \x4F96 14-123456-2
+sign \x4F97 124-12346-3
+sign \x4F98 12-345-5
+sign \x4F99 12-156-5
+sign \x4F9A 15-256-5
+sign \x4F9B 13-12346-3
+sign \x4F9C 1-12356-3
+sign \x4F9D 16-3
+sign \x4F9E 1245-34-4
+sign \x4F9F 13-2345-5
+sign \x4FA0 15-23456-2
+sign \x4FA1 13-23456-5
+sign \x4FA2 125-2456-5
+sign \x4FA3 14-1256-4
+sign \x4FA5 13-246-4
+sign \x4FA6 1-136-3
+sign \x4FA7 245-2346-5
+sign \x4FA8 245-246-2
+sign \x4FA9 123-2356-5
+sign \x4FAA 12-2456-2
+sign \x4FAB 1345-13456-5
+sign \x4FAC 1345-12346-2
+sign \x4FAD 13-1456-4
+sign \x4FAE 34-4
+sign \x4FAF 1235-12356-2
+sign \x4FB0 13-235-4
+sign \x4FB1 12-1356-4
+sign \x4FB2 1-136-5
+sign \x4FB3 245-25-5
+sign \x4FB4 12-12356-4
+sign \x4FB5 245-1456-3
+sign \x4FB6 14-1256-4
+sign \x4FB7 13-1256-2
+sign \x4FB8 24-34-5
+sign \x4FB9 124-13456-4
+sign \x4FBA 24-136-5
+sign \x4FBB 124-25-3
+sign \x4FBC 135-126-2
+sign \x4FBD 1345-1236-2
+sign \x4FBE 1235-146-3
+sign \x4FBF 135-2345-5
+sign \x4FC0 124-1246-4
+sign \x4FC1 1256-2
+sign \x4FC2 15-16-5
+sign \x4FC3 245-34-5
+sign \x4FC4 2346-5
+sign \x4FC5 245-234-2
+sign \x4FC6 15-1256-2
+sign \x4FC7 13-456-4
+sign \x4FC8 123-34-5
+sign \x4FC9 34-4
+sign \x4FCA 13-256-5
+sign \x4FCB 16-5
+sign \x4FCC 12345-34-4
+sign \x4FCD 14-46-2
+sign \x4FCE 125-34-4
+sign \x4FCF 245-246-5
+sign \x4FD0 14-16-5
+sign \x4FD1 235-4
+sign \x4FD2 1235-123456-5
+sign \x4FD3 13-13456-5
+sign \x4FD4 245-2345-5
+sign \x4FD5 15-1236-5
+sign \x4FD6 1234-2456-4
+sign \x4FD7 15-34-2
+sign \x4FD8 12345-34-2
+sign \x4FD9 15-16-3
+sign \x4FDA 14-16-4
+sign \x4FDB 12345-34-4
+sign \x4FDC 1234-13456-2
+sign \x4FDD 135-146-4
+sign \x4FDE 1256-2
+sign \x4FDF 15-156-5
+sign \x4FE0 15-23456-2
+sign \x4FE1 15-1456-5
+sign \x4FE2 15-234-3
+sign \x4FE3 1256-2
+sign \x4FE4 124-16-5
+sign \x4FE5 12-2346-3
+sign \x4FE6 12-12356-2
+sign \x4FE8 2345-4
+sign \x4FE9 14-46-4
+sign \x4FEA 14-16-5
+sign \x4FEB 14-2456-2
+sign \x4FEC 13-1256-5
+sign \x4FED 13-2345-4
+sign \x4FEE 15-234-3
+sign \x4FEF 12345-34-4
+sign \x4FF0 1235-2346-5
+sign \x4FF1 13-1256-5
+sign \x4FF2 15-246-5
+sign \x4FF3 1234-2456-2
+sign \x4FF4 13-2345-5
+sign \x4FF5 135-246-4
+sign \x4FF6 12-34-5
+sign \x4FF7 12345-356-5
+sign \x4FF8 12345-1356-5
+sign \x4FF9 23456-5
+sign \x4FFA 1236-4
+sign \x4FFB 135-356-5
+sign \x4FFC 1256-5
+sign \x4FFD 15-1456-3
+sign \x4FFE 135-16-5
+sign \x4FFF 13-2345-5
+sign \x5000 12-1346-3
+sign \x5001 12-156-2
+sign \x5002 135-13456-5
+sign \x5003 125-1236-2
+sign \x5004 246-2
+sign \x5005 245-1246-5
+sign \x5006 14-46-4
+sign \x5007 12456-4
+sign \x5008 14-2456-2
+sign \x5009 245-1346-3
+sign \x500A 125-12346-5
+sign \x500B 13-2346-5
+sign \x500C 13-12456-3
+sign \x500D 135-356-5
+sign \x500E 124-2345-4
+sign \x500F 24-34-5
+sign \x5010 24-34-5
+sign \x5011 134-136-2
+sign \x5012 145-146-4
+sign \x5013 124-1236-2
+sign \x5014 13-236-2
+sign \x5015 12-1246-2
+sign \x5016 15-13456-5
+sign \x5017 1234-1356-2
+sign \x5018 124-1346-4
+sign \x5019 1235-12356-5
+sign \x501A 16-4
+sign \x501B 245-16-3
+sign \x501C 124-16-5
+sign \x501D 13-1236-5
+sign \x501E 13-13456-5
+sign \x501F 13-346-5
+sign \x5020 1235-1246-3
+sign \x5021 12-1346-5
+sign \x5022 13-346-3
+sign \x5023 12345-1346-4
+sign \x5024 1-156-2
+sign \x5025 123-12346-3
+sign \x5026 13-45-5
+sign \x5027 125-12346-3
+sign \x5028 13-1256-5
+sign \x5029 245-2345-5
+sign \x502A 1345-16-2
+sign \x502B 14-123456-2
+sign \x502C 1-25-2
+sign \x502D 25-3
+sign \x502E 14-25-4
+sign \x502F 15-12346-3
+sign \x5030 14-1356-2
+sign \x5031 1235-123456-5
+sign \x5032 145-12346-3
+sign \x5033 125-156-5
+sign \x5034 135-136-5
+sign \x5035 34-4
+sign \x5036 13-1256-5
+sign \x5037 1345-2456-5
+sign \x5038 245-2456-4
+sign \x5039 13-2345-4
+sign \x503A 1-2456-5
+sign \x503B 346-3
+sign \x503C 1-156-2
+sign \x503D 24-345-2
+sign \x503E 245-13456-3
+sign \x5040 13456-3
+sign \x5041 12-1356-3
+sign \x5042 13-2345-3
+sign \x5043 2345-4
+sign \x5044 1345-12456-5
+sign \x5045 1-12346-4
+sign \x5046 12-123456-4
+sign \x5047 13-23456-4
+sign \x5048 13-346-2
+sign \x5049 1246-4
+sign \x504A 1256-4
+sign \x504B 135-13456-5
+sign \x504C 1245-25-5
+sign \x504D 24-156-5
+sign \x504E 1246-3
+sign \x504F 1234-2345-3
+sign \x5050 2345-5
+sign \x5051 12345-1356-3
+sign \x5052 124-1346-4
+sign \x5053 25-5
+sign \x5054 2346-5
+sign \x5055 15-346-2
+sign \x5056 12-2346-4
+sign \x5057 24-1356-4
+sign \x5058 123-1236-4
+sign \x5059 145-16-5
+sign \x505A 125-25-5
+sign \x505B 12-345-3
+sign \x505C 124-13456-2
+sign \x505D 135-356-5
+sign \x505E 346-5
+sign \x505F 1235-456-2
+sign \x5060 246-4
+sign \x5061 1-1236-5
+sign \x5062 245-234-3
+sign \x5063 2345-3
+sign \x5064 234-4
+sign \x5065 13-2345-5
+sign \x5066 15-1256-3
+sign \x5067 1-345-3
+sign \x5068 12-2456-3
+sign \x5069 12345-34-5
+sign \x506A 135-16-3
+sign \x506B 1-156-5
+sign \x506C 125-12346-4
+sign \x506D 134-2345-4
+sign \x506E 13-16-2
+sign \x506F 16-4
+sign \x5070 15-346-5
+sign \x5071 15-256-2
+sign \x5072 15-156-3
+sign \x5073 145-12456-3
+sign \x5074 245-2346-5
+sign \x5075 1-136-3
+sign \x5076 12356-4
+sign \x5077 124-12356-3
+sign \x5078 124-12356-3
+sign \x5079 135-356-5
+sign \x507A 125-1236-2
+sign \x507B 14-1256-4
+sign \x507C 13-346-2
+sign \x507D 1246-5
+sign \x507E 12345-136-5
+sign \x507F 12-1346-2
+sign \x5080 123-1246-4
+sign \x5081 15-12356-4
+sign \x5082 12-156-4
+sign \x5083 15-34-5
+sign \x5084 15-23456-3
+sign \x5085 12345-34-5
+sign \x5086 45-5
+sign \x5087 1245-12346-4
+sign \x5088 14-16-5
+sign \x5089 1245-34-5
+sign \x508A 256-4
+sign \x508B 13-12356-5
+sign \x508C 134-345-5
+sign \x508D 135-1346-3
+sign \x508E 145-2345-3
+sign \x508F 124-1346-2
+sign \x5090 1235-146-5
+sign \x5091 13-346-2
+sign \x5092 15-16-3
+sign \x5093 24-1236-5
+sign \x5094 245-2345-5
+sign \x5095 13-236-2
+sign \x5096 245-1346-3
+sign \x5097 12-34-5
+sign \x5098 15-1236-4
+sign \x5099 135-356-5
+sign \x509A 15-246-5
+sign \x509B 235-4
+sign \x509C 246-2
+sign \x509D 124-1236-5
+sign \x509E 15-25-3
+sign \x509F 46-4
+sign \x50A0 12345-345-3
+sign \x50A1 135-13456-5
+sign \x50A2 13-23456-3
+sign \x50A3 145-2456-4
+sign \x50A4 125-2456-5
+sign \x50A5 124-1346-4
+sign \x50A7 135-1456-3
+sign \x50A8 12-34-2
+sign \x50A9 1345-25-2
+sign \x50AA 245-1236-3
+sign \x50AB 14-356-4
+sign \x50AC 245-1246-3
+sign \x50AD 235-3
+sign \x50AE 125-146-3
+sign \x50AF 125-12346-4
+sign \x50B0 1234-1356-2
+sign \x50B1 15-12346-4
+sign \x50B2 146-5
+sign \x50B3 12-12456-2
+sign \x50B4 1256-4
+sign \x50B5 1-2456-5
+sign \x50B6 12-34-4
+sign \x50B7 24-1346-3
+sign \x50B8 15-23456-2
+sign \x50B9 13-46-3
+sign \x50BA 12-156-5
+sign \x50BB 24-345-4
+sign \x50BC 1235-1236-5
+sign \x50BD 1-1346-3
+sign \x50BE 245-13456-3
+sign \x50BF 2345-5
+sign \x50C0 145-16-5
+sign \x50C1 15-346-5
+sign \x50C2 14-1256-4
+sign \x50C3 135-356-5
+sign \x50C4 1234-246-5
+sign \x50C5 13-1456-4
+sign \x50C6 14-2345-2
+sign \x50C7 14-34-5
+sign \x50C8 134-1236-5
+sign \x50C9 245-2345-3
+sign \x50CA 15-2345-3
+sign \x50CB 14-1236-5
+sign \x50CC 13456-2
+sign \x50CD 145-12346-5
+sign \x50CE 1-12456-5
+sign \x50CF 15-46-5
+sign \x50D0 24-1236-5
+sign \x50D1 245-246-2
+sign \x50D2 13-235-4
+sign \x50D3 124-1246-4
+sign \x50D4 125-123456-4
+sign \x50D5 1234-34-2
+sign \x50D6 15-16-3
+sign \x50D7 14-146-5
+sign \x50D8 12-1346-4
+sign \x50D9 13-456-3
+sign \x50DA 14-246-2
+sign \x50DB 245-16-3
+sign \x50DC 145-1356-5
+sign \x50DD 1-1236-4
+sign \x50DE 1246-4
+sign \x50DF 13-16-3
+sign \x50E0 12345-1236-3
+sign \x50E1 1235-1246-5
+sign \x50E2 12-12456-4
+sign \x50E3 124-346-4
+sign \x50E4 145-1236-5
+sign \x50E5 13-246-4
+sign \x50E6 13-234-5
+sign \x50E7 15-1356-3
+sign \x50E8 12345-136-5
+sign \x50E9 15-2345-5
+sign \x50EA 1256-5
+sign \x50EB 2346-5
+sign \x50EC 13-246-3
+sign \x50ED 13-2345-5
+sign \x50EE 124-12346-2
+sign \x50EF 14-1456-4
+sign \x50F0 135-126-2
+sign \x50F1 13-34-5
+sign \x50F3 14-16-5
+sign \x50F4 15-2345-5
+sign \x50F5 13-46-3
+sign \x50F6 134-1456-4
+sign \x50F7 346-5
+sign \x50F8 13-1456-5
+sign \x50F9 13-23456-5
+sign \x50FA 245-246-5
+sign \x50FB 1234-16-5
+sign \x50FC 12345-1356-3
+sign \x50FD 1-12356-5
+sign \x50FE 2456-5
+sign \x50FF 15-2456-5
+sign \x5100 16-2
+sign \x5101 13-256-5
+sign \x5102 1345-12346-2
+sign \x5103 12-1236-2
+sign \x5104 16-5
+sign \x5105 145-1346-3
+sign \x5106 13-13456-4
+sign \x5107 15-45-3
+sign \x5108 123-2356-5
+sign \x5109 13-2345-4
+sign \x510A 12-34-5
+sign \x510B 145-1236-3
+sign \x510C 13-246-3
+sign \x510D 24-345-4
+sign \x510E 125-2456-5
+sign \x5110 135-1456-3
+sign \x5111 1236-5
+sign \x5112 1245-34-2
+sign \x5113 124-2456-2
+sign \x5114 12-12356-2
+sign \x5115 12-2456-2
+sign \x5116 14-1236-2
+sign \x5117 1345-16-4
+sign \x5118 13-1456-4
+sign \x5119 245-2345-5
+sign \x511A 134-1356-2
+sign \x511B 34-4
+sign \x511C 1345-1356-2
+sign \x511D 245-235-2
+sign \x511E 1345-16-4
+sign \x511F 12-1346-2
+sign \x5120 14-346-5
+sign \x5121 14-356-4
+sign \x5122 14-1256-4
+sign \x5123 123-456-5
+sign \x5124 135-146-5
+sign \x5125 145-34-2
+sign \x5126 135-246-3
+sign \x5127 125-1236-4
+sign \x5128 1-156-2
+sign \x5129 15-156-5
+sign \x512A 234-3
+sign \x512B 1235-146-2
+sign \x512C 12-136-5
+sign \x512D 12-136-5
+sign \x512E 14-16-5
+sign \x512F 124-1356-2
+sign \x5130 1246-4
+sign \x5131 14-12346-4
+sign \x5132 12-34-2
+sign \x5133 12-1236-2
+sign \x5134 1245-1346-2
+sign \x5135 24-34-5
+sign \x5136 1235-1246-5
+sign \x5137 14-16-5
+sign \x5138 14-25-2
+sign \x5139 125-1236-4
+sign \x513A 1345-25-2
+sign \x513B 124-1346-4
+sign \x513C 2345-4
+sign \x513D 14-356-2
+sign \x513E 1345-1346-5
+sign \x513F 156-2
+sign \x5140 34-5
+sign \x5141 256-4
+sign \x5142 125-1236-3
+sign \x5143 45-2
+sign \x5144 15-235-3
+sign \x5145 12-12346-3
+sign \x5146 1-146-5
+sign \x5147 15-235-3
+sign \x5148 15-2345-3
+sign \x5149 13-456-3
+sign \x514A 145-1246-5
+sign \x514B 123-2346-5
+sign \x514C 145-1246-5
+sign \x514D 134-2345-4
+sign \x514E 124-34-5
+sign \x514F 12-1346-2
+sign \x5150 156-2
+sign \x5151 145-1246-5
+sign \x5152 156-2
+sign \x5153 15-1456-3
+sign \x5154 124-34-5
+sign \x5155 15-156-5
+sign \x5156 2345-4
+sign \x5157 2345-4
+sign \x5158 24-156-4
+sign \x5159 2-356-1245
+sign \x515A 145-1346-4
+sign \x515B 2-356-356-356-1245
+sign \x515C 145-12356-3
+sign \x515D 14-1245
+sign \x515E 134-1245
+sign \x515F 15-1456-3
+sign \x5160 145-12356-3
+sign \x5161 2-356-356-1245
+sign \x5162 13-13456-3
+sign \x5163 14-16
+sign \x5164 1235-456-2
+sign \x5165 1245-34-5
+sign \x5166 456-2
+sign \x5167 1345-356-5
+sign \x5168 245-45-2
+sign \x5169 14-46-4
+sign \x516A 1256-2
+sign \x516B 135-345-3
+sign \x516C 13-12346-3
+sign \x516D 14-234-5
+sign \x516E 15-16-3
+sign \x5170 14-1236-2
+sign \x5171 13-12346-5
+sign \x5172 124-2345-3
+sign \x5173 13-12456-3
+sign \x5174 15-13456-3
+sign \x5175 135-13456-3
+sign \x5176 245-16-2
+sign \x5177 13-1256-5
+sign \x5178 145-2345-4
+sign \x5179 125-156-3
+sign \x517B 46-4
+sign \x517C 13-2345-3
+sign \x517D 24-12356-5
+sign \x517E 13-16-5
+sign \x517F 16-5
+sign \x5180 13-16-5
+sign \x5181 12-1236-4
+sign \x5182 13-235-3
+sign \x5184 1245-1236-4
+sign \x5185 1345-345-5
+sign \x5187 134-12356-4
+sign \x5188 13-1346-3
+sign \x5189 1245-1236-4
+sign \x518A 245-2346-5
+sign \x518B 13-235-3
+sign \x518C 245-2346-5
+sign \x518D 125-2456-5
+sign \x518E 13-35-4
+sign \x518F 13-235-4
+sign \x5190 134-146-5
+sign \x5191 1-12356-5
+sign \x5192 134-146-5
+sign \x5193 13-12356-5
+sign \x5194 15-1256-3
+sign \x5195 134-2345-4
+sign \x5196 134-16-5
+sign \x5197 1245-12346-4
+sign \x5198 1456-2
+sign \x5199 15-346-4
+sign \x519A 123-1236-4
+sign \x519B 13-256-3
+sign \x519C 1345-12346-2
+sign \x519D 16-2
+sign \x519E 134-16-2
+sign \x519F 24-156-5
+sign \x51A0 13-12456-5
+sign \x51A1 134-1356-2
+sign \x51A2 1-12346-4
+sign \x51A3 125-1246-5
+sign \x51A4 45-3
+sign \x51A5 134-13456-2
+sign \x51A6 123-12356-5
+sign \x51A8 12345-34-5
+sign \x51A9 15-346-4
+sign \x51AA 134-16-5
+sign \x51AB 135-13456-3
+sign \x51AC 145-12346-3
+sign \x51AD 124-2456-2
+sign \x51AE 13-1346-3
+sign \x51AF 12345-1356-2
+sign \x51B0 135-13456-3
+sign \x51B1 1235-34-5
+sign \x51B2 12-12346-3
+sign \x51B3 13-236-2
+sign \x51B4 1235-34-5
+sign \x51B5 123-456-5
+sign \x51B6 346-4
+sign \x51B7 14-1356-4
+sign \x51B8 1234-1236-5
+sign \x51B9 12345-34-2
+sign \x51BA 134-1456-4
+sign \x51BB 145-12346-5
+sign \x51BC 24-1356-4
+sign \x51BD 14-346-5
+sign \x51BE 15-23456-2
+sign \x51BF 13-2345-3
+sign \x51C0 13-13456-5
+sign \x51C1 24-34-5
+sign \x51C2 134-356-4
+sign \x51C3 124-34-2
+sign \x51C4 245-16-3
+sign \x51C5 13-34-5
+sign \x51C6 1-123456-4
+sign \x51C7 15-12346-3
+sign \x51C8 13-13456-5
+sign \x51C9 14-46-2
+sign \x51CA 245-13456-5
+sign \x51CB 145-246-3
+sign \x51CC 14-13456-2
+sign \x51CD 145-12346-5
+sign \x51CE 135-345-1
+sign \x51CF 13-2345-4
+sign \x51D0 1456-3
+sign \x51D1 245-12356-5
+sign \x51D2 16-2
+sign \x51D3 14-16-5
+sign \x51D4 245-1346-3
+sign \x51D5 134-13456-4
+sign \x51D7 245-1246-3
+sign \x51D8 15-156-3
+sign \x51D9 145-25-2
+sign \x51DA 13-1456-5
+sign \x51DB 14-1456-4
+sign \x51DC 14-1456-4
+sign \x51DD 1345-13456-2
+sign \x51DE 15-16-3
+sign \x51DF 145-34-2
+sign \x51E0 13-16-4
+sign \x51E1 12345-1236-2
+sign \x51E2 12345-1236-2
+sign \x51E3 12345-1236-2
+sign \x51E4 12345-1356-5
+sign \x51E5 13-1256-3
+sign \x51E6 12-34-4
+sign \x51E8 12345-1356-3
+sign \x51EB 12345-34-2
+sign \x51EC 12345-1356-3
+sign \x51ED 1234-13456-2
+sign \x51EE 12345-1356-3
+sign \x51EF 123-2456-4
+sign \x51F0 1235-456-2
+sign \x51F1 123-2456-4
+sign \x51F2 13-1236-3
+sign \x51F3 145-1356-5
+sign \x51F4 1234-13456-2
+sign \x51F5 123-1236-4
+sign \x51F6 15-235-3
+sign \x51F7 123-2356-5
+sign \x51F8 124-34-2
+sign \x51F9 146-3
+sign \x51FA 12-34-3
+sign \x51FB 13-16-2
+sign \x51FC 145-1346-5
+sign \x51FD 1235-1236-2
+sign \x51FE 1235-1236-2
+sign \x51FF 125-146-2
+sign \x5200 145-146-3
+sign \x5201 145-246-3
+sign \x5202 145-146-3
+sign \x5203 1245-136-5
+sign \x5204 1245-136-5
+sign \x5205 12-456-3
+sign \x5206 12345-136-3
+sign \x5207 245-346-5
+sign \x5208 16-5
+sign \x5209 13-16-3
+sign \x520A 123-1236-3
+sign \x520B 245-2345-5
+sign \x520C 245-123456-4
+sign \x520D 12-34-2
+sign \x520E 123456-4
+sign \x520F 13-16-3
+sign \x5210 145-1236-4
+sign \x5211 15-13456-2
+sign \x5212 1235-35-2
+sign \x5213 12456-4
+sign \x5214 13-236-2
+sign \x5215 14-16-2
+sign \x5216 236-5
+sign \x5217 14-346-5
+sign \x5218 14-234-2
+sign \x5219 125-2346-2
+sign \x521A 13-1346-3
+sign \x521B 12-456-5
+sign \x521C 12345-34-2
+sign \x521D 12-34-3
+sign \x521E 245-1256-5
+sign \x521F 13-1256-3
+sign \x5220 24-1236-3
+sign \x5221 134-1456-4
+sign \x5222 14-13456-2
+sign \x5223 1-12346-3
+sign \x5224 1234-1236-5
+sign \x5225 135-346-2
+sign \x5226 13-346-2
+sign \x5227 13-346-2
+sign \x5228 135-146-5
+sign \x5229 14-16-5
+sign \x522A 24-1236-3
+sign \x522B 135-346-5
+sign \x522C 12-1236-4
+sign \x522D 13-13456-3
+sign \x522E 13-35-3
+sign \x522F 13-136-3
+sign \x5230 145-146-5
+sign \x5231 12-456-5
+sign \x5232 123-1246-3
+sign \x5233 123-34-3
+sign \x5234 145-25-5
+sign \x5235 156-5
+sign \x5236 1-156-5
+sign \x5237 24-35-3
+sign \x5238 245-45-5
+sign \x5239 12-345-5
+sign \x523A 245-156-5
+sign \x523B 123-2346-5
+sign \x523C 13-346-2
+sign \x523D 123-2356-5
+sign \x523E 245-156-5
+sign \x523F 13-1246-5
+sign \x5240 13-2456-3
+sign \x5241 145-25-5
+sign \x5242 13-16-5
+sign \x5243 124-16-5
+sign \x5244 13-13456-3
+sign \x5245 14-12356-2
+sign \x5246 14-25-2
+sign \x5247 125-2346-2
+sign \x5248 45-3
+sign \x5249 245-25-5
+sign \x524A 15-246-3
+sign \x524B 123-2346-5
+sign \x524C 14-345-5
+sign \x524D 245-2345-2
+sign \x524E 12-345-5
+sign \x524F 12-456-5
+sign \x5250 13-35-4
+sign \x5251 13-2345-5
+sign \x5252 245-25-5
+sign \x5253 14-16-2
+sign \x5254 124-16-3
+sign \x5255 12345-356-5
+sign \x5256 1234-12356-4
+sign \x5257 12-1236-4
+sign \x5258 245-16-2
+sign \x5259 12-456-5
+sign \x525A 125-156-5
+sign \x525B 13-1346-3
+sign \x525C 12456-3
+sign \x525D 135-126-3
+sign \x525E 13-16-4
+sign \x525F 145-25-2
+sign \x5260 14-236-5
+sign \x5261 24-1236-5
+sign \x5262 1-25-2
+sign \x5263 13-2345-5
+sign \x5264 13-16-5
+sign \x5265 135-126-3
+sign \x5266 2345-3
+sign \x5267 13-1256-5
+sign \x5268 1235-25-5
+sign \x5269 24-1356-5
+sign \x526A 13-2345-4
+sign \x526B 145-25-2
+sign \x526C 145-12456-3
+sign \x526D 34-3
+sign \x526E 13-35-4
+sign \x526F 12345-34-5
+sign \x5270 24-1356-5
+sign \x5271 13-2345-5
+sign \x5272 13-2346-3
+sign \x5273 1-345-2
+sign \x5274 13-2456-3
+sign \x5275 12-456-5
+sign \x5276 13-45-3
+sign \x5277 12-1236-4
+sign \x5278 1-12456-4
+sign \x5279 14-34-5
+sign \x527A 14-16-2
+sign \x527B 12345-12356-2
+sign \x527C 24-1236-3
+sign \x527D 1234-246-5
+sign \x527E 123-12356-3
+sign \x527F 13-246-4
+sign \x5280 13-35-3
+sign \x5281 245-246-2
+sign \x5282 13-236-2
+sign \x5283 1235-35-5
+sign \x5284 1-345-2
+sign \x5285 1-25-5
+sign \x5286 14-2345-2
+sign \x5287 13-1256-5
+sign \x5288 1234-16-3
+sign \x5289 14-234-2
+sign \x528A 123-2356-5
+sign \x528B 13-246-4
+sign \x528C 13-1246-5
+sign \x528D 13-2345-5
+sign \x528E 13-2345-5
+sign \x528F 124-1346-3
+sign \x5290 1235-25-3
+sign \x5291 13-16-5
+sign \x5292 13-2345-5
+sign \x5293 16-5
+sign \x5294 13-2345-5
+sign \x5295 1-156-2
+sign \x5296 12-1236-2
+sign \x5297 13-2345-4
+sign \x5298 134-16-2
+sign \x5299 14-16-2
+sign \x529A 1-34-2
+sign \x529B 14-16-5
+sign \x529C 23456-3
+sign \x529D 245-45-5
+sign \x529E 135-1236-5
+sign \x529F 13-12346-3
+sign \x52A0 13-23456-3
+sign \x52A1 34-5
+sign \x52A2 134-2456-5
+sign \x52A3 14-346-5
+sign \x52A4 13-1456-5
+sign \x52A5 123-1356-3
+sign \x52A6 15-346-2
+sign \x52A7 1-156-4
+sign \x52A8 145-12346-5
+sign \x52A9 1-34-5
+sign \x52AA 1345-34-4
+sign \x52AB 13-346-2
+sign \x52AC 245-1256-2
+sign \x52AD 24-146-5
+sign \x52AE 16-5
+sign \x52AF 1-34-3
+sign \x52B0 134-246-4
+sign \x52B1 14-16-5
+sign \x52B2 13-1456-5
+sign \x52B3 14-146-2
+sign \x52B4 14-146-2
+sign \x52B5 245-45-5
+sign \x52B6 123-12356-4
+sign \x52B7 46-2
+sign \x52B8 35-3
+sign \x52B9 15-246-5
+sign \x52BA 134-12356-2
+sign \x52BB 123-456-3
+sign \x52BC 13-346-2
+sign \x52BD 14-346-5
+sign \x52BE 1235-2346-2
+sign \x52BF 24-156-5
+sign \x52C0 123-2346-5
+sign \x52C1 13-1456-5
+sign \x52C2 1235-146-2
+sign \x52C3 135-126-2
+sign \x52C4 134-1456-4
+sign \x52C5 12-156-5
+sign \x52C6 14-1346-2
+sign \x52C7 235-4
+sign \x52C8 235-4
+sign \x52C9 134-2345-4
+sign \x52CA 123-2346-5
+sign \x52CB 15-256-3
+sign \x52CC 13-45-5
+sign \x52CD 245-13456-2
+sign \x52CE 14-34-5
+sign \x52CF 1234-12356-4
+sign \x52D0 134-1356-4
+sign \x52D1 12-156-5
+sign \x52D2 14-2346-5
+sign \x52D3 123-2456-5
+sign \x52D4 134-2345-4
+sign \x52D5 145-12346-5
+sign \x52D6 15-1256-5
+sign \x52D7 15-1256-5
+sign \x52D8 123-1236-3
+sign \x52D9 34-5
+sign \x52DA 16-5
+sign \x52DB 15-256-3
+sign \x52DC 12346-4
+sign \x52DD 24-1356-5
+sign \x52DE 14-146-2
+sign \x52DF 134-34-5
+sign \x52E0 14-34-5
+sign \x52E1 1234-246-5
+sign \x52E2 24-156-5
+sign \x52E3 13-16-3
+sign \x52E4 245-1456-2
+sign \x52E5 245-46-4
+sign \x52E6 13-246-4
+sign \x52E7 245-45-5
+sign \x52E8 46-4
+sign \x52E9 16-5
+sign \x52EA 13-236-2
+sign \x52EB 12345-1236-2
+sign \x52EC 13-45-5
+sign \x52ED 124-12346-2
+sign \x52EE 13-1256-5
+sign \x52EF 145-1236-3
+sign \x52F0 15-346-2
+sign \x52F1 134-2456-5
+sign \x52F2 15-256-3
+sign \x52F3 15-256-3
+sign \x52F4 14-1256-5
+sign \x52F5 14-16-5
+sign \x52F6 12-2346-5
+sign \x52F7 1245-1346-2
+sign \x52F8 245-45-5
+sign \x52F9 135-146-3
+sign \x52FA 24-146-2
+sign \x52FB 256-2
+sign \x52FC 13-234-3
+sign \x52FD 135-146-5
+sign \x52FE 13-12356-3
+sign \x52FF 34-5
+sign \x5300 256-2
+sign \x5303 13-2456-5
+sign \x5304 13-2456-5
+sign \x5305 135-146-3
+sign \x5306 245-12346-3
+sign \x5308 15-235-3
+sign \x5309 1234-1356-3
+sign \x530A 13-1256-2
+sign \x530B 124-146-2
+sign \x530C 13-2346-2
+sign \x530D 1234-34-2
+sign \x530E 25-5
+sign \x530F 1234-146-2
+sign \x5310 12345-34-2
+sign \x5311 245-235-3
+sign \x5312 145-345-2
+sign \x5313 13-234-5
+sign \x5314 245-235-3
+sign \x5315 135-16-4
+sign \x5316 1235-35-5
+sign \x5317 135-356-4
+sign \x5318 1345-146-4
+sign \x5319 12-156-2
+sign \x531A 12345-1346-3
+sign \x531B 13-234-5
+sign \x531C 16-2
+sign \x531D 125-345-3
+sign \x531E 13-46-5
+sign \x531F 123-1346-5
+sign \x5320 13-46-5
+sign \x5321 123-456-3
+sign \x5322 1235-34-3
+sign \x5323 15-23456-2
+sign \x5324 245-1256-3
+sign \x5325 135-2345-5
+sign \x5326 13-1246-4
+sign \x5327 245-346-5
+sign \x5328 125-1346-3
+sign \x5329 123-456-3
+sign \x532A 12345-356-4
+sign \x532B 1235-34-3
+sign \x532C 124-12356-2
+sign \x532D 13-1246-4
+sign \x532E 123-1246-5
+sign \x532F 1235-1246-5
+sign \x5330 145-1236-3
+sign \x5331 123-1246-5
+sign \x5332 14-2345-2
+sign \x5333 14-2345-2
+sign \x5334 15-12456-5
+sign \x5335 145-34-2
+sign \x5336 13-234-5
+sign \x5337 245-1256-2
+sign \x5338 15-16-5
+sign \x5339 1234-16-3
+sign \x533A 245-1256-3
+sign \x533B 16-3
+sign \x533C 1236-5
+sign \x533D 2345-4
+sign \x533E 135-2345-4
+sign \x533F 1345-16-5
+sign \x5340 245-1256-3
+sign \x5341 24-156-2
+sign \x5342 15-1456-5
+sign \x5343 245-2345-3
+sign \x5344 1346-1346
+sign \x5345 15-345-5
+sign \x5346 125-34-2
+sign \x5347 24-1356-3
+sign \x5348 34-4
+sign \x5349 1235-1246-5
+sign \x534A 135-1236-5
+sign \x534B 24-156-5
+sign \x534C 15-16-5
+sign \x534D 12456-5
+sign \x534E 1235-35-2
+sign \x534F 15-346-2
+sign \x5350 12456-5
+sign \x5351 135-356-3
+sign \x5352 125-34-2
+sign \x5353 1-25-2
+sign \x5354 15-346-2
+sign \x5355 145-1236-3
+sign \x5356 134-2456-5
+sign \x5357 1345-1236-2
+sign \x5358 145-1236-3
+sign \x5359 13-16-2
+sign \x535A 135-126-2
+sign \x535B 24-2356-5
+sign \x535C 135-34-4
+sign \x535D 123-456-5
+sign \x535E 135-2345-5
+sign \x535F 135-34-4
+sign \x5360 1-1236-5
+sign \x5361 123-345-4
+sign \x5362 14-34-2
+sign \x5363 234-4
+sign \x5364 14-34-4
+sign \x5365 15-16-3
+sign \x5366 13-35-5
+sign \x5367 25-5
+sign \x5368 15-346-5
+sign \x5369 13-346-2
+sign \x536A 13-346-2
+sign \x536B 1246-5
+sign \x536C 1346-2
+sign \x536D 245-235-2
+sign \x536E 1-156-3
+sign \x536F 134-146-4
+sign \x5370 1456-5
+sign \x5371 1246-2
+sign \x5372 24-146-5
+sign \x5373 13-16-2
+sign \x5374 245-236-5
+sign \x5375 14-12456-4
+sign \x5376 24-156-5
+sign \x5377 13-45-4
+sign \x5378 15-346-5
+sign \x5379 15-1256-5
+sign \x537A 13-1456-4
+sign \x537B 245-236-5
+sign \x537C 34-5
+sign \x537D 13-16-2
+sign \x537E 2346-5
+sign \x537F 245-13456-3
+sign \x5380 15-16-3
+sign \x5382 12-1346-4
+sign \x5383 1-1236-3
+sign \x5384 2346-5
+sign \x5385 124-13456-3
+sign \x5386 14-16-5
+sign \x5387 1-2346-2
+sign \x5388 1235-1236-4
+sign \x5389 14-16-5
+sign \x538A 23456-4
+sign \x538B 23456-3
+sign \x538C 2345-5
+sign \x538D 24-2346-5
+sign \x538E 1-156-4
+sign \x538F 1-345-4
+sign \x5390 1234-1346-2
+sign \x5392 1235-2346-2
+sign \x5393 23456-2
+sign \x5394 1-156-5
+sign \x5395 245-2346-5
+sign \x5396 12345-1346-2
+sign \x5397 124-16-2
+sign \x5398 14-16-2
+sign \x5399 24-2346-5
+sign \x539A 1235-12356-5
+sign \x539B 124-13456-3
+sign \x539C 125-1246-3
+sign \x539D 245-25-5
+sign \x539E 12345-356-5
+sign \x539F 45-2
+sign \x53A0 245-2346-5
+sign \x53A1 45-2
+sign \x53A2 15-46-3
+sign \x53A3 2345-4
+sign \x53A4 14-16-5
+sign \x53A5 13-236-2
+sign \x53A6 15-23456-5
+sign \x53A7 145-2345-3
+sign \x53A8 12-34-2
+sign \x53A9 13-234-5
+sign \x53AA 13-1456-4
+sign \x53AB 146-2
+sign \x53AC 13-1246-4
+sign \x53AD 2345-5
+sign \x53AE 15-156-3
+sign \x53AF 14-16-5
+sign \x53B0 12-1346-4
+sign \x53B1 14-1236-2
+sign \x53B2 14-16-5
+sign \x53B3 2345-2
+sign \x53B4 2345-4
+sign \x53B5 45-2
+sign \x53B6 134-12356-4
+sign \x53B7 13-12346-3
+sign \x53B8 14-1456-2
+sign \x53B9 1245-12356-2
+sign \x53BA 245-1256-5
+sign \x53BB 245-1256-5
+sign \x53BD 14-356-4
+sign \x53BE 145-34-3
+sign \x53BF 15-2345-5
+sign \x53C0 1-12456-3
+sign \x53C1 15-1236-3
+sign \x53C2 245-1236-3
+sign \x53C3 245-1236-3
+sign \x53C4 245-1236-3
+sign \x53C5 245-1236-3
+sign \x53C6 2456-5
+sign \x53C7 145-2456-5
+sign \x53C8 234-5
+sign \x53C9 12-345-3
+sign \x53CA 13-16-2
+sign \x53CB 234-4
+sign \x53CC 24-456-3
+sign \x53CD 12345-1236-4
+sign \x53CE 24-12356-3
+sign \x53CF 13-2356-5
+sign \x53D0 135-345-2
+sign \x53D1 12345-345-4
+sign \x53D2 1245-25-5
+sign \x53D3 24-156-5
+sign \x53D4 24-34-2
+sign \x53D5 1-25-2
+sign \x53D6 245-1256-4
+sign \x53D7 24-12356-5
+sign \x53D8 135-2345-5
+sign \x53D9 15-1256-5
+sign \x53DA 13-23456-4
+sign \x53DB 1234-1236-5
+sign \x53DC 15-12356-4
+sign \x53DD 13-146-5
+sign \x53DE 1246-5
+sign \x53DF 15-12356-4
+sign \x53E0 145-346-2
+sign \x53E1 1245-1246-5
+sign \x53E2 245-12346-2
+sign \x53E3 123-12356-4
+sign \x53E4 13-34-4
+sign \x53E5 13-1256-5
+sign \x53E6 14-13456-5
+sign \x53E7 13-35-4
+sign \x53E8 145-146-3
+sign \x53E9 123-12356-5
+sign \x53EA 1-156-4
+sign \x53EB 13-246-5
+sign \x53EC 1-146-5
+sign \x53ED 135-345-3
+sign \x53EE 145-13456-3
+sign \x53EF 123-2346-4
+sign \x53F0 124-2456-2
+sign \x53F1 12-156-5
+sign \x53F2 24-156-4
+sign \x53F3 234-5
+sign \x53F4 245-234-2
+sign \x53F5 1234-126-4
+sign \x53F6 346-5
+sign \x53F7 1235-146-5
+sign \x53F8 15-156-3
+sign \x53F9 124-1236-5
+sign \x53FA 12-156-4
+sign \x53FB 14-2346-5
+sign \x53FC 145-246-3
+sign \x53FD 13-16-3
+sign \x53FF 1235-12346-3
+sign \x5400 134-346-3
+sign \x5401 15-1256-3
+sign \x5402 134-1346-2
+sign \x5403 12-156-3
+sign \x5404 13-2346-5
+sign \x5405 15-45-3
+sign \x5406 246-3
+sign \x5407 125-156-4
+sign \x5408 1235-2346-2
+sign \x5409 13-16-2
+sign \x540A 145-246-5
+sign \x540B 245-123456-5
+sign \x540C 124-12346-2
+sign \x540D 134-13456-2
+sign \x540E 1235-12356-5
+sign \x540F 14-16-5
+sign \x5410 124-34-4
+sign \x5411 15-46-5
+sign \x5412 1-345-5
+sign \x5413 15-23456-5
+sign \x5414 346-4
+sign \x5415 14-1256-4
+sign \x5416 345-3
+sign \x5417 134-345-4
+sign \x5418 12356-4
+sign \x5419 15-236-3
+sign \x541A 16-3
+sign \x541B 13-256-3
+sign \x541C 12-12356-4
+sign \x541D 14-1456-5
+sign \x541E 124-123456-3
+sign \x541F 1456-2
+sign \x5420 12345-356-5
+sign \x5421 135-16-4
+sign \x5422 245-1456-5
+sign \x5423 245-1456-5
+sign \x5424 13-346-5
+sign \x5425 1234-12356-3
+sign \x5426 12345-12356-4
+sign \x5427 135-345-1
+sign \x5428 124-123456-2
+sign \x5429 12345-136-3
+sign \x542A 2346-2
+sign \x542B 1235-1236-2
+sign \x542C 124-13456-3
+sign \x542D 123-1356-3
+sign \x542E 24-123456-4
+sign \x542F 245-16-4
+sign \x5430 1235-12346-2
+sign \x5431 125-156-3
+sign \x5432 24-136-4
+sign \x5433 34-2
+sign \x5434 34-2
+sign \x5435 12-146-4
+sign \x5436 1345-345-5
+sign \x5437 15-236-5
+sign \x5438 15-16-3
+sign \x5439 12-1246-3
+sign \x543A 145-12356-3
+sign \x543B 123456-4
+sign \x543C 1235-12356-4
+sign \x543D 12356-2
+sign \x543E 34-2
+sign \x543F 13-146-5
+sign \x5440 23456-3
+sign \x5441 13-256-5
+sign \x5442 14-1256-4
+sign \x5443 2346-5
+sign \x5444 13-2346-2
+sign \x5445 134-356-2
+sign \x5446 145-2456-3
+sign \x5447 245-16-4
+sign \x5448 12-1356-2
+sign \x5449 34-2
+sign \x544A 13-146-5
+sign \x544B 12345-34-3
+sign \x544C 13-246-5
+sign \x544D 1235-12346-3
+sign \x544E 12-156-4
+sign \x544F 24-1356-3
+sign \x5450 1345-345-5
+sign \x5451 124-123456-3
+sign \x5452 34-4
+sign \x5453 16-5
+sign \x5454 124-2456-5
+sign \x5455 12356-4
+sign \x5456 14-16-5
+sign \x5457 135-2456-5
+sign \x5458 45-2
+sign \x5459 13-2346-3
+sign \x545B 245-46-5
+sign \x545C 34-3
+sign \x545D 2346-5
+sign \x545E 24-156-3
+sign \x545F 245-45-4
+sign \x5460 1234-136-4
+sign \x5461 123456-4
+sign \x5462 1345-2346-1
+sign \x5463 134-12356-2
+sign \x5464 14-13456-2
+sign \x5465 1245-1236-2
+sign \x5466 234-3
+sign \x5467 145-16-4
+sign \x5468 1-12356-3
+sign \x5469 24-156-5
+sign \x546A 1-12356-5
+sign \x546B 124-346-3
+sign \x546C 14-13456-2
+sign \x546D 16-5
+sign \x546E 245-16-5
+sign \x546F 1234-13456-2
+sign \x5470 125-156-4
+sign \x5471 13-35-3
+sign \x5472 125-156-3
+sign \x5473 1246-5
+sign \x5474 15-1256-3
+sign \x5475 1235-2346-3
+sign \x5476 1345-146-2
+sign \x5477 15-23456-2
+sign \x5478 1234-356-3
+sign \x5479 16-5
+sign \x547A 15-246-3
+sign \x547B 24-136-3
+sign \x547C 1235-34-3
+sign \x547D 134-13456-5
+sign \x547E 145-345-2
+sign \x547F 245-1256-3
+sign \x5480 125-1246-4
+sign \x5481 15-2345-2
+sign \x5482 125-345-3
+sign \x5483 124-25-3
+sign \x5484 145-25-5
+sign \x5485 1234-12356-5
+sign \x5486 1234-146-2
+sign \x5487 135-346-2
+sign \x5488 12345-34-2
+sign \x5489 46-3
+sign \x548A 1235-2346-2
+sign \x548B 1-345-5
+sign \x548C 1235-2346-2
+sign \x548D 1235-2456-2
+sign \x548E 13-234-5
+sign \x548F 235-4
+sign \x5490 12345-34-5
+sign \x5491 145-345-3
+sign \x5492 1-12356-5
+sign \x5493 35-4
+sign \x5494 123-345-4
+sign \x5495 13-34-3
+sign \x5496 123-345-3
+sign \x5497 125-25-4
+sign \x5498 135-34-5
+sign \x5499 14-12346-2
+sign \x549A 145-12346-3
+sign \x549B 1345-13456-2
+sign \x549D 15-156-3
+sign \x549E 15-2345-5
+sign \x549F 1235-25-5
+sign \x54A0 245-16-3
+sign \x54A1 156-5
+sign \x54A2 2346-5
+sign \x54A3 13-456-3
+sign \x54A4 1-345-5
+sign \x54A5 15-16-3
+sign \x54A6 16-2
+sign \x54A7 14-346-4
+sign \x54A8 125-156-3
+sign \x54A9 134-346-3
+sign \x54AA 134-16-3
+sign \x54AB 1-156-4
+sign \x54AC 246-4
+sign \x54AD 13-16-3
+sign \x54AE 1-34-3
+sign \x54AF 123-2346-5
+sign \x54B0 24-2356-5
+sign \x54B1 125-1236-2
+sign \x54B2 15-246-5
+sign \x54B3 123-2346-2
+sign \x54B4 1235-1246-3
+sign \x54B5 123-35-3
+sign \x54B6 1235-2356-5
+sign \x54B7 124-146-2
+sign \x54B8 15-2345-2
+sign \x54B9 2346-5
+sign \x54BA 15-45-4
+sign \x54BB 15-234-3
+sign \x54BC 13-2346-3
+sign \x54BD 2345-5
+sign \x54BE 14-146-4
+sign \x54BF 16-3
+sign \x54C0 2456-3
+sign \x54C1 1234-1456-4
+sign \x54C2 24-136-4
+sign \x54C3 124-12346-2
+sign \x54C4 1235-12346-3
+sign \x54C5 15-235-3
+sign \x54C6 12-156-4
+sign \x54C7 35-3
+sign \x54C8 1235-345-3
+sign \x54C9 125-2456-3
+sign \x54CA 1256-5
+sign \x54CB 145-16-5
+sign \x54CC 1234-2456-5
+sign \x54CD 15-46-4
+sign \x54CE 2456-3
+sign \x54CF 13-136-2
+sign \x54D0 123-456-3
+sign \x54D1 23456-4
+sign \x54D2 145-345-2
+sign \x54D3 15-246-3
+sign \x54D4 135-16-5
+sign \x54D5 236-3
+sign \x54D6 1345-2345-2
+sign \x54D7 1235-35-2
+sign \x54D9 123-2356-5
+sign \x54DA 145-25-4
+sign \x54DC 13-16-5
+sign \x54DD 1345-12346-2
+sign \x54DE 134-12356-2
+sign \x54DF 246-3
+sign \x54E0 1235-146-5
+sign \x54E1 45-2
+sign \x54E2 14-12346-5
+sign \x54E3 1234-12356-4
+sign \x54E4 134-1346-2
+sign \x54E5 13-2346-3
+sign \x54E6 2346-2
+sign \x54E7 15-23456-5
+sign \x54E8 24-146-5
+sign \x54E9 14-16-4
+sign \x54EA 1345-345-4
+sign \x54EB 125-34-2
+sign \x54EC 1235-2346-2
+sign \x54ED 123-34-3
+sign \x54EE 15-246-5
+sign \x54EF 15-2345-5
+sign \x54F0 14-146-2
+sign \x54F1 1234-126-5
+sign \x54F2 1-2346-2
+sign \x54F3 1-345-2
+sign \x54F4 14-46-5
+sign \x54F5 135-345-3
+sign \x54F6 134-346-3
+sign \x54F7 14-2346-5
+sign \x54F8 15-1246-3
+sign \x54F9 12345-12356-2
+sign \x54FA 135-34-4
+sign \x54FB 1235-1236-5
+sign \x54FC 1235-1356-3
+sign \x54FD 13-1356-4
+sign \x54FE 24-25-3
+sign \x54FF 13-2346-4
+sign \x5500 234-4
+sign \x5501 2345-5
+sign \x5502 13-34-4
+sign \x5503 13-34-4
+sign \x5504 135-2456-5
+sign \x5505 1235-1236-3
+sign \x5506 15-25-3
+sign \x5507 12-123456-2
+sign \x5508 16-5
+sign \x5509 2456-3
+sign \x550A 13-23456-2
+sign \x550B 124-34-2
+sign \x550C 15-2345-2
+sign \x550D 1235-12456-4
+sign \x550E 14-16-5
+sign \x550F 15-16-3
+sign \x5510 124-1346-2
+sign \x5511 24-156-5
+sign \x5512 134-234-3
+sign \x5513 12-2346-3
+sign \x5514 34-2
+sign \x5515 125-146-5
+sign \x5516 23456-4
+sign \x5517 145-12356-3
+sign \x5518 245-16-4
+sign \x5519 145-16-2
+sign \x551A 245-1456-5
+sign \x551B 134-345-4
+sign \x551D 1235-12346-4
+sign \x551E 145-12356-4
+sign \x5520 14-146-2
+sign \x5521 14-46-4
+sign \x5522 15-25-4
+sign \x5523 125-146-5
+sign \x5524 1235-12456-5
+sign \x5526 24-345-3
+sign \x5527 13-16-3
+sign \x5528 125-25-4
+sign \x5529 25-3
+sign \x552A 12345-1356-4
+sign \x552B 1456-2
+sign \x552C 1235-34-4
+sign \x552D 245-16-5
+sign \x552E 24-12356-5
+sign \x552F 1246-2
+sign \x5530 24-35-3
+sign \x5531 12-1346-5
+sign \x5532 156-2
+sign \x5533 14-16-5
+sign \x5534 245-46-5
+sign \x5535 1236-4
+sign \x5536 13-346-5
+sign \x5537 234-1
+sign \x5538 1345-2345-5
+sign \x5539 1256-3
+sign \x553A 124-2345-4
+sign \x553B 14-2456-4
+sign \x553C 24-345-5
+sign \x553D 15-16-3
+sign \x553E 124-25-5
+sign \x553F 1235-34-3
+sign \x5540 26-2
+sign \x5541 1-12356-3
+sign \x5542 1345-12356-5
+sign \x5543 123-136-4
+sign \x5544 1-25-2
+sign \x5545 1-25-2
+sign \x5546 24-1346-3
+sign \x5547 145-16-2
+sign \x5548 1235-1356-5
+sign \x5549 14-1236-2
+sign \x554A 345-3
+sign \x554B 15-246-3
+sign \x554C 15-46-3
+sign \x554D 124-123456-3
+sign \x554E 34-4
+sign \x554F 123456-5
+sign \x5550 245-1246-5
+sign \x5551 24-345-5
+sign \x5552 1235-34-3
+sign \x5553 245-16-4
+sign \x5554 245-16-4
+sign \x5555 124-146-2
+sign \x5556 145-1236-5
+sign \x5557 145-1236-5
+sign \x5558 346-5
+sign \x5559 125-156-3
+sign \x555A 124-34-2
+sign \x555B 245-1246-5
+sign \x555C 12-25-5
+sign \x555D 1235-2346-2
+sign \x555E 23456-4
+sign \x555F 245-16-4
+sign \x5560 1-2346-2
+sign \x5561 12345-356-3
+sign \x5562 14-46-4
+sign \x5563 15-2345-2
+sign \x5564 1234-16-2
+sign \x5565 24-345-2
+sign \x5566 14-345-3
+sign \x5567 125-2346-2
+sign \x5568 245-13456-3
+sign \x5569 13-35-5
+sign \x556A 1234-345-3
+sign \x556B 1-2346-4
+sign \x556C 15-2346-5
+sign \x556D 1-12456-4
+sign \x556E 1345-346-5
+sign \x556F 13-25-1
+sign \x5570 14-25-3
+sign \x5571 2345-3
+sign \x5572 145-16-5
+sign \x5573 245-45-2
+sign \x5574 124-1236-3
+sign \x5575 135-126-3
+sign \x5576 145-13456-5
+sign \x5577 14-1346-3
+sign \x5578 15-246-5
+sign \x557A 124-1346-2
+sign \x557B 12-156-5
+sign \x557C 124-16-2
+sign \x557D 1236-2
+sign \x557E 13-234-3
+sign \x557F 124-1236-4
+sign \x5580 123-2346-5
+sign \x5581 1256-2
+sign \x5582 1246-5
+sign \x5583 1345-1236-2
+sign \x5584 24-1236-5
+sign \x5585 1256-5
+sign \x5586 1-2346-2
+sign \x5587 14-345-4
+sign \x5588 13-346-3
+sign \x5589 1235-12356-2
+sign \x558A 1235-1236-4
+sign \x558B 145-346-2
+sign \x558C 1-34-5
+sign \x558D 12-2456-2
+sign \x558E 13-25-3
+sign \x558F 1245-2346-4
+sign \x5590 1256-5
+sign \x5591 1456-3
+sign \x5592 125-1236-2
+sign \x5593 246-3
+sign \x5594 126-3
+sign \x5595 134-2345-4
+sign \x5596 1235-34-2
+sign \x5597 256-4
+sign \x5598 12-12456-4
+sign \x5599 1235-1246-5
+sign \x559A 1235-12456-5
+sign \x559B 1235-12456-5
+sign \x559C 15-16-4
+sign \x559D 1235-2346-3
+sign \x559E 13-16-3
+sign \x559F 123-1246-5
+sign \x55A0 1-12346-4
+sign \x55A1 1246-4
+sign \x55A2 24-345-5
+sign \x55A3 15-1256-4
+sign \x55A4 1235-456-2
+sign \x55A5 145-25-2
+sign \x55A6 1345-346-5
+sign \x55A7 15-45-3
+sign \x55A8 14-46-5
+sign \x55A9 1256-5
+sign \x55AA 15-1346-3
+sign \x55AB 12-156-3
+sign \x55AC 245-246-2
+sign \x55AD 1236-5
+sign \x55AE 145-1236-3
+sign \x55AF 1234-136-3
+sign \x55B0 245-1236-3
+sign \x55B1 14-16-2
+sign \x55B2 246-3
+sign \x55B3 12-345-3
+sign \x55B4 1246-3
+sign \x55B5 134-246-3
+sign \x55B6 13456-2
+sign \x55B7 1234-136-3
+sign \x55B9 123-1246-2
+sign \x55BA 15-16-5
+sign \x55BB 1256-5
+sign \x55BC 13-346-2
+sign \x55BD 14-12356-2
+sign \x55BE 123-34-5
+sign \x55BF 125-146-5
+sign \x55C0 15-236-5
+sign \x55C1 124-16-2
+sign \x55C2 246-2
+sign \x55C3 1235-2346-5
+sign \x55C4 24-345-5
+sign \x55C5 15-234-5
+sign \x55C6 245-46-5
+sign \x55C7 15-2346-5
+sign \x55C8 235-3
+sign \x55C9 15-34-5
+sign \x55CA 1235-12346-4
+sign \x55CB 15-346-2
+sign \x55CC 16-5
+sign \x55CD 24-25-5
+sign \x55CE 134-345-3
+sign \x55CF 12-345-3
+sign \x55D0 15-23456-5
+sign \x55D1 123-2346-5
+sign \x55D2 124-345-5
+sign \x55D3 15-1346-4
+sign \x55D4 12-136-3
+sign \x55D5 1245-34-5
+sign \x55D6 15-12356-3
+sign \x55D7 35-3
+sign \x55D8 13-16-3
+sign \x55D9 1234-1346-4
+sign \x55DA 34-3
+sign \x55DB 15-2345-2
+sign \x55DC 24-156-5
+sign \x55DD 13-2346-2
+sign \x55DE 125-156-3
+sign \x55DF 13-346-3
+sign \x55E0 14-25-5
+sign \x55E1 12346-3
+sign \x55E2 35-5
+sign \x55E3 15-156-5
+sign \x55E4 12-156-3
+sign \x55E5 1235-146-2
+sign \x55E6 15-25-3
+sign \x55E7 36-1245-1-123-36
+sign \x55E8 1235-2456-5
+sign \x55E9 15-25-4
+sign \x55EA 245-1456-2
+sign \x55EB 1345-346-5
+sign \x55EC 1235-2346-3
+sign \x55EE 15-2456-5
+sign \x55EF 136-4
+sign \x55F0 13-2346-5
+sign \x55F1 1345-345-2
+sign \x55F2 145-346-3
+sign \x55F3 2456-5
+sign \x55F5 124-12346-3
+sign \x55F6 135-16-5
+sign \x55F7 146-2
+sign \x55F8 146-2
+sign \x55F9 14-2345-2
+sign \x55FA 125-1246-3
+sign \x55FB 1-2346-4
+sign \x55FC 134-126-5
+sign \x55FD 15-12356-5
+sign \x55FE 15-12356-4
+sign \x55FF 124-1236-4
+sign \x5600 125-2346-2
+sign \x5601 125-345-3
+sign \x5602 13-246-5
+sign \x5603 12-12346-3
+sign \x5604 13-246-3
+sign \x5605 123-2456-4
+sign \x5606 124-1236-5
+sign \x5607 15-1236-3
+sign \x5608 245-146-2
+sign \x5609 13-23456-3
+sign \x560A 2456-2
+sign \x560B 15-246-3
+sign \x560C 1234-246-3
+sign \x560D 14-12356-2
+sign \x560E 13-345-3
+sign \x560F 13-34-4
+sign \x5610 15-246-3
+sign \x5611 1235-34-3
+sign \x5612 1235-1246-5
+sign \x5613 13-25-3
+sign \x5614 12356-4
+sign \x5615 15-2345-3
+sign \x5616 125-2346-2
+sign \x5617 12-1346-2
+sign \x5618 15-1256-3
+sign \x5619 1234-126-2
+sign \x561A 145-2346-2
+sign \x561B 134-345-1
+sign \x561C 134-345-4
+sign \x561D 1235-34-2
+sign \x561E 14-356-1
+sign \x561F 145-34-3
+sign \x5620 13-345-3
+sign \x5621 124-1346-3
+sign \x5622 346-4
+sign \x5623 135-1356-3
+sign \x5624 13456-3
+sign \x5626 13-246-5
+sign \x5627 134-16-5
+sign \x5628 15-246-5
+sign \x5629 1235-35-2
+sign \x562A 134-2456-4
+sign \x562B 1245-1236-2
+sign \x562C 12-2356-5
+sign \x562D 1234-1356-3
+sign \x562E 14-146-2
+sign \x562F 15-246-5
+sign \x5630 13-16-3
+sign \x5631 1-34-4
+sign \x5632 12-146-2
+sign \x5633 123-2356-5
+sign \x5634 125-1246-4
+sign \x5635 15-246-3
+sign \x5636 15-156-3
+sign \x5637 1235-146-2
+sign \x5638 34-4
+sign \x5639 14-246-2
+sign \x563A 245-246-2
+sign \x563B 15-16-3
+sign \x563C 15-234-5
+sign \x563D 124-1236-3
+sign \x563E 124-1236-2
+sign \x563F 1235-356-3
+sign \x5640 15-123456-5
+sign \x5641 34-5
+sign \x5642 125-123456-4
+sign \x5643 12345-1236-3
+sign \x5644 12-156-3
+sign \x5645 1235-1246-3
+sign \x5646 245-1236-4
+sign \x5647 12-456-2
+sign \x5648 245-34-5
+sign \x5649 145-1236-5
+sign \x564A 1256-5
+sign \x564B 124-123456-3
+sign \x564C 245-1356-3
+sign \x564D 13-246-5
+sign \x564E 346-3
+sign \x564F 15-16-3
+sign \x5650 245-16-5
+sign \x5651 1235-146-2
+sign \x5652 14-2345-2
+sign \x5653 15-1256-3
+sign \x5654 145-1356-3
+sign \x5655 1235-1246-3
+sign \x5656 1456-2
+sign \x5657 1234-34-3
+sign \x5658 13-236-3
+sign \x5659 245-1456-2
+sign \x565A 15-256-2
+sign \x565B 1345-346-5
+sign \x565C 14-34-3
+sign \x565D 15-156-3
+sign \x565E 2345-4
+sign \x565F 13456-5
+sign \x5660 145-345-2
+sign \x5661 1-1236-3
+sign \x5662 1256-4
+sign \x5663 1-12356-5
+sign \x5664 13-1456-5
+sign \x5665 1345-12346-2
+sign \x5666 236-3
+sign \x5667 1235-1246-5
+sign \x5668 245-16-5
+sign \x5669 2346-5
+sign \x566A 125-146-5
+sign \x566B 16-3
+sign \x566C 24-156-5
+sign \x566D 13-246-5
+sign \x566E 45-5
+sign \x566F 2456-5
+sign \x5670 235-3
+sign \x5671 15-236-3
+sign \x5672 123-2356-5
+sign \x5673 1256-4
+sign \x5674 1234-136-3
+sign \x5675 145-146-5
+sign \x5676 13-2346-2
+sign \x5677 135-345-1
+sign \x5678 145-123456-5
+sign \x5679 145-1346-3
+sign \x567B 15-2456-1
+sign \x567C 1234-16-3
+sign \x567D 1234-16-4
+sign \x567E 1456-3
+sign \x567F 125-1246-4
+sign \x5680 1345-13456-2
+sign \x5681 145-16-2
+sign \x5682 14-1236-5
+sign \x5683 124-345-5
+sign \x5684 1235-25-5
+sign \x5685 1245-34-2
+sign \x5686 1235-146-3
+sign \x5687 15-23456-5
+sign \x5688 23456-5
+sign \x5689 145-25-3
+sign \x568A 15-16-5
+sign \x568B 12-12356-2
+sign \x568C 13-16-5
+sign \x568D 13-1456-5
+sign \x568E 1235-146-2
+sign \x568F 124-16-5
+sign \x5690 12-1346-2
+sign \x5693 135-345-1
+sign \x5694 124-16-5
+sign \x5695 14-34-3
+sign \x5696 1235-1246-5
+sign \x5697 135-126-3
+sign \x5698 234-3
+sign \x5699 1345-346-5
+sign \x569A 1456-2
+sign \x569B 1235-34-5
+sign \x569C 134-126-5
+sign \x569D 1235-456-3
+sign \x569E 1-2346-2
+sign \x569F 14-16-2
+sign \x56A0 14-234-2
+sign \x56A2 1345-1346-2
+sign \x56A3 15-246-3
+sign \x56A4 134-126-2
+sign \x56A5 2345-5
+sign \x56A6 14-16-5
+sign \x56A7 14-34-2
+sign \x56A8 14-12346-2
+sign \x56A9 12345-34-2
+sign \x56AA 145-1236-5
+sign \x56AB 12-136-5
+sign \x56AC 1234-1456-2
+sign \x56AD 1234-16-4
+sign \x56AE 15-46-5
+sign \x56AF 1235-25-5
+sign \x56B0 134-126-2
+sign \x56B1 15-16-5
+sign \x56B2 145-25-4
+sign \x56B3 123-34-5
+sign \x56B4 2345-2
+sign \x56B5 12-1236-2
+sign \x56B6 13456-3
+sign \x56B7 1245-1346-4
+sign \x56B8 145-2345-4
+sign \x56B9 14-345-3
+sign \x56BA 124-345-5
+sign \x56BB 15-246-3
+sign \x56BC 13-236-2
+sign \x56BD 12-25-5
+sign \x56BE 1235-12456-3
+sign \x56BF 1235-25-5
+sign \x56C0 1-12456-4
+sign \x56C1 1345-346-5
+sign \x56C2 15-246-3
+sign \x56C3 245-345-5
+sign \x56C4 14-16-2
+sign \x56C5 12-1236-4
+sign \x56C6 12-2456-5
+sign \x56C7 14-16-5
+sign \x56C8 16-5
+sign \x56C9 14-25-3
+sign \x56CA 1345-1346-2
+sign \x56CB 125-1236-5
+sign \x56CC 15-34-3
+sign \x56CD 15-16-4
+sign \x56CF 13-2345-3
+sign \x56D0 125-345-2
+sign \x56D1 1-34-4
+sign \x56D2 14-1236-2
+sign \x56D3 1345-346-5
+sign \x56D4 1345-1346-2
+sign \x56D7 1246-2
+sign \x56D8 1235-1246-2
+sign \x56D9 1456-3
+sign \x56DA 245-234-2
+sign \x56DB 15-156-5
+sign \x56DC 1345-1456-2
+sign \x56DD 13-2345-4
+sign \x56DE 1235-1246-2
+sign \x56DF 15-1456-5
+sign \x56E0 1456-3
+sign \x56E1 1345-1236-3
+sign \x56E2 124-12456-2
+sign \x56E3 124-12456-2
+sign \x56E4 124-123456-2
+sign \x56E5 123-1346-5
+sign \x56E6 45-3
+sign \x56E7 13-235-4
+sign \x56E8 1234-2345-3
+sign \x56E9 256-5
+sign \x56EA 245-12346-3
+sign \x56EB 1235-34-2
+sign \x56EC 1235-1246-2
+sign \x56ED 45-2
+sign \x56EE 2346-2
+sign \x56EF 13-25-2
+sign \x56F0 123-123456-5
+sign \x56F1 245-12346-3
+sign \x56F2 1246-2
+sign \x56F3 124-34-2
+sign \x56F4 1246-2
+sign \x56F5 14-123456-2
+sign \x56F6 13-25-2
+sign \x56F7 13-256-3
+sign \x56F8 1245-156-5
+sign \x56F9 14-13456-2
+sign \x56FA 13-34-5
+sign \x56FB 13-25-2
+sign \x56FC 124-2456-3
+sign \x56FD 13-25-2
+sign \x56FE 124-34-2
+sign \x56FF 234-5
+sign \x5700 13-25-2
+sign \x5701 1456-2
+sign \x5702 1235-123456-5
+sign \x5703 1234-34-4
+sign \x5704 1256-4
+sign \x5705 1235-1236-2
+sign \x5706 45-2
+sign \x5707 14-123456-2
+sign \x5708 245-45-3
+sign \x5709 1256-4
+sign \x570A 245-13456-3
+sign \x570B 13-25-2
+sign \x570C 12-12456-3
+sign \x570D 1246-2
+sign \x570E 45-2
+sign \x570F 245-45-3
+sign \x5710 123-34-3
+sign \x5711 12345-34-5
+sign \x5712 45-2
+sign \x5713 45-2
+sign \x5714 2346-5
+sign \x5716 124-34-2
+sign \x5717 124-34-2
+sign \x5718 124-12456-2
+sign \x5719 14-236-5
+sign \x571A 1235-1246-5
+sign \x571B 16-5
+sign \x571C 45-2
+sign \x571D 14-12456-2
+sign \x571E 14-12456-2
+sign \x571F 124-34-4
+sign \x5720 23456-5
+sign \x5721 124-34-4
+sign \x5722 124-13456-4
+sign \x5723 123-34-3
+sign \x5724 1234-34-4
+sign \x5725 14-34-5
+sign \x5727 23456-3
+sign \x5728 125-2456-5
+sign \x5729 15-1256-3
+sign \x572A 16-3
+sign \x572B 1256-5
+sign \x572C 34-3
+sign \x572D 13-1246-3
+sign \x572E 1234-16-4
+sign \x572F 16-2
+sign \x5730 145-16-5
+sign \x5731 245-2345-3
+sign \x5732 245-2345-3
+sign \x5733 13-256-5
+sign \x5734 1-25-2
+sign \x5735 145-1346-5
+sign \x5736 245-23456-5
+sign \x5739 123-456-5
+sign \x573A 12-1346-4
+sign \x573B 245-16-2
+sign \x573C 1345-346-5
+sign \x573D 134-126-5
+sign \x573E 15-2346-5
+sign \x573F 13-23456-2
+sign \x5740 1-156-4
+sign \x5741 1-156-4
+sign \x5742 135-1236-4
+sign \x5743 15-256-3
+sign \x5744 124-12356-2
+sign \x5745 245-1456-4
+sign \x5746 12345-136-2
+sign \x5747 13-256-3
+sign \x5748 123-1356-3
+sign \x5749 124-123456-2
+sign \x574A 12345-1346-3
+sign \x574B 12345-136-5
+sign \x574C 135-136-5
+sign \x574D 124-1236-3
+sign \x574E 123-1236-4
+sign \x574F 1235-2356-5
+sign \x5750 125-25-5
+sign \x5751 123-1356-3
+sign \x5752 135-16-5
+sign \x5753 15-13456-2
+sign \x5754 145-16-5
+sign \x5755 13-13456-3
+sign \x5756 13-16-5
+sign \x5757 123-2356-5
+sign \x5758 145-16-4
+sign \x5759 13-13456-3
+sign \x575A 13-2345-3
+sign \x575B 124-1236-2
+sign \x575C 14-16-5
+sign \x575D 135-345-5
+sign \x575E 34-5
+sign \x575F 12345-136-2
+sign \x5760 1-1246-5
+sign \x5761 1234-126-3
+sign \x5762 1234-1236-4
+sign \x5763 124-1346-2
+sign \x5764 123-123456-3
+sign \x5765 245-1256-3
+sign \x5766 124-1236-4
+sign \x5767 1-156-3
+sign \x5768 124-25-2
+sign \x5769 13-1236-3
+sign \x576A 1234-13456-2
+sign \x576B 145-2345-5
+sign \x576C 13-35-5
+sign \x576D 1345-16-2
+sign \x576E 124-2456-2
+sign \x576F 1234-356-3
+sign \x5770 13-235-3
+sign \x5771 46-4
+sign \x5772 12345-126-2
+sign \x5773 146-3
+sign \x5774 14-234-5
+sign \x5775 245-234-3
+sign \x5776 134-34-5
+sign \x5777 123-2346-4
+sign \x5778 13-12356-5
+sign \x5779 15-236-5
+sign \x577A 135-345-2
+sign \x577B 12-156-2
+sign \x577C 12-2346-5
+sign \x577D 14-13456-2
+sign \x577E 1-34-5
+sign \x577F 12345-34-5
+sign \x5780 1235-34-3
+sign \x5781 1-156-5
+sign \x5782 12-1246-2
+sign \x5783 14-2346-5
+sign \x5784 14-12346-4
+sign \x5785 14-12346-4
+sign \x5786 14-34-2
+sign \x5787 146-5
+sign \x5789 1234-146-2
+sign \x578B 15-13456-2
+sign \x578C 124-12346-4
+sign \x578D 13-16-5
+sign \x578E 123-2346-5
+sign \x578F 14-34-5
+sign \x5790 245-156-2
+sign \x5791 12-156-4
+sign \x5792 14-356-4
+sign \x5793 13-2456-3
+sign \x5794 1456-3
+sign \x5795 1235-12356-5
+sign \x5796 145-1246-3
+sign \x5797 1-146-5
+sign \x5798 12345-34-2
+sign \x5799 13-456-3
+sign \x579A 246-2
+sign \x579B 145-25-4
+sign \x579C 145-25-4
+sign \x579D 13-1246-4
+sign \x579E 12-345-2
+sign \x579F 46-2
+sign \x57A0 1456-2
+sign \x57A1 12345-345-2
+sign \x57A2 13-12356-5
+sign \x57A3 45-2
+sign \x57A4 145-346-2
+sign \x57A5 15-346-2
+sign \x57A6 123-136-4
+sign \x57A7 13-235-3
+sign \x57A8 24-12356-4
+sign \x57A9 2346-5
+sign \x57AB 145-2345-5
+sign \x57AC 1235-12346-2
+sign \x57AD 34-5
+sign \x57AE 123-35-4
+sign \x57B1 145-1346-5
+sign \x57B2 123-2456-4
+sign \x57B4 1345-146-4
+sign \x57B5 2345-4
+sign \x57B6 15-13456-3
+sign \x57B7 15-2345-5
+sign \x57B8 12456-2
+sign \x57B9 135-1346-3
+sign \x57BA 1234-12356-2
+sign \x57BB 135-345-5
+sign \x57BC 16-5
+sign \x57BD 1456-5
+sign \x57BE 1235-1236-5
+sign \x57BF 15-1256-5
+sign \x57C0 12-1246-2
+sign \x57C1 245-136-5
+sign \x57C2 13-1356-4
+sign \x57C3 2456-3
+sign \x57C4 1234-1356-2
+sign \x57C5 12345-1346-2
+sign \x57C6 245-236-5
+sign \x57C7 235-4
+sign \x57C8 15-256-5
+sign \x57C9 13-23456-2
+sign \x57CA 145-16-5
+sign \x57CB 134-2456-2
+sign \x57CC 14-1346-5
+sign \x57CD 15-45-5
+sign \x57CE 12-1356-2
+sign \x57CF 2345-2
+sign \x57D0 13-1456-3
+sign \x57D1 1-2346-2
+sign \x57D2 14-2346-5
+sign \x57D3 14-2346-5
+sign \x57D4 1234-34-4
+sign \x57D5 12-1356-2
+sign \x57D7 135-34-5
+sign \x57D8 24-156-2
+sign \x57D9 15-45-3
+sign \x57DA 13-25-3
+sign \x57DB 13-235-3
+sign \x57DC 346-4
+sign \x57DD 1345-2345-5
+sign \x57DE 145-16-4
+sign \x57DF 1256-5
+sign \x57E0 135-34-5
+sign \x57E1 34-5
+sign \x57E2 245-45-2
+sign \x57E3 15-1246-5
+sign \x57E4 1234-16-2
+sign \x57E5 12-1356-3
+sign \x57E6 12456-4
+sign \x57E7 13-1256-5
+sign \x57E8 14-123456-4
+sign \x57E9 1-1356-3
+sign \x57EA 123-12346-3
+sign \x57EB 12-12346-4
+sign \x57EC 145-12346-3
+sign \x57ED 145-2456-5
+sign \x57EE 124-1236-5
+sign \x57EF 1236-4
+sign \x57F0 245-2456-5
+sign \x57F1 24-34-2
+sign \x57F2 135-1356-4
+sign \x57F3 123-1236-4
+sign \x57F4 1-156-2
+sign \x57F5 145-25-4
+sign \x57F6 24-156-5
+sign \x57F7 1-156-2
+sign \x57F8 16-5
+sign \x57F9 1234-356-2
+sign \x57FA 13-16-3
+sign \x57FB 1-123456-4
+sign \x57FC 245-16-2
+sign \x57FD 15-146-4
+sign \x57FE 13-1256-5
+sign \x57FF 1345-16-2
+sign \x5800 123-34-3
+sign \x5801 123-25-5
+sign \x5802 124-1346-2
+sign \x5803 123-123456-3
+sign \x5804 1345-16-4
+sign \x5805 13-2345-3
+sign \x5806 145-1246-3
+sign \x5807 13-1456-4
+sign \x5808 13-1346-3
+sign \x5809 1256-5
+sign \x580A 2346-5
+sign \x580B 1234-1356-5
+sign \x580C 13-34-5
+sign \x580D 124-34-5
+sign \x580E 135-345-1
+sign \x5810 2456-2
+sign \x5811 245-2345-5
+sign \x5813 1236-5
+sign \x5814 135-345-1
+sign \x5815 145-25-5
+sign \x5816 1345-146-4
+sign \x5817 124-34-2
+sign \x5818 12-1356-2
+sign \x5819 1456-3
+sign \x581A 1235-123456-2
+sign \x581B 135-16-5
+sign \x581C 14-2345-5
+sign \x581D 13-25-3
+sign \x581E 145-346-2
+sign \x581F 1-12456-5
+sign \x5820 1235-12356-5
+sign \x5821 135-146-4
+sign \x5822 135-146-4
+sign \x5823 1256-2
+sign \x5824 124-16-2
+sign \x5825 134-1356-2
+sign \x5826 13-346-3
+sign \x5827 1245-12456-2
+sign \x5828 13-346-2
+sign \x5829 13-1356-5
+sign \x582A 123-1236-3
+sign \x582B 125-12346-3
+sign \x582C 1256-3
+sign \x582D 1235-456-2
+sign \x582E 2346-5
+sign \x582F 246-2
+sign \x5830 2345-4
+sign \x5831 135-146-5
+sign \x5832 13-16-2
+sign \x5833 134-356-2
+sign \x5834 12-1346-4
+sign \x5835 145-34-4
+sign \x5836 124-25-3
+sign \x5837 1236-4
+sign \x5838 12345-1356-2
+sign \x5839 1-12346-5
+sign \x583A 13-346-5
+sign \x583B 1-136-3
+sign \x583C 12345-1356-3
+sign \x583D 13-1346-3
+sign \x583E 12-12456-4
+sign \x583F 13-2345-4
+sign \x5842 15-46-5
+sign \x5843 1235-456-3
+sign \x5844 14-1356-2
+sign \x5845 145-12456-5
+sign \x5847 15-45-3
+sign \x5848 13-16-2
+sign \x5849 13-16-2
+sign \x584A 123-2356-5
+sign \x584B 13456-2
+sign \x584C 124-345-3
+sign \x584D 12-1356-2
+sign \x584E 235-4
+sign \x584F 123-2456-4
+sign \x5850 15-34-5
+sign \x5851 15-34-5
+sign \x5852 24-156-2
+sign \x5853 134-16-5
+sign \x5854 124-345-4
+sign \x5855 12346-4
+sign \x5856 12-1356-2
+sign \x5857 124-34-2
+sign \x5858 124-1346-2
+sign \x5859 245-236-5
+sign \x585A 1-12346-4
+sign \x585B 14-16-5
+sign \x585C 1234-1356-2
+sign \x585D 135-1346-5
+sign \x585E 15-2456-5
+sign \x585F 125-1346-5
+sign \x5860 145-1246-3
+sign \x5861 124-2345-2
+sign \x5862 34-5
+sign \x5863 12-1356-4
+sign \x5864 15-45-3
+sign \x5865 13-2346-2
+sign \x5866 1-136-5
+sign \x5867 2456-5
+sign \x5868 13-12346-3
+sign \x5869 2345-2
+sign \x586A 123-1236-4
+sign \x586B 124-2345-2
+sign \x586C 45-2
+sign \x586D 123456-3
+sign \x586E 15-346-5
+sign \x586F 14-234-3
+sign \x5871 14-1346-4
+sign \x5872 12-1346-4
+sign \x5873 1234-1356-2
+sign \x5874 135-1356-5
+sign \x5875 12-136-2
+sign \x5876 14-34-5
+sign \x5877 14-34-4
+sign \x5878 12356-4
+sign \x5879 245-2345-5
+sign \x587A 134-356-2
+sign \x587B 134-126-5
+sign \x587C 1-12456-3
+sign \x587D 24-456-4
+sign \x587E 24-34-2
+sign \x587F 14-12356-2
+sign \x5880 12-156-2
+sign \x5881 134-1236-5
+sign \x5882 135-246-3
+sign \x5883 13-13456-5
+sign \x5884 245-16-3
+sign \x5885 24-34-5
+sign \x5886 145-346-2
+sign \x5887 1-1346-3
+sign \x5888 123-1236-5
+sign \x5889 235-3
+sign \x588A 145-2345-5
+sign \x588B 12-136-4
+sign \x588C 1-156-3
+sign \x588D 15-16-5
+sign \x588E 13-25-3
+sign \x588F 245-46-4
+sign \x5890 13-1456-4
+sign \x5891 145-16-3
+sign \x5892 145-16-3
+sign \x5893 134-34-5
+sign \x5894 245-1246-3
+sign \x5895 2345-5
+sign \x5896 124-345-4
+sign \x5897 125-1356-3
+sign \x5898 245-16-2
+sign \x5899 245-46-2
+sign \x589A 14-46-2
+sign \x589C 1-1246-5
+sign \x589D 245-246-3
+sign \x589E 125-1356-3
+sign \x589F 15-1256-3
+sign \x58A0 24-1236-5
+sign \x58A1 24-1236-5
+sign \x58A2 135-345-2
+sign \x58A3 1234-34-2
+sign \x58A4 123-2356-5
+sign \x58A5 145-12346-4
+sign \x58A6 12345-1236-2
+sign \x58A7 245-236-5
+sign \x58A8 134-126-5
+sign \x58A9 145-123456-3
+sign \x58AA 145-123456-3
+sign \x58AB 245-256-3
+sign \x58AC 145-16-5
+sign \x58AD 24-1356-5
+sign \x58AE 145-25-5
+sign \x58AF 145-25-5
+sign \x58B0 124-1236-2
+sign \x58B1 145-1356-5
+sign \x58B2 34-4
+sign \x58B3 12345-136-2
+sign \x58B4 1235-456-2
+sign \x58B5 124-1236-2
+sign \x58B6 145-345-3
+sign \x58B7 346-5
+sign \x58BA 1256-5
+sign \x58BB 245-46-2
+sign \x58BC 13-16-2
+sign \x58BD 245-246-3
+sign \x58BE 123-136-4
+sign \x58BF 16-5
+sign \x58C0 1234-16-2
+sign \x58C1 135-16-5
+sign \x58C2 145-2345-5
+sign \x58C3 13-46-3
+sign \x58C4 346-4
+sign \x58C5 235-4
+sign \x58C6 15-236-2
+sign \x58C7 124-1236-2
+sign \x58C8 14-1236-4
+sign \x58C9 13-1256-5
+sign \x58CA 1235-2356-5
+sign \x58CB 145-1346-5
+sign \x58CC 1245-1346-4
+sign \x58CD 245-2345-5
+sign \x58CE 15-256-3
+sign \x58CF 13-2345-5
+sign \x58D0 15-16-4
+sign \x58D1 1235-25-5
+sign \x58D2 2456-5
+sign \x58D3 23456-3
+sign \x58D4 145-146-4
+sign \x58D5 1235-146-2
+sign \x58D6 1245-12456-2
+sign \x58D8 14-356-4
+sign \x58D9 123-456-5
+sign \x58DA 14-34-2
+sign \x58DB 2345-2
+sign \x58DC 124-1236-2
+sign \x58DD 1246-4
+sign \x58DE 1235-2356-5
+sign \x58DF 14-12346-4
+sign \x58E0 14-12346-4
+sign \x58E1 1245-1246-5
+sign \x58E2 14-16-5
+sign \x58E3 14-1456-2
+sign \x58E4 1245-1346-4
+sign \x58E6 15-256-3
+sign \x58E7 2345-2
+sign \x58E8 14-356-2
+sign \x58E9 135-345-5
+sign \x58EB 24-156-5
+sign \x58EC 1245-136-2
+sign \x58EE 1-456-5
+sign \x58EF 1-456-5
+sign \x58F0 24-1356-3
+sign \x58F1 16-3
+sign \x58F2 134-2456-5
+sign \x58F3 123-2346-2
+sign \x58F4 1-34-4
+sign \x58F5 1-456-5
+sign \x58F6 123-123456-4
+sign \x58F7 1235-34-2
+sign \x58F8 123-123456-4
+sign \x58F9 16-3
+sign \x58FA 1235-34-2
+sign \x58FB 15-1256-5
+sign \x58FC 123-123456-4
+sign \x58FD 24-12356-5
+sign \x58FE 134-1346-4
+sign \x58FF 125-123456-4
+sign \x5900 24-12356-5
+sign \x5901 16-3
+sign \x5902 1-12346-3
+sign \x5903 13-34-3
+sign \x5904 12-34-5
+sign \x5905 13-46-5
+sign \x5906 12345-1356-2
+sign \x5907 135-356-5
+sign \x5909 135-2345-5
+sign \x590A 15-1246-3
+sign \x590B 245-256-3
+sign \x590C 14-13456-2
+sign \x590D 12345-34-5
+sign \x590E 125-25-5
+sign \x590F 15-23456-5
+sign \x5910 15-235-5
+sign \x5912 1345-146-2
+sign \x5913 15-23456-5
+sign \x5914 123-1246-2
+sign \x5915 15-16-5
+sign \x5916 2356-5
+sign \x5917 45-5
+sign \x5918 134-146-4
+sign \x5919 15-34-5
+sign \x591A 145-25-3
+sign \x591B 145-25-3
+sign \x591C 346-5
+sign \x591D 245-13456-2
+sign \x591F 13-12356-5
+sign \x5920 13-12356-5
+sign \x5921 245-16-5
+sign \x5922 134-1356-5
+sign \x5923 134-1356-5
+sign \x5924 1456-2
+sign \x5925 1235-25-4
+sign \x5926 12-136-5
+sign \x5927 145-345-5
+sign \x5928 125-2346-5
+sign \x5929 124-2345-3
+sign \x592A 124-2456-5
+sign \x592B 12345-34-3
+sign \x592C 13-2356-5
+sign \x592D 246-3
+sign \x592E 46-3
+sign \x592F 1235-1346-4
+sign \x5930 13-146-4
+sign \x5931 24-156-3
+sign \x5932 135-136-4
+sign \x5933 124-2456-5
+sign \x5934 124-12356-2
+sign \x5935 2345-4
+sign \x5936 135-16-4
+sign \x5937 16-2
+sign \x5938 123-35-3
+sign \x5939 13-23456-2
+sign \x593A 145-25-2
+sign \x593C 135-345-1
+sign \x593D 256-5
+sign \x593E 13-23456-2
+sign \x593F 1234-345-3
+sign \x5940 134-1346-2
+sign \x5941 14-2345-2
+sign \x5942 1235-12456-5
+sign \x5943 145-16-5
+sign \x5944 2345-3
+sign \x5945 1234-146-5
+sign \x5946 245-45-4
+sign \x5947 245-16-2
+sign \x5948 1345-2456-5
+sign \x5949 12345-1356-5
+sign \x594A 15-346-2
+sign \x594B 12345-136-5
+sign \x594C 145-2345-4
+sign \x594E 123-1246-2
+sign \x594F 125-12356-5
+sign \x5950 1235-12456-5
+sign \x5951 245-16-5
+sign \x5952 123-2456-3
+sign \x5953 24-2346-3
+sign \x5954 135-136-3
+sign \x5955 16-5
+sign \x5956 13-46-4
+sign \x5957 124-146-5
+sign \x5958 125-1346-5
+sign \x5959 135-136-4
+sign \x595A 15-16-3
+sign \x595B 15-46-4
+sign \x595C 12345-356-4
+sign \x595D 145-246-3
+sign \x595E 15-256-5
+sign \x595F 123-1356-3
+sign \x5960 145-2345-5
+sign \x5961 146-5
+sign \x5962 24-2346-3
+sign \x5963 12346-4
+sign \x5964 1234-1236-4
+sign \x5965 146-5
+sign \x5966 34-5
+sign \x5967 146-5
+sign \x5968 13-46-4
+sign \x5969 14-2345-2
+sign \x596A 145-25-2
+sign \x596B 256-3
+sign \x596C 13-46-4
+sign \x596D 24-156-5
+sign \x596E 12345-136-5
+sign \x596F 1235-25-5
+sign \x5970 135-356-5
+sign \x5971 14-2345-2
+sign \x5972 145-25-2
+sign \x5973 1345-1256-4
+sign \x5974 1345-34-2
+sign \x5975 145-13456-3
+sign \x5976 1345-2456-4
+sign \x5977 245-2345-3
+sign \x5978 13-2345-3
+sign \x5979 1248-345-3
+sign \x597A 13-234-4
+sign \x597B 1345-1236-2
+sign \x597C 12-345-4
+sign \x597D 1235-146-4
+sign \x597E 15-2345-3
+sign \x597F 12345-1236-5
+sign \x5980 13-16-4
+sign \x5981 24-25-5
+sign \x5982 1245-34-2
+sign \x5983 12345-356-3
+sign \x5984 456-5
+sign \x5985 1235-12346-2
+sign \x5986 1-456-3
+sign \x5987 12345-34-5
+sign \x5988 134-345-3
+sign \x5989 145-1236-3
+sign \x598A 1245-136-5
+sign \x598B 12345-34-3
+sign \x598C 13-13456-5
+sign \x598D 2345-2
+sign \x598E 1235-2456-5
+sign \x598F 123456-5
+sign \x5990 1-12346-3
+sign \x5991 1234-345-3
+sign \x5992 145-34-5
+sign \x5993 13-16-5
+sign \x5994 123-1356-3
+sign \x5995 1-12346-5
+sign \x5996 246-3
+sign \x5997 13-1456-5
+sign \x5998 256-2
+sign \x5999 134-246-5
+sign \x599A 1234-356-3
+sign \x599C 236-5
+sign \x599D 1-456-3
+sign \x599E 1345-234-3
+sign \x599F 2345-5
+sign \x59A0 1345-345-5
+sign \x59A1 15-1456-3
+sign \x59A2 12345-136-2
+sign \x59A3 135-16-4
+sign \x59A4 1256-2
+sign \x59A5 124-25-4
+sign \x59A6 12345-1356-3
+sign \x59A7 45-2
+sign \x59A8 12345-1346-2
+sign \x59A9 34-4
+sign \x59AA 1256-5
+sign \x59AB 13-1246-3
+sign \x59AC 145-34-5
+sign \x59AD 135-345-2
+sign \x59AE 1345-16-2
+sign \x59AF 1-12356-2
+sign \x59B0 1-25-2
+sign \x59B1 1-146-3
+sign \x59B2 145-345-2
+sign \x59B3 13457-16-4
+sign \x59B4 12456-4
+sign \x59B5 124-12356-4
+sign \x59B6 15-45-2
+sign \x59B7 1-156-2
+sign \x59B8 2346-3
+sign \x59B9 134-356-5
+sign \x59BA 134-126-5
+sign \x59BB 245-16-3
+sign \x59BC 135-16-5
+sign \x59BD 24-136-3
+sign \x59BE 245-346-5
+sign \x59BF 2346-3
+sign \x59C0 1235-2346-2
+sign \x59C1 15-1256-4
+sign \x59C2 12345-345-2
+sign \x59C3 1-1356-3
+sign \x59C4 134-1456-2
+sign \x59C5 135-1236-5
+sign \x59C6 134-34-4
+sign \x59C7 12345-34-5
+sign \x59C8 14-13456-2
+sign \x59C9 125-156-4
+sign \x59CA 13-346-4
+sign \x59CB 24-156-4
+sign \x59CC 1245-1236-4
+sign \x59CD 24-1236-3
+sign \x59CE 46-3
+sign \x59CF 245-2345-2
+sign \x59D0 13-346-4
+sign \x59D1 13-34-3
+sign \x59D2 15-156-5
+sign \x59D3 15-13456-5
+sign \x59D4 1246-4
+sign \x59D5 125-156-3
+sign \x59D6 13-1256-5
+sign \x59D7 24-1236-3
+sign \x59D8 1234-1456-3
+sign \x59D9 1245-136-5
+sign \x59DA 246-2
+sign \x59DB 124-12346-4
+sign \x59DC 13-46-3
+sign \x59DD 24-34-3
+sign \x59DE 13-16-2
+sign \x59DF 13-2456-3
+sign \x59E0 24-1346-5
+sign \x59E1 13-35-3
+sign \x59E2 13-45-3
+sign \x59E3 13-246-4
+sign \x59E4 13-12356-5
+sign \x59E5 14-146-4
+sign \x59E6 13-2345-3
+sign \x59E7 13-2345-3
+sign \x59E8 16-2
+sign \x59E9 1345-2345-5
+sign \x59EA 1-156-2
+sign \x59EB 13-16-3
+sign \x59EC 13-16-3
+sign \x59ED 15-2345-5
+sign \x59EE 1235-1356-2
+sign \x59EF 13-456-3
+sign \x59F0 13-256-3
+sign \x59F1 123-35-3
+sign \x59F2 2345-5
+sign \x59F3 134-13456-4
+sign \x59F4 14-346-5
+sign \x59F5 1234-356-5
+sign \x59F6 2345-4
+sign \x59F7 234-5
+sign \x59F8 2345-2
+sign \x59F9 12-345-5
+sign \x59FA 15-1456-3
+sign \x59FB 1456-3
+sign \x59FC 24-156-2
+sign \x59FD 13-1246-4
+sign \x59FE 245-45-3
+sign \x59FF 125-156-3
+sign \x5A00 15-12346-3
+sign \x5A01 1246-3
+sign \x5A02 1235-12346-2
+sign \x5A03 35-2
+sign \x5A04 14-12356-2
+sign \x5A05 23456-5
+sign \x5A06 1245-146-2
+sign \x5A07 13-246-3
+sign \x5A08 14-45-4
+sign \x5A09 1234-13456-3
+sign \x5A0A 15-2345-5
+sign \x5A0B 24-146-5
+sign \x5A0C 14-16-4
+sign \x5A0D 12-1356-2
+sign \x5A0E 15-246-5
+sign \x5A0F 134-1346-2
+sign \x5A11 15-25-3
+sign \x5A12 34-4
+sign \x5A13 1246-4
+sign \x5A14 123-2346-5
+sign \x5A15 14-2456-5
+sign \x5A16 12-25-5
+sign \x5A17 124-13456-4
+sign \x5A18 1345-46-2
+sign \x5A19 13456-4
+sign \x5A1A 1345-1236-2
+sign \x5A1B 1256-2
+sign \x5A1C 1345-345-5
+sign \x5A1D 1234-356-3
+sign \x5A1E 1345-356-4
+sign \x5A1F 13-45-3
+sign \x5A20 12-136-2
+sign \x5A21 1-156-5
+sign \x5A22 1235-1236-2
+sign \x5A23 145-16-5
+sign \x5A24 1-456-3
+sign \x5A25 2346-2
+sign \x5A26 1234-1456-2
+sign \x5A27 124-1246-5
+sign \x5A28 1235-1236-5
+sign \x5A29 134-2345-4
+sign \x5A2A 34-2
+sign \x5A2B 2345-2
+sign \x5A2C 34-4
+sign \x5A2D 15-16-3
+sign \x5A2E 2345-2
+sign \x5A2F 1256-2
+sign \x5A30 15-156-5
+sign \x5A31 1256-2
+sign \x5A32 35-3
+sign \x5A33 135-345-1
+sign \x5A34 15-2345-2
+sign \x5A35 13-1256-3
+sign \x5A36 245-1256-4
+sign \x5A37 24-1246-5
+sign \x5A38 245-16-3
+sign \x5A39 15-2345-2
+sign \x5A3A 1-1246-3
+sign \x5A3B 145-12346-3
+sign \x5A3C 12-1346-3
+sign \x5A3D 14-34-5
+sign \x5A3E 2456-4
+sign \x5A3F 2346-3
+sign \x5A40 2346-3
+sign \x5A41 14-12356-2
+sign \x5A42 134-2345-2
+sign \x5A43 245-12346-2
+sign \x5A44 1234-12356-4
+sign \x5A45 13-1256-2
+sign \x5A46 1234-126-2
+sign \x5A47 245-2456-4
+sign \x5A48 145-13456-2
+sign \x5A49 12456-4
+sign \x5A4A 135-246-4
+sign \x5A4B 15-246-3
+sign \x5A4C 24-34-4
+sign \x5A4D 245-16-4
+sign \x5A4E 1235-1246-3
+sign \x5A4F 12345-34-5
+sign \x5A50 25-4
+sign \x5A51 25-4
+sign \x5A52 124-1236-2
+sign \x5A53 12345-356-3
+sign \x5A55 13-346-3
+sign \x5A56 124-2345-3
+sign \x5A57 1345-16-2
+sign \x5A58 245-45-2
+sign \x5A59 13-13456-5
+sign \x5A5A 1235-123456-3
+sign \x5A5B 13-13456-3
+sign \x5A5C 245-2345-3
+sign \x5A5D 145-2345-5
+sign \x5A5E 15-13456-5
+sign \x5A5F 1235-34-5
+sign \x5A60 12456-2
+sign \x5A61 14-2456-2
+sign \x5A62 135-16-5
+sign \x5A63 1456-3
+sign \x5A64 1-12356-3
+sign \x5A65 12-25-5
+sign \x5A66 12345-34-5
+sign \x5A67 245-13456-5
+sign \x5A68 14-123456-2
+sign \x5A69 2345-4
+sign \x5A6A 14-1236-2
+sign \x5A6B 123-123456-3
+sign \x5A6C 1456-2
+sign \x5A6D 23456-5
+sign \x5A6F 14-16-5
+sign \x5A70 145-2345-4
+sign \x5A71 15-2345-2
+sign \x5A73 1235-35-5
+sign \x5A74 13456-3
+sign \x5A75 12-1236-2
+sign \x5A76 24-136-4
+sign \x5A77 124-13456-2
+sign \x5A78 145-1346-5
+sign \x5A79 246-4
+sign \x5A7A 34-5
+sign \x5A7B 1345-1236-5
+sign \x5A7C 12-25-5
+sign \x5A7D 13-23456-4
+sign \x5A7E 124-12356-3
+sign \x5A7F 15-1256-5
+sign \x5A80 1256-2
+sign \x5A81 1246-3
+sign \x5A82 124-16-2
+sign \x5A83 1245-12356-2
+sign \x5A84 134-356-4
+sign \x5A85 145-1236-3
+sign \x5A86 1245-12456-4
+sign \x5A87 245-1456-3
+sign \x5A89 34-3
+sign \x5A8A 245-2345-2
+sign \x5A8B 12-123456-3
+sign \x5A8C 134-146-2
+sign \x5A8D 12345-34-5
+sign \x5A8E 135-345-1
+sign \x5A8F 145-12456-3
+sign \x5A90 15-16-3
+sign \x5A91 1-12346-5
+sign \x5A92 134-356-2
+sign \x5A93 1235-456-2
+sign \x5A94 134-2345-2
+sign \x5A95 2345-4
+sign \x5A96 13456-3
+sign \x5A97 15-45-3
+sign \x5A99 1246-3
+sign \x5A9A 134-356-5
+sign \x5A9B 45-2
+sign \x5A9C 1-136-3
+sign \x5A9D 245-234-3
+sign \x5A9E 24-156-5
+sign \x5A9F 15-346-5
+sign \x5AA0 145-25-5
+sign \x5AA1 14-2345-5
+sign \x5AA2 134-146-5
+sign \x5AA3 1245-1236-4
+sign \x5AA4 15-156-3
+sign \x5AA5 1234-2345-3
+sign \x5AA6 1246-5
+sign \x5AA7 35-3
+sign \x5AA8 13-234-5
+sign \x5AA9 1235-34-2
+sign \x5AAA 146-4
+sign \x5AAC 135-146-4
+sign \x5AAD 15-1256-3
+sign \x5AAE 124-12356-3
+sign \x5AAF 13-1246-3
+sign \x5AB0 125-12356-3
+sign \x5AB1 246-2
+sign \x5AB2 1234-16-5
+sign \x5AB3 15-16-2
+sign \x5AB4 45-2
+sign \x5AB5 13456-5
+sign \x5AB6 1245-12346-2
+sign \x5AB7 1245-34-5
+sign \x5AB8 12-156-3
+sign \x5AB9 14-234-2
+sign \x5ABA 134-356-4
+sign \x5ABB 1234-1236-2
+sign \x5ABC 146-4
+sign \x5ABD 134-345-3
+sign \x5ABE 13-12356-5
+sign \x5ABF 123-1246-5
+sign \x5AC0 245-1456-2
+sign \x5AC1 13-23456-5
+sign \x5AC2 15-146-4
+sign \x5AC3 1-136-3
+sign \x5AC4 45-2
+sign \x5AC5 12-345-3
+sign \x5AC6 235-2
+sign \x5AC7 134-13456-2
+sign \x5AC8 13456-3
+sign \x5AC9 13-16-2
+sign \x5ACA 15-34-5
+sign \x5ACB 1345-246-4
+sign \x5ACC 15-2345-2
+sign \x5ACD 124-146-3
+sign \x5ACE 1234-1346-2
+sign \x5ACF 14-1346-2
+sign \x5AD0 1345-146-4
+sign \x5AD1 135-146-2
+sign \x5AD2 2456-5
+sign \x5AD3 1234-16-5
+sign \x5AD4 1234-1456-2
+sign \x5AD5 16-5
+sign \x5AD6 1234-246-2
+sign \x5AD7 1256-5
+sign \x5AD8 14-356-2
+sign \x5AD9 15-45-2
+sign \x5ADA 134-1236-5
+sign \x5ADB 16-3
+sign \x5ADC 1-1346-3
+sign \x5ADD 123-1346-3
+sign \x5ADE 12-12346-2
+sign \x5ADF 1345-16-5
+sign \x5AE0 14-16-2
+sign \x5AE1 145-16-2
+sign \x5AE2 13-1246-3
+sign \x5AE3 2345-3
+sign \x5AE4 13-1456-5
+sign \x5AE5 1-12456-3
+sign \x5AE6 12-1346-2
+sign \x5AE7 245-2346-5
+sign \x5AE8 1235-1236-3
+sign \x5AE9 1345-136-5
+sign \x5AEA 14-146-5
+sign \x5AEB 134-126-2
+sign \x5AEC 1-2346-3
+sign \x5AED 1235-34-5
+sign \x5AEE 1235-34-5
+sign \x5AEF 146-5
+sign \x5AF0 1345-136-5
+sign \x5AF1 245-46-2
+sign \x5AF3 1234-346-5
+sign \x5AF4 13-34-3
+sign \x5AF5 34-4
+sign \x5AF6 245-246-2
+sign \x5AF7 124-25-4
+sign \x5AF8 1-1236-4
+sign \x5AF9 134-146-2
+sign \x5AFA 15-2345-2
+sign \x5AFB 15-2345-2
+sign \x5AFC 134-126-5
+sign \x5AFD 14-246-2
+sign \x5AFE 14-2345-2
+sign \x5AFF 1235-35-5
+sign \x5B00 13-1246-3
+sign \x5B01 145-1356-3
+sign \x5B02 1-156-3
+sign \x5B03 15-1256-3
+sign \x5B05 1235-35-5
+sign \x5B06 15-16-3
+sign \x5B07 1235-1246-5
+sign \x5B08 1245-146-2
+sign \x5B09 15-16-3
+sign \x5B0A 2345-5
+sign \x5B0B 12-1236-2
+sign \x5B0C 13-246-3
+sign \x5B0D 134-356-4
+sign \x5B0E 12345-1236-5
+sign \x5B0F 12345-1236-3
+sign \x5B10 15-2345-3
+sign \x5B11 16-5
+sign \x5B12 1246-5
+sign \x5B13 13-246-5
+sign \x5B14 12345-34-5
+sign \x5B15 24-156-5
+sign \x5B16 135-16-5
+sign \x5B17 24-1236-5
+sign \x5B18 15-1246-5
+sign \x5B19 245-46-2
+sign \x5B1A 14-2345-2
+sign \x5B1B 15-45-3
+sign \x5B1D 1345-246-4
+sign \x5B1E 145-12346-4
+sign \x5B1F 16-5
+sign \x5B20 245-1236-2
+sign \x5B21 2456-5
+sign \x5B22 1345-46-2
+sign \x5B23 1345-1356-2
+sign \x5B24 134-345-3
+sign \x5B25 124-246-4
+sign \x5B26 12-12356-2
+sign \x5B27 13-1456-5
+sign \x5B28 245-156-2
+sign \x5B29 1256-2
+sign \x5B2A 1234-1456-2
+sign \x5B2C 1245-34-2
+sign \x5B2D 1345-2456-4
+sign \x5B2E 2345-3
+sign \x5B2F 124-2456-2
+sign \x5B30 13456-3
+sign \x5B31 245-1236-2
+sign \x5B32 1345-246-4
+sign \x5B34 13456-2
+sign \x5B35 134-2345-2
+sign \x5B37 134-345-3
+sign \x5B38 24-136-4
+sign \x5B39 15-13456-5
+sign \x5B3A 1345-16-5
+sign \x5B3B 145-34-2
+sign \x5B3C 14-234-4
+sign \x5B3D 45-3
+sign \x5B3E 14-1236-4
+sign \x5B3F 2345-4
+sign \x5B40 24-456-3
+sign \x5B41 14-13456-2
+sign \x5B42 13-246-4
+sign \x5B43 1345-46-2
+sign \x5B44 14-1236-4
+sign \x5B45 15-2345-3
+sign \x5B46 13456-3
+sign \x5B47 24-456-3
+sign \x5B48 24-2356-3
+sign \x5B49 245-45-2
+sign \x5B4A 134-16-4
+sign \x5B4B 14-16-2
+sign \x5B4C 14-45-4
+sign \x5B4D 2345-2
+sign \x5B4E 1-34-4
+sign \x5B4F 14-1236-4
+sign \x5B50 125-156-4
+sign \x5B51 13-346-2
+sign \x5B52 13-236-2
+sign \x5B53 13-236-2
+sign \x5B54 123-12346-4
+sign \x5B55 256-5
+sign \x5B56 125-156-3
+sign \x5B57 125-156-5
+sign \x5B58 245-123456-2
+sign \x5B59 15-123456-3
+sign \x5B5A 12345-34-2
+sign \x5B5B 135-126-2
+sign \x5B5C 125-156-3
+sign \x5B5D 15-246-5
+sign \x5B5E 15-1456-5
+sign \x5B5F 134-1356-5
+sign \x5B60 15-156-5
+sign \x5B61 124-2456-3
+sign \x5B62 135-146-3
+sign \x5B63 13-16-5
+sign \x5B64 13-34-3
+sign \x5B65 1345-34-2
+sign \x5B66 15-236-2
+sign \x5B68 1-12456-4
+sign \x5B69 1235-2456-2
+sign \x5B6A 14-45-2
+sign \x5B6B 15-123456-3
+sign \x5B6C 1235-2356-5
+sign \x5B6D 134-346-3
+sign \x5B6E 245-12346-2
+sign \x5B6F 245-2345-3
+sign \x5B70 24-34-2
+sign \x5B71 12-1236-2
+sign \x5B72 23456-3
+sign \x5B73 125-156-3
+sign \x5B74 1345-16-4
+sign \x5B75 12345-34-3
+sign \x5B76 125-156-3
+sign \x5B77 14-16-2
+sign \x5B78 15-236-2
+sign \x5B79 135-126-5
+sign \x5B7A 1245-34-2
+sign \x5B7B 1345-2456-2
+sign \x5B7C 1345-346-5
+sign \x5B7D 1345-346-5
+sign \x5B7E 13456-3
+sign \x5B7F 14-45-2
+sign \x5B80 134-2345-2
+sign \x5B81 1345-13456-2
+sign \x5B82 1245-12346-4
+sign \x5B83 124-345-3
+sign \x5B84 13-1246-4
+sign \x5B85 1-2456-2
+sign \x5B86 245-235-2
+sign \x5B87 1256-4
+sign \x5B88 24-12356-4
+sign \x5B89 1236-3
+sign \x5B8A 124-34-2
+sign \x5B8B 15-12346-5
+sign \x5B8C 12456-2
+sign \x5B8D 1245-12356-5
+sign \x5B8E 246-3
+sign \x5B8F 1235-12346-2
+sign \x5B90 16-2
+sign \x5B91 13-13456-4
+sign \x5B92 1-123456-3
+sign \x5B93 134-16-5
+sign \x5B94 1-34-4
+sign \x5B95 145-1346-5
+sign \x5B96 1235-12346-2
+sign \x5B97 125-12346-3
+sign \x5B98 13-12456-3
+sign \x5B99 1-12356-5
+sign \x5B9A 145-13456-5
+sign \x5B9B 12456-4
+sign \x5B9C 16-2
+sign \x5B9D 135-146-4
+sign \x5B9E 24-156-2
+sign \x5B9F 24-156-2
+sign \x5BA0 12-12346-4
+sign \x5BA1 24-136-4
+sign \x5BA2 123-2346-5
+sign \x5BA3 15-45-3
+sign \x5BA4 24-156-5
+sign \x5BA5 234-5
+sign \x5BA6 1235-12456-5
+sign \x5BA7 16-2
+sign \x5BA8 124-246-4
+sign \x5BA9 24-156-4
+sign \x5BAA 15-2345-5
+sign \x5BAB 13-12346-3
+sign \x5BAC 12-1356-2
+sign \x5BAD 245-256-2
+sign \x5BAE 13-12346-3
+sign \x5BAF 15-246-3
+sign \x5BB0 125-2456-4
+sign \x5BB1 1-345-5
+sign \x5BB2 135-146-4
+sign \x5BB3 1235-2456-5
+sign \x5BB4 2345-5
+sign \x5BB5 15-246-3
+sign \x5BB6 13-23456-3
+sign \x5BB7 24-136-4
+sign \x5BB8 12-136-2
+sign \x5BB9 1245-12346-2
+sign \x5BBA 1235-456-4
+sign \x5BBB 134-16-5
+sign \x5BBC 123-12356-5
+sign \x5BBD 123-12456-3
+sign \x5BBE 135-1456-3
+sign \x5BBF 15-34-5
+sign \x5BC0 245-2456-4
+sign \x5BC1 125-1236-4
+sign \x5BC2 13-16-2
+sign \x5BC3 45-3
+sign \x5BC4 13-16-5
+sign \x5BC5 1456-2
+sign \x5BC6 134-16-5
+sign \x5BC7 123-12356-5
+sign \x5BC8 245-13456-3
+sign \x5BC9 245-236-5
+sign \x5BCA 1-136-3
+sign \x5BCB 13-2345-4
+sign \x5BCC 12345-34-5
+sign \x5BCD 1345-13456-2
+sign \x5BCE 135-13456-5
+sign \x5BCF 1235-12456-2
+sign \x5BD0 134-356-5
+sign \x5BD1 245-1456-4
+sign \x5BD2 1235-1236-2
+sign \x5BD3 1256-5
+sign \x5BD4 24-156-2
+sign \x5BD5 1345-13456-2
+sign \x5BD6 13-1456-5
+sign \x5BD7 1345-13456-2
+sign \x5BD8 1-156-5
+sign \x5BD9 1256-4
+sign \x5BDA 135-146-4
+sign \x5BDB 123-12456-3
+sign \x5BDC 1345-13456-2
+sign \x5BDD 245-1456-4
+sign \x5BDE 134-126-5
+sign \x5BDF 12-345-2
+sign \x5BE0 13-1256-5
+sign \x5BE1 13-35-4
+sign \x5BE2 245-1456-4
+sign \x5BE3 1235-34-3
+sign \x5BE4 34-5
+sign \x5BE5 14-246-2
+sign \x5BE6 24-156-2
+sign \x5BE7 1345-13456-2
+sign \x5BE8 1-2456-5
+sign \x5BE9 24-136-4
+sign \x5BEA 1246-4
+sign \x5BEB 15-346-4
+sign \x5BEC 123-12456-3
+sign \x5BED 1235-1246-5
+sign \x5BEE 14-246-2
+sign \x5BEF 13-256-5
+sign \x5BF0 1235-12456-2
+sign \x5BF1 16-5
+sign \x5BF2 16-2
+sign \x5BF3 135-146-4
+sign \x5BF4 245-1456-5
+sign \x5BF5 12-12346-4
+sign \x5BF6 135-146-4
+sign \x5BF7 12345-1356-3
+sign \x5BF8 245-123456-5
+sign \x5BF9 145-1246-5
+sign \x5BFA 15-156-5
+sign \x5BFB 15-256-2
+sign \x5BFC 145-146-4
+sign \x5BFD 14-1256-5
+sign \x5BFE 145-1246-5
+sign \x5BFF 24-12356-5
+sign \x5C00 1234-126-4
+sign \x5C01 12345-1356-3
+sign \x5C02 1-12456-3
+sign \x5C03 12345-34-3
+sign \x5C04 24-2346-5
+sign \x5C05 123-2346-5
+sign \x5C06 13-46-3
+sign \x5C07 13-46-3
+sign \x5C08 1-12456-3
+sign \x5C09 1246-5
+sign \x5C0A 125-123456-3
+sign \x5C0B 15-256-2
+sign \x5C0C 1-34-5
+sign \x5C0D 145-1246-5
+sign \x5C0E 145-146-4
+sign \x5C0F 15-246-4
+sign \x5C10 13-16-3
+sign \x5C11 24-146-4
+sign \x5C12 156-4
+sign \x5C13 156-4
+sign \x5C14 156-4
+sign \x5C15 135-345-1
+sign \x5C16 13-2345-3
+sign \x5C17 24-34-2
+sign \x5C18 12-136-2
+sign \x5C19 24-1346-5
+sign \x5C1A 24-1346-5
+sign \x5C1C 13-345-2
+sign \x5C1D 12-1346-2
+sign \x5C1E 14-246-5
+sign \x5C1F 15-2345-4
+sign \x5C20 15-2345-3
+sign \x5C22 456-3
+sign \x5C23 456-3
+sign \x5C24 234-2
+sign \x5C25 14-246-5
+sign \x5C26 14-246-5
+sign \x5C27 246-2
+sign \x5C28 1234-1346-2
+sign \x5C29 456-3
+sign \x5C2A 456-3
+sign \x5C2B 456-3
+sign \x5C2C 13-345-5
+sign \x5C2D 246-2
+sign \x5C2E 145-25-5
+sign \x5C2F 123-1246-5
+sign \x5C30 1-12346-4
+sign \x5C31 13-234-5
+sign \x5C32 13-1236-3
+sign \x5C33 13-34-4
+sign \x5C34 13-1236-3
+sign \x5C35 124-1246-2
+sign \x5C36 13-1236-3
+sign \x5C37 13-1236-3
+sign \x5C38 24-156-3
+sign \x5C39 1456-4
+sign \x5C3A 12-156-4
+sign \x5C3B 123-146-3
+sign \x5C3C 1345-16-2
+sign \x5C3D 13-1456-4
+sign \x5C3E 1246-4
+sign \x5C3F 1345-246-5
+sign \x5C40 13-1256-2
+sign \x5C41 1234-16-5
+sign \x5C42 245-1356-2
+sign \x5C43 15-16-5
+sign \x5C44 135-16-3
+sign \x5C45 13-1256-3
+sign \x5C46 13-346-5
+sign \x5C47 124-2345-2
+sign \x5C48 245-1256-3
+sign \x5C49 124-16-5
+sign \x5C4A 13-346-5
+sign \x5C4B 34-3
+sign \x5C4C 145-246-4
+sign \x5C4D 24-156-3
+sign \x5C4E 24-156-4
+sign \x5C4F 1234-13456-2
+sign \x5C50 13-16-3
+sign \x5C51 15-346-5
+sign \x5C52 12-136-2
+sign \x5C53 15-16-5
+sign \x5C54 1345-16-2
+sign \x5C55 1-1236-4
+sign \x5C56 15-16-3
+sign \x5C58 134-1236-3
+sign \x5C59 2346-3
+sign \x5C5A 14-12356-5
+sign \x5C5B 1234-13456-2
+sign \x5C5C 124-16-5
+sign \x5C5D 12345-356-5
+sign \x5C5E 24-34-4
+sign \x5C5F 15-346-5
+sign \x5C60 124-34-2
+sign \x5C61 14-1256-4
+sign \x5C62 14-1256-4
+sign \x5C63 15-16-4
+sign \x5C64 245-1356-2
+sign \x5C65 14-1256-4
+sign \x5C66 14-1256-4
+sign \x5C67 15-346-5
+sign \x5C68 14-1256-4
+sign \x5C69 245-246-3
+sign \x5C6A 14-246-2
+sign \x5C6B 13-236-2
+sign \x5C6C 24-34-4
+sign \x5C6D 15-16-5
+sign \x5C6E 12-2346-5
+sign \x5C6F 124-123456-2
+sign \x5C70 1345-16-5
+sign \x5C71 24-1236-3
+sign \x5C73 15-2345-3
+sign \x5C74 14-16-5
+sign \x5C75 15-236-3
+sign \x5C78 14-12346-2
+sign \x5C79 16-5
+sign \x5C7A 245-16-4
+sign \x5C7B 1245-136-5
+sign \x5C7C 34-5
+sign \x5C7D 1235-1236-5
+sign \x5C7E 24-136-3
+sign \x5C7F 1256-4
+sign \x5C80 12-34-3
+sign \x5C81 15-1246-5
+sign \x5C82 245-16-4
+sign \x5C84 236-5
+sign \x5C85 135-1236-4
+sign \x5C86 246-4
+sign \x5C87 1346-2
+sign \x5C88 15-23456-3
+sign \x5C89 34-5
+sign \x5C8A 13-346-2
+sign \x5C8B 2346-5
+sign \x5C8C 13-16-2
+sign \x5C8D 245-2345-3
+sign \x5C8E 12345-136-3
+sign \x5C8F 12456-2
+sign \x5C90 245-16-2
+sign \x5C91 245-136-2
+sign \x5C92 245-2345-2
+sign \x5C93 245-16-2
+sign \x5C94 12-345-5
+sign \x5C95 13-346-5
+sign \x5C96 245-1256-3
+sign \x5C97 13-1346-3
+sign \x5C98 15-2345-5
+sign \x5C99 146-5
+sign \x5C9A 14-1236-2
+sign \x5C9B 145-146-4
+sign \x5C9C 135-345-3
+sign \x5C9D 125-2346-2
+sign \x5C9E 125-25-5
+sign \x5C9F 46-4
+sign \x5CA0 13-1256-5
+sign \x5CA1 13-1346-3
+sign \x5CA2 123-2346-4
+sign \x5CA3 13-12356-4
+sign \x5CA4 15-236-5
+sign \x5CA5 1234-126-3
+sign \x5CA6 14-16-5
+sign \x5CA7 124-246-2
+sign \x5CA8 245-1256-3
+sign \x5CA9 2345-2
+sign \x5CAA 12345-34-2
+sign \x5CAB 15-234-5
+sign \x5CAC 13-23456-4
+sign \x5CAD 14-13456-2
+sign \x5CAE 124-25-2
+sign \x5CAF 1234-356-3
+sign \x5CB0 234-4
+sign \x5CB1 145-2456-5
+sign \x5CB2 123-456-5
+sign \x5CB3 236-5
+sign \x5CB4 245-1256-3
+sign \x5CB5 1235-34-5
+sign \x5CB6 1234-126-5
+sign \x5CB7 134-1456-2
+sign \x5CB8 1236-5
+sign \x5CB9 124-246-2
+sign \x5CBA 14-13456-2
+sign \x5CBB 12-156-2
+sign \x5CBD 145-12346-3
+sign \x5CBF 123-1246-3
+sign \x5CC0 15-234-5
+sign \x5CC1 134-146-4
+sign \x5CC2 124-12346-2
+sign \x5CC3 15-236-2
+sign \x5CC4 16-5
+sign \x5CC6 1235-2346-3
+sign \x5CC7 123-2346-3
+sign \x5CC8 14-25-5
+sign \x5CC9 2346-2
+sign \x5CCA 12345-34-5
+sign \x5CCB 15-256-2
+sign \x5CCC 145-346-2
+sign \x5CCD 14-34-5
+sign \x5CCE 1236-3
+sign \x5CCF 156-4
+sign \x5CD0 13-2456-3
+sign \x5CD1 245-45-2
+sign \x5CD2 124-12346-2
+sign \x5CD3 16-2
+sign \x5CD4 134-34-4
+sign \x5CD5 24-156-2
+sign \x5CD6 1236-3
+sign \x5CD7 1246-2
+sign \x5CD8 1235-12456-2
+sign \x5CD9 1-156-5
+sign \x5CDA 134-16-5
+sign \x5CDB 14-16-4
+sign \x5CDC 13-16-3
+sign \x5CDD 124-12346-2
+sign \x5CDE 1246-2
+sign \x5CDF 234-5
+sign \x5CE1 15-23456-2
+sign \x5CE2 14-16-4
+sign \x5CE3 246-2
+sign \x5CE4 245-246-2
+sign \x5CE5 1-1356-3
+sign \x5CE6 14-12456-2
+sign \x5CE7 13-246-3
+sign \x5CE8 2346-2
+sign \x5CE9 2346-2
+sign \x5CEA 1256-5
+sign \x5CEB 346-2
+sign \x5CEC 135-34-3
+sign \x5CED 245-246-5
+sign \x5CEE 245-256-3
+sign \x5CEF 12345-1356-3
+sign \x5CF0 12345-1356-3
+sign \x5CF1 1345-146-2
+sign \x5CF2 14-16-4
+sign \x5CF3 234-2
+sign \x5CF4 15-2345-5
+sign \x5CF5 1235-12346-2
+sign \x5CF6 145-146-4
+sign \x5CF7 24-136-3
+sign \x5CF8 135-345-1
+sign \x5CF9 124-34-2
+sign \x5CFA 13-1356-4
+sign \x5CFB 13-256-5
+sign \x5CFC 1235-146-5
+sign \x5CFD 15-23456-2
+sign \x5CFE 1456-3
+sign \x5CFF 1256-4
+sign \x5D00 14-1346-4
+sign \x5D01 123-1236-4
+sign \x5D02 14-146-3
+sign \x5D03 14-2456-2
+sign \x5D04 15-2345-4
+sign \x5D05 245-236-5
+sign \x5D06 123-12346-3
+sign \x5D07 12-12346-2
+sign \x5D08 12-12346-2
+sign \x5D09 124-345-5
+sign \x5D0B 1235-35-2
+sign \x5D0C 13-1256-3
+sign \x5D0D 14-2456-2
+sign \x5D0E 245-16-2
+sign \x5D0F 134-1456-2
+sign \x5D10 123-123456-3
+sign \x5D11 123-123456-3
+sign \x5D12 125-34-2
+sign \x5D13 13-34-5
+sign \x5D14 245-1246-3
+sign \x5D15 26-2
+sign \x5D16 26-2
+sign \x5D17 13-1346-3
+sign \x5D18 14-123456-2
+sign \x5D19 14-123456-2
+sign \x5D1A 14-13456-2
+sign \x5D1B 13-236-2
+sign \x5D1C 145-25-3
+sign \x5D1D 1-1356-3
+sign \x5D1E 13-25-3
+sign \x5D1F 1456-2
+sign \x5D20 145-12346-3
+sign \x5D21 1235-1236-2
+sign \x5D22 1-1356-3
+sign \x5D23 1246-4
+sign \x5D24 246-2
+sign \x5D25 1234-16-4
+sign \x5D26 2345-3
+sign \x5D27 15-12346-3
+sign \x5D28 13-346-2
+sign \x5D29 135-1356-3
+sign \x5D2A 125-34-2
+sign \x5D2B 13-236-2
+sign \x5D2C 145-12346-3
+sign \x5D2D 1-1236-4
+sign \x5D2E 13-34-5
+sign \x5D2F 1456-2
+sign \x5D30 125-156-3
+sign \x5D31 125-2346-2
+sign \x5D32 1235-456-2
+sign \x5D33 1256-2
+sign \x5D34 1246-3
+sign \x5D35 46-2
+sign \x5D36 12345-1356-3
+sign \x5D37 245-234-2
+sign \x5D38 145-123456-5
+sign \x5D39 124-16-2
+sign \x5D3A 16-4
+sign \x5D3B 1-156-5
+sign \x5D3C 24-156-5
+sign \x5D3D 125-2456-4
+sign \x5D3E 246-4
+sign \x5D3F 2346-5
+sign \x5D40 1-34-5
+sign \x5D41 123-1236-3
+sign \x5D42 14-1256-5
+sign \x5D43 2345-4
+sign \x5D44 134-356-4
+sign \x5D45 13-1236-3
+sign \x5D46 13-16-3
+sign \x5D47 13-16-3
+sign \x5D48 1235-12456-4
+sign \x5D49 124-13456-2
+sign \x5D4A 24-1356-5
+sign \x5D4B 134-356-2
+sign \x5D4C 245-2345-3
+sign \x5D4D 34-5
+sign \x5D4E 1256-2
+sign \x5D4F 125-12346-3
+sign \x5D50 14-1236-2
+sign \x5D51 1235-2346-2
+sign \x5D52 2345-2
+sign \x5D53 2345-2
+sign \x5D54 1246-4
+sign \x5D55 125-12346-3
+sign \x5D56 12-345-2
+sign \x5D57 15-1246-5
+sign \x5D58 1245-12346-2
+sign \x5D59 135-345-1
+sign \x5D5A 245-2345-3
+sign \x5D5B 1256-2
+sign \x5D5D 14-1256-4
+sign \x5D5E 124-34-2
+sign \x5D5F 145-1246-3
+sign \x5D60 15-16-3
+sign \x5D61 12346-3
+sign \x5D62 245-1346-3
+sign \x5D63 145-1346-3
+sign \x5D64 1235-12346-2
+sign \x5D65 13-346-2
+sign \x5D66 2456-2
+sign \x5D67 14-234-2
+sign \x5D68 34-4
+sign \x5D69 15-12346-3
+sign \x5D6A 245-246-3
+sign \x5D6B 125-156-3
+sign \x5D6C 1246-2
+sign \x5D6D 135-1356-3
+sign \x5D6E 145-2345-3
+sign \x5D6F 245-25-2
+sign \x5D70 245-2345-4
+sign \x5D71 235-4
+sign \x5D72 1345-346-5
+sign \x5D73 245-25-2
+sign \x5D74 13-16-2
+sign \x5D77 15-12346-4
+sign \x5D78 125-12346-3
+sign \x5D79 13-46-5
+sign \x5D7A 14-246-2
+sign \x5D7C 12-1236-4
+sign \x5D7D 145-346-2
+sign \x5D7E 245-136-3
+sign \x5D7F 145-13456-4
+sign \x5D80 124-34-3
+sign \x5D81 14-1256-4
+sign \x5D82 1-1346-5
+sign \x5D83 1-1236-4
+sign \x5D84 1-1236-4
+sign \x5D85 146-2
+sign \x5D86 245-146-2
+sign \x5D87 245-1256-3
+sign \x5D88 245-46-3
+sign \x5D89 125-1246-4
+sign \x5D8A 125-1246-4
+sign \x5D8B 145-146-4
+sign \x5D8C 145-146-4
+sign \x5D8D 15-16-2
+sign \x5D8E 1256-5
+sign \x5D8F 135-126-2
+sign \x5D90 14-12346-2
+sign \x5D91 15-46-4
+sign \x5D92 245-1356-2
+sign \x5D93 135-126-3
+sign \x5D94 245-2345-3
+sign \x5D95 13-246-3
+sign \x5D96 2345-4
+sign \x5D97 14-146-3
+sign \x5D98 1-1236-5
+sign \x5D99 14-1456-2
+sign \x5D9A 14-246-2
+sign \x5D9B 14-246-2
+sign \x5D9C 13-1456-3
+sign \x5D9D 145-1356-5
+sign \x5D9E 145-25-5
+sign \x5D9F 125-123456-3
+sign \x5DA0 245-246-2
+sign \x5DA1 13-1246-5
+sign \x5DA2 246-2
+sign \x5DA3 245-246-2
+sign \x5DA4 246-2
+sign \x5DA5 13-236-2
+sign \x5DA6 1-1236-3
+sign \x5DA7 16-5
+sign \x5DA8 15-236-3
+sign \x5DA9 1345-146-3
+sign \x5DAA 346-5
+sign \x5DAB 346-5
+sign \x5DAC 16-2
+sign \x5DAD 2346-5
+sign \x5DAE 15-2345-4
+sign \x5DAF 1-345-2
+sign \x5DB0 15-346-5
+sign \x5DB1 123-2346-4
+sign \x5DB2 15-1246-4
+sign \x5DB3 145-16-5
+sign \x5DB4 146-5
+sign \x5DB5 125-1246-5
+sign \x5DB7 1345-16-5
+sign \x5DB8 1245-12346-2
+sign \x5DB9 145-146-4
+sign \x5DBA 14-13456-4
+sign \x5DBB 125-345-2
+sign \x5DBC 1256-4
+sign \x5DBD 236-5
+sign \x5DBE 1456-4
+sign \x5DC0 125-345-2
+sign \x5DC1 14-16-5
+sign \x5DC2 15-16-3
+sign \x5DC3 14-12346-2
+sign \x5DC4 14-12346-2
+sign \x5DC5 145-2345-3
+sign \x5DC6 13456-2
+sign \x5DC7 15-16-3
+sign \x5DC8 13-1256-2
+sign \x5DC9 12-1236-2
+sign \x5DCA 13456-4
+sign \x5DCB 123-1246-3
+sign \x5DCC 2345-2
+sign \x5DCD 1246-2
+sign \x5DCE 1345-146-2
+sign \x5DCF 245-45-2
+sign \x5DD0 12-146-4
+sign \x5DD1 245-12456-2
+sign \x5DD2 14-12456-2
+sign \x5DD3 145-2345-3
+sign \x5DD4 145-2345-3
+sign \x5DD5 1345-346-5
+sign \x5DD6 2345-2
+sign \x5DD7 2345-2
+sign \x5DD8 2345-4
+sign \x5DD9 1345-146-2
+sign \x5DDA 2345-4
+sign \x5DDB 123-123456-3
+sign \x5DDC 13-1246-5
+sign \x5DDD 12-12456-3
+sign \x5DDE 1-12356-3
+sign \x5DDF 1235-456-3
+sign \x5DE0 13-13456-3
+sign \x5DE1 15-256-2
+sign \x5DE2 12-146-2
+sign \x5DE3 12-146-2
+sign \x5DE4 14-346-3
+sign \x5DE5 13-12346-3
+sign \x5DE6 125-25-4
+sign \x5DE7 245-246-4
+sign \x5DE8 13-1256-5
+sign \x5DE9 13-12346-4
+sign \x5DEB 34-2
+sign \x5DEE 12-345-3
+sign \x5DEF 12345-356-5
+sign \x5DF0 135-345-1
+sign \x5DF1 13-16-4
+sign \x5DF2 16-4
+sign \x5DF3 15-156-5
+sign \x5DF4 135-345-3
+sign \x5DF5 1-156-3
+sign \x5DF6 1-146-3
+sign \x5DF7 15-46-5
+sign \x5DF8 16-2
+sign \x5DF9 13-1456-4
+sign \x5DFA 15-256-5
+sign \x5DFB 13-45-5
+sign \x5DFD 15-256-5
+sign \x5DFE 13-1456-3
+sign \x5DFF 12345-34-2
+sign \x5E00 125-345-3
+sign \x5E01 135-16-5
+sign \x5E02 24-156-5
+sign \x5E03 135-34-5
+sign \x5E04 145-13456-3
+sign \x5E05 24-2356-5
+sign \x5E06 12345-1236-2
+sign \x5E07 1345-346-5
+sign \x5E08 24-156-3
+sign \x5E09 12345-136-3
+sign \x5E0A 1234-345-5
+sign \x5E0B 1-156-4
+sign \x5E0C 15-16-3
+sign \x5E0D 1235-34-5
+sign \x5E0E 145-1236-5
+sign \x5E0F 1246-2
+sign \x5E10 1-1346-5
+sign \x5E11 124-1346-4
+sign \x5E12 145-2456-5
+sign \x5E13 134-345-5
+sign \x5E14 1234-356-5
+sign \x5E15 1234-345-5
+sign \x5E16 124-346-4
+sign \x5E17 12345-34-2
+sign \x5E18 14-2345-2
+sign \x5E19 1-156-5
+sign \x5E1A 1-12356-4
+sign \x5E1B 135-126-2
+sign \x5E1C 1-156-5
+sign \x5E1D 145-16-5
+sign \x5E1E 134-126-5
+sign \x5E1F 16-5
+sign \x5E20 16-5
+sign \x5E21 1234-13456-2
+sign \x5E22 245-23456-5
+sign \x5E23 13-45-5
+sign \x5E24 1245-34-2
+sign \x5E25 24-2356-5
+sign \x5E26 145-2456-5
+sign \x5E27 1-1356-5
+sign \x5E28 24-1246-5
+sign \x5E29 245-246-5
+sign \x5E2A 1-136-3
+sign \x5E2B 24-156-3
+sign \x5E2C 245-256-2
+sign \x5E2D 15-16-2
+sign \x5E2E 135-1346-3
+sign \x5E2F 145-2456-5
+sign \x5E30 13-1246-3
+sign \x5E31 12-12356-2
+sign \x5E32 1234-13456-2
+sign \x5E33 1-1346-5
+sign \x5E34 24-345-3
+sign \x5E35 12456-3
+sign \x5E36 145-2456-5
+sign \x5E37 1246-2
+sign \x5E38 12-1346-2
+sign \x5E39 24-345-5
+sign \x5E3A 245-16-2
+sign \x5E3B 125-2346-2
+sign \x5E3C 13-25-2
+sign \x5E3D 134-146-5
+sign \x5E3E 145-34-4
+sign \x5E3F 1235-12356-2
+sign \x5E40 1-1356-5
+sign \x5E41 15-1256-3
+sign \x5E42 134-16-5
+sign \x5E43 1246-2
+sign \x5E44 25-5
+sign \x5E45 12345-34-2
+sign \x5E46 16-5
+sign \x5E47 135-1346-3
+sign \x5E48 1234-13456-2
+sign \x5E4A 13-12346-3
+sign \x5E4B 1234-1236-2
+sign \x5E4C 1235-456-4
+sign \x5E4D 145-146-3
+sign \x5E4E 134-16-5
+sign \x5E4F 13-23456-5
+sign \x5E50 124-1356-2
+sign \x5E51 1235-1246-3
+sign \x5E52 1-12346-3
+sign \x5E53 15-136-3
+sign \x5E54 134-1236-5
+sign \x5E55 134-34-5
+sign \x5E56 135-246-3
+sign \x5E57 13-25-2
+sign \x5E58 125-2346-2
+sign \x5E59 134-34-5
+sign \x5E5A 135-1346-3
+sign \x5E5B 1-1346-5
+sign \x5E5C 13-235-4
+sign \x5E5D 12-1236-4
+sign \x5E5E 12345-34-2
+sign \x5E5F 1-156-5
+sign \x5E60 1235-34-3
+sign \x5E61 12345-1236-3
+sign \x5E62 12-456-2
+sign \x5E63 135-16-5
+sign \x5E66 134-16-5
+sign \x5E67 245-246-3
+sign \x5E68 12-1236-3
+sign \x5E69 12345-136-2
+sign \x5E6A 134-1356-2
+sign \x5E6B 135-1346-3
+sign \x5E6C 12-12356-2
+sign \x5E6D 134-346-5
+sign \x5E6E 12-34-2
+sign \x5E6F 13-346-2
+sign \x5E70 15-2345-4
+sign \x5E71 14-1236-2
+sign \x5E72 13-1236-3
+sign \x5E73 1234-13456-2
+sign \x5E74 1345-2345-2
+sign \x5E75 123-2456-3
+sign \x5E76 135-13456-5
+sign \x5E77 135-13456-5
+sign \x5E78 15-13456-5
+sign \x5E79 13-1236-5
+sign \x5E7A 378-14678
+sign \x5E7B 1235-12456-5
+sign \x5E7C 234-5
+sign \x5E7D 234-3
+sign \x5E7E 13-16-4
+sign \x5E7F 13-456-4
+sign \x5E80 1234-16-4
+sign \x5E81 124-13456-3
+sign \x5E82 125-2346-5
+sign \x5E83 13-456-4
+sign \x5E84 1-456-3
+sign \x5E85 134-126-1
+sign \x5E86 245-13456-5
+sign \x5E87 135-16-5
+sign \x5E88 245-1456-2
+sign \x5E89 124-123456-2
+sign \x5E8A 12-456-2
+sign \x5E8B 13-1246-4
+sign \x5E8C 23456-4
+sign \x5E8D 135-2456-5
+sign \x5E8E 13-346-5
+sign \x5E8F 15-1256-5
+sign \x5E90 14-34-2
+sign \x5E91 34-4
+sign \x5E93 123-34-5
+sign \x5E94 13456-3
+sign \x5E95 145-16-4
+sign \x5E96 1234-146-2
+sign \x5E97 145-2345-5
+sign \x5E98 23456-3
+sign \x5E99 134-246-5
+sign \x5E9A 13-1356-3
+sign \x5E9B 245-156-5
+sign \x5E9C 12345-34-4
+sign \x5E9D 124-12346-2
+sign \x5E9E 1234-1346-2
+sign \x5E9F 12345-356-5
+sign \x5EA0 15-46-2
+sign \x5EA1 16-4
+sign \x5EA2 1-156-5
+sign \x5EA3 124-246-3
+sign \x5EA4 1-156-5
+sign \x5EA5 15-234-3
+sign \x5EA6 145-34-5
+sign \x5EA7 125-25-5
+sign \x5EA8 15-246-3
+sign \x5EA9 124-34-2
+sign \x5EAA 13-1246-4
+sign \x5EAB 123-34-5
+sign \x5EAC 1234-1346-2
+sign \x5EAD 124-13456-2
+sign \x5EAE 234-4
+sign \x5EAF 135-34-3
+sign \x5EB0 135-13456-4
+sign \x5EB1 12-1356-4
+sign \x5EB2 14-2456-2
+sign \x5EB3 135-16-5
+sign \x5EB4 13-16-2
+sign \x5EB5 1236-3
+sign \x5EB6 24-34-5
+sign \x5EB7 123-1346-3
+sign \x5EB8 235-3
+sign \x5EB9 124-25-2
+sign \x5EBA 15-12346-3
+sign \x5EBB 24-34-5
+sign \x5EBC 245-13456-4
+sign \x5EBD 1256-5
+sign \x5EBE 1256-4
+sign \x5EBF 134-246-5
+sign \x5EC0 15-12356-3
+sign \x5EC1 245-2346-5
+sign \x5EC2 15-46-3
+sign \x5EC3 12345-356-5
+sign \x5EC4 13-234-5
+sign \x5EC5 1235-2346-2
+sign \x5EC6 1235-1246-5
+sign \x5EC7 14-234-5
+sign \x5EC8 15-23456-5
+sign \x5EC9 14-2345-2
+sign \x5ECA 14-1346-2
+sign \x5ECB 15-12356-4
+sign \x5ECC 1-2456-5
+sign \x5ECD 1234-12356-4
+sign \x5ECE 245-13456-3
+sign \x5ECF 13-234-5
+sign \x5ED0 13-234-5
+sign \x5ED1 245-1456-2
+sign \x5ED2 146-2
+sign \x5ED3 123-25-5
+sign \x5ED4 14-12356-2
+sign \x5ED5 1456-5
+sign \x5ED6 14-246-5
+sign \x5ED7 145-2456-5
+sign \x5ED8 14-34-5
+sign \x5ED9 16-5
+sign \x5EDA 12-34-2
+sign \x5EDB 12-1236-2
+sign \x5EDC 124-34-3
+sign \x5EDD 15-156-3
+sign \x5EDE 15-1456-3
+sign \x5EDF 134-246-5
+sign \x5EE0 12-1346-4
+sign \x5EE1 34-4
+sign \x5EE2 12345-356-5
+sign \x5EE3 13-456-4
+sign \x5EE5 123-2356-5
+sign \x5EE6 135-16-5
+sign \x5EE7 245-46-2
+sign \x5EE8 13-346-5
+sign \x5EE9 14-1456-4
+sign \x5EEA 14-1456-4
+sign \x5EEB 14-246-2
+sign \x5EEC 14-34-2
+sign \x5EEE 13456-2
+sign \x5EEF 15-2345-3
+sign \x5EF0 124-13456-3
+sign \x5EF1 235-3
+sign \x5EF2 14-16-2
+sign \x5EF3 124-13456-3
+sign \x5EF4 1456-4
+sign \x5EF5 15-256-2
+sign \x5EF6 2345-2
+sign \x5EF7 124-13456-2
+sign \x5EF8 145-16-2
+sign \x5EF9 1234-126-5
+sign \x5EFA 13-2345-5
+sign \x5EFB 1235-1246-2
+sign \x5EFC 1345-2456-4
+sign \x5EFD 1235-1246-2
+sign \x5EFE 1345-2345-5
+sign \x5EFF 1345-2345-5
+sign \x5F00 123-2456-3
+sign \x5F01 135-2345-5
+sign \x5F02 16-2
+sign \x5F03 245-16-5
+sign \x5F04 1345-12346-5
+sign \x5F05 12345-136-2
+sign \x5F06 13-1256-4
+sign \x5F07 2345-3
+sign \x5F08 16-5
+sign \x5F09 125-1346-5
+sign \x5F0A 135-16-5
+sign \x5F0B 16-5
+sign \x5F0C 16-3
+sign \x5F0D 156-5
+sign \x5F0E 15-1236-3
+sign \x5F0F 24-156-5
+sign \x5F10 156-5
+sign \x5F11 24-156-5
+sign \x5F12 24-156-5
+sign \x5F13 13-12346-3
+sign \x5F14 145-246-5
+sign \x5F15 1456-4
+sign \x5F16 1235-34-5
+sign \x5F17 12345-34-2
+sign \x5F18 1235-12346-2
+sign \x5F19 34-3
+sign \x5F1A 145-16-5
+sign \x5F1B 12-156-2
+sign \x5F1C 13-46-5
+sign \x5F1D 135-345-5
+sign \x5F1E 24-136-4
+sign \x5F1F 145-16-5
+sign \x5F20 1-1346-3
+sign \x5F21 13-236-2
+sign \x5F22 124-146-3
+sign \x5F23 12345-34-4
+sign \x5F24 145-16-4
+sign \x5F25 134-16-2
+sign \x5F26 15-2345-2
+sign \x5F27 1235-34-2
+sign \x5F28 12-146-3
+sign \x5F29 1345-34-4
+sign \x5F2A 135-345-1
+sign \x5F2B 1-136-4
+sign \x5F2C 16-2
+sign \x5F2D 134-16-4
+sign \x5F2E 245-45-3
+sign \x5F2F 12456-3
+sign \x5F30 24-146-3
+sign \x5F31 1245-25-5
+sign \x5F32 15-45-3
+sign \x5F33 135-345-1
+sign \x5F34 145-123456-3
+sign \x5F35 1-1346-3
+sign \x5F36 13-46-5
+sign \x5F37 245-46-2
+sign \x5F38 1234-1356-2
+sign \x5F39 124-1236-2
+sign \x5F3A 245-46-2
+sign \x5F3B 135-16-5
+sign \x5F3C 135-16-5
+sign \x5F3D 24-2346-5
+sign \x5F3E 145-1236-5
+sign \x5F3F 13-2345-4
+sign \x5F40 13-12356-5
+sign \x5F42 12345-345-3
+sign \x5F43 135-16-5
+sign \x5F44 123-12356-3
+sign \x5F46 135-346-5
+sign \x5F47 15-246-3
+sign \x5F48 124-1236-2
+sign \x5F49 1235-25-5
+sign \x5F4A 13-46-3
+sign \x5F4B 1235-12346-2
+sign \x5F4C 134-16-2
+sign \x5F4D 123-25-5
+sign \x5F4E 12456-3
+sign \x5F4F 13-236-2
+sign \x5F50 378-678
+sign \x5F51 13-16-5
+sign \x5F52 13-1246-3
+sign \x5F53 145-1346-3
+sign \x5F54 14-34-5
+sign \x5F55 14-34-5
+sign \x5F56 124-12456-5
+sign \x5F57 1235-1246-5
+sign \x5F58 1-156-5
+sign \x5F59 1235-1246-5
+sign \x5F5A 1235-1246-5
+sign \x5F5B 16-2
+sign \x5F5C 16-2
+sign \x5F5D 16-2
+sign \x5F5E 16-2
+sign \x5F5F 1235-25-5
+sign \x5F60 1235-25-5
+sign \x5F61 24-1236-3
+sign \x5F62 15-13456-2
+sign \x5F63 123456-2
+sign \x5F64 124-12346-2
+sign \x5F65 2345-5
+sign \x5F66 2345-5
+sign \x5F67 1256-5
+sign \x5F68 12-156-3
+sign \x5F69 245-2456-4
+sign \x5F6A 135-246-3
+sign \x5F6B 145-246-3
+sign \x5F6C 135-1456-3
+sign \x5F6D 1234-1356-2
+sign \x5F6E 235-4
+sign \x5F6F 1234-246-3
+sign \x5F70 1-1346-3
+sign \x5F71 13456-4
+sign \x5F72 12-156-3
+sign \x5F73 12-156-5
+sign \x5F74 135-126-2
+sign \x5F75 124-25-4
+sign \x5F76 13-16-2
+sign \x5F77 12345-1346-4
+sign \x5F78 1-12346-3
+sign \x5F79 16-5
+sign \x5F7A 456-2
+sign \x5F7B 12-2346-5
+sign \x5F7C 135-16-4
+sign \x5F7D 145-16-3
+sign \x5F7E 14-13456-2
+sign \x5F7F 12345-34-2
+sign \x5F80 456-4
+sign \x5F81 1-1356-3
+sign \x5F82 245-34-2
+sign \x5F83 456-4
+sign \x5F84 13-13456-5
+sign \x5F85 145-2456-5
+sign \x5F86 15-16-3
+sign \x5F87 15-256-2
+sign \x5F88 1235-136-4
+sign \x5F89 46-2
+sign \x5F8A 1235-1246-2
+sign \x5F8B 14-1256-5
+sign \x5F8C 1235-12356-5
+sign \x5F8D 35-3
+sign \x5F8E 12-1356-4
+sign \x5F8F 1-156-5
+sign \x5F90 15-1256-2
+sign \x5F91 13-13456-5
+sign \x5F92 124-34-2
+sign \x5F93 245-12346-2
+sign \x5F95 14-2456-2
+sign \x5F96 245-12346-2
+sign \x5F97 145-2346-2
+sign \x5F98 1234-2456-2
+sign \x5F99 15-16-4
+sign \x5F9B 245-16-3
+sign \x5F9C 12-1346-2
+sign \x5F9D 1-156-5
+sign \x5F9E 245-12346-2
+sign \x5F9F 1-12356-3
+sign \x5FA0 14-2456-2
+sign \x5FA1 1256-5
+sign \x5FA2 15-346-5
+sign \x5FA3 13-346-5
+sign \x5FA4 13-2345-5
+sign \x5FA5 12-156-3
+sign \x5FA6 13-23456-4
+sign \x5FA7 135-2345-5
+sign \x5FA8 1235-456-2
+sign \x5FA9 12345-34-5
+sign \x5FAA 15-256-2
+sign \x5FAB 1246-4
+sign \x5FAC 1234-1346-2
+sign \x5FAD 246-2
+sign \x5FAE 1246-2
+sign \x5FAF 15-16-3
+sign \x5FB0 1-1356-3
+sign \x5FB1 1234-246-5
+sign \x5FB2 12-156-2
+sign \x5FB3 145-2346-2
+sign \x5FB4 1-1356-3
+sign \x5FB5 1-1356-3
+sign \x5FB6 135-346-2
+sign \x5FB7 145-2346-2
+sign \x5FB8 12-12346-3
+sign \x5FB9 12-2346-5
+sign \x5FBA 13-246-4
+sign \x5FBB 1246-5
+sign \x5FBC 13-246-4
+sign \x5FBD 1235-1246-3
+sign \x5FBE 134-356-2
+sign \x5FBF 14-12346-5
+sign \x5FC0 15-46-3
+sign \x5FC1 135-146-5
+sign \x5FC2 245-1256-2
+sign \x5FC3 15-1456-3
+sign \x5FC5 135-16-5
+sign \x5FC6 16-5
+sign \x5FC7 14-2346-5
+sign \x5FC8 1245-136-2
+sign \x5FC9 145-146-3
+sign \x5FCA 145-13456-5
+sign \x5FCB 13-2456-4
+sign \x5FCC 13-16-5
+sign \x5FCD 1245-136-4
+sign \x5FCE 1245-136-2
+sign \x5FCF 245-2345-4
+sign \x5FD0 124-1236-4
+sign \x5FD1 124-2346-5
+sign \x5FD2 124-2346-5
+sign \x5FD3 13-1236-3
+sign \x5FD4 245-16-5
+sign \x5FD5 145-2456-5
+sign \x5FD6 245-123456-4
+sign \x5FD7 1-156-5
+sign \x5FD8 456-5
+sign \x5FD9 134-1346-2
+sign \x5FDA 15-16-3
+sign \x5FDB 12345-1236-2
+sign \x5FDC 13456-3
+sign \x5FDD 124-2345-4
+sign \x5FDE 134-1456-2
+sign \x5FDF 134-1456-2
+sign \x5FE0 1-12346-3
+sign \x5FE1 12-12346-3
+sign \x5FE2 34-5
+sign \x5FE3 13-16-2
+sign \x5FE4 34-4
+sign \x5FE5 15-16-5
+sign \x5FE6 346-5
+sign \x5FE7 234-3
+sign \x5FE8 12456-5
+sign \x5FE9 245-12346-3
+sign \x5FEA 15-12346-3
+sign \x5FEB 123-2356-5
+sign \x5FEC 1256-5
+sign \x5FED 135-2345-5
+sign \x5FEE 1-156-5
+sign \x5FEF 245-16-2
+sign \x5FF0 245-1246-5
+sign \x5FF1 12-136-2
+sign \x5FF2 124-2456-5
+sign \x5FF3 124-123456-2
+sign \x5FF4 245-2345-2
+sign \x5FF5 1345-2345-5
+sign \x5FF6 1235-123456-2
+sign \x5FF7 15-235-3
+sign \x5FF8 1345-234-4
+sign \x5FF9 456-4
+sign \x5FFA 15-2345-3
+sign \x5FFB 15-1456-3
+sign \x5FFC 123-1346-3
+sign \x5FFD 1235-34-3
+sign \x5FFE 123-2456-4
+sign \x5FFF 12345-136-5
+sign \x6000 12345-34-5
+sign \x6001 124-2456-5
+sign \x6002 15-12346-4
+sign \x6003 34-4
+sign \x6004 12356-5
+sign \x6005 12-1346-5
+sign \x6006 12-456-5
+sign \x6007 13-1256-5
+sign \x6008 16-5
+sign \x6009 135-146-4
+sign \x600A 12-146-3
+sign \x600B 134-1456-2
+sign \x600C 1234-16-3
+sign \x600D 125-25-5
+sign \x600E 125-136-4
+sign \x600F 46-5
+sign \x6010 123-12356-5
+sign \x6011 135-1236-5
+sign \x6012 1345-34-5
+sign \x6013 1345-146-2
+sign \x6014 1-1356-3
+sign \x6015 1234-345-5
+sign \x6016 135-34-5
+sign \x6017 124-346-3
+sign \x6018 13-34-5
+sign \x6019 1235-34-5
+sign \x601A 13-1256-5
+sign \x601B 145-345-2
+sign \x601C 14-13456-2
+sign \x601D 15-156-3
+sign \x601E 1-12356-5
+sign \x601F 145-16-5
+sign \x6020 145-2456-5
+sign \x6021 16-2
+sign \x6022 124-34-2
+sign \x6023 234-2
+sign \x6024 12345-34-3
+sign \x6025 13-16-2
+sign \x6026 1234-1356-3
+sign \x6027 15-13456-5
+sign \x6028 45-5
+sign \x6029 1345-16-2
+sign \x602A 13-2356-5
+sign \x602B 12345-356-5
+sign \x602C 15-16-5
+sign \x602D 135-16-5
+sign \x602E 234-3
+sign \x602F 245-346-5
+sign \x6030 15-45-5
+sign \x6031 245-12346-3
+sign \x6032 135-13456-4
+sign \x6033 1235-456-4
+sign \x6034 15-1256-5
+sign \x6035 12-34-5
+sign \x6036 1234-16-3
+sign \x6037 1-34-2
+sign \x6038 15-16-3
+sign \x6039 124-1236-3
+sign \x603B 125-12346-4
+sign \x603C 145-1246-5
+sign \x603F 16-5
+sign \x6040 12-156-4
+sign \x6041 1245-136-5
+sign \x6042 15-256-2
+sign \x6043 24-156-5
+sign \x6044 15-16-5
+sign \x6045 14-146-4
+sign \x6046 1235-1356-2
+sign \x6047 123-456-3
+sign \x6048 134-34-2
+sign \x6049 1-156-4
+sign \x604A 15-346-2
+sign \x604B 14-2345-5
+sign \x604C 124-246-3
+sign \x604D 1235-456-4
+sign \x604E 145-346-2
+sign \x604F 1235-146-4
+sign \x6050 123-12346-4
+sign \x6051 13-1246-4
+sign \x6052 1235-1356-2
+sign \x6053 15-16-3
+sign \x6054 13-246-4
+sign \x6055 24-34-5
+sign \x6057 123-35-4
+sign \x6058 245-234-3
+sign \x6059 46-5
+sign \x605A 1246-5
+sign \x605B 1235-1246-2
+sign \x605C 12-156-5
+sign \x605D 13-23456-2
+sign \x605E 16-2
+sign \x605F 15-235-3
+sign \x6060 13-2356-5
+sign \x6061 14-1456-5
+sign \x6062 1235-1246-3
+sign \x6063 125-156-5
+sign \x6064 15-1256-5
+sign \x6065 12-156-4
+sign \x6066 15-46-5
+sign \x6067 1345-1256-5
+sign \x6068 1235-136-5
+sign \x6069 136-3
+sign \x606A 123-2346-5
+sign \x606B 145-12346-5
+sign \x606C 124-2345-2
+sign \x606D 13-12346-3
+sign \x606E 245-45-2
+sign \x606F 15-16-2
+sign \x6070 245-23456-5
+sign \x6071 236-5
+sign \x6072 1234-1356-3
+sign \x6073 123-136-4
+sign \x6074 145-2346-2
+sign \x6075 1235-1246-5
+sign \x6076 2346-5
+sign \x6078 124-12346-5
+sign \x6079 2345-3
+sign \x607A 123-2456-4
+sign \x607B 245-2346-5
+sign \x607C 1345-146-4
+sign \x607D 256-5
+sign \x607E 134-1346-2
+sign \x607F 235-4
+sign \x6080 235-4
+sign \x6081 45-3
+sign \x6082 1234-16-3
+sign \x6083 123-123456-4
+sign \x6084 245-246-4
+sign \x6085 236-5
+sign \x6086 1256-5
+sign \x6087 1256-5
+sign \x6088 13-346-5
+sign \x6089 15-16-3
+sign \x608A 1-2346-2
+sign \x608B 14-1456-5
+sign \x608C 124-16-5
+sign \x608D 1235-1236-5
+sign \x608E 1235-146-5
+sign \x608F 245-346-5
+sign \x6090 124-16-5
+sign \x6091 135-34-5
+sign \x6092 16-5
+sign \x6093 245-2345-5
+sign \x6094 1235-1246-4
+sign \x6095 15-16-3
+sign \x6096 135-356-5
+sign \x6097 134-1236-2
+sign \x6098 16-3
+sign \x6099 1235-1356-3
+sign \x609A 15-12346-4
+sign \x609B 245-45-3
+sign \x609C 12-1356-4
+sign \x609D 123-1246-3
+sign \x609E 34-5
+sign \x609F 34-5
+sign \x60A0 234-3
+sign \x60A1 14-16-2
+sign \x60A2 14-46-5
+sign \x60A3 1235-12456-5
+sign \x60A4 245-12346-3
+sign \x60A5 16-5
+sign \x60A6 236-5
+sign \x60A7 14-16-5
+sign \x60A8 1345-1456-2
+sign \x60A9 1345-146-4
+sign \x60AA 2346-5
+sign \x60AB 245-236-5
+sign \x60AC 15-45-2
+sign \x60AD 245-2345-3
+sign \x60AE 34-5
+sign \x60AF 134-1456-4
+sign \x60B0 245-12346-2
+sign \x60B1 12345-356-4
+sign \x60B2 135-356-3
+sign \x60B3 145-25-2
+sign \x60B4 245-1246-5
+sign \x60B5 12-1346-5
+sign \x60B6 134-136-3
+sign \x60B7 14-16-5
+sign \x60B8 13-16-5
+sign \x60B9 13-12456-5
+sign \x60BA 13-12456-5
+sign \x60BB 15-13456-5
+sign \x60BC 145-146-5
+sign \x60BD 245-16-3
+sign \x60BE 123-12346-3
+sign \x60BF 124-2345-4
+sign \x60C0 14-123456-2
+sign \x60C1 15-16-3
+sign \x60C2 123-1236-4
+sign \x60C3 123-123456-3
+sign \x60C4 1345-16-5
+sign \x60C5 245-13456-2
+sign \x60C6 12-12356-2
+sign \x60C7 1-123456-3
+sign \x60C8 13-25-4
+sign \x60C9 12-1236-3
+sign \x60CA 13-13456-3
+sign \x60CB 12456-5
+sign \x60CC 45-3
+sign \x60CD 13-1456-3
+sign \x60CE 13-16-5
+sign \x60CF 14-1456-2
+sign \x60D0 1256-5
+sign \x60D1 1235-25-5
+sign \x60D2 1235-2346-2
+sign \x60D3 245-45-2
+sign \x60D4 124-1236-2
+sign \x60D5 124-16-5
+sign \x60D6 124-16-5
+sign \x60D7 1345-346-3
+sign \x60D8 456-4
+sign \x60D9 12-25-5
+sign \x60DA 1235-34-3
+sign \x60DB 1235-123456-3
+sign \x60DC 15-16-2
+sign \x60DD 12-1346-4
+sign \x60DE 15-1456-3
+sign \x60DF 1246-2
+sign \x60E0 1235-1246-5
+sign \x60E1 2346-5
+sign \x60E2 15-25-4
+sign \x60E3 125-12346-4
+sign \x60E4 13-2345-3
+sign \x60E5 235-4
+sign \x60E6 145-2345-5
+sign \x60E7 13-1256-5
+sign \x60E8 245-1236-4
+sign \x60E9 12-1356-2
+sign \x60EA 145-2346-2
+sign \x60EB 135-356-5
+sign \x60EC 245-346-5
+sign \x60ED 245-1236-2
+sign \x60EE 145-1236-5
+sign \x60EF 13-12456-5
+sign \x60F0 145-25-5
+sign \x60F1 1345-146-4
+sign \x60F2 256-5
+sign \x60F3 15-46-4
+sign \x60F4 1-1246-5
+sign \x60F5 145-346-5
+sign \x60F6 1235-456-2
+sign \x60F7 12-123456-4
+sign \x60F8 245-235-2
+sign \x60F9 1245-2346-4
+sign \x60FA 15-13456-3
+sign \x60FB 245-2346-5
+sign \x60FC 135-2345-4
+sign \x60FD 1235-123456-3
+sign \x60FE 125-12346-3
+sign \x60FF 124-16-2
+sign \x6100 245-246-4
+sign \x6101 12-12356-2
+sign \x6102 135-356-5
+sign \x6103 15-45-3
+sign \x6104 1246-3
+sign \x6105 13-2346-2
+sign \x6106 245-2345-3
+sign \x6107 1246-4
+sign \x6108 1256-5
+sign \x6109 1256-2
+sign \x610A 135-16-5
+sign \x610B 15-45-3
+sign \x610C 1235-12456-5
+sign \x610D 134-1456-4
+sign \x610E 135-16-5
+sign \x610F 16-5
+sign \x6110 134-2345-4
+sign \x6111 235-4
+sign \x6112 123-2456-4
+sign \x6113 145-1346-5
+sign \x6114 1456-3
+sign \x6115 2346-5
+sign \x6116 12-136-2
+sign \x6117 134-12356-5
+sign \x6118 123-2346-5
+sign \x6119 123-2346-5
+sign \x611A 1256-2
+sign \x611B 2456-5
+sign \x611C 245-346-5
+sign \x611D 2345-4
+sign \x611E 1345-25-5
+sign \x611F 13-1236-4
+sign \x6120 256-5
+sign \x6121 125-12346-4
+sign \x6122 15-2456-3
+sign \x6123 14-1356-5
+sign \x6124 12345-136-5
+sign \x6126 123-1246-5
+sign \x6127 123-1246-5
+sign \x6128 245-236-5
+sign \x6129 13-12346-3
+sign \x612A 256-2
+sign \x612B 15-34-5
+sign \x612C 15-34-5
+sign \x612D 245-16-2
+sign \x612E 246-2
+sign \x612F 15-12346-4
+sign \x6130 1235-456-4
+sign \x6131 13-16-2
+sign \x6132 13-34-4
+sign \x6133 13-1256-5
+sign \x6134 12-456-5
+sign \x6135 1345-16-5
+sign \x6136 15-346-2
+sign \x6137 123-2456-4
+sign \x6138 1-1356-4
+sign \x6139 235-4
+sign \x613A 245-146-4
+sign \x613B 15-123456-5
+sign \x613C 24-136-5
+sign \x613D 135-126-2
+sign \x613E 123-2456-4
+sign \x613F 45-5
+sign \x6140 15-346-2
+sign \x6141 1235-123456-5
+sign \x6142 235-4
+sign \x6143 46-4
+sign \x6144 14-16-5
+sign \x6145 15-146-3
+sign \x6146 124-146-3
+sign \x6147 1456-3
+sign \x6148 245-156-2
+sign \x6149 15-1256-5
+sign \x614A 15-2345-2
+sign \x614B 124-2456-5
+sign \x614C 1235-456-3
+sign \x614D 256-5
+sign \x614E 24-136-5
+sign \x614F 134-13456-4
+sign \x6151 1-2346-2
+sign \x6152 245-12346-2
+sign \x6153 1234-246-3
+sign \x6154 134-34-5
+sign \x6155 134-34-5
+sign \x6156 13-25-2
+sign \x6157 12-156-5
+sign \x6158 245-1236-4
+sign \x6159 245-1236-2
+sign \x615A 245-1236-2
+sign \x615B 245-1246-2
+sign \x615C 134-1456-4
+sign \x615D 124-2346-5
+sign \x615E 1-1346-3
+sign \x615F 124-12346-5
+sign \x6160 146-5
+sign \x6161 24-456-4
+sign \x6162 134-1236-5
+sign \x6163 13-12456-5
+sign \x6164 245-236-5
+sign \x6165 245-146-5
+sign \x6166 13-234-5
+sign \x6167 1235-1246-5
+sign \x6168 123-2456-4
+sign \x6169 14-2345-2
+sign \x616A 12356-5
+sign \x616B 15-12346-4
+sign \x616C 245-1456-2
+sign \x616D 1456-5
+sign \x616E 14-1256-5
+sign \x616F 24-1346-3
+sign \x6170 1246-5
+sign \x6171 124-12456-2
+sign \x6172 134-1236-2
+sign \x6173 245-2345-3
+sign \x6174 1-2346-2
+sign \x6175 235-3
+sign \x6176 245-13456-5
+sign \x6177 123-1346-3
+sign \x6178 145-16-5
+sign \x6179 1-156-2
+sign \x617A 14-1256-2
+sign \x617B 13-45-5
+sign \x617C 245-16-3
+sign \x617D 245-16-3
+sign \x617E 1256-5
+sign \x617F 1234-13456-2
+sign \x6180 14-246-2
+sign \x6181 245-12346-3
+sign \x6182 234-3
+sign \x6183 12-456-3
+sign \x6184 1-156-5
+sign \x6185 124-12346-5
+sign \x6186 12-1356-3
+sign \x6187 245-16-5
+sign \x6188 245-1256-3
+sign \x6189 1234-1356-2
+sign \x618A 135-356-5
+sign \x618B 135-346-3
+sign \x618C 12-123456-2
+sign \x618D 13-246-3
+sign \x618E 125-1356-3
+sign \x618F 12-156-5
+sign \x6190 14-2345-2
+sign \x6191 1234-13456-2
+sign \x6192 123-1246-5
+sign \x6193 1235-1246-5
+sign \x6194 245-246-2
+sign \x6195 12-1356-2
+sign \x6196 1456-5
+sign \x6197 1456-5
+sign \x6198 15-16-4
+sign \x6199 15-16-4
+sign \x619A 145-1236-5
+sign \x619B 124-1236-2
+sign \x619C 145-25-4
+sign \x619D 145-1246-5
+sign \x619E 145-1246-5
+sign \x619F 15-34-5
+sign \x61A0 13-236-2
+sign \x61A1 245-2346-5
+sign \x61A2 15-246-3
+sign \x61A3 12345-1236-2
+sign \x61A4 12345-136-5
+sign \x61A5 14-146-2
+sign \x61A6 14-146-5
+sign \x61A7 12-12346-3
+sign \x61A8 1235-1236-3
+sign \x61A9 245-16-5
+sign \x61AA 15-2345-2
+sign \x61AB 134-1456-4
+sign \x61AC 13-13456-4
+sign \x61AD 14-246-2
+sign \x61AE 34-4
+sign \x61AF 245-1236-4
+sign \x61B0 13-236-2
+sign \x61B1 245-34-5
+sign \x61B2 15-2345-5
+sign \x61B3 124-1236-4
+sign \x61B4 24-1356-2
+sign \x61B5 1234-16-3
+sign \x61B6 16-5
+sign \x61B7 12-34-4
+sign \x61B8 15-2345-3
+sign \x61B9 1345-146-2
+sign \x61BA 145-1236-5
+sign \x61BB 124-1236-4
+sign \x61BC 13-13456-4
+sign \x61BD 15-12346-3
+sign \x61BE 1235-1236-5
+sign \x61BF 13-246-3
+sign \x61C0 2356-5
+sign \x61C1 13-45-5
+sign \x61C2 145-12346-4
+sign \x61C3 245-1456-2
+sign \x61C4 245-1456-2
+sign \x61C5 245-1256-2
+sign \x61C6 245-146-4
+sign \x61C7 123-136-4
+sign \x61C8 15-346-5
+sign \x61C9 13456-3
+sign \x61CA 146-5
+sign \x61CB 134-146-5
+sign \x61CC 16-5
+sign \x61CD 14-1456-4
+sign \x61CE 15-2346-5
+sign \x61CF 13-256-5
+sign \x61D0 1235-2356-2
+sign \x61D1 134-136-5
+sign \x61D2 14-1236-4
+sign \x61D3 2456-5
+sign \x61D4 14-1456-4
+sign \x61D5 2345-3
+sign \x61D6 13-35-3
+sign \x61D7 15-23456-5
+sign \x61D8 12-156-5
+sign \x61D9 1256-4
+sign \x61DA 1456-5
+sign \x61DB 145-2456-3
+sign \x61DC 134-1356-2
+sign \x61DD 2456-5
+sign \x61DE 134-1356-2
+sign \x61DF 145-1246-5
+sign \x61E0 245-16-2
+sign \x61E1 134-126-4
+sign \x61E2 14-1236-2
+sign \x61E3 134-136-5
+sign \x61E4 12-12356-2
+sign \x61E5 1-156-5
+sign \x61E6 1345-25-5
+sign \x61E7 1345-25-5
+sign \x61E8 2345-3
+sign \x61E9 46-4
+sign \x61EA 135-126-2
+sign \x61EB 1-156-2
+sign \x61EC 123-456-5
+sign \x61ED 123-456-5
+sign \x61EE 234-4
+sign \x61EF 12345-34-3
+sign \x61F0 14-234-2
+sign \x61F1 134-346-5
+sign \x61F2 12-1356-2
+sign \x61F4 12-1236-5
+sign \x61F5 134-1356-2
+sign \x61F6 14-1236-4
+sign \x61F7 1235-2356-2
+sign \x61F8 15-45-2
+sign \x61F9 1245-1346-5
+sign \x61FA 12-1236-5
+sign \x61FB 13-16-5
+sign \x61FC 13-1256-5
+sign \x61FD 13-12456-5
+sign \x61FE 1-2346-2
+sign \x61FF 16-5
+sign \x6200 14-2345-5
+sign \x6201 1345-1236-4
+sign \x6202 134-16-2
+sign \x6203 124-1346-4
+sign \x6204 13-236-2
+sign \x6205 1-456-5
+sign \x6206 1-456-5
+sign \x6207 1-456-5
+sign \x6208 13-2346-3
+sign \x6209 236-5
+sign \x620A 34-5
+sign \x620B 245-1236-2
+sign \x620C 15-1256-3
+sign \x620D 24-34-5
+sign \x620E 1245-12346-2
+sign \x620F 15-16-5
+sign \x6210 12-1356-2
+sign \x6211 25-4
+sign \x6212 13-346-5
+sign \x6213 13-2346-3
+sign \x6214 245-1236-2
+sign \x6215 245-46-2
+sign \x6216 1235-25-5
+sign \x6217 12-456-3
+sign \x6218 1-1236-5
+sign \x6219 145-12346-5
+sign \x621A 245-16-3
+sign \x621B 13-23456-2
+sign \x621C 145-346-2
+sign \x621D 125-356-2
+sign \x621E 13-23456-2
+sign \x621F 13-16-4
+sign \x6220 1-156-2
+sign \x6221 123-1236-3
+sign \x6222 13-16-2
+sign \x6223 123-1246-2
+sign \x6224 13-2456-5
+sign \x6225 145-1356-4
+sign \x6226 1-1236-5
+sign \x6227 12-456-3
+sign \x6228 13-2346-3
+sign \x6229 13-2345-4
+sign \x622A 13-346-2
+sign \x622B 1256-5
+sign \x622C 13-2345-4
+sign \x622D 2345-4
+sign \x622E 14-34-5
+sign \x622F 15-16-5
+sign \x6230 1-1236-5
+sign \x6231 15-16-5
+sign \x6232 15-16-5
+sign \x6233 12-25-3
+sign \x6234 145-2456-5
+sign \x6235 245-1256-2
+sign \x6236 1235-34-5
+sign \x6237 1235-34-5
+sign \x6238 1235-34-5
+sign \x6239 2346-5
+sign \x623A 24-156-5
+sign \x623B 14-16-5
+sign \x623C 134-146-4
+sign \x623D 1235-34-5
+sign \x623E 14-16-5
+sign \x623F 12345-1346-2
+sign \x6240 15-25-4
+sign \x6241 135-2345-4
+sign \x6242 145-2345-5
+sign \x6243 13-235-3
+sign \x6244 24-1346-4
+sign \x6245 16-2
+sign \x6246 16-4
+sign \x6247 24-1236-5
+sign \x6248 1235-34-5
+sign \x6249 12345-356-3
+sign \x624A 2345-4
+sign \x624B 24-12356-4
+sign \x624D 245-2456-2
+sign \x624E 1-345-2
+sign \x624F 245-234-2
+sign \x6250 14-2346-5
+sign \x6251 1234-34-3
+sign \x6252 1234-345-2
+sign \x6253 145-345-4
+sign \x6254 1245-1356-3
+sign \x6255 12345-34-2
+sign \x6257 125-2456-5
+sign \x6258 124-25-3
+sign \x6259 13-34-4
+sign \x625A 12-345-3
+sign \x625B 123-1346-2
+sign \x625C 145-123456-5
+sign \x625D 123-34-3
+sign \x625E 1256-3
+sign \x625F 24-136-3
+sign \x6260 1-1346-5
+sign \x6261 34-5
+sign \x6262 245-2345-3
+sign \x6263 123-12356-5
+sign \x6264 13-1236-4
+sign \x6265 145-246-3
+sign \x6266 16-4
+sign \x6267 1-156-2
+sign \x6268 1245-136-5
+sign \x6269 123-25-5
+sign \x626A 134-136-2
+sign \x626B 15-146-4
+sign \x626C 46-2
+sign \x626D 1345-234-4
+sign \x626E 135-1236-5
+sign \x626F 12-2346-4
+sign \x6270 234-5
+sign \x6271 12-345-2
+sign \x6272 245-2345-2
+sign \x6273 135-1236-3
+sign \x6274 13-23456-2
+sign \x6275 1256-2
+sign \x6276 12345-34-2
+sign \x6277 146-5
+sign \x6278 15-16-3
+sign \x6279 1234-16-3
+sign \x627A 1-156-4
+sign \x627B 125-156-5
+sign \x627C 2346-5
+sign \x627D 145-123456-5
+sign \x627E 1-146-4
+sign \x627F 12-1356-2
+sign \x6280 13-16-5
+sign \x6281 2345-4
+sign \x6282 123-456-2
+sign \x6283 135-2345-5
+sign \x6284 12-146-3
+sign \x6285 13-1256-3
+sign \x6286 123456-4
+sign \x6287 1235-34-2
+sign \x6288 236-5
+sign \x6289 13-236-2
+sign \x628A 135-345-4
+sign \x628B 245-1456-5
+sign \x628C 1-136-4
+sign \x628D 1-1356-4
+sign \x628E 256-4
+sign \x628F 12456-2
+sign \x6290 1345-34-5
+sign \x6291 16-5
+sign \x6292 24-34-3
+sign \x6293 1-35-3
+sign \x6294 1234-12356-2
+sign \x6295 124-12356-2
+sign \x6296 145-12356-4
+sign \x6297 123-1346-5
+sign \x6298 1-2346-2
+sign \x6299 1234-12356-2
+sign \x629A 12345-34-4
+sign \x629B 1234-146-3
+sign \x629C 135-345-2
+sign \x629D 146-5
+sign \x629E 125-2346-2
+sign \x629F 124-12456-2
+sign \x62A0 123-12356-3
+sign \x62A1 14-123456-2
+sign \x62A2 245-46-4
+sign \x62A4 1235-34-5
+sign \x62A5 135-146-5
+sign \x62A6 135-13456-4
+sign \x62A7 1-156-4
+sign \x62A8 1234-1356-3
+sign \x62A9 124-1236-3
+sign \x62AA 1234-34-3
+sign \x62AB 1234-16-3
+sign \x62AC 124-2456-2
+sign \x62AD 246-4
+sign \x62AE 1-136-4
+sign \x62AF 1-345-3
+sign \x62B0 46-4
+sign \x62B1 135-146-5
+sign \x62B2 1235-2346-3
+sign \x62B3 1345-16-4
+sign \x62B4 16-5
+sign \x62B5 145-16-4
+sign \x62B6 12-156-5
+sign \x62B7 1234-16-3
+sign \x62B8 125-345-3
+sign \x62B9 134-126-4
+sign \x62BA 134-356-5
+sign \x62BB 24-136-5
+sign \x62BC 23456-3
+sign \x62BD 12-12356-3
+sign \x62BE 245-1256-3
+sign \x62BF 134-1456-4
+sign \x62C0 12-34-5
+sign \x62C1 13-23456-3
+sign \x62C2 12345-34-2
+sign \x62C3 1-1236-4
+sign \x62C4 1-34-4
+sign \x62C5 145-1236-3
+sign \x62C6 12-2456-3
+sign \x62C7 134-34-4
+sign \x62C8 1345-2345-2
+sign \x62C9 14-345-3
+sign \x62CA 12345-34-4
+sign \x62CB 1234-146-3
+sign \x62CC 135-1236-5
+sign \x62CD 1234-2456-3
+sign \x62CE 14-13456-3
+sign \x62CF 1345-345-2
+sign \x62D0 13-2356-4
+sign \x62D1 245-2345-2
+sign \x62D2 13-1256-5
+sign \x62D3 124-25-5
+sign \x62D4 135-345-2
+sign \x62D5 124-25-3
+sign \x62D6 124-25-3
+sign \x62D7 146-5
+sign \x62D8 13-1256-3
+sign \x62D9 1-25-2
+sign \x62DA 1234-1456-3
+sign \x62DB 1-146-3
+sign \x62DC 135-2456-5
+sign \x62DD 135-2456-5
+sign \x62DE 145-16-4
+sign \x62DF 1345-16-4
+sign \x62E0 13-1256-5
+sign \x62E1 123-25-5
+sign \x62E2 14-12346-4
+sign \x62E3 13-2345-4
+sign \x62E5 235-4
+sign \x62E6 14-1236-2
+sign \x62E7 1345-13456-2
+sign \x62E8 135-126-3
+sign \x62E9 125-2346-2
+sign \x62EA 245-2345-3
+sign \x62EB 1235-136-2
+sign \x62EC 13-35-3
+sign \x62ED 24-156-5
+sign \x62EE 13-346-2
+sign \x62EF 1-1356-4
+sign \x62F0 1345-1456-4
+sign \x62F1 13-12346-4
+sign \x62F2 13-12346-4
+sign \x62F3 245-45-2
+sign \x62F4 24-12456-3
+sign \x62F5 245-123456-2
+sign \x62F6 125-1236-4
+sign \x62F7 123-146-4
+sign \x62F8 12-156-4
+sign \x62F9 15-346-2
+sign \x62FA 245-2346-5
+sign \x62FB 1235-1246-3
+sign \x62FC 1234-1456-3
+sign \x62FD 1-2356-4
+sign \x62FE 24-156-2
+sign \x62FF 1345-345-2
+sign \x6300 134-126-5
+sign \x6301 12-156-2
+sign \x6302 13-35-5
+sign \x6303 1-156-5
+sign \x6304 123-25-5
+sign \x6305 145-25-4
+sign \x6306 145-25-4
+sign \x6307 1-156-4
+sign \x6308 245-346-5
+sign \x6309 1236-5
+sign \x630A 1345-12346-5
+sign \x630B 1-136-5
+sign \x630C 13-2346-2
+sign \x630D 13-246-5
+sign \x630E 123-34-3
+sign \x630F 145-12346-5
+sign \x6310 1345-1256-2
+sign \x6311 124-246-3
+sign \x6312 14-346-5
+sign \x6313 1-345-3
+sign \x6314 14-1256-4
+sign \x6315 145-346-2
+sign \x6316 35-3
+sign \x6317 13-236-2
+sign \x6319 13-1256-4
+sign \x631A 1-156-5
+sign \x631B 14-45-2
+sign \x631C 23456-5
+sign \x631D 1-35-3
+sign \x631E 124-345-5
+sign \x631F 13-23456-2
+sign \x6320 1345-146-2
+sign \x6321 145-1346-4
+sign \x6322 13-246-4
+sign \x6323 1-1356-3
+sign \x6324 13-16-4
+sign \x6325 1235-1246-3
+sign \x6326 15-256-2
+sign \x6328 2456-3
+sign \x6329 124-25-3
+sign \x632A 1345-25-2
+sign \x632B 245-25-5
+sign \x632C 135-126-2
+sign \x632D 13-1356-4
+sign \x632E 124-16-4
+sign \x632F 1-136-5
+sign \x6330 12-1356-2
+sign \x6331 15-25-3
+sign \x6332 15-25-3
+sign \x6333 123-1356-3
+sign \x6334 134-356-4
+sign \x6335 1345-12346-5
+sign \x6336 13-1256-2
+sign \x6337 1234-1356-2
+sign \x6338 13-2345-4
+sign \x6339 16-5
+sign \x633A 124-13456-4
+sign \x633B 24-1236-3
+sign \x633C 1345-2346-2
+sign \x633D 12456-4
+sign \x633E 13-23456-2
+sign \x633F 12-345-3
+sign \x6340 12345-1356-3
+sign \x6341 13-246-4
+sign \x6342 34-5
+sign \x6343 13-256-5
+sign \x6344 13-1256-3
+sign \x6345 124-12346-4
+sign \x6346 123-123456-4
+sign \x6347 1235-25-5
+sign \x6348 124-34-2
+sign \x6349 1-25-3
+sign \x634A 1234-12356-2
+sign \x634B 14-2346-5
+sign \x634C 135-345-3
+sign \x634D 1235-1236-5
+sign \x634E 24-146-3
+sign \x634F 1345-346-3
+sign \x6350 13-45-3
+sign \x6351 125-2346-2
+sign \x6352 15-12346-4
+sign \x6353 346-2
+sign \x6354 13-236-2
+sign \x6355 135-34-4
+sign \x6356 1235-12456-2
+sign \x6357 135-34-5
+sign \x6358 125-123456-5
+sign \x6359 1-2356-4
+sign \x635A 1-2456-3
+sign \x635B 14-1256-4
+sign \x635C 15-12356-3
+sign \x635D 124-25-3
+sign \x635E 14-146-3
+sign \x635F 15-123456-4
+sign \x6360 135-1346-3
+sign \x6361 13-2345-4
+sign \x6362 1235-12456-5
+sign \x6363 145-146-4
+sign \x6365 12456-5
+sign \x6366 245-1456-2
+sign \x6367 1234-1356-4
+sign \x6368 24-2346-4
+sign \x6369 14-346-5
+sign \x636A 134-1456-2
+sign \x636B 134-136-2
+sign \x636C 12345-34-4
+sign \x636D 135-2456-4
+sign \x636E 13-1256-5
+sign \x636F 145-146-4
+sign \x6370 25-4
+sign \x6371 2456-2
+sign \x6372 13-45-4
+sign \x6373 236-5
+sign \x6374 125-12346-4
+sign \x6375 124-2345-4
+sign \x6376 12-1246-2
+sign \x6377 13-346-2
+sign \x6378 124-34-3
+sign \x6379 135-136-5
+sign \x637A 1345-345-5
+sign \x637B 1345-2345-4
+sign \x637C 1345-25-2
+sign \x637D 125-34-2
+sign \x637E 25-5
+sign \x637F 15-16-3
+sign \x6380 15-2345-3
+sign \x6381 12-1356-2
+sign \x6382 145-2345-3
+sign \x6383 15-146-4
+sign \x6384 14-123456-2
+sign \x6385 245-13456-5
+sign \x6386 13-1346-3
+sign \x6387 145-25-2
+sign \x6388 24-12356-5
+sign \x6389 145-246-5
+sign \x638A 1234-12356-2
+sign \x638B 145-16-4
+sign \x638C 1-1346-4
+sign \x638D 13-123456-4
+sign \x638E 13-16-4
+sign \x638F 124-146-3
+sign \x6390 245-23456-3
+sign \x6391 245-16-2
+sign \x6392 1234-2456-2
+sign \x6393 24-34-2
+sign \x6394 245-2345-3
+sign \x6395 14-13456-5
+sign \x6396 16-5
+sign \x6397 23456-5
+sign \x6398 13-236-2
+sign \x6399 1-1356-3
+sign \x639A 14-46-4
+sign \x639B 13-35-5
+sign \x639C 16-4
+sign \x639D 1235-25-5
+sign \x639E 24-1236-5
+sign \x639F 1-1356-4
+sign \x63A0 14-236-5
+sign \x63A1 245-2456-4
+sign \x63A2 124-1236-5
+sign \x63A3 12-2346-5
+sign \x63A4 135-13456-3
+sign \x63A5 13-346-3
+sign \x63A6 124-16-5
+sign \x63A7 123-12346-5
+sign \x63A8 124-1246-3
+sign \x63A9 2345-4
+sign \x63AA 245-25-5
+sign \x63AB 125-12356-3
+sign \x63AC 13-1256-2
+sign \x63AD 124-2345-5
+sign \x63AE 245-2345-2
+sign \x63AF 123-136-5
+sign \x63B0 135-2456-3
+sign \x63B1 24-12356-4
+sign \x63B2 13-346-3
+sign \x63B3 14-34-4
+sign \x63B4 13-25-2
+sign \x63B7 1-156-2
+sign \x63B8 145-1236-4
+sign \x63BA 245-1236-3
+sign \x63BB 15-146-3
+sign \x63BC 13-12456-5
+sign \x63BD 1234-1356-5
+sign \x63BE 45-5
+sign \x63BF 1345-25-5
+sign \x63C0 13-2345-4
+sign \x63C1 1-136-3
+sign \x63C2 13-234-3
+sign \x63C3 13-2345-4
+sign \x63C4 1256-2
+sign \x63C5 2345-2
+sign \x63C6 123-1246-2
+sign \x63C7 1345-1236-4
+sign \x63C8 1235-12346-3
+sign \x63C9 1245-12356-2
+sign \x63CA 1234-16-5
+sign \x63CB 1246-3
+sign \x63CC 15-2456-3
+sign \x63CD 125-12356-5
+sign \x63CE 15-45-3
+sign \x63CF 134-246-2
+sign \x63D0 124-16-2
+sign \x63D1 1345-346-3
+sign \x63D2 12-345-3
+sign \x63D3 24-156-5
+sign \x63D4 125-12346-4
+sign \x63D5 1-136-5
+sign \x63D6 16-3
+sign \x63D7 24-123456-4
+sign \x63D8 1235-1356-2
+sign \x63D9 135-2345-5
+sign \x63DA 46-2
+sign \x63DB 1235-12456-5
+sign \x63DC 2345-4
+sign \x63DD 125-12456-5
+sign \x63DE 1236-4
+sign \x63DF 15-1256-3
+sign \x63E0 23456-5
+sign \x63E1 25-5
+sign \x63E2 123-2346-5
+sign \x63E3 12-2356-4
+sign \x63E4 13-16-2
+sign \x63E5 124-16-5
+sign \x63E6 14-345-2
+sign \x63E7 14-345-5
+sign \x63E8 12-1356-2
+sign \x63E9 123-2456-4
+sign \x63EA 13-234-3
+sign \x63EB 13-234-3
+sign \x63EC 124-34-2
+sign \x63ED 13-346-3
+sign \x63EE 1235-1246-3
+sign \x63EF 13-1356-3
+sign \x63F0 12-12346-5
+sign \x63F1 15-246-3
+sign \x63F2 24-2346-2
+sign \x63F3 15-346-5
+sign \x63F4 45-2
+sign \x63F5 245-2345-2
+sign \x63F6 346-2
+sign \x63F7 12-345-3
+sign \x63F8 1-345-3
+sign \x63F9 135-356-3
+sign \x63FA 246-2
+sign \x63FD 14-1236-4
+sign \x63FE 123456-5
+sign \x63FF 245-1456-5
+sign \x6400 12-1236-3
+sign \x6401 13-2346-3
+sign \x6402 14-12356-4
+sign \x6403 125-12346-4
+sign \x6404 13-1356-3
+sign \x6405 13-246-4
+sign \x6406 13-12356-3
+sign \x6407 245-1456-5
+sign \x6408 235-4
+sign \x6409 245-236-5
+sign \x640A 12-12356-3
+sign \x640B 12-2356-3
+sign \x640C 1-1236-4
+sign \x640D 15-123456-4
+sign \x640E 15-123456-3
+sign \x640F 135-126-2
+sign \x6410 12-34-5
+sign \x6411 1245-12346-4
+sign \x6412 135-1356-5
+sign \x6413 245-25-3
+sign \x6414 15-146-3
+sign \x6415 123-2346-5
+sign \x6416 246-2
+sign \x6417 145-146-4
+sign \x6418 1-156-3
+sign \x6419 1345-34-5
+sign \x641A 15-346-2
+sign \x641B 13-2345-3
+sign \x641C 15-12356-3
+sign \x641D 245-234-4
+sign \x641E 13-146-4
+sign \x641F 15-2345-4
+sign \x6420 24-25-5
+sign \x6421 15-1346-4
+sign \x6422 13-1456-5
+sign \x6423 134-346-5
+sign \x6424 2346-5
+sign \x6425 12-1246-2
+sign \x6426 1345-25-5
+sign \x6427 24-1236-3
+sign \x6428 124-345-5
+sign \x6429 13-346-2
+sign \x642A 124-1346-2
+sign \x642B 1234-1236-2
+sign \x642C 135-1236-3
+sign \x642D 145-345-3
+sign \x642E 14-16-5
+sign \x642F 124-146-3
+sign \x6430 1235-34-2
+sign \x6431 1-156-5
+sign \x6432 35-3
+sign \x6433 15-23456-2
+sign \x6434 245-2345-3
+sign \x6435 123456-5
+sign \x6436 245-46-4
+sign \x6437 124-2345-2
+sign \x6438 1-136-3
+sign \x6439 2346-5
+sign \x643A 15-16-3
+sign \x643B 1345-25-5
+sign \x643C 245-45-2
+sign \x643D 12-345-2
+sign \x643E 1-345-5
+sign \x643F 13-2346-2
+sign \x6440 34-4
+sign \x6441 136-5
+sign \x6442 24-2346-5
+sign \x6443 123-1346-2
+sign \x6444 24-2346-5
+sign \x6445 24-34-3
+sign \x6446 135-2456-4
+sign \x6447 246-2
+sign \x6448 135-1456-5
+sign \x6449 15-12356-3
+sign \x644A 124-1236-3
+sign \x644B 15-345-5
+sign \x644C 12-1236-4
+sign \x644D 15-25-3
+sign \x644E 13-234-3
+sign \x644F 12-12346-3
+sign \x6450 12-456-3
+sign \x6451 13-25-2
+sign \x6452 135-13456-5
+sign \x6453 12345-1356-2
+sign \x6454 24-2356-3
+sign \x6455 145-16-5
+sign \x6456 245-16-5
+sign \x6458 1-2456-3
+sign \x6459 14-2345-4
+sign \x645A 124-1346-2
+sign \x645B 12-156-3
+sign \x645C 13-12456-5
+sign \x645D 14-34-5
+sign \x645E 14-25-2
+sign \x645F 14-12356-4
+sign \x6460 125-12346-4
+sign \x6461 13-2456-5
+sign \x6462 1235-34-5
+sign \x6463 1-345-3
+sign \x6464 12-456-4
+sign \x6465 124-1346-5
+sign \x6466 1235-35-5
+sign \x6467 245-1246-3
+sign \x6468 1345-2456-2
+sign \x6469 134-126-2
+sign \x646A 13-46-3
+sign \x646B 13-1246-3
+sign \x646C 13456-5
+sign \x646D 1-156-2
+sign \x646E 146-2
+sign \x646F 1-156-5
+sign \x6470 1345-346-5
+sign \x6471 134-1236-2
+sign \x6472 24-1236-3
+sign \x6473 123-12356-3
+sign \x6474 24-34-3
+sign \x6475 15-25-4
+sign \x6476 124-12456-2
+sign \x6477 13-246-4
+sign \x6478 134-126-3
+sign \x6479 134-126-2
+sign \x647A 1-2346-2
+sign \x647B 12-1236-3
+sign \x647C 123-1356-3
+sign \x647D 135-246-3
+sign \x647E 13-46-5
+sign \x647F 1456-3
+sign \x6480 13-12356-5
+sign \x6481 245-2345-3
+sign \x6482 14-236-5
+sign \x6483 13-16-2
+sign \x6484 13456-3
+sign \x6485 13-236-3
+sign \x6486 1234-346-4
+sign \x6487 1234-346-4
+sign \x6488 14-146-3
+sign \x6489 145-123456-3
+sign \x648A 15-2345-5
+sign \x648B 1245-12456-2
+sign \x648C 123-1246-5
+sign \x648D 125-1236-4
+sign \x648E 16-5
+sign \x648F 15-256-2
+sign \x6490 12-1356-3
+sign \x6491 12-1356-3
+sign \x6492 15-345-4
+sign \x6493 1345-146-2
+sign \x6494 1235-1356-5
+sign \x6495 15-156-3
+sign \x6496 245-2345-4
+sign \x6497 1235-456-2
+sign \x6498 145-345-3
+sign \x6499 125-123456-4
+sign \x649A 1345-2345-4
+sign \x649B 14-1456-4
+sign \x649C 1-1356-4
+sign \x649D 1235-1246-3
+sign \x649E 1-456-5
+sign \x649F 13-246-4
+sign \x64A0 13-16-4
+sign \x64A1 245-146-3
+sign \x64A2 145-1236-4
+sign \x64A3 145-1236-4
+sign \x64A4 12-2346-5
+sign \x64A5 135-126-3
+sign \x64A6 12-2346-4
+sign \x64A7 13-236-2
+sign \x64A8 15-246-3
+sign \x64A9 14-246-2
+sign \x64AA 135-136-5
+sign \x64AB 12345-34-4
+sign \x64AC 245-246-3
+sign \x64AD 135-126-5
+sign \x64AE 245-25-3
+sign \x64AF 1-25-2
+sign \x64B0 1-12456-5
+sign \x64B1 124-25-4
+sign \x64B2 1234-34-3
+sign \x64B3 245-1456-5
+sign \x64B4 145-123456-3
+sign \x64B5 1345-2345-4
+sign \x64B7 13-346-2
+sign \x64B8 14-34-4
+sign \x64B9 13-246-4
+sign \x64BA 245-12456-3
+sign \x64BB 124-345-5
+sign \x64BC 1235-1236-5
+sign \x64BD 245-246-5
+sign \x64BE 1-35-3
+sign \x64BF 13-2345-4
+sign \x64C0 13-1236-4
+sign \x64C1 235-4
+sign \x64C2 14-356-2
+sign \x64C3 123-25-4
+sign \x64C4 14-34-4
+sign \x64C5 24-1236-5
+sign \x64C6 1-25-2
+sign \x64C7 125-2346-2
+sign \x64C8 1234-34-3
+sign \x64C9 12-25-5
+sign \x64CA 13-16-2
+sign \x64CB 145-1346-4
+sign \x64CC 15-25-4
+sign \x64CD 245-146-3
+sign \x64CE 245-13456-2
+sign \x64CF 245-13456-2
+sign \x64D0 1235-12456-5
+sign \x64D1 13-346-3
+sign \x64D2 245-1456-2
+sign \x64D3 123-2356-4
+sign \x64D4 145-1236-3
+sign \x64D5 15-16-3
+sign \x64D6 13-2346-5
+sign \x64D7 1234-16-5
+sign \x64D8 135-126-5
+sign \x64D9 146-5
+sign \x64DA 13-1256-5
+sign \x64DB 346-5
+sign \x64DE 15-12356-4
+sign \x64DF 134-16-2
+sign \x64E0 13-16-4
+sign \x64E1 124-2456-2
+sign \x64E2 1-25-2
+sign \x64E3 145-146-4
+sign \x64E4 15-13456-4
+sign \x64E5 14-1236-4
+sign \x64E6 245-345-3
+sign \x64E7 13-1256-4
+sign \x64E8 346-2
+sign \x64E9 1245-34-4
+sign \x64EA 346-5
+sign \x64EB 346-5
+sign \x64EC 1345-16-4
+sign \x64ED 1235-34-5
+sign \x64EE 13-16-2
+sign \x64EF 135-1456-5
+sign \x64F0 1345-13456-2
+sign \x64F1 13-2346-3
+sign \x64F2 1-156-2
+sign \x64F3 13-346-2
+sign \x64F4 123-25-5
+sign \x64F5 134-126-2
+sign \x64F6 13-2345-5
+sign \x64F7 13-346-2
+sign \x64F8 14-346-5
+sign \x64F9 124-1236-3
+sign \x64FA 135-2456-4
+sign \x64FB 15-12356-4
+sign \x64FC 14-34-4
+sign \x64FD 14-236-5
+sign \x64FE 1245-146-4
+sign \x64FF 1-156-2
+sign \x6500 1234-1236-3
+sign \x6501 46-4
+sign \x6502 14-356-2
+sign \x6503 15-345-5
+sign \x6504 24-34-3
+sign \x6505 125-1236-4
+sign \x6506 1345-2345-4
+sign \x6507 15-2345-4
+sign \x6508 13-256-5
+sign \x6509 1235-25-5
+sign \x650A 14-16-5
+sign \x650B 14-345-5
+sign \x650C 1235-1236-5
+sign \x650D 13456-2
+sign \x650E 14-34-2
+sign \x650F 14-12346-4
+sign \x6510 245-2345-3
+sign \x6511 245-2345-3
+sign \x6512 125-1236-4
+sign \x6513 245-2345-3
+sign \x6514 14-1236-2
+sign \x6515 15-1236-3
+sign \x6516 13456-3
+sign \x6517 134-356-2
+sign \x6518 1245-1346-4
+sign \x6519 12-1236-3
+sign \x651B 245-12456-3
+sign \x651C 15-16-3
+sign \x651D 24-2346-5
+sign \x651E 14-25-4
+sign \x651F 13-256-5
+sign \x6520 134-16-2
+sign \x6521 14-16-2
+sign \x6522 125-1236-4
+sign \x6523 14-45-2
+sign \x6524 124-1236-3
+sign \x6525 125-12456-5
+sign \x6526 14-16-5
+sign \x6527 145-2345-3
+sign \x6528 35-3
+sign \x6529 145-1346-4
+sign \x652A 13-246-4
+sign \x652B 13-236-2
+sign \x652C 14-1236-4
+sign \x652D 14-16-5
+sign \x652E 1345-1346-4
+sign \x652F 1-156-3
+sign \x6530 13-1246-5
+sign \x6531 13-1246-4
+sign \x6532 245-16-3
+sign \x6533 15-1456-2
+sign \x6534 1234-34-3
+sign \x6535 15-1246-3
+sign \x6536 24-12356-3
+sign \x6537 123-146-4
+sign \x6538 234-3
+sign \x6539 13-2456-4
+sign \x653A 16-4
+sign \x653B 13-12346-3
+sign \x653C 13-1236-3
+sign \x653D 135-1236-3
+sign \x653E 12345-1346-5
+sign \x653F 1-1356-5
+sign \x6540 135-126-2
+sign \x6541 145-2345-3
+sign \x6542 123-12356-5
+sign \x6543 134-1456-4
+sign \x6544 34-5
+sign \x6545 13-34-5
+sign \x6546 13-2346-2
+sign \x6547 245-2346-5
+sign \x6548 15-246-5
+sign \x6549 134-16-4
+sign \x654A 12-34-5
+sign \x654B 13-2346-2
+sign \x654C 145-16-2
+sign \x654D 15-1256-5
+sign \x654E 13-246-5
+sign \x654F 134-1456-4
+sign \x6550 12-136-2
+sign \x6551 13-234-5
+sign \x6552 1-136-5
+sign \x6553 145-25-2
+sign \x6554 1256-4
+sign \x6555 12-156-5
+sign \x6556 146-2
+sign \x6557 135-2456-5
+sign \x6558 15-1256-5
+sign \x6559 13-246-5
+sign \x655A 145-25-2
+sign \x655B 14-2345-5
+sign \x655C 1345-346-5
+sign \x655D 135-16-5
+sign \x655E 12-1346-4
+sign \x655F 145-2345-4
+sign \x6560 145-25-2
+sign \x6561 16-5
+sign \x6562 13-1236-4
+sign \x6563 15-1236-5
+sign \x6564 123-2346-4
+sign \x6565 2345-5
+sign \x6566 145-123456-3
+sign \x6567 245-16-4
+sign \x6568 124-12356-4
+sign \x6569 15-236-2
+sign \x656A 145-25-2
+sign \x656B 13-246-5
+sign \x656C 13-13456-5
+sign \x656D 46-2
+sign \x656E 15-23456-2
+sign \x656F 134-1456-4
+sign \x6570 24-34-5
+sign \x6571 2456-2
+sign \x6572 245-246-3
+sign \x6573 2456-2
+sign \x6574 1-1356-4
+sign \x6575 145-16-2
+sign \x6576 1-136-5
+sign \x6577 12345-34-3
+sign \x6578 24-34-5
+sign \x6579 14-246-2
+sign \x657A 245-1256-3
+sign \x657B 15-235-5
+sign \x657C 15-16-4
+sign \x657D 13-246-4
+sign \x657F 13-246-4
+sign \x6580 1-25-2
+sign \x6581 16-5
+sign \x6582 14-2345-5
+sign \x6583 135-16-5
+sign \x6584 14-16-5
+sign \x6585 15-246-5
+sign \x6586 15-236-2
+sign \x6587 123456-2
+sign \x6588 15-236-2
+sign \x6589 245-16-2
+sign \x658A 245-16-2
+sign \x658B 1-2456-3
+sign \x658C 135-1456-3
+sign \x658D 13-236-2
+sign \x658E 1-2456-3
+sign \x6590 12345-356-4
+sign \x6591 135-1236-3
+sign \x6592 135-1236-3
+sign \x6593 14-1236-2
+sign \x6594 1256-4
+sign \x6595 14-1236-2
+sign \x6596 1246-4
+sign \x6597 145-12356-4
+sign \x6598 24-1356-3
+sign \x6599 14-246-5
+sign \x659A 13-23456-4
+sign \x659B 1235-34-2
+sign \x659C 15-346-2
+sign \x659D 13-23456-4
+sign \x659E 1256-4
+sign \x659F 1-136-3
+sign \x65A0 13-246-5
+sign \x65A1 25-5
+sign \x65A2 124-12356-4
+sign \x65A3 12-34-5
+sign \x65A4 13-1456-3
+sign \x65A5 12-156-5
+sign \x65A6 1456-2
+sign \x65A7 12345-34-4
+sign \x65A8 245-46-3
+sign \x65A9 1-1236-4
+sign \x65AA 245-1256-2
+sign \x65AB 1-25-2
+sign \x65AC 1-1236-4
+sign \x65AD 145-12456-5
+sign \x65AE 1-25-2
+sign \x65AF 15-156-3
+sign \x65B0 15-1456-3
+sign \x65B1 1-25-2
+sign \x65B2 1-25-2
+sign \x65B3 245-1456-2
+sign \x65B4 14-1456-2
+sign \x65B5 1-25-2
+sign \x65B6 12-34-5
+sign \x65B7 145-12456-5
+sign \x65B8 1-34-4
+sign \x65B9 12345-1346-3
+sign \x65BA 15-346-5
+sign \x65BB 1235-1346-2
+sign \x65BC 1256-2
+sign \x65BD 24-156-3
+sign \x65BE 1234-356-5
+sign \x65BF 234-2
+sign \x65C1 1234-1346-2
+sign \x65C2 245-16-2
+sign \x65C3 1-1236-3
+sign \x65C4 134-146-2
+sign \x65C5 14-1256-4
+sign \x65C6 1234-356-5
+sign \x65C7 1234-16-3
+sign \x65C8 14-234-2
+sign \x65C9 12345-34-3
+sign \x65CA 12345-1346-4
+sign \x65CB 15-45-2
+sign \x65CC 13-13456-3
+sign \x65CD 13-13456-3
+sign \x65CE 1345-16-2
+sign \x65CF 125-34-2
+sign \x65D0 1-146-5
+sign \x65D1 16-4
+sign \x65D2 14-234-2
+sign \x65D3 24-146-3
+sign \x65D4 13-2345-5
+sign \x65D6 16-4
+sign \x65D7 245-16-2
+sign \x65D8 1-156-5
+sign \x65D9 12345-1236-3
+sign \x65DA 1234-246-3
+sign \x65DB 12345-1236-3
+sign \x65DC 1-1236-3
+sign \x65DD 13-2356-5
+sign \x65DE 15-1246-5
+sign \x65DF 1256-2
+sign \x65E0 34-2
+sign \x65E1 125-1236-3
+sign \x65E2 13-16-5
+sign \x65E3 13-16-5
+sign \x65E4 1235-25-5
+sign \x65E5 1245-156-5
+sign \x65E6 145-1236-5
+sign \x65E7 13-234-5
+sign \x65E8 1-156-4
+sign \x65E9 125-146-4
+sign \x65EA 15-346-2
+sign \x65EB 124-246-3
+sign \x65EC 15-256-2
+sign \x65ED 15-1256-5
+sign \x65EE 15-1256-5
+sign \x65EF 14-345-2
+sign \x65F0 13-1236-5
+sign \x65F1 1235-1236-5
+sign \x65F2 124-2456-2
+sign \x65F3 145-2346-1
+sign \x65F4 15-1256-3
+sign \x65F5 12-1236-4
+sign \x65F6 24-156-2
+sign \x65F7 123-456-5
+sign \x65F8 46-2
+sign \x65F9 24-156-2
+sign \x65FA 456-5
+sign \x65FB 134-1456-2
+sign \x65FC 134-1456-2
+sign \x65FD 124-123456-3
+sign \x65FE 12-123456-3
+sign \x65FF 34-4
+sign \x6600 256-2
+sign \x6601 135-356-5
+sign \x6602 1346-2
+sign \x6603 125-2346-5
+sign \x6604 135-1236-4
+sign \x6605 13-346-2
+sign \x6606 123-123456-3
+sign \x6607 24-1356-3
+sign \x6608 1235-34-5
+sign \x6609 12345-1346-4
+sign \x660A 1235-146-5
+sign \x660B 13-1246-5
+sign \x660C 12-1346-3
+sign \x660D 15-45-3
+sign \x660E 134-13456-2
+sign \x660F 1235-123456-3
+sign \x6610 12345-136-3
+sign \x6611 245-1456-4
+sign \x6612 1235-34-3
+sign \x6613 16-5
+sign \x6614 15-16-2
+sign \x6615 15-1456-3
+sign \x6616 2345-2
+sign \x6617 125-2346-5
+sign \x6618 12345-1346-4
+sign \x6619 124-1236-2
+sign \x661A 24-136-5
+sign \x661B 13-1256-5
+sign \x661C 46-2
+sign \x661D 125-1236-4
+sign \x661E 135-13456-4
+sign \x661F 15-13456-3
+sign \x6620 13456-5
+sign \x6621 15-45-5
+sign \x6622 1234-356-4
+sign \x6623 1-136-4
+sign \x6624 14-13456-3
+sign \x6625 12-123456-3
+sign \x6626 1235-146-5
+sign \x6627 134-356-5
+sign \x6628 125-25-2
+sign \x6629 134-126-5
+sign \x662A 135-2345-5
+sign \x662B 15-1256-3
+sign \x662C 1235-123456-3
+sign \x662D 1-146-3
+sign \x662E 125-12346-5
+sign \x662F 24-156-5
+sign \x6630 24-156-5
+sign \x6631 1256-5
+sign \x6632 12345-356-5
+sign \x6633 145-346-2
+sign \x6634 134-146-4
+sign \x6635 1345-16-5
+sign \x6636 12-1346-4
+sign \x6637 123456-3
+sign \x6638 145-12346-3
+sign \x6639 2456-4
+sign \x663A 135-13456-4
+sign \x663B 1346-2
+sign \x663C 1-12356-5
+sign \x663D 14-12346-2
+sign \x663E 15-2345-4
+sign \x663F 123-456-5
+sign \x6640 124-246-4
+sign \x6641 1-146-5
+sign \x6642 24-156-2
+sign \x6643 1235-456-4
+sign \x6644 1235-456-4
+sign \x6645 15-45-3
+sign \x6646 123-1246-2
+sign \x6647 15-1256-3
+sign \x6648 13-246-4
+sign \x6649 13-1456-5
+sign \x664A 1-156-4
+sign \x664B 13-1456-5
+sign \x664C 24-1346-4
+sign \x664D 124-12346-2
+sign \x664E 1235-12346-4
+sign \x664F 2345-5
+sign \x6650 13-2456-3
+sign \x6651 15-46-4
+sign \x6652 24-2456-5
+sign \x6653 15-246-4
+sign \x6654 346-5
+sign \x6655 256-3
+sign \x6656 1235-1246-3
+sign \x6657 1235-1236-2
+sign \x6658 1235-1236-5
+sign \x6659 13-256-5
+sign \x665A 12456-4
+sign \x665B 15-2345-5
+sign \x665C 123-123456-3
+sign \x665D 1-12356-5
+sign \x665E 15-16-3
+sign \x665F 24-1356-5
+sign \x6660 24-1356-2
+sign \x6661 135-34-3
+sign \x6662 1-2346-3
+sign \x6663 1-2346-3
+sign \x6664 34-5
+sign \x6665 1235-1236-5
+sign \x6666 1235-1246-5
+sign \x6667 1235-146-5
+sign \x6668 12-136-2
+sign \x6669 12456-4
+sign \x666A 124-2345-4
+sign \x666B 1-25-2
+sign \x666C 125-1246-5
+sign \x666D 1-12356-4
+sign \x666E 1234-34-4
+sign \x666F 13-13456-4
+sign \x6670 15-16-3
+sign \x6671 24-1236-4
+sign \x6672 16-4
+sign \x6673 15-16-5
+sign \x6674 245-13456-2
+sign \x6675 245-16-4
+sign \x6676 13-13456-3
+sign \x6677 13-1246-4
+sign \x6678 1-136-4
+sign \x6679 16-5
+sign \x667A 1-156-5
+sign \x667B 1236-4
+sign \x667C 12456-4
+sign \x667D 14-1456-2
+sign \x667E 14-46-5
+sign \x667F 12-1346-3
+sign \x6680 456-5
+sign \x6681 15-246-4
+sign \x6682 1-1236-5
+sign \x6684 15-45-3
+sign \x6685 15-45-4
+sign \x6686 16-2
+sign \x6687 15-23456-2
+sign \x6688 256-3
+sign \x6689 1235-1246-3
+sign \x668A 12345-34-4
+sign \x668B 134-1456-4
+sign \x668C 123-1246-2
+sign \x668D 346-5
+sign \x668E 13456-5
+sign \x668F 145-34-4
+sign \x6690 1246-4
+sign \x6691 24-34-4
+sign \x6692 245-13456-2
+sign \x6693 134-146-5
+sign \x6694 1345-1236-2
+sign \x6695 13-2345-4
+sign \x6696 1345-12456-4
+sign \x6697 1236-5
+sign \x6698 46-2
+sign \x6699 12-123456-3
+sign \x669A 246-2
+sign \x669B 15-25-4
+sign \x669C 13-1456-5
+sign \x669D 134-13456-2
+sign \x669E 13-246-4
+sign \x669F 123-2456-4
+sign \x66A0 13-146-4
+sign \x66A1 12346-4
+sign \x66A2 12-1346-5
+sign \x66A3 245-16-5
+sign \x66A4 1235-146-5
+sign \x66A5 2345-5
+sign \x66A6 14-16-5
+sign \x66A7 2456-5
+sign \x66A8 13-16-5
+sign \x66A9 13-1246-5
+sign \x66AA 134-136-4
+sign \x66AB 1-1236-5
+sign \x66AC 15-346-5
+sign \x66AD 1235-146-5
+sign \x66AE 134-34-5
+sign \x66AF 134-126-5
+sign \x66B0 245-12346-3
+sign \x66B1 1345-16-5
+sign \x66B2 1-1346-3
+sign \x66B3 1235-1246-5
+sign \x66B4 135-146-5
+sign \x66B5 1235-1236-4
+sign \x66B6 15-45-2
+sign \x66B7 12-12456-2
+sign \x66B8 14-246-2
+sign \x66B9 15-2345-3
+sign \x66BA 145-1236-5
+sign \x66BB 13-13456-4
+sign \x66BC 1234-346-3
+sign \x66BD 14-1456-2
+sign \x66BE 124-123456-3
+sign \x66BF 15-16-4
+sign \x66C0 16-5
+sign \x66C1 13-16-5
+sign \x66C2 1235-456-5
+sign \x66C3 124-2456-5
+sign \x66C4 346-5
+sign \x66C5 346-5
+sign \x66C6 14-16-5
+sign \x66C7 124-1236-2
+sign \x66C8 124-12346-2
+sign \x66C9 15-246-4
+sign \x66CA 12345-356-5
+sign \x66CB 245-1456-4
+sign \x66CC 1-146-5
+sign \x66CD 1235-146-5
+sign \x66CE 16-5
+sign \x66CF 15-46-4
+sign \x66D0 15-13456-3
+sign \x66D1 15-136-3
+sign \x66D2 13-246-4
+sign \x66D3 135-146-5
+sign \x66D4 13-13456-5
+sign \x66D5 2345-5
+sign \x66D6 2456-5
+sign \x66D7 346-5
+sign \x66D8 1245-34-2
+sign \x66D9 24-34-5
+sign \x66DA 134-1356-2
+sign \x66DB 15-256-3
+sign \x66DC 246-5
+sign \x66DD 1234-34-5
+sign \x66DE 14-16-5
+sign \x66DF 12-136-2
+sign \x66E0 123-456-5
+sign \x66E1 145-346-2
+sign \x66E3 2345-5
+sign \x66E4 1235-25-5
+sign \x66E5 14-34-2
+sign \x66E6 15-16-3
+sign \x66E7 1245-12346-2
+sign \x66E8 14-12346-2
+sign \x66E9 1345-1346-4
+sign \x66EA 14-25-4
+sign \x66EB 14-12456-2
+sign \x66EC 24-2456-5
+sign \x66ED 124-1346-4
+sign \x66EE 2345-4
+sign \x66EF 12-34-2
+sign \x66F0 236-3
+sign \x66F1 236-3
+sign \x66F2 245-1256-4
+sign \x66F3 16-5
+sign \x66F4 13-1356-5
+sign \x66F5 16-5
+sign \x66F6 1235-34-3
+sign \x66F7 1235-2346-2
+sign \x66F8 24-34-3
+sign \x66F9 245-146-2
+sign \x66FA 245-146-2
+sign \x66FC 134-1236-5
+sign \x66FD 245-1356-3
+sign \x66FE 245-1356-2
+sign \x66FF 124-16-5
+sign \x6700 125-1246-5
+sign \x6701 245-1236-4
+sign \x6702 15-1256-5
+sign \x6703 1235-1246-5
+sign \x6704 1456-5
+sign \x6705 245-346-5
+sign \x6706 12345-136-3
+sign \x6707 1234-16-2
+sign \x6708 236-5
+sign \x6709 234-4
+sign \x670A 13-12456-4
+sign \x670B 1234-1356-2
+sign \x670C 135-1236-3
+sign \x670D 12345-34-2
+sign \x670E 14-13456-2
+sign \x670F 12345-356-4
+sign \x6710 245-1256-2
+sign \x6712 1345-1256-5
+sign \x6713 124-246-4
+sign \x6714 24-25-5
+sign \x6715 1-136-5
+sign \x6716 14-1346-4
+sign \x6717 14-1346-4
+sign \x6718 13-45-3
+sign \x6719 134-13456-2
+sign \x671A 1235-456-3
+sign \x671B 456-5
+sign \x671C 124-123456-3
+sign \x671D 12-146-2
+sign \x671E 13-16-3
+sign \x671F 245-16-2
+sign \x6720 13456-3
+sign \x6721 125-12346-3
+sign \x6722 456-5
+sign \x6723 124-12346-2
+sign \x6724 14-1346-4
+sign \x6726 134-1356-2
+sign \x6727 14-12346-2
+sign \x6728 134-34-5
+sign \x6729 145-1356-4
+sign \x672A 1246-5
+sign \x672B 134-126-5
+sign \x672C 135-136-4
+sign \x672D 1-345-2
+sign \x672E 1-34-2
+sign \x672F 24-34-5
+sign \x6731 1-34-3
+sign \x6732 1245-136-2
+sign \x6733 135-345-3
+sign \x6734 1234-34-2
+sign \x6735 145-25-4
+sign \x6736 145-25-4
+sign \x6737 145-146-3
+sign \x6738 14-16-5
+sign \x6739 245-234-2
+sign \x673A 13-16-3
+sign \x673B 13-234-3
+sign \x673C 135-16-4
+sign \x673D 15-234-4
+sign \x673E 124-13456-2
+sign \x673F 245-156-5
+sign \x6740 24-345-3
+sign \x6742 125-345-2
+sign \x6743 245-45-2
+sign \x6744 245-2345-3
+sign \x6745 1256-2
+sign \x6746 13-1236-3
+sign \x6747 34-3
+sign \x6748 12-345-3
+sign \x6749 24-1236-3
+sign \x674A 15-256-2
+sign \x674B 12345-1236-2
+sign \x674C 34-5
+sign \x674D 125-156-4
+sign \x674E 14-16-4
+sign \x674F 15-13456-5
+sign \x6750 245-2456-2
+sign \x6751 245-123456-3
+sign \x6752 1245-136-5
+sign \x6753 24-146-2
+sign \x6754 124-25-3
+sign \x6755 145-16-5
+sign \x6756 1-1346-5
+sign \x6757 134-1346-2
+sign \x6758 12-156-5
+sign \x6759 16-5
+sign \x675A 13-34-4
+sign \x675B 13-12346-3
+sign \x675C 145-34-5
+sign \x675D 1-156-5
+sign \x675E 245-16-4
+sign \x675F 24-34-5
+sign \x6760 13-1346-3
+sign \x6761 124-246-2
+sign \x6765 14-2456-2
+sign \x6767 134-1346-2
+sign \x6768 46-2
+sign \x6769 134-345-5
+sign \x676A 134-246-4
+sign \x676B 15-156-5
+sign \x676C 45-2
+sign \x676D 1235-1346-2
+sign \x676E 12345-356-5
+sign \x676F 135-356-3
+sign \x6770 13-346-2
+sign \x6771 145-12346-3
+sign \x6772 13-146-4
+sign \x6773 246-4
+sign \x6774 15-2345-3
+sign \x6775 12-34-4
+sign \x6776 12-123456-3
+sign \x6777 1234-345-2
+sign \x6778 24-34-3
+sign \x6779 1235-35-5
+sign \x677A 15-1456-3
+sign \x677B 12-12356-4
+sign \x677C 1-34-5
+sign \x677D 12-12356-4
+sign \x677E 15-12346-3
+sign \x677F 135-1236-4
+sign \x6780 15-12346-3
+sign \x6781 13-16-2
+sign \x6782 236-5
+sign \x6783 13-1456-5
+sign \x6784 13-12356-5
+sign \x6785 13-16-3
+sign \x6786 134-146-2
+sign \x6787 1234-16-2
+sign \x6788 135-16-5
+sign \x6789 456-4
+sign \x678A 1346-5
+sign \x678B 12345-1346-3
+sign \x678C 12345-136-2
+sign \x678D 16-5
+sign \x678E 12345-34-2
+sign \x678F 1345-1236-2
+sign \x6790 15-16-3
+sign \x6791 1235-34-5
+sign \x6792 23456-2
+sign \x6793 145-12356-4
+sign \x6794 15-256-2
+sign \x6795 1-136-4
+sign \x6796 246-3
+sign \x6797 14-1456-2
+sign \x6798 1245-1246-5
+sign \x6799 2346-2
+sign \x679A 134-356-2
+sign \x679B 1-146-5
+sign \x679C 13-25-4
+sign \x679D 1-156-3
+sign \x679E 245-12346-3
+sign \x679F 256-5
+sign \x67A1 145-12356-4
+sign \x67A2 24-34-3
+sign \x67A3 125-146-4
+sign \x67A5 14-16-5
+sign \x67A7 13-2345-5
+sign \x67A8 12-1356-2
+sign \x67AA 245-46-3
+sign \x67AB 12345-1356-3
+sign \x67AC 1345-1236-2
+sign \x67AD 15-246-3
+sign \x67AE 15-2345-3
+sign \x67AF 123-34-3
+sign \x67B0 1234-13456-2
+sign \x67B1 16-2
+sign \x67B2 15-16-4
+sign \x67B3 13-16-4
+sign \x67B4 13-2356-4
+sign \x67B5 15-246-3
+sign \x67B6 13-23456-5
+sign \x67B7 13-23456-3
+sign \x67B8 13-12356-4
+sign \x67B9 12345-34-2
+sign \x67BA 134-126-5
+sign \x67BB 16-5
+sign \x67BC 346-5
+sign \x67BD 346-5
+sign \x67BE 24-156-5
+sign \x67BF 1345-346-5
+sign \x67C0 135-16-4
+sign \x67C1 145-25-5
+sign \x67C2 16-2
+sign \x67C3 14-13456-2
+sign \x67C4 135-13456-4
+sign \x67C5 1345-16-4
+sign \x67C6 14-345-3
+sign \x67C7 1235-2346-2
+sign \x67C8 1234-1236-2
+sign \x67C9 12345-1236-2
+sign \x67CA 1-12346-3
+sign \x67CB 145-2456-5
+sign \x67CC 245-156-2
+sign \x67CD 46-3
+sign \x67CE 12345-34-3
+sign \x67CF 135-126-2
+sign \x67D0 134-12356-4
+sign \x67D1 13-1236-3
+sign \x67D2 245-16-3
+sign \x67D3 1245-1236-4
+sign \x67D4 1245-12356-2
+sign \x67D5 134-146-5
+sign \x67D6 1-146-3
+sign \x67D7 15-12346-3
+sign \x67D8 1-2346-5
+sign \x67D9 15-23456-2
+sign \x67DA 234-5
+sign \x67DB 24-136-3
+sign \x67DC 13-1246-5
+sign \x67DD 124-25-5
+sign \x67DE 125-25-5
+sign \x67DF 1345-1236-2
+sign \x67E0 1345-13456-2
+sign \x67E1 235-4
+sign \x67E2 145-16-4
+sign \x67E3 1-156-2
+sign \x67E4 1-345-3
+sign \x67E5 12-345-2
+sign \x67E6 145-1236-5
+sign \x67E7 13-34-3
+sign \x67E9 13-234-5
+sign \x67EA 146-3
+sign \x67EB 12345-34-2
+sign \x67EC 13-2345-4
+sign \x67ED 135-126-3
+sign \x67EE 145-25-5
+sign \x67EF 123-2346-3
+sign \x67F0 1345-2456-5
+sign \x67F1 1-34-5
+sign \x67F2 135-16-5
+sign \x67F3 14-234-4
+sign \x67F4 12-2456-2
+sign \x67F5 1-345-5
+sign \x67F6 15-156-5
+sign \x67F7 12-34-5
+sign \x67F8 1234-356-3
+sign \x67F9 24-156-5
+sign \x67FA 13-2356-4
+sign \x67FB 12-345-2
+sign \x67FC 246-4
+sign \x67FD 12-1356-3
+sign \x67FE 13-234-5
+sign \x67FF 24-156-5
+sign \x6800 1-156-3
+sign \x6801 14-234-4
+sign \x6802 134-356-2
+sign \x6804 1245-12346-2
+sign \x6805 1-345-5
+sign \x6807 135-246-3
+sign \x6808 1-1236-5
+sign \x6809 13-346-2
+sign \x680A 14-12346-2
+sign \x680B 145-12346-5
+sign \x680C 14-34-2
+sign \x680E 14-16-5
+sign \x680F 14-1236-2
+sign \x6810 235-4
+sign \x6811 24-34-5
+sign \x6812 15-256-2
+sign \x6813 24-12456-3
+sign \x6814 245-16-5
+sign \x6815 1-136-3
+sign \x6816 245-16-3
+sign \x6817 14-16-5
+sign \x6818 16-2
+sign \x6819 15-46-2
+sign \x681A 1-136-5
+sign \x681B 14-16-5
+sign \x681C 15-34-5
+sign \x681D 123-2356-5
+sign \x681E 123-1236-3
+sign \x681F 135-13456-3
+sign \x6820 1245-136-4
+sign \x6821 15-246-5
+sign \x6822 135-126-2
+sign \x6823 1245-136-4
+sign \x6824 135-13456-5
+sign \x6825 125-156-3
+sign \x6826 12-12356-2
+sign \x6827 16-5
+sign \x6828 13-346-2
+sign \x6829 15-1256-4
+sign \x682A 1-34-3
+sign \x682B 125-123456-5
+sign \x682C 125-1246-5
+sign \x682D 156-2
+sign \x682E 156-4
+sign \x682F 1256-5
+sign \x6830 12345-345-2
+sign \x6831 13-12346-4
+sign \x6832 123-146-4
+sign \x6833 14-146-4
+sign \x6834 1-1236-3
+sign \x6835 14-346-5
+sign \x6837 46-5
+sign \x6838 1235-2346-2
+sign \x6839 13-136-3
+sign \x683A 16-5
+sign \x683B 12-156-5
+sign \x683C 13-2346-2
+sign \x683D 125-2456-3
+sign \x683E 14-12456-2
+sign \x683F 12345-34-2
+sign \x6840 13-346-2
+sign \x6841 1235-1356-2
+sign \x6842 13-1246-5
+sign \x6843 124-146-2
+sign \x6844 13-456-5
+sign \x6845 1246-2
+sign \x6846 123-456-3
+sign \x6847 1245-34-2
+sign \x6848 1236-5
+sign \x6849 1236-5
+sign \x684A 13-45-5
+sign \x684B 16-2
+sign \x684C 1-25-3
+sign \x684D 123-34-3
+sign \x684E 1-156-5
+sign \x684F 245-235-2
+sign \x6850 124-12346-2
+sign \x6851 15-1346-3
+sign \x6852 15-1346-3
+sign \x6853 1235-12456-2
+sign \x6854 13-346-2
+sign \x6855 13-234-5
+sign \x6856 15-236-5
+sign \x6857 145-25-5
+sign \x6858 1-1246-5
+sign \x6859 1256-2
+sign \x685A 125-1236-4
+sign \x685C 13456-3
+sign \x685F 1-1236-5
+sign \x6860 23456-3
+sign \x6861 1345-146-5
+sign \x6862 1-136-3
+sign \x6863 145-1346-4
+sign \x6864 245-16-3
+sign \x6865 245-246-2
+sign \x6866 1235-35-2
+sign \x6867 123-2356-5
+sign \x6868 13-46-4
+sign \x6869 1-456-3
+sign \x686A 15-256-2
+sign \x686B 15-25-3
+sign \x686C 24-345-3
+sign \x686D 1-136-3
+sign \x686E 135-356-3
+sign \x686F 124-13456-3
+sign \x6870 123-2356-5
+sign \x6871 13-13456-5
+sign \x6872 135-126-2
+sign \x6873 135-136-5
+sign \x6874 12345-34-2
+sign \x6875 1245-1246-4
+sign \x6876 124-12346-4
+sign \x6877 13-236-2
+sign \x6878 15-16-3
+sign \x6879 14-1346-2
+sign \x687A 14-234-4
+sign \x687B 12345-1356-3
+sign \x687C 245-16-3
+sign \x687D 123456-4
+sign \x687E 13-256-3
+sign \x687F 13-1236-4
+sign \x6880 245-34-5
+sign \x6881 14-46-2
+sign \x6882 245-234-2
+sign \x6883 124-13456-4
+sign \x6884 234-4
+sign \x6885 134-356-2
+sign \x6886 135-1346-3
+sign \x6887 14-12346-5
+sign \x6888 1234-1356-3
+sign \x6889 1-456-3
+sign \x688A 1-2346-2
+sign \x688B 15-45-3
+sign \x688C 124-34-2
+sign \x688D 125-146-5
+sign \x688E 146-3
+sign \x688F 13-34-5
+sign \x6890 135-16-5
+sign \x6891 145-16-2
+sign \x6892 1235-1236-2
+sign \x6893 125-156-4
+sign \x6894 1-156-3
+sign \x6895 1245-136-5
+sign \x6896 135-356-5
+sign \x6897 13-1356-4
+sign \x6898 13-2345-5
+sign \x6899 1235-12456-5
+sign \x689A 12456-4
+sign \x689B 1345-25-2
+sign \x689C 13-23456-2
+sign \x689D 124-246-2
+sign \x689E 13-16-5
+sign \x689F 15-246-3
+sign \x68A0 14-1256-4
+sign \x68A1 123-12456-4
+sign \x68A2 24-146-3
+sign \x68A3 245-136-2
+sign \x68A4 12345-136-2
+sign \x68A5 15-12346-3
+sign \x68A6 134-1356-5
+sign \x68A7 34-2
+sign \x68A8 14-16-2
+sign \x68A9 14-16-2
+sign \x68AA 145-12356-5
+sign \x68AB 245-136-3
+sign \x68AC 13456-4
+sign \x68AD 15-25-3
+sign \x68AE 13-1256-2
+sign \x68AF 124-16-3
+sign \x68B0 15-346-5
+sign \x68B1 123-123456-4
+sign \x68B2 1-25-2
+sign \x68B3 24-34-3
+sign \x68B4 12-1236-3
+sign \x68B5 12345-1236-5
+sign \x68B6 1246-4
+sign \x68B7 13-13456-5
+sign \x68B8 14-16-2
+sign \x68B9 135-1456-3
+sign \x68BC 124-146-2
+sign \x68BD 1-156-5
+sign \x68BE 14-2456-2
+sign \x68BF 14-2345-2
+sign \x68C0 13-2345-4
+sign \x68C1 1-25-2
+sign \x68C2 14-13456-2
+sign \x68C3 14-16-2
+sign \x68C4 245-16-5
+sign \x68C5 135-13456-5
+sign \x68C6 1-123456-3
+sign \x68C7 245-12346-3
+sign \x68C8 245-2345-5
+sign \x68C9 134-2345-2
+sign \x68CA 245-16-2
+sign \x68CB 245-16-2
+sign \x68CC 245-2456-4
+sign \x68CD 13-123456-5
+sign \x68CE 12-1236-2
+sign \x68CF 124-2346-5
+sign \x68D0 12345-356-4
+sign \x68D1 1234-2456-2
+sign \x68D2 135-1346-5
+sign \x68D3 1234-12356-4
+sign \x68D4 1235-123456-3
+sign \x68D5 125-12346-3
+sign \x68D6 12-1356-2
+sign \x68D7 125-146-4
+sign \x68D8 13-16-2
+sign \x68D9 14-16-5
+sign \x68DA 1234-1356-2
+sign \x68DB 1256-5
+sign \x68DC 1256-5
+sign \x68DD 13-34-5
+sign \x68DE 1235-123456-2
+sign \x68DF 145-12346-5
+sign \x68E0 124-1346-2
+sign \x68E1 13-1346-3
+sign \x68E2 456-4
+sign \x68E3 145-16-5
+sign \x68E4 15-16-2
+sign \x68E5 12345-1236-2
+sign \x68E6 12-1356-3
+sign \x68E7 1-1236-5
+sign \x68E8 245-16-4
+sign \x68E9 45-3
+sign \x68EA 2345-4
+sign \x68EB 1256-5
+sign \x68EC 245-45-3
+sign \x68ED 16-5
+sign \x68EE 15-136-3
+sign \x68EF 1245-136-4
+sign \x68F0 1-1246-4
+sign \x68F1 14-1356-2
+sign \x68F2 245-16-3
+sign \x68F3 1-25-2
+sign \x68F4 12345-34-2
+sign \x68F5 123-2346-3
+sign \x68F6 14-2456-2
+sign \x68F7 125-12356-3
+sign \x68F8 125-12356-3
+sign \x68F9 1-146-5
+sign \x68FA 13-12456-3
+sign \x68FB 12345-136-3
+sign \x68FC 12345-136-2
+sign \x68FD 12-136-3
+sign \x68FE 245-235-2
+sign \x68FF 1345-346-5
+sign \x6900 12456-4
+sign \x6901 13-25-4
+sign \x6902 14-34-5
+sign \x6903 1235-146-2
+sign \x6904 13-346-3
+sign \x6905 16-4
+sign \x6906 12-12356-2
+sign \x6907 13-1256-4
+sign \x6908 13-1256-2
+sign \x6909 12-1356-2
+sign \x690A 125-25-2
+sign \x690B 14-46-2
+sign \x690C 245-46-3
+sign \x690D 1-156-2
+sign \x690E 1-1246-3
+sign \x690F 23456-3
+sign \x6910 13-1256-3
+sign \x6911 1234-16-2
+sign \x6912 13-246-3
+sign \x6913 1-25-2
+sign \x6914 125-156-3
+sign \x6915 135-1456-3
+sign \x6916 1234-1356-2
+sign \x6917 145-13456-5
+sign \x6918 12-34-4
+sign \x691C 13-2345-4
+sign \x691D 13-1246-3
+sign \x691E 15-16-5
+sign \x691F 145-34-2
+sign \x6920 13-2345-5
+sign \x6924 14-25-2
+sign \x6925 1-156-3
+sign \x692A 1234-1356-5
+sign \x692B 1-1236-4
+sign \x692D 124-25-4
+sign \x692E 15-136-3
+sign \x692F 145-25-4
+sign \x6930 346-2
+sign \x6931 12345-12356-5
+sign \x6932 1246-4
+sign \x6933 1246-3
+sign \x6934 145-12456-5
+sign \x6935 13-23456-4
+sign \x6936 125-12346-3
+sign \x6937 13-2345-3
+sign \x6938 16-2
+sign \x6939 1-136-3
+sign \x693A 15-16-2
+sign \x693B 2345-5
+sign \x693C 2345-4
+sign \x693D 12-12456-2
+sign \x693E 13-2345-3
+sign \x693F 12-123456-3
+sign \x6940 1256-4
+sign \x6941 123-2346-5
+sign \x6942 12-345-2
+sign \x6943 25-5
+sign \x6944 1234-2345-2
+sign \x6945 135-16-5
+sign \x6946 246-3
+sign \x6947 1235-25-5
+sign \x6948 15-1256-3
+sign \x6949 1245-25-5
+sign \x694A 46-2
+sign \x694B 14-345-5
+sign \x694C 2345-2
+sign \x694D 135-136-4
+sign \x694E 1235-123456-2
+sign \x694F 123-1246-2
+sign \x6950 13-346-5
+sign \x6951 123-1246-2
+sign \x6952 15-156-3
+sign \x6953 12345-1356-3
+sign \x6954 15-346-5
+sign \x6955 124-25-4
+sign \x6956 13-16-2
+sign \x6957 13-2345-5
+sign \x6958 134-34-5
+sign \x6959 134-146-5
+sign \x695A 12-34-4
+sign \x695B 1235-34-5
+sign \x695C 1235-34-2
+sign \x695D 14-2345-5
+sign \x695E 14-1356-5
+sign \x695F 124-13456-2
+sign \x6960 1345-1236-2
+sign \x6961 1256-2
+sign \x6962 234-2
+sign \x6963 134-356-2
+sign \x6964 15-12346-4
+sign \x6965 15-45-5
+sign \x6966 15-45-5
+sign \x6967 13456-3
+sign \x6968 1-136-3
+sign \x6969 1234-2345-2
+sign \x696A 346-5
+sign \x696B 13-16-2
+sign \x696C 13-346-3
+sign \x696D 346-5
+sign \x696E 12-34-4
+sign \x696F 24-123456-4
+sign \x6970 1256-2
+sign \x6971 245-12356-5
+sign \x6972 1246-3
+sign \x6973 134-356-2
+sign \x6974 145-16-5
+sign \x6975 13-16-2
+sign \x6976 13-346-2
+sign \x6977 123-2456-4
+sign \x6978 245-234-3
+sign \x6979 13456-2
+sign \x697A 1245-12356-2
+sign \x697B 1235-1356-2
+sign \x697C 14-12356-2
+sign \x697D 14-2346-5
+sign \x6980 1234-1456-4
+sign \x6982 13-2456-5
+sign \x6983 135-345-1
+sign \x6984 14-1236-4
+sign \x6985 256-2
+sign \x6986 1256-2
+sign \x6987 12-136-5
+sign \x6988 14-1256-2
+sign \x6989 13-1256-4
+sign \x698D 15-346-5
+sign \x698E 13-23456-4
+sign \x698F 16-5
+sign \x6990 1-1236-4
+sign \x6991 12345-34-2
+sign \x6992 1345-2456-5
+sign \x6993 134-16-5
+sign \x6994 14-1346-2
+sign \x6995 1245-12346-2
+sign \x6996 13-34-4
+sign \x6997 13-2345-5
+sign \x6998 13-1256-4
+sign \x6999 124-345-4
+sign \x699A 246-4
+sign \x699B 1-136-3
+sign \x699C 135-1346-4
+sign \x699D 24-345-3
+sign \x699E 45-2
+sign \x699F 125-156-4
+sign \x69A0 134-13456-2
+sign \x69A1 15-34-5
+sign \x69A2 13-23456-5
+sign \x69A3 246-2
+sign \x69A4 13-346-2
+sign \x69A5 1235-456-4
+sign \x69A6 13-1236-5
+sign \x69A7 12345-356-4
+sign \x69A8 1-345-5
+sign \x69A9 245-2345-2
+sign \x69AA 134-345-5
+sign \x69AB 15-123456-4
+sign \x69AC 45-2
+sign \x69AD 15-346-5
+sign \x69AE 1245-12346-2
+sign \x69AF 24-156-2
+sign \x69B0 1-156-3
+sign \x69B1 245-1246-3
+sign \x69B2 256-2
+sign \x69B3 124-13456-2
+sign \x69B4 14-234-2
+sign \x69B5 1245-12346-2
+sign \x69B6 124-1346-2
+sign \x69B7 245-236-5
+sign \x69B8 1-2456-3
+sign \x69B9 15-156-3
+sign \x69BA 24-1356-5
+sign \x69BB 124-345-5
+sign \x69BC 123-2346-5
+sign \x69BD 15-16-3
+sign \x69BE 13-34-5
+sign \x69BF 245-16-3
+sign \x69C0 13-146-4
+sign \x69C1 13-146-4
+sign \x69C2 15-123456-3
+sign \x69C3 1234-1236-2
+sign \x69C4 124-146-3
+sign \x69C5 13-2346-2
+sign \x69C6 15-256-2
+sign \x69C7 145-2345-3
+sign \x69C8 1245-34-5
+sign \x69C9 13-16-2
+sign \x69CA 24-25-5
+sign \x69CB 13-12356-5
+sign \x69CC 12-1246-2
+sign \x69CD 245-46-3
+sign \x69CE 1-345-5
+sign \x69CF 245-2345-4
+sign \x69D0 1235-2356-2
+sign \x69D1 134-356-2
+sign \x69D2 15-1256-5
+sign \x69D3 13-1346-5
+sign \x69D4 13-146-3
+sign \x69D5 1-25-3
+sign \x69D6 124-25-5
+sign \x69D8 46-5
+sign \x69D9 145-2345-3
+sign \x69DA 13-23456-4
+sign \x69DB 13-2345-5
+sign \x69DC 125-1246-5
+sign \x69DF 135-1456-3
+sign \x69E0 1-34-3
+sign \x69E2 15-16-2
+sign \x69E3 245-16-4
+sign \x69E4 14-2345-2
+sign \x69E5 1246-5
+sign \x69E6 235-2
+sign \x69E7 13-2345-5
+sign \x69E8 13-25-4
+sign \x69E9 13-2456-5
+sign \x69EA 13-2456-5
+sign \x69EB 124-12456-2
+sign \x69EC 1235-35-5
+sign \x69ED 245-16-3
+sign \x69EE 15-136-3
+sign \x69EF 245-1246-3
+sign \x69F0 135-1356-5
+sign \x69F1 234-4
+sign \x69F2 1235-34-2
+sign \x69F3 13-46-4
+sign \x69F4 1235-34-5
+sign \x69F5 1235-12456-5
+sign \x69F6 123-1246-5
+sign \x69F7 1345-346-5
+sign \x69F8 1345-346-5
+sign \x69F9 13-146-3
+sign \x69FA 123-1346-3
+sign \x69FB 13-1246-3
+sign \x69FC 13-1246-3
+sign \x69FD 245-146-2
+sign \x69FE 134-1236-2
+sign \x69FF 13-1456-4
+sign \x6A00 145-16-5
+sign \x6A01 1-456-3
+sign \x6A02 14-2346-5
+sign \x6A03 14-1346-2
+sign \x6A04 12-136-2
+sign \x6A05 245-12346-3
+sign \x6A06 14-16-2
+sign \x6A07 15-234-3
+sign \x6A08 245-13456-2
+sign \x6A09 24-456-4
+sign \x6A0A 12345-1236-2
+sign \x6A0B 124-12346-3
+sign \x6A0C 13-12456-5
+sign \x6A0D 13-16-3
+sign \x6A0E 15-25-3
+sign \x6A0F 14-356-4
+sign \x6A10 14-34-4
+sign \x6A11 14-46-2
+sign \x6A12 134-16-5
+sign \x6A13 14-12356-2
+sign \x6A14 12-146-2
+sign \x6A15 15-34-5
+sign \x6A16 123-2346-3
+sign \x6A17 24-34-3
+sign \x6A18 12-1356-3
+sign \x6A19 135-246-3
+sign \x6A1A 14-34-5
+sign \x6A1B 13-234-3
+sign \x6A1C 24-34-5
+sign \x6A1D 1-345-3
+sign \x6A1E 24-34-3
+sign \x6A1F 1-1346-3
+sign \x6A20 134-136-2
+sign \x6A21 134-126-2
+sign \x6A22 1345-246-4
+sign \x6A23 46-5
+sign \x6A24 124-246-2
+sign \x6A25 1234-1356-2
+sign \x6A26 1-34-5
+sign \x6A27 24-345-3
+sign \x6A28 15-1256-3
+sign \x6A29 245-45-2
+sign \x6A2A 1235-1356-2
+sign \x6A2B 13-2345-3
+sign \x6A2C 245-12346-3
+sign \x6A2F 245-46-2
+sign \x6A31 13456-3
+sign \x6A32 156-5
+sign \x6A33 15-1456-2
+sign \x6A34 1-156-2
+sign \x6A35 245-246-2
+sign \x6A36 125-1246-3
+sign \x6A37 245-12346-2
+sign \x6A38 1234-34-2
+sign \x6A39 24-34-5
+sign \x6A3A 1235-35-2
+sign \x6A3B 123-1246-5
+sign \x6A3C 1-136-3
+sign \x6A3D 125-123456-3
+sign \x6A3E 236-5
+sign \x6A3F 1-1236-4
+sign \x6A40 15-16-3
+sign \x6A41 12-123456-3
+sign \x6A42 145-2345-5
+sign \x6A43 12345-345-3
+sign \x6A44 13-1236-4
+sign \x6A45 134-126-2
+sign \x6A46 34-4
+sign \x6A47 245-246-3
+sign \x6A48 1345-146-5
+sign \x6A49 14-1456-5
+sign \x6A4A 14-234-2
+sign \x6A4B 245-246-2
+sign \x6A4C 15-2345-5
+sign \x6A4D 1245-123456-5
+sign \x6A4E 12345-1236-2
+sign \x6A4F 1-1236-4
+sign \x6A50 124-25-5
+sign \x6A51 14-146-4
+sign \x6A52 256-2
+sign \x6A53 24-123456-5
+sign \x6A54 124-1246-2
+sign \x6A55 12-1356-3
+sign \x6A56 124-1346-2
+sign \x6A57 134-1356-2
+sign \x6A58 13-1256-2
+sign \x6A59 12-1356-2
+sign \x6A5A 245-234-3
+sign \x6A5B 13-236-2
+sign \x6A5C 13-236-2
+sign \x6A5D 124-1236-3
+sign \x6A5E 1235-1246-5
+sign \x6A5F 13-16-3
+sign \x6A60 1345-25-4
+sign \x6A61 15-46-5
+sign \x6A62 124-25-4
+sign \x6A63 1345-13456-4
+sign \x6A64 1245-1246-4
+sign \x6A65 1-34-3
+sign \x6A66 12-456-2
+sign \x6A67 125-1356-3
+sign \x6A68 12345-136-2
+sign \x6A69 245-235-2
+sign \x6A6A 1245-1236-4
+sign \x6A6B 1235-1356-2
+sign \x6A6C 245-136-2
+sign \x6A6D 13-34-3
+sign \x6A6E 14-234-4
+sign \x6A6F 14-146-5
+sign \x6A70 13-146-3
+sign \x6A71 12-34-2
+sign \x6A76 13-16-4
+sign \x6A77 145-12356-3
+sign \x6A79 14-34-4
+sign \x6A7C 45-2
+sign \x6A7D 124-345-5
+sign \x6A7E 24-34-3
+sign \x6A7F 13-46-3
+sign \x6A80 124-1236-2
+sign \x6A81 14-1456-4
+sign \x6A82 1345-12346-2
+sign \x6A83 1456-4
+sign \x6A84 15-16-2
+sign \x6A85 15-1246-5
+sign \x6A86 24-1236-3
+sign \x6A87 125-1246-3
+sign \x6A88 15-45-2
+sign \x6A89 12-1356-3
+sign \x6A8A 13-1236-5
+sign \x6A8B 13-1256-3
+sign \x6A8C 125-1246-5
+sign \x6A8D 16-5
+sign \x6A8E 245-1456-2
+sign \x6A8F 1234-34-4
+sign \x6A90 2345-2
+sign \x6A91 14-356-2
+sign \x6A92 12345-1356-3
+sign \x6A93 1235-1246-4
+sign \x6A94 145-1346-4
+sign \x6A95 13-16-5
+sign \x6A96 15-1246-5
+sign \x6A97 135-126-5
+sign \x6A98 135-16-5
+sign \x6A99 145-13456-4
+sign \x6A9A 12-34-4
+sign \x6A9B 1-35-3
+sign \x6A9C 123-2356-5
+sign \x6A9D 13-16-2
+sign \x6A9E 13-346-4
+sign \x6A9F 13-23456-4
+sign \x6AA0 245-13456-2
+sign \x6AA1 1-2346-5
+sign \x6AA2 13-2345-4
+sign \x6AA3 245-46-2
+sign \x6AA4 145-146-5
+sign \x6AA5 16-4
+sign \x6AA6 135-246-4
+sign \x6AA7 15-12346-3
+sign \x6AA8 24-2346-3
+sign \x6AA9 14-1456-4
+sign \x6AAB 12-345-2
+sign \x6AAC 134-1356-2
+sign \x6AAD 1456-2
+sign \x6AAE 124-146-2
+sign \x6AAF 124-2456-2
+sign \x6AB0 134-2345-2
+sign \x6AB1 245-16-2
+sign \x6AB3 135-1456-3
+sign \x6AB4 1235-25-5
+sign \x6AB5 13-16-5
+sign \x6AB6 245-2345-3
+sign \x6AB7 134-16-2
+sign \x6AB8 1345-13456-2
+sign \x6AB9 16-3
+sign \x6ABA 13-146-4
+sign \x6ABB 13-2345-5
+sign \x6ABC 1456-5
+sign \x6ABD 156-2
+sign \x6ABE 245-13456-4
+sign \x6ABF 2345-4
+sign \x6AC0 245-16-2
+sign \x6AC1 134-16-5
+sign \x6AC2 1-146-5
+sign \x6AC3 13-1246-5
+sign \x6AC4 12-123456-3
+sign \x6AC5 13-16-3
+sign \x6AC6 123-1246-2
+sign \x6AC7 1234-126-2
+sign \x6AC8 145-1356-5
+sign \x6AC9 12-34-2
+sign \x6ACB 134-2345-2
+sign \x6ACC 234-3
+sign \x6ACD 1-156-5
+sign \x6ACE 13-456-5
+sign \x6ACF 245-2345-3
+sign \x6AD0 14-356-4
+sign \x6AD1 14-356-2
+sign \x6AD2 15-345-5
+sign \x6AD3 14-34-4
+sign \x6AD4 14-16-5
+sign \x6AD5 245-12456-2
+sign \x6AD6 14-1256-2
+sign \x6AD7 134-346-5
+sign \x6AD8 1235-1246-5
+sign \x6AD9 12356-3
+sign \x6ADA 14-1256-2
+sign \x6ADB 13-346-2
+sign \x6ADC 13-146-3
+sign \x6ADD 145-34-2
+sign \x6ADE 45-2
+sign \x6ADF 14-16-5
+sign \x6AE0 12345-356-5
+sign \x6AE1 1-25-2
+sign \x6AE2 15-12356-4
+sign \x6AE3 14-2345-2
+sign \x6AE5 12-34-2
+sign \x6AE7 1-34-3
+sign \x6AE8 14-34-2
+sign \x6AE9 2345-2
+sign \x6AEA 14-16-5
+sign \x6AEB 1-34-3
+sign \x6AEC 12-136-5
+sign \x6AED 13-346-2
+sign \x6AEE 2346-5
+sign \x6AEF 15-34-3
+sign \x6AF0 1235-2356-2
+sign \x6AF1 1345-346-5
+sign \x6AF2 1256-5
+sign \x6AF3 14-12346-2
+sign \x6AF4 14-2456-5
+sign \x6AF6 15-2345-4
+sign \x6AF8 13-1256-4
+sign \x6AF9 15-246-3
+sign \x6AFA 14-13456-2
+sign \x6AFB 13456-3
+sign \x6AFC 13-2345-3
+sign \x6AFD 1456-4
+sign \x6AFE 234-5
+sign \x6AFF 13456-2
+sign \x6B00 15-46-3
+sign \x6B01 1345-12346-2
+sign \x6B02 135-126-2
+sign \x6B03 12-1236-2
+sign \x6B04 14-1236-2
+sign \x6B05 13-1256-4
+sign \x6B06 24-456-3
+sign \x6B07 24-2346-5
+sign \x6B08 1246-2
+sign \x6B09 245-12346-5
+sign \x6B0A 245-45-2
+sign \x6B0B 245-1256-2
+sign \x6B0E 1256-5
+sign \x6B0F 14-25-2
+sign \x6B10 14-16-4
+sign \x6B11 245-12456-2
+sign \x6B12 14-12456-2
+sign \x6B13 145-1346-4
+sign \x6B14 13-236-2
+sign \x6B16 14-1236-4
+sign \x6B17 14-1236-2
+sign \x6B18 1-34-4
+sign \x6B19 14-356-2
+sign \x6B1A 14-16-4
+sign \x6B1B 135-345-4
+sign \x6B1C 1345-1346-2
+sign \x6B1D 1256-5
+sign \x6B1E 14-13456-2
+sign \x6B20 245-2345-5
+sign \x6B21 245-156-5
+sign \x6B22 1235-12456-3
+sign \x6B23 15-1456-3
+sign \x6B24 1256-2
+sign \x6B25 1235-12456-3
+sign \x6B26 245-2345-3
+sign \x6B27 12356-3
+sign \x6B28 15-1256-3
+sign \x6B29 12-146-3
+sign \x6B2A 12-34-5
+sign \x6B2B 12-156-3
+sign \x6B2C 123-2346-2
+sign \x6B2D 16-5
+sign \x6B2E 13-236-2
+sign \x6B2F 15-16-2
+sign \x6B30 15-1256-3
+sign \x6B31 1235-2346-3
+sign \x6B32 1256-5
+sign \x6B33 123-2356-5
+sign \x6B34 14-1346-2
+sign \x6B35 123-12456-4
+sign \x6B36 24-25-5
+sign \x6B37 15-16-3
+sign \x6B38 2456-3
+sign \x6B39 16-3
+sign \x6B3A 245-16-3
+sign \x6B3B 1235-34-3
+sign \x6B3C 12-156-4
+sign \x6B3D 245-1456-3
+sign \x6B3E 123-12456-4
+sign \x6B3F 123-1236-4
+sign \x6B40 123-12456-4
+sign \x6B41 123-1236-4
+sign \x6B42 12-12456-2
+sign \x6B43 24-345-5
+sign \x6B45 1456-3
+sign \x6B46 15-1456-3
+sign \x6B47 15-346-3
+sign \x6B48 1256-2
+sign \x6B49 245-2345-5
+sign \x6B4A 15-246-3
+sign \x6B4B 16-2
+sign \x6B4C 13-2346-3
+sign \x6B4D 34-3
+sign \x6B4E 124-1236-5
+sign \x6B4F 13-1456-5
+sign \x6B50 12356-3
+sign \x6B51 1235-34-3
+sign \x6B52 124-16-5
+sign \x6B53 1235-12456-3
+sign \x6B54 15-1256-3
+sign \x6B55 1234-136-3
+sign \x6B56 15-16-3
+sign \x6B57 15-246-5
+sign \x6B58 15-1256-3
+sign \x6B59 24-2346-5
+sign \x6B5B 14-2345-5
+sign \x6B5C 12-34-5
+sign \x6B5D 16-5
+sign \x6B5E 13-2346-3
+sign \x6B5F 1256-2
+sign \x6B60 12-25-5
+sign \x6B61 1235-12456-3
+sign \x6B62 1-156-4
+sign \x6B63 1-1356-5
+sign \x6B64 245-156-4
+sign \x6B65 135-34-5
+sign \x6B66 34-4
+sign \x6B67 245-16-2
+sign \x6B68 135-34-5
+sign \x6B69 135-34-5
+sign \x6B6A 2356-3
+sign \x6B6B 13-1256-5
+sign \x6B6C 245-2345-2
+sign \x6B6D 12-156-2
+sign \x6B6E 15-2346-5
+sign \x6B6F 12-156-4
+sign \x6B70 15-2346-5
+sign \x6B71 1-12346-4
+sign \x6B72 15-1246-5
+sign \x6B73 15-1246-5
+sign \x6B74 14-16-5
+sign \x6B75 245-25-5
+sign \x6B76 1256-2
+sign \x6B77 14-16-5
+sign \x6B78 13-1246-3
+sign \x6B79 145-2456-4
+sign \x6B7A 145-2456-4
+sign \x6B7B 15-156-4
+sign \x6B7C 13-2345-3
+sign \x6B7D 1-2346-2
+sign \x6B7E 134-126-5
+sign \x6B7F 134-126-5
+sign \x6B80 246-4
+sign \x6B81 134-126-5
+sign \x6B82 245-34-2
+sign \x6B83 46-3
+sign \x6B84 124-2345-4
+sign \x6B85 24-1356-3
+sign \x6B86 145-2456-5
+sign \x6B87 24-1346-3
+sign \x6B88 15-1256-5
+sign \x6B89 15-256-5
+sign \x6B8A 24-34-3
+sign \x6B8B 245-1236-2
+sign \x6B8C 13-236-2
+sign \x6B8D 1234-246-4
+sign \x6B8E 245-23456-5
+sign \x6B8F 245-234-2
+sign \x6B90 15-34-5
+sign \x6B91 245-13456-2
+sign \x6B92 256-4
+sign \x6B93 14-2345-5
+sign \x6B94 16-5
+sign \x6B95 12345-12356-4
+sign \x6B96 1-156-2
+sign \x6B97 346-5
+sign \x6B98 245-1236-2
+sign \x6B99 1235-123456-3
+sign \x6B9A 145-1236-3
+sign \x6B9B 13-16-2
+sign \x6B9C 346-5
+sign \x6B9E 256-4
+sign \x6B9F 35-5
+sign \x6BA0 12-12356-5
+sign \x6BA1 135-1456-5
+sign \x6BA2 124-16-5
+sign \x6BA3 13-1456-4
+sign \x6BA4 24-1346-3
+sign \x6BA5 1456-2
+sign \x6BA6 145-246-3
+sign \x6BA7 245-34-5
+sign \x6BA8 1235-1246-5
+sign \x6BA9 245-12456-5
+sign \x6BAA 16-5
+sign \x6BAB 145-1236-3
+sign \x6BAC 145-34-5
+sign \x6BAD 13-46-3
+sign \x6BAE 14-2345-5
+sign \x6BAF 135-1456-5
+sign \x6BB0 145-34-2
+sign \x6BB2 13-2345-3
+sign \x6BB3 24-34-3
+sign \x6BB4 12356-3
+sign \x6BB5 145-12456-5
+sign \x6BB6 1-34-5
+sign \x6BB7 1456-3
+sign \x6BB8 245-13456-5
+sign \x6BB9 16-5
+sign \x6BBA 24-345-3
+sign \x6BBB 245-236-5
+sign \x6BBC 123-2346-2
+sign \x6BBD 246-2
+sign \x6BBE 13-256-5
+sign \x6BBF 145-2345-5
+sign \x6BC0 1235-1246-4
+sign \x6BC1 1235-1246-4
+sign \x6BC2 13-34-4
+sign \x6BC3 245-236-5
+sign \x6BC4 13-16-3
+sign \x6BC5 16-5
+sign \x6BC6 12356-3
+sign \x6BC7 1235-1246-4
+sign \x6BC8 145-12456-5
+sign \x6BC9 16-3
+sign \x6BCA 15-246-3
+sign \x6BCB 34-2
+sign \x6BCC 34-2
+sign \x6BCD 134-34-4
+sign \x6BCE 134-356-4
+sign \x6BCF 134-356-4
+sign \x6BD0 2456-4
+sign \x6BD1 125-25-4
+sign \x6BD2 145-34-2
+sign \x6BD3 1256-5
+sign \x6BD4 135-16-4
+sign \x6BD5 135-16-5
+sign \x6BD6 135-16-5
+sign \x6BD7 1234-16-2
+sign \x6BD8 1234-16-2
+sign \x6BD9 135-16-5
+sign \x6BDA 12-1236-2
+sign \x6BDB 134-146-2
+sign \x6BDE 1234-16-2
+sign \x6BE0 13-23456-3
+sign \x6BE1 1-1236-3
+sign \x6BE2 15-2456-3
+sign \x6BE3 134-146-5
+sign \x6BE4 124-25-5
+sign \x6BE5 15-256-2
+sign \x6BE6 156-5
+sign \x6BE7 1245-12346-2
+sign \x6BE8 15-2345-4
+sign \x6BE9 13-1256-2
+sign \x6BEA 134-34-2
+sign \x6BEB 1235-146-2
+sign \x6BEC 245-234-2
+sign \x6BED 145-12356-5
+sign \x6BEF 124-1236-4
+sign \x6BF0 1234-356-2
+sign \x6BF1 13-1256-2
+sign \x6BF2 145-25-2
+sign \x6BF3 245-1246-5
+sign \x6BF4 135-16-3
+sign \x6BF5 15-1236-3
+sign \x6BF7 134-146-5
+sign \x6BF8 15-1246-3
+sign \x6BF9 1256-2
+sign \x6BFA 1256-3
+sign \x6BFB 124-25-5
+sign \x6BFC 1235-2346-2
+sign \x6BFD 13-2345-5
+sign \x6BFE 124-345-5
+sign \x6BFF 15-1236-3
+sign \x6C00 14-1256-2
+sign \x6C01 134-34-2
+sign \x6C02 134-146-2
+sign \x6C03 124-12346-2
+sign \x6C04 1245-12346-4
+sign \x6C05 12-1346-4
+sign \x6C06 1234-34-4
+sign \x6C07 14-25-2
+sign \x6C08 1-1236-3
+sign \x6C09 125-146-5
+sign \x6C0A 1-1236-3
+sign \x6C0B 134-1356-2
+sign \x6C0C 14-25-2
+sign \x6C0D 245-1256-2
+sign \x6C0E 145-346-2
+sign \x6C0F 24-156-5
+sign \x6C10 145-16-3
+sign \x6C11 134-1456-2
+sign \x6C12 13-236-2
+sign \x6C13 134-1346-2
+sign \x6C14 245-16-5
+sign \x6C15 1234-346-3
+sign \x6C16 1345-2456-4
+sign \x6C17 245-16-5
+sign \x6C18 145-146-3
+sign \x6C19 15-2345-3
+sign \x6C1A 12-12456-3
+sign \x6C1B 12345-136-3
+sign \x6C1C 1245-156-5
+sign \x6C1D 1345-356-5
+sign \x6C1F 12345-34-2
+sign \x6C20 24-136-3
+sign \x6C21 145-12346-3
+sign \x6C22 245-13456-3
+sign \x6C23 245-16-5
+sign \x6C24 1456-3
+sign \x6C25 15-16-3
+sign \x6C26 1235-2456-5
+sign \x6C27 46-4
+sign \x6C28 1236-3
+sign \x6C29 23456-5
+sign \x6C2A 123-2346-5
+sign \x6C2B 245-13456-3
+sign \x6C2C 23456-5
+sign \x6C2D 145-12346-3
+sign \x6C2E 145-1236-5
+sign \x6C2F 14-1256-5
+sign \x6C30 245-13456-3
+sign \x6C31 46-4
+sign \x6C32 256-3
+sign \x6C33 256-3
+sign \x6C34 24-1246-4
+sign \x6C36 1-1356-4
+sign \x6C37 135-13456-3
+sign \x6C38 235-4
+sign \x6C39 145-1346-5
+sign \x6C3B 14-2346-5
+sign \x6C3C 1345-16-5
+sign \x6C3D 124-123456-4
+sign \x6C3E 12345-1236-5
+sign \x6C3F 13-1246-4
+sign \x6C40 124-13456-3
+sign \x6C41 1-156-3
+sign \x6C42 245-234-2
+sign \x6C43 135-1456-3
+sign \x6C44 125-2346-5
+sign \x6C45 134-2345-4
+sign \x6C46 124-123456-4
+sign \x6C47 1235-1246-5
+sign \x6C48 145-246-3
+sign \x6C49 1235-1236-5
+sign \x6C4A 12-345-5
+sign \x6C4B 1-25-2
+sign \x6C4C 12-12456-5
+sign \x6C4D 12456-2
+sign \x6C4E 12345-1236-5
+sign \x6C4F 145-2456-5
+sign \x6C50 15-16-5
+sign \x6C51 124-25-3
+sign \x6C52 134-1346-2
+sign \x6C53 245-234-2
+sign \x6C54 245-16-5
+sign \x6C55 24-1236-5
+sign \x6C56 1234-2456-5
+sign \x6C57 1235-1236-5
+sign \x6C58 245-2345-3
+sign \x6C59 34-3
+sign \x6C5A 34-3
+sign \x6C5B 15-256-5
+sign \x6C5C 15-156-5
+sign \x6C5D 1245-34-4
+sign \x6C5E 13-12346-4
+sign \x6C5F 13-46-3
+sign \x6C60 12-156-2
+sign \x6C61 34-3
+sign \x6C64 124-1346-3
+sign \x6C65 1-156-3
+sign \x6C66 12-156-2
+sign \x6C67 245-2345-3
+sign \x6C68 134-16-5
+sign \x6C69 1256-5
+sign \x6C6A 456-3
+sign \x6C6B 245-13456-5
+sign \x6C6C 13-13456-4
+sign \x6C6D 1245-1246-5
+sign \x6C6E 13-256-3
+sign \x6C6F 1235-12346-2
+sign \x6C70 124-2456-5
+sign \x6C71 245-45-4
+sign \x6C72 13-16-2
+sign \x6C73 135-2345-5
+sign \x6C74 135-2345-5
+sign \x6C75 13-1236-5
+sign \x6C76 123456-5
+sign \x6C77 1-12346-3
+sign \x6C78 12345-1346-3
+sign \x6C79 15-235-3
+sign \x6C7A 13-236-2
+sign \x6C7B 1235-34-4
+sign \x6C7D 245-16-5
+sign \x6C7E 12345-136-2
+sign \x6C7F 15-1256-5
+sign \x6C80 15-1256-4
+sign \x6C81 245-1456-5
+sign \x6C82 16-2
+sign \x6C83 25-5
+sign \x6C84 256-2
+sign \x6C85 45-2
+sign \x6C86 1235-1346-2
+sign \x6C87 2345-4
+sign \x6C88 12-136-2
+sign \x6C89 12-136-2
+sign \x6C8A 145-1236-5
+sign \x6C8B 234-2
+sign \x6C8C 145-123456-5
+sign \x6C8D 1235-34-5
+sign \x6C8E 1235-25-5
+sign \x6C8F 245-16-5
+sign \x6C90 134-34-5
+sign \x6C91 1245-12356-2
+sign \x6C92 134-356-2
+sign \x6C93 124-345-5
+sign \x6C94 134-2345-4
+sign \x6C95 34-5
+sign \x6C96 12-12346-3
+sign \x6C97 124-2345-3
+sign \x6C98 135-16-4
+sign \x6C99 24-345-3
+sign \x6C9A 1-156-4
+sign \x6C9B 1234-356-5
+sign \x6C9C 1234-1236-5
+sign \x6C9D 1-1246-4
+sign \x6C9E 125-345-3
+sign \x6C9F 13-12356-3
+sign \x6CA0 14-234-2
+sign \x6CA1 134-356-2
+sign \x6CA2 125-2346-2
+sign \x6CA3 12345-1356-3
+sign \x6CA4 12356-5
+sign \x6CA5 14-16-5
+sign \x6CA6 14-123456-2
+sign \x6CA7 245-1346-3
+sign \x6CA8 12345-1356-2
+sign \x6CA9 13-1246-3
+sign \x6CAA 1235-34-5
+sign \x6CAB 134-126-5
+sign \x6CAC 134-356-5
+sign \x6CAD 24-34-5
+sign \x6CAE 13-1256-4
+sign \x6CAF 125-1236-4
+sign \x6CB0 124-25-3
+sign \x6CB1 124-25-2
+sign \x6CB2 124-25-2
+sign \x6CB3 1235-2346-2
+sign \x6CB4 14-16-5
+sign \x6CB5 14-16-5
+sign \x6CB6 16-2
+sign \x6CB7 12345-34-2
+sign \x6CB8 12345-356-5
+sign \x6CB9 234-2
+sign \x6CBA 124-2345-2
+sign \x6CBB 1-156-5
+sign \x6CBC 1-146-4
+sign \x6CBD 13-34-3
+sign \x6CBE 1-1236-3
+sign \x6CBF 2345-2
+sign \x6CC0 15-156-3
+sign \x6CC1 123-456-5
+sign \x6CC2 13-235-4
+sign \x6CC3 13-1256-5
+sign \x6CC4 15-346-5
+sign \x6CC5 245-234-2
+sign \x6CC6 16-3
+sign \x6CC7 13-23456-3
+sign \x6CC8 1-12346-3
+sign \x6CC9 245-45-2
+sign \x6CCA 135-126-2
+sign \x6CCB 1235-1246-5
+sign \x6CCC 134-16-5
+sign \x6CCD 135-136-3
+sign \x6CCE 1-25-2
+sign \x6CCF 12-34-5
+sign \x6CD0 14-2346-5
+sign \x6CD1 234-4
+sign \x6CD2 13-34-3
+sign \x6CD3 1235-12346-2
+sign \x6CD4 13-1236-3
+sign \x6CD5 12345-345-4
+sign \x6CD6 134-146-4
+sign \x6CD7 15-156-5
+sign \x6CD8 1235-34-3
+sign \x6CD9 1234-13456-2
+sign \x6CDA 245-156-4
+sign \x6CDB 12345-1236-5
+sign \x6CDC 145-16-5
+sign \x6CDD 15-34-5
+sign \x6CDE 1345-13456-5
+sign \x6CDF 12-1356-3
+sign \x6CE0 14-13456-2
+sign \x6CE1 1234-146-5
+sign \x6CE2 135-126-3
+sign \x6CE3 245-16-5
+sign \x6CE4 15-156-5
+sign \x6CE5 1345-16-2
+sign \x6CE6 13-1256-2
+sign \x6CE7 236-5
+sign \x6CE8 1-34-5
+sign \x6CE9 24-1356-3
+sign \x6CEA 14-356-5
+sign \x6CEB 15-45-5
+sign \x6CEC 15-236-5
+sign \x6CED 12345-34-2
+sign \x6CEE 1234-1236-5
+sign \x6CEF 134-1456-4
+sign \x6CF0 124-2456-5
+sign \x6CF1 46-3
+sign \x6CF2 13-16-4
+sign \x6CF3 235-4
+sign \x6CF4 13-12456-5
+sign \x6CF5 135-1356-5
+sign \x6CF6 15-236-2
+sign \x6CF7 14-12346-2
+sign \x6CF8 14-34-2
+sign \x6CF9 135-345-1
+sign \x6CFA 14-25-5
+sign \x6CFB 15-346-5
+sign \x6CFC 1234-126-3
+sign \x6CFD 125-2346-2
+sign \x6CFE 13-13456-3
+sign \x6CFF 1456-2
+sign \x6D00 1-12356-3
+sign \x6D01 13-16-2
+sign \x6D02 16-5
+sign \x6D03 1235-1246-3
+sign \x6D04 1235-1246-2
+sign \x6D05 125-1246-4
+sign \x6D06 12-1356-2
+sign \x6D07 1456-3
+sign \x6D08 1246-2
+sign \x6D09 1235-12356-5
+sign \x6D0A 13-2345-5
+sign \x6D0B 46-2
+sign \x6D0C 14-346-5
+sign \x6D0D 15-156-5
+sign \x6D0E 13-16-5
+sign \x6D0F 156-2
+sign \x6D10 15-13456-2
+sign \x6D11 12345-34-2
+sign \x6D12 15-345-4
+sign \x6D13 15-25-4
+sign \x6D14 1-156-4
+sign \x6D15 1456-3
+sign \x6D16 34-2
+sign \x6D17 15-16-4
+sign \x6D18 123-146-4
+sign \x6D19 1-34-3
+sign \x6D1A 13-46-5
+sign \x6D1B 14-25-5
+sign \x6D1D 1236-5
+sign \x6D1E 145-12346-5
+sign \x6D1F 16-2
+sign \x6D20 134-12356-2
+sign \x6D21 14-356-4
+sign \x6D22 16-3
+sign \x6D23 134-16-4
+sign \x6D24 245-45-2
+sign \x6D25 13-1456-3
+sign \x6D26 134-126-5
+sign \x6D27 1246-4
+sign \x6D28 15-246-2
+sign \x6D29 15-346-5
+sign \x6D2A 1235-12346-2
+sign \x6D2B 15-1256-5
+sign \x6D2C 24-25-5
+sign \x6D2D 123-456-3
+sign \x6D2E 124-146-3
+sign \x6D2F 245-346-5
+sign \x6D30 13-1256-5
+sign \x6D31 156-4
+sign \x6D32 1-12356-3
+sign \x6D33 1245-34-2
+sign \x6D34 1234-13456-2
+sign \x6D35 15-256-2
+sign \x6D36 15-235-3
+sign \x6D37 1-156-5
+sign \x6D38 13-456-3
+sign \x6D39 45-2
+sign \x6D3A 134-13456-2
+sign \x6D3B 1235-25-2
+sign \x6D3C 35-3
+sign \x6D3D 245-23456-5
+sign \x6D3E 1234-2456-5
+sign \x6D3F 34-3
+sign \x6D40 245-1256-4
+sign \x6D41 14-234-2
+sign \x6D42 16-5
+sign \x6D43 13-23456-2
+sign \x6D44 13-13456-5
+sign \x6D45 245-2345-4
+sign \x6D46 13-46-3
+sign \x6D47 13-246-3
+sign \x6D48 12-1356-2
+sign \x6D49 24-156-3
+sign \x6D4A 1-25-2
+sign \x6D4B 245-2346-5
+sign \x6D4D 123-2356-5
+sign \x6D4E 13-16-5
+sign \x6D4F 14-234-2
+sign \x6D50 12-1236-4
+sign \x6D51 1235-123456-2
+sign \x6D52 1235-34-4
+sign \x6D53 1345-12346-2
+sign \x6D54 15-256-2
+sign \x6D55 13-1456-5
+sign \x6D56 14-346-5
+sign \x6D57 245-234-2
+sign \x6D58 1246-4
+sign \x6D59 1-2346-5
+sign \x6D5A 13-256-5
+sign \x6D5B 1235-1236-5
+sign \x6D5C 135-1346-3
+sign \x6D5D 134-1346-2
+sign \x6D5E 1-25-2
+sign \x6D5F 234-2
+sign \x6D60 15-16-3
+sign \x6D61 135-126-2
+sign \x6D62 145-12356-5
+sign \x6D63 1235-12456-4
+sign \x6D64 1235-12346-2
+sign \x6D65 16-5
+sign \x6D66 1234-34-4
+sign \x6D67 13456-4
+sign \x6D68 14-1236-4
+sign \x6D69 1235-146-5
+sign \x6D6A 14-1346-5
+sign \x6D6B 1235-1236-4
+sign \x6D6C 14-16-4
+sign \x6D6D 13-1356-3
+sign \x6D6E 12345-34-2
+sign \x6D6F 34-2
+sign \x6D70 14-2345-5
+sign \x6D71 12-123456-2
+sign \x6D72 12345-1356-2
+sign \x6D73 16-5
+sign \x6D74 1256-5
+sign \x6D75 124-12346-2
+sign \x6D76 14-146-2
+sign \x6D77 1235-2456-4
+sign \x6D78 13-1456-5
+sign \x6D79 13-23456-2
+sign \x6D7A 12-12346-3
+sign \x6D7B 12346-4
+sign \x6D7C 134-356-4
+sign \x6D7D 15-1246-3
+sign \x6D7E 12-1356-3
+sign \x6D7F 1234-356-5
+sign \x6D80 15-2345-5
+sign \x6D81 24-136-5
+sign \x6D82 124-34-2
+sign \x6D83 123-123456-5
+sign \x6D84 1234-1456-3
+sign \x6D85 1345-346-5
+sign \x6D86 1235-1236-5
+sign \x6D87 13-13456-3
+sign \x6D88 15-246-3
+sign \x6D89 24-2346-5
+sign \x6D8A 1345-2345-4
+sign \x6D8B 124-34-3
+sign \x6D8C 235-4
+sign \x6D8D 15-246-3
+sign \x6D8E 15-2345-2
+sign \x6D8F 124-13456-4
+sign \x6D90 2346-2
+sign \x6D91 15-12356-3
+sign \x6D92 124-123456-3
+sign \x6D93 13-45-3
+sign \x6D94 245-136-2
+sign \x6D95 124-16-5
+sign \x6D96 14-16-5
+sign \x6D97 24-1246-5
+sign \x6D98 15-156-5
+sign \x6D99 14-356-5
+sign \x6D9A 24-1246-5
+sign \x6D9B 124-146-2
+sign \x6D9C 145-34-2
+sign \x6D9D 14-146-2
+sign \x6D9E 14-2456-2
+sign \x6D9F 14-2345-2
+sign \x6DA0 1246-2
+sign \x6DA1 25-3
+sign \x6DA2 256-2
+sign \x6DA3 1235-12456-5
+sign \x6DA4 145-16-2
+sign \x6DA6 1245-123456-5
+sign \x6DA7 13-2345-5
+sign \x6DA8 1-1346-4
+sign \x6DA9 15-2346-5
+sign \x6DAA 12345-34-2
+sign \x6DAB 13-12456-5
+sign \x6DAC 15-13456-5
+sign \x6DAD 24-12356-5
+sign \x6DAE 24-12456-5
+sign \x6DAF 23456-2
+sign \x6DB0 12-25-5
+sign \x6DB1 1-1346-5
+sign \x6DB2 16-5
+sign \x6DB3 123-12346-3
+sign \x6DB4 12456-4
+sign \x6DB5 1235-1236-2
+sign \x6DB6 124-25-3
+sign \x6DB7 145-12346-3
+sign \x6DB8 1235-2346-2
+sign \x6DB9 25-3
+sign \x6DBA 13-1256-3
+sign \x6DBB 24-2346-5
+sign \x6DBC 14-46-2
+sign \x6DBD 1235-123456-3
+sign \x6DBE 124-345-5
+sign \x6DBF 1-25-2
+sign \x6DC0 145-2345-5
+sign \x6DC1 245-346-5
+sign \x6DC2 145-2346-2
+sign \x6DC3 13-45-5
+sign \x6DC4 125-156-3
+sign \x6DC5 15-16-3
+sign \x6DC6 246-2
+sign \x6DC7 245-16-2
+sign \x6DC8 13-34-4
+sign \x6DC9 13-25-4
+sign \x6DCA 1235-1236-5
+sign \x6DCB 14-1456-2
+sign \x6DCC 124-1346-4
+sign \x6DCD 1-12356-3
+sign \x6DCE 1234-1356-4
+sign \x6DCF 1235-146-5
+sign \x6DD0 12-1346-3
+sign \x6DD1 24-34-2
+sign \x6DD2 245-16-3
+sign \x6DD3 12345-1346-3
+sign \x6DD4 12-156-5
+sign \x6DD5 14-34-5
+sign \x6DD6 1345-146-5
+sign \x6DD7 13-1256-2
+sign \x6DD8 124-146-2
+sign \x6DD9 245-12346-2
+sign \x6DDA 14-356-5
+sign \x6DDB 1-2346-5
+sign \x6DDC 1234-1356-2
+sign \x6DDD 12345-356-2
+sign \x6DDE 15-12346-3
+sign \x6DDF 124-2345-4
+sign \x6DE0 1234-16-5
+sign \x6DE1 145-1236-5
+sign \x6DE2 1256-5
+sign \x6DE3 1345-16-2
+sign \x6DE4 1256-3
+sign \x6DE5 14-34-5
+sign \x6DE6 13-1236-5
+sign \x6DE7 134-16-5
+sign \x6DE8 13-13456-5
+sign \x6DE9 14-13456-2
+sign \x6DEA 14-123456-2
+sign \x6DEB 1456-2
+sign \x6DEC 245-1246-5
+sign \x6DED 245-1256-2
+sign \x6DEE 1235-2356-2
+sign \x6DEF 1256-5
+sign \x6DF0 1345-2345-4
+sign \x6DF1 24-136-3
+sign \x6DF2 1234-246-2
+sign \x6DF3 12-123456-2
+sign \x6DF4 35-5
+sign \x6DF5 45-3
+sign \x6DF6 14-2456-2
+sign \x6DF7 1235-123456-5
+sign \x6DF8 245-13456-3
+sign \x6DF9 2345-3
+sign \x6DFA 245-2345-4
+sign \x6DFB 124-2345-3
+sign \x6DFC 134-246-4
+sign \x6DFD 1-156-4
+sign \x6DFE 1456-4
+sign \x6DFF 134-16-5
+sign \x6E00 135-136-3
+sign \x6E01 45-3
+sign \x6E02 123456-5
+sign \x6E03 1245-2346-5
+sign \x6E04 12345-356-3
+sign \x6E05 245-13456-3
+sign \x6E06 45-3
+sign \x6E07 123-2346-4
+sign \x6E08 13-16-5
+sign \x6E09 24-2346-5
+sign \x6E0A 45-3
+sign \x6E0C 14-34-5
+sign \x6E0D 125-156-5
+sign \x6E0E 145-34-2
+sign \x6E10 13-2345-5
+sign \x6E11 134-1456-4
+sign \x6E12 1234-16-5
+sign \x6E14 1256-2
+sign \x6E15 45-3
+sign \x6E16 24-136-4
+sign \x6E17 24-136-5
+sign \x6E18 1245-12356-2
+sign \x6E19 1235-12456-5
+sign \x6E1A 1-34-4
+sign \x6E1B 13-2345-4
+sign \x6E1C 1345-12456-4
+sign \x6E1D 1256-2
+sign \x6E1E 245-234-2
+sign \x6E1F 124-13456-2
+sign \x6E20 245-1256-2
+sign \x6E21 145-34-5
+sign \x6E22 12345-1356-2
+sign \x6E23 1-345-3
+sign \x6E24 135-126-2
+sign \x6E25 25-5
+sign \x6E26 25-3
+sign \x6E27 145-16-5
+sign \x6E28 1246-3
+sign \x6E29 123456-3
+sign \x6E2A 1245-34-2
+sign \x6E2B 15-346-5
+sign \x6E2C 245-2346-5
+sign \x6E2D 1246-5
+sign \x6E2E 13-2346-3
+sign \x6E2F 13-1346-4
+sign \x6E30 2345-4
+sign \x6E31 1235-12346-2
+sign \x6E32 15-45-5
+sign \x6E33 134-16-4
+sign \x6E34 123-2346-4
+sign \x6E35 134-146-2
+sign \x6E36 13456-3
+sign \x6E37 2345-4
+sign \x6E38 234-2
+sign \x6E39 1235-12346-3
+sign \x6E3A 134-246-4
+sign \x6E3B 15-13456-4
+sign \x6E3C 134-356-4
+sign \x6E3D 125-2456-3
+sign \x6E3E 1235-123456-2
+sign \x6E3F 1345-2456-5
+sign \x6E40 123-1246-2
+sign \x6E41 12-156-5
+sign \x6E42 2346-5
+sign \x6E43 1234-2456-5
+sign \x6E44 134-356-2
+sign \x6E45 14-2345-5
+sign \x6E46 245-16-5
+sign \x6E47 245-16-5
+sign \x6E48 134-356-2
+sign \x6E49 124-2345-2
+sign \x6E4A 245-12356-5
+sign \x6E4B 1246-2
+sign \x6E4C 245-1236-3
+sign \x6E4D 124-12456-3
+sign \x6E4E 134-2345-4
+sign \x6E4F 1235-1246-5
+sign \x6E50 134-126-5
+sign \x6E51 15-1256-4
+sign \x6E52 13-16-2
+sign \x6E53 1234-136-2
+sign \x6E54 13-2345-3
+sign \x6E55 13-2345-4
+sign \x6E56 1235-34-2
+sign \x6E57 12345-1356-5
+sign \x6E58 15-46-3
+sign \x6E59 16-5
+sign \x6E5A 1456-5
+sign \x6E5B 1-1236-5
+sign \x6E5C 24-156-2
+sign \x6E5D 13-346-3
+sign \x6E5E 12-1356-2
+sign \x6E5F 1235-456-2
+sign \x6E60 124-1236-5
+sign \x6E61 1256-2
+sign \x6E62 135-16-5
+sign \x6E63 134-1456-4
+sign \x6E64 24-156-3
+sign \x6E65 124-34-2
+sign \x6E66 24-1356-3
+sign \x6E67 235-4
+sign \x6E68 245-1256-5
+sign \x6E69 145-12346-5
+sign \x6E6B 13-246-4
+sign \x6E6C 13-246-4
+sign \x6E6E 2345-3
+sign \x6E6F 124-1346-3
+sign \x6E70 14-12346-2
+sign \x6E71 1235-25-5
+sign \x6E72 45-2
+sign \x6E73 1345-1236-4
+sign \x6E74 135-1236-5
+sign \x6E75 234-4
+sign \x6E76 245-45-2
+sign \x6E77 12-1246-2
+sign \x6E78 14-46-5
+sign \x6E79 12-1236-2
+sign \x6E7A 2345-2
+sign \x6E7B 12-123456-2
+sign \x6E7C 1345-346-5
+sign \x6E7D 125-156-3
+sign \x6E7E 12456-3
+sign \x6E7F 24-156-3
+sign \x6E80 134-1236-4
+sign \x6E81 13456-2
+sign \x6E83 123-1246-5
+sign \x6E85 13-2345-5
+sign \x6E86 15-1256-5
+sign \x6E87 14-1256-4
+sign \x6E88 13-1246-3
+sign \x6E89 13-2456-5
+sign \x6E8C 1234-126-3
+sign \x6E8D 13-1456-5
+sign \x6E8E 13-1246-5
+sign \x6E8F 124-1346-2
+sign \x6E90 45-2
+sign \x6E91 15-25-4
+sign \x6E92 45-2
+sign \x6E93 14-2345-2
+sign \x6E94 246-4
+sign \x6E95 134-1356-5
+sign \x6E96 1-123456-4
+sign \x6E97 24-1356-2
+sign \x6E98 123-2346-5
+sign \x6E99 124-2456-5
+sign \x6E9A 145-345-2
+sign \x6E9B 35-3
+sign \x6E9C 14-234-3
+sign \x6E9D 13-12356-3
+sign \x6E9E 15-146-3
+sign \x6E9F 134-13456-2
+sign \x6EA0 1-345-5
+sign \x6EA1 24-156-2
+sign \x6EA2 16-5
+sign \x6EA3 14-123456-2
+sign \x6EA4 134-345-4
+sign \x6EA5 1234-34-4
+sign \x6EA6 1246-2
+sign \x6EA7 14-16-5
+sign \x6EA8 245-2456-2
+sign \x6EA9 34-5
+sign \x6EAA 15-16-3
+sign \x6EAB 123456-3
+sign \x6EAC 245-46-3
+sign \x6EAD 125-2346-2
+sign \x6EAE 24-156-3
+sign \x6EAF 15-34-5
+sign \x6EB0 16-3
+sign \x6EB1 1-136-3
+sign \x6EB2 15-12356-4
+sign \x6EB3 256-2
+sign \x6EB4 15-234-5
+sign \x6EB5 1456-3
+sign \x6EB6 1245-12346-2
+sign \x6EB7 1235-123456-5
+sign \x6EB8 15-34-5
+sign \x6EB9 15-34-5
+sign \x6EBA 1345-16-5
+sign \x6EBB 124-345-5
+sign \x6EBC 24-156-3
+sign \x6EBD 1245-34-5
+sign \x6EBE 1246-3
+sign \x6EBF 1234-1236-5
+sign \x6EC0 12-34-5
+sign \x6EC1 12-34-2
+sign \x6EC2 1234-1346-3
+sign \x6EC3 12346-4
+sign \x6EC4 245-1346-3
+sign \x6EC5 134-346-5
+sign \x6EC6 1235-2346-2
+sign \x6EC7 145-2345-3
+sign \x6EC8 1235-146-5
+sign \x6EC9 1235-456-4
+sign \x6ECA 15-16-5
+sign \x6ECB 125-156-3
+sign \x6ECC 145-16-2
+sign \x6ECD 1-156-4
+sign \x6ECE 13456-2
+sign \x6ECF 12345-34-4
+sign \x6ED0 13-346-2
+sign \x6ED1 1235-35-2
+sign \x6ED2 13-2346-3
+sign \x6ED3 125-156-4
+sign \x6ED4 124-146-3
+sign \x6ED5 124-1356-2
+sign \x6ED6 15-1246-3
+sign \x6ED7 135-16-4
+sign \x6ED8 13-246-5
+sign \x6ED9 1235-1246-5
+sign \x6EDA 13-123456-4
+sign \x6EDB 1456-2
+sign \x6EDC 13-146-3
+sign \x6EDD 14-12346-2
+sign \x6EDE 1-156-5
+sign \x6EDF 2345-5
+sign \x6EE0 24-2346-5
+sign \x6EE1 134-1236-4
+sign \x6EE2 13456-5
+sign \x6EE3 12-123456-2
+sign \x6EE4 14-1256-5
+sign \x6EE5 14-1236-5
+sign \x6EE6 14-12456-2
+sign \x6EE8 135-1456-3
+sign \x6EE9 124-1236-3
+sign \x6EEA 1256-5
+sign \x6EEB 15-234-3
+sign \x6EEC 1235-34-5
+sign \x6EED 135-16-5
+sign \x6EEE 135-246-3
+sign \x6EEF 1-156-5
+sign \x6EF0 13-46-4
+sign \x6EF1 123-12356-5
+sign \x6EF2 24-136-5
+sign \x6EF3 24-1346-3
+sign \x6EF4 145-16-3
+sign \x6EF5 134-16-5
+sign \x6EF6 146-2
+sign \x6EF7 14-34-4
+sign \x6EF8 1235-34-4
+sign \x6EF9 1235-34-3
+sign \x6EFA 234-2
+sign \x6EFB 12-1236-4
+sign \x6EFC 12345-1236-5
+sign \x6EFD 235-2
+sign \x6EFE 13-123456-4
+sign \x6EFF 134-1236-4
+sign \x6F00 245-13456-5
+sign \x6F01 1256-2
+sign \x6F02 1234-246-3
+sign \x6F03 13-16-2
+sign \x6F04 23456-2
+sign \x6F05 13-246-4
+sign \x6F06 245-16-3
+sign \x6F07 15-16-4
+sign \x6F08 13-16-5
+sign \x6F09 14-34-5
+sign \x6F0A 14-1256-4
+sign \x6F0B 14-12346-2
+sign \x6F0C 13-1456-4
+sign \x6F0D 13-25-2
+sign \x6F0E 245-12346-2
+sign \x6F0F 14-12356-5
+sign \x6F10 1-156-2
+sign \x6F11 13-2456-5
+sign \x6F12 245-46-2
+sign \x6F13 14-16-2
+sign \x6F14 2345-4
+sign \x6F15 125-146-5
+sign \x6F16 13-246-5
+sign \x6F17 245-12346-3
+sign \x6F18 12-123456-2
+sign \x6F19 124-12456-2
+sign \x6F1A 12356-5
+sign \x6F1B 124-1356-2
+sign \x6F1C 346-4
+sign \x6F1D 15-16-2
+sign \x6F1E 134-16-5
+sign \x6F1F 124-1346-2
+sign \x6F20 134-126-5
+sign \x6F21 24-1346-3
+sign \x6F22 1235-1236-5
+sign \x6F23 14-2345-2
+sign \x6F24 14-1236-4
+sign \x6F25 35-3
+sign \x6F26 14-16-2
+sign \x6F27 245-2345-2
+sign \x6F28 12345-1356-2
+sign \x6F29 15-45-2
+sign \x6F2A 16-3
+sign \x6F2B 134-1236-5
+sign \x6F2C 125-156-5
+sign \x6F2D 134-1346-4
+sign \x6F2E 123-1346-3
+sign \x6F2F 124-345-5
+sign \x6F30 1234-1356-3
+sign \x6F31 24-34-5
+sign \x6F32 1-1346-4
+sign \x6F33 1-1346-3
+sign \x6F34 12-12346-2
+sign \x6F35 15-1256-5
+sign \x6F36 1235-12456-5
+sign \x6F37 123-25-5
+sign \x6F38 13-2345-5
+sign \x6F39 2345-3
+sign \x6F3A 12-456-4
+sign \x6F3B 14-246-2
+sign \x6F3C 245-1246-4
+sign \x6F3D 124-16-2
+sign \x6F3E 46-5
+sign \x6F3F 13-46-3
+sign \x6F40 245-12346-2
+sign \x6F41 13456-4
+sign \x6F42 1235-12346-2
+sign \x6F43 15-12356-4
+sign \x6F44 24-34-5
+sign \x6F45 13-12456-5
+sign \x6F46 13456-2
+sign \x6F47 15-246-3
+sign \x6F4A 15-1256-5
+sign \x6F4B 14-2345-5
+sign \x6F4C 1-156-5
+sign \x6F4D 1246-2
+sign \x6F4E 1234-16-5
+sign \x6F4F 13-236-2
+sign \x6F50 13-246-5
+sign \x6F51 1234-126-3
+sign \x6F52 145-1346-5
+sign \x6F53 1235-1246-5
+sign \x6F54 13-346-2
+sign \x6F55 34-4
+sign \x6F56 1234-345-2
+sign \x6F57 13-16-2
+sign \x6F58 1234-1236-3
+sign \x6F59 13-1246-2
+sign \x6F5A 245-34-5
+sign \x6F5B 245-2345-2
+sign \x6F5C 245-2345-2
+sign \x6F5D 15-16-3
+sign \x6F5E 14-34-5
+sign \x6F5F 15-16-5
+sign \x6F60 15-123456-5
+sign \x6F61 145-123456-5
+sign \x6F62 1235-456-2
+sign \x6F63 134-1456-4
+sign \x6F64 1245-123456-5
+sign \x6F65 15-34-5
+sign \x6F66 14-246-2
+sign \x6F67 1-136-3
+sign \x6F68 1-12346-3
+sign \x6F69 16-5
+sign \x6F6A 145-16-2
+sign \x6F6B 12456-3
+sign \x6F6C 145-1236-5
+sign \x6F6D 124-1236-2
+sign \x6F6E 12-146-2
+sign \x6F6F 15-256-2
+sign \x6F70 123-1246-5
+sign \x6F72 24-146-5
+sign \x6F73 124-34-2
+sign \x6F74 1-34-3
+sign \x6F75 15-1236-5
+sign \x6F76 1235-356-3
+sign \x6F77 135-16-4
+sign \x6F78 24-1236-3
+sign \x6F79 12-1236-2
+sign \x6F7A 12-1236-2
+sign \x6F7B 24-34-4
+sign \x6F7C 124-12346-2
+sign \x6F7D 1234-34-4
+sign \x6F7E 14-1456-2
+sign \x6F7F 1246-2
+sign \x6F80 15-2346-5
+sign \x6F81 15-2346-5
+sign \x6F82 12-1356-2
+sign \x6F83 13-235-5
+sign \x6F84 12-1356-2
+sign \x6F85 1235-35-5
+sign \x6F86 13-246-3
+sign \x6F87 14-146-2
+sign \x6F88 12-2346-5
+sign \x6F89 13-1236-4
+sign \x6F8A 245-123456-3
+sign \x6F8B 1235-1356-5
+sign \x6F8C 15-156-3
+sign \x6F8D 1-34-5
+sign \x6F8E 1234-1356-2
+sign \x6F8F 1235-1236-5
+sign \x6F90 256-2
+sign \x6F91 14-234-5
+sign \x6F92 1235-12346-5
+sign \x6F93 12345-34-2
+sign \x6F94 1235-146-5
+sign \x6F95 1235-2346-2
+sign \x6F96 15-2345-3
+sign \x6F97 13-2345-5
+sign \x6F98 24-1236-3
+sign \x6F99 15-16-5
+sign \x6F9C 14-1236-2
+sign \x6F9E 1256-2
+sign \x6F9F 14-1456-4
+sign \x6FA0 134-1456-4
+sign \x6FA1 125-146-4
+sign \x6FA2 145-1346-3
+sign \x6FA3 1235-12456-4
+sign \x6FA4 125-2346-2
+sign \x6FA5 15-346-5
+sign \x6FA6 1256-5
+sign \x6FA7 14-16-4
+sign \x6FA8 24-156-5
+sign \x6FA9 15-236-2
+sign \x6FAA 14-13456-2
+sign \x6FAB 134-1236-5
+sign \x6FAC 125-156-3
+sign \x6FAD 235-3
+sign \x6FAE 123-2356-5
+sign \x6FAF 245-1236-5
+sign \x6FB0 14-2345-5
+sign \x6FB1 145-2345-5
+sign \x6FB2 346-5
+sign \x6FB3 146-5
+sign \x6FB4 1235-12456-2
+sign \x6FB5 1-136-3
+sign \x6FB6 145-1236-5
+sign \x6FB7 134-1236-5
+sign \x6FB8 145-1236-4
+sign \x6FB9 145-1236-5
+sign \x6FBA 16-5
+sign \x6FBB 15-1246-5
+sign \x6FBC 1234-16-5
+sign \x6FBD 13-1256-5
+sign \x6FBE 124-345-5
+sign \x6FBF 245-1456-2
+sign \x6FC0 13-16-3
+sign \x6FC1 1-25-2
+sign \x6FC2 14-2345-2
+sign \x6FC3 1345-12346-2
+sign \x6FC4 25-3
+sign \x6FC5 13-1456-5
+sign \x6FC6 12345-136-2
+sign \x6FC7 15-2346-5
+sign \x6FC8 13-16-2
+sign \x6FC9 15-1246-3
+sign \x6FCA 1235-1246-5
+sign \x6FCB 12-34-4
+sign \x6FCC 124-345-5
+sign \x6FCD 15-12346-3
+sign \x6FCE 145-13456-4
+sign \x6FCF 135-345-1
+sign \x6FD0 1-34-4
+sign \x6FD1 14-2456-5
+sign \x6FD2 135-1456-3
+sign \x6FD3 14-2345-2
+sign \x6FD4 134-16-4
+sign \x6FD5 24-156-3
+sign \x6FD6 24-34-5
+sign \x6FD7 134-16-5
+sign \x6FD8 1345-13456-5
+sign \x6FD9 13456-2
+sign \x6FDA 13456-2
+sign \x6FDB 134-1356-2
+sign \x6FDC 13-1456-5
+sign \x6FDD 245-16-2
+sign \x6FDE 1234-16-5
+sign \x6FDF 13-16-5
+sign \x6FE0 1235-146-2
+sign \x6FE1 1245-34-2
+sign \x6FE2 125-1246-4
+sign \x6FE3 25-5
+sign \x6FE4 124-146-2
+sign \x6FE5 1456-5
+sign \x6FE6 1456-4
+sign \x6FE7 145-1246-5
+sign \x6FE8 245-156-2
+sign \x6FE9 1235-25-5
+sign \x6FEA 13-13456-5
+sign \x6FEB 14-1236-5
+sign \x6FEC 13-256-5
+sign \x6FED 2456-5
+sign \x6FEE 1234-34-2
+sign \x6FEF 1-25-2
+sign \x6FF0 1246-2
+sign \x6FF1 135-1456-3
+sign \x6FF2 13-34-4
+sign \x6FF3 245-2345-2
+sign \x6FF4 15-13456-2
+sign \x6FF6 123-25-5
+sign \x6FF7 12345-356-5
+sign \x6FFA 13-2345-5
+sign \x6FFB 1246-2
+sign \x6FFC 14-25-5
+sign \x6FFD 125-1236-5
+sign \x6FFE 14-1256-5
+sign \x6FFF 14-16-5
+sign \x7000 234-3
+sign \x7001 46-5
+sign \x7002 14-34-4
+sign \x7003 15-156-5
+sign \x7004 13-346-2
+sign \x7005 13456-5
+sign \x7006 145-34-2
+sign \x7007 456-4
+sign \x7008 1235-1246-3
+sign \x7009 15-346-5
+sign \x700A 1234-1236-2
+sign \x700B 24-136-4
+sign \x700C 135-246-3
+sign \x700D 12-1236-2
+sign \x700E 134-126-5
+sign \x700F 14-234-2
+sign \x7010 13-2345-3
+sign \x7011 1234-34-5
+sign \x7012 15-2346-5
+sign \x7013 12-1356-2
+sign \x7014 13-34-4
+sign \x7015 135-1456-3
+sign \x7016 1235-25-5
+sign \x7017 15-2345-5
+sign \x7018 14-34-2
+sign \x7019 245-1456-3
+sign \x701A 1235-1236-5
+sign \x701B 13456-2
+sign \x701C 1245-12346-2
+sign \x701D 14-16-5
+sign \x701E 13-13456-5
+sign \x701F 15-246-3
+sign \x7020 13456-2
+sign \x7021 15-1246-4
+sign \x7022 1246-2
+sign \x7023 15-346-5
+sign \x7024 1235-2356-2
+sign \x7025 1235-146-5
+sign \x7026 1-34-3
+sign \x7027 14-12346-2
+sign \x7028 14-2456-5
+sign \x7029 145-1246-5
+sign \x702A 12345-1236-2
+sign \x702B 1235-34-2
+sign \x702C 14-2456-5
+sign \x702F 13456-2
+sign \x7030 134-16-2
+sign \x7031 13-16-5
+sign \x7032 14-2345-5
+sign \x7033 13-2345-5
+sign \x7034 13456-4
+sign \x7035 12345-136-5
+sign \x7036 14-1456-2
+sign \x7037 16-5
+sign \x7038 13-2345-3
+sign \x7039 246-5
+sign \x703A 12-1236-2
+sign \x703B 145-2456-5
+sign \x703C 1245-1346-2
+sign \x703D 13-2345-4
+sign \x703E 14-1236-2
+sign \x703F 12345-1236-2
+sign \x7040 24-456-5
+sign \x7041 45-3
+sign \x7042 1-25-2
+sign \x7043 12345-1356-3
+sign \x7044 24-2346-5
+sign \x7045 14-356-4
+sign \x7046 14-1236-2
+sign \x7047 245-12346-2
+sign \x7048 245-1256-2
+sign \x7049 235-3
+sign \x704A 245-2345-2
+sign \x704B 12345-345-4
+sign \x704C 13-12456-5
+sign \x704D 245-236-5
+sign \x704E 2345-5
+sign \x704F 1235-146-5
+sign \x7051 15-345-4
+sign \x7052 125-1236-5
+sign \x7053 14-12456-2
+sign \x7054 2345-5
+sign \x7055 14-16-2
+sign \x7056 134-16-4
+sign \x7057 24-1236-5
+sign \x7058 124-1236-3
+sign \x7059 145-1346-4
+sign \x705A 13-246-4
+sign \x705B 12-1236-4
+sign \x705D 1235-146-5
+sign \x705E 135-345-5
+sign \x705F 1-34-2
+sign \x7060 14-1236-5
+sign \x7061 14-1236-2
+sign \x7062 1345-1346-4
+sign \x7063 12456-3
+sign \x7064 14-12456-2
+sign \x7065 245-45-2
+sign \x7066 15-2345-4
+sign \x7067 2345-5
+sign \x7068 13-1236-4
+sign \x7069 2345-5
+sign \x706A 1256-5
+sign \x706B 1235-25-4
+sign \x706C 135-246-3
+sign \x706D 134-346-5
+sign \x706E 13-456-3
+sign \x706F 145-1356-3
+sign \x7070 1235-1246-3
+sign \x7071 15-246-3
+sign \x7072 15-246-3
+sign \x7074 1235-12346-2
+sign \x7075 14-13456-2
+sign \x7076 125-146-5
+sign \x7077 1-12456-5
+sign \x7078 13-234-4
+sign \x7079 1-345-5
+sign \x707A 15-346-5
+sign \x707B 12-156-5
+sign \x707C 1-25-2
+sign \x707D 125-2456-3
+sign \x707E 125-2456-3
+sign \x707F 245-1236-5
+sign \x7080 46-2
+sign \x7081 245-16-5
+sign \x7082 1-12346-3
+sign \x7083 12345-136-2
+sign \x7084 1345-234-4
+sign \x7085 13-235-4
+sign \x7086 123456-2
+sign \x7087 1234-126-5
+sign \x7088 16-5
+sign \x7089 14-34-2
+sign \x708A 12-1246-3
+sign \x708B 1234-16-3
+sign \x708C 123-2456-4
+sign \x708D 1234-1236-5
+sign \x708E 2345-2
+sign \x708F 123-2456-4
+sign \x7090 1234-1346-5
+sign \x7091 134-34-5
+sign \x7092 12-146-4
+sign \x7093 14-246-5
+sign \x7094 13-1246-5
+sign \x7095 123-1346-5
+sign \x7096 124-123456-3
+sign \x7097 13-456-3
+sign \x7098 15-1456-3
+sign \x7099 1-156-5
+sign \x709A 13-456-3
+sign \x709B 13-456-3
+sign \x709C 1246-4
+sign \x709D 245-46-5
+sign \x709F 145-345-2
+sign \x70A0 15-23456-2
+sign \x70A1 1-1356-3
+sign \x70A2 1-34-2
+sign \x70A3 123-2346-4
+sign \x70A4 1-146-5
+sign \x70A5 12345-34-2
+sign \x70A6 135-345-2
+sign \x70A7 145-25-5
+sign \x70A8 145-25-5
+sign \x70A9 14-13456-5
+sign \x70AA 1-25-2
+sign \x70AB 15-45-5
+sign \x70AC 13-1256-5
+sign \x70AD 124-1236-5
+sign \x70AE 1234-146-5
+sign \x70AF 13-235-4
+sign \x70B0 1234-146-2
+sign \x70B1 124-2456-2
+sign \x70B2 124-2456-2
+sign \x70B3 135-13456-4
+sign \x70B4 46-4
+sign \x70B5 124-12346-3
+sign \x70B6 1235-1236-3
+sign \x70B7 1-34-5
+sign \x70B8 1-345-5
+sign \x70B9 145-2345-4
+sign \x70BA 1246-2
+sign \x70BB 24-156-2
+sign \x70BC 14-2345-5
+sign \x70BD 12-156-5
+sign \x70BE 1234-13456-2
+sign \x70C0 1235-34-3
+sign \x70C1 24-25-5
+sign \x70C2 14-1236-5
+sign \x70C3 13-13456-4
+sign \x70C4 13-246-4
+sign \x70C5 15-1256-5
+sign \x70C6 15-13456-2
+sign \x70C7 245-45-5
+sign \x70C8 14-346-5
+sign \x70C9 1235-12456-5
+sign \x70CA 46-2
+sign \x70CB 15-234-3
+sign \x70CC 15-234-3
+sign \x70CD 15-2345-4
+sign \x70CE 1456-2
+sign \x70CF 34-3
+sign \x70D0 1-12356-3
+sign \x70D1 246-2
+sign \x70D2 24-156-5
+sign \x70D3 1246-3
+sign \x70D4 124-12346-2
+sign \x70D5 15-236-5
+sign \x70D6 125-2456-3
+sign \x70D7 123-2456-4
+sign \x70D8 1235-12346-3
+sign \x70D9 14-25-5
+sign \x70DA 15-23456-2
+sign \x70DB 1-34-2
+sign \x70DC 15-45-4
+sign \x70DD 1-1356-3
+sign \x70DE 1234-126-5
+sign \x70DF 2345-3
+sign \x70E0 1235-1246-4
+sign \x70E1 13-456-3
+sign \x70E2 1-2346-5
+sign \x70E3 1235-1246-3
+sign \x70E4 123-146-4
+sign \x70E6 12345-1236-2
+sign \x70E7 24-146-3
+sign \x70E8 346-5
+sign \x70E9 1235-1246-5
+sign \x70EB 124-1346-5
+sign \x70EC 13-1456-5
+sign \x70ED 1245-2346-5
+sign \x70EF 15-16-3
+sign \x70F0 12345-34-2
+sign \x70F1 13-235-4
+sign \x70F2 12-2346-5
+sign \x70F3 1234-34-4
+sign \x70F4 13-13456-4
+sign \x70F5 1-25-2
+sign \x70F6 124-13456-4
+sign \x70F7 12456-2
+sign \x70F8 1235-2456-4
+sign \x70F9 1234-1356-3
+sign \x70FA 14-1346-4
+sign \x70FB 2345-4
+sign \x70FC 1235-34-3
+sign \x70FD 12345-1356-3
+sign \x70FE 12-156-5
+sign \x70FF 1245-12346-2
+sign \x7100 1235-34-2
+sign \x7102 24-34-2
+sign \x7103 1235-2346-5
+sign \x7104 15-256-3
+sign \x7105 123-34-5
+sign \x7106 13-236-2
+sign \x7107 15-246-3
+sign \x7108 15-16-3
+sign \x7109 2345-3
+sign \x710A 1235-1236-4
+sign \x710B 1-456-5
+sign \x710C 13-256-5
+sign \x710D 145-16-5
+sign \x710E 15-246-5
+sign \x710F 13-16-2
+sign \x7110 34-5
+sign \x7113 1235-1236-2
+sign \x7114 2345-5
+sign \x7115 1235-12456-5
+sign \x7116 134-136-3
+sign \x7117 13-1256-2
+sign \x7118 124-146-2
+sign \x7119 135-356-5
+sign \x711A 12345-136-2
+sign \x711B 14-1456-5
+sign \x711C 1235-123456-5
+sign \x711D 1235-123456-5
+sign \x711E 124-123456-3
+sign \x711F 15-16-2
+sign \x7120 245-1246-5
+sign \x7121 34-2
+sign \x7122 1235-12346-3
+sign \x7123 13-1256-5
+sign \x7124 12345-34-4
+sign \x7125 25-5
+sign \x7126 13-246-3
+sign \x7127 245-12346-3
+sign \x7128 12345-1356-5
+sign \x7129 1234-13456-3
+sign \x712A 245-235-3
+sign \x712B 1245-25-5
+sign \x712C 15-16-2
+sign \x712D 245-235-2
+sign \x712E 15-1456-5
+sign \x712F 1-25-2
+sign \x7130 2345-5
+sign \x7131 2345-4
+sign \x7132 16-5
+sign \x7133 13-236-2
+sign \x7134 1256-5
+sign \x7135 13-1346-5
+sign \x7136 1245-1236-2
+sign \x7137 1234-16-2
+sign \x7138 13-34-4
+sign \x713A 24-1356-3
+sign \x713B 12-1346-5
+sign \x713C 24-146-3
+sign \x7141 12-136-2
+sign \x7142 1235-2346-5
+sign \x7143 123-1246-4
+sign \x7144 1-12346-3
+sign \x7145 145-12456-5
+sign \x7146 15-23456-3
+sign \x7147 1235-1246-3
+sign \x7148 12345-1356-5
+sign \x7149 14-2345-5
+sign \x714A 15-45-3
+sign \x714B 15-13456-3
+sign \x714C 1235-456-2
+sign \x714D 13-246-4
+sign \x714E 13-2345-3
+sign \x714F 135-16-5
+sign \x7150 13456-3
+sign \x7151 1-34-4
+sign \x7152 1246-4
+sign \x7153 124-12456-3
+sign \x7154 124-2345-5
+sign \x7155 15-16-3
+sign \x7156 1345-12456-4
+sign \x7157 1345-12456-4
+sign \x7158 12-1236-2
+sign \x7159 2345-3
+sign \x715A 13-235-4
+sign \x715B 13-235-4
+sign \x715C 1256-5
+sign \x715D 134-356-5
+sign \x715E 24-345-5
+sign \x715F 1246-5
+sign \x7160 346-5
+sign \x7161 15-1456-5
+sign \x7162 245-235-2
+sign \x7163 1245-12356-4
+sign \x7164 134-356-2
+sign \x7165 1235-12456-5
+sign \x7166 15-1256-4
+sign \x7167 1-146-5
+sign \x7168 1246-3
+sign \x7169 12345-1236-2
+sign \x716A 245-234-2
+sign \x716B 15-1246-5
+sign \x716C 46-2
+sign \x716D 14-346-5
+sign \x716E 1-34-4
+sign \x7170 13-146-5
+sign \x7171 13-35-3
+sign \x7172 135-146-3
+sign \x7173 1235-34-2
+sign \x7174 256-3
+sign \x7175 15-23456-3
+sign \x7178 135-2345-3
+sign \x7179 13-12356-5
+sign \x717A 124-1246-5
+sign \x717B 124-1346-2
+sign \x717C 12-146-4
+sign \x717D 24-1236-3
+sign \x717E 136-3
+sign \x717F 135-126-2
+sign \x7180 1235-456-4
+sign \x7181 15-346-2
+sign \x7182 15-16-5
+sign \x7183 34-5
+sign \x7184 15-16-2
+sign \x7185 256-2
+sign \x7186 1235-2346-2
+sign \x7187 1235-34-5
+sign \x7188 15-16-3
+sign \x7189 256-2
+sign \x718A 15-235-2
+sign \x718B 1345-2456-2
+sign \x718C 24-1236-5
+sign \x718E 246-5
+sign \x718F 15-256-3
+sign \x7190 134-13456-2
+sign \x7191 14-2345-2
+sign \x7192 13456-2
+sign \x7193 34-4
+sign \x7194 1245-12346-2
+sign \x7197 245-46-5
+sign \x7198 14-234-3
+sign \x7199 15-16-3
+sign \x719A 135-16-5
+sign \x719B 135-246-3
+sign \x719C 125-12346-4
+sign \x719D 14-34-5
+sign \x719E 13-2345-3
+sign \x719F 24-34-2
+sign \x71A0 16-5
+sign \x71A1 14-12356-2
+sign \x71A2 12345-1356-3
+sign \x71A3 15-1246-3
+sign \x71A4 16-5
+sign \x71A5 124-12346-3
+sign \x71A6 13-236-2
+sign \x71A7 125-12346-3
+sign \x71A8 256-5
+sign \x71A9 1235-34-5
+sign \x71AA 16-2
+sign \x71AB 1-156-5
+sign \x71AC 146-2
+sign \x71AD 1246-5
+sign \x71AE 14-246-2
+sign \x71AF 1245-1236-4
+sign \x71B0 12356-3
+sign \x71B1 1245-2346-5
+sign \x71B2 13-235-4
+sign \x71B3 134-1236-5
+sign \x71B4 135-16-4
+sign \x71B5 24-1346-3
+sign \x71B6 245-12456-5
+sign \x71B7 125-1356-3
+sign \x71B8 13-2345-3
+sign \x71B9 15-16-3
+sign \x71BA 15-16-3
+sign \x71BB 15-16-3
+sign \x71BC 16-5
+sign \x71BD 15-246-5
+sign \x71BE 12-156-5
+sign \x71BF 1235-456-2
+sign \x71C0 12-1236-4
+sign \x71C1 346-5
+sign \x71C2 245-2345-2
+sign \x71C3 1245-1236-2
+sign \x71C4 2345-5
+sign \x71C5 15-2345-2
+sign \x71C6 245-246-2
+sign \x71C7 125-123456-5
+sign \x71C8 145-1356-3
+sign \x71C9 145-123456-5
+sign \x71CA 24-136-3
+sign \x71CB 13-246-3
+sign \x71CC 12345-136-2
+sign \x71CD 15-156-3
+sign \x71CE 14-246-5
+sign \x71CF 1256-5
+sign \x71D0 14-1456-2
+sign \x71D1 124-12346-2
+sign \x71D2 24-146-3
+sign \x71D3 12345-136-3
+sign \x71D4 12345-1236-2
+sign \x71D5 2345-5
+sign \x71D6 15-256-2
+sign \x71D7 14-1236-5
+sign \x71D8 134-356-4
+sign \x71D9 124-1346-5
+sign \x71DA 16-3
+sign \x71DB 13-13456-4
+sign \x71DC 134-136-5
+sign \x71DF 13456-2
+sign \x71E0 146-5
+sign \x71E1 16-5
+sign \x71E2 15-236-2
+sign \x71E3 14-1236-2
+sign \x71E4 124-2456-5
+sign \x71E5 125-146-5
+sign \x71E6 245-1236-5
+sign \x71E7 15-1246-5
+sign \x71E8 15-16-3
+sign \x71E9 245-236-5
+sign \x71EA 245-12346-3
+sign \x71EB 14-2345-2
+sign \x71EC 1235-1246-4
+sign \x71ED 1-34-2
+sign \x71EE 15-346-5
+sign \x71EF 14-13456-2
+sign \x71F0 1246-3
+sign \x71F1 16-5
+sign \x71F2 15-346-2
+sign \x71F3 1-146-5
+sign \x71F4 1235-1246-5
+sign \x71F7 14-1236-2
+sign \x71F8 1245-34-2
+sign \x71F9 15-2345-4
+sign \x71FA 123-146-4
+sign \x71FB 15-256-3
+sign \x71FC 13-1456-5
+sign \x71FD 12-12356-2
+sign \x71FE 124-146-2
+sign \x71FF 246-5
+sign \x7200 1235-2346-5
+sign \x7201 14-1236-5
+sign \x7202 135-246-3
+sign \x7203 1245-12346-2
+sign \x7204 14-16-5
+sign \x7205 134-126-5
+sign \x7206 135-146-5
+sign \x7207 1245-25-5
+sign \x7208 14-1256-2
+sign \x7209 14-345-5
+sign \x720A 146-2
+sign \x720B 15-256-5
+sign \x720C 123-456-5
+sign \x720D 24-25-5
+sign \x720F 14-16-5
+sign \x7210 14-34-2
+sign \x7211 13-236-2
+sign \x7212 14-246-5
+sign \x7213 2345-2
+sign \x7214 15-16-3
+sign \x7215 15-346-5
+sign \x7216 14-12346-2
+sign \x7217 346-5
+sign \x7219 1245-1346-4
+sign \x721A 236-5
+sign \x721B 14-1236-5
+sign \x721C 245-12346-2
+sign \x721D 13-236-2
+sign \x721E 124-12346-2
+sign \x721F 13-12456-5
+sign \x7221 12-2346-5
+sign \x7222 134-16-2
+sign \x7223 124-1346-4
+sign \x7224 14-1236-5
+sign \x7225 1-34-2
+sign \x7226 14-1236-4
+sign \x7227 14-13456-2
+sign \x7228 245-12456-5
+sign \x7229 1256-5
+sign \x722A 1-35-4
+sign \x722C 1234-345-2
+sign \x722D 1-1356-3
+sign \x722E 1234-146-2
+sign \x722F 12-1356-3
+sign \x7230 45-2
+sign \x7231 2456-5
+sign \x7232 1246-5
+sign \x7234 13-236-2
+sign \x7235 13-236-2
+sign \x7236 12345-34-5
+sign \x7237 346-2
+sign \x7238 135-345-5
+sign \x7239 145-346-3
+sign \x723A 346-2
+sign \x723B 246-2
+sign \x723C 125-34-4
+sign \x723D 24-456-4
+sign \x723E 156-4
+sign \x723F 135-1236-5
+sign \x7240 12-456-2
+sign \x7241 13-2346-3
+sign \x7242 125-1346-3
+sign \x7243 145-346-2
+sign \x7244 245-46-3
+sign \x7245 235-2
+sign \x7246 245-46-2
+sign \x7247 1234-2345-5
+sign \x7248 135-1236-4
+sign \x7249 1234-1236-5
+sign \x724A 24-146-2
+sign \x724B 13-2345-3
+sign \x724C 1234-2456-2
+sign \x724D 145-34-2
+sign \x724E 12-456-3
+sign \x724F 1-34-5
+sign \x7250 1-345-2
+sign \x7251 135-2345-3
+sign \x7252 145-346-2
+sign \x7253 135-1346-4
+sign \x7254 135-126-2
+sign \x7255 12-456-3
+sign \x7256 234-4
+sign \x7258 145-34-2
+sign \x7259 23456-2
+sign \x725A 12-1356-5
+sign \x725B 1345-234-2
+sign \x725D 1234-1456-5
+sign \x725E 13-234-3
+sign \x725F 134-12356-2
+sign \x7260 124-3457-3
+sign \x7261 134-34-4
+sign \x7262 14-146-2
+sign \x7263 1245-136-5
+sign \x7264 134-1346-2
+sign \x7265 12345-1346-3
+sign \x7266 134-146-2
+sign \x7267 134-34-5
+sign \x7268 13-1346-3
+sign \x7269 34-5
+sign \x726A 2345-5
+sign \x726B 13-2346-3
+sign \x726C 135-356-5
+sign \x726D 15-156-5
+sign \x726E 13-2345-5
+sign \x726F 13-34-4
+sign \x7270 234-5
+sign \x7271 13-2346-3
+sign \x7272 24-1356-3
+sign \x7273 134-34-4
+sign \x7274 145-16-4
+sign \x7275 245-2345-3
+sign \x7276 245-45-5
+sign \x7277 245-45-2
+sign \x7278 125-156-5
+sign \x7279 124-2346-5
+sign \x727A 15-16-3
+sign \x727B 134-1346-2
+sign \x727C 123-1356-3
+sign \x727D 245-2345-3
+sign \x727E 34-2
+sign \x727F 13-34-5
+sign \x7280 15-16-3
+sign \x7281 14-16-2
+sign \x7282 14-16-2
+sign \x7283 1234-12356-4
+sign \x7284 13-16-3
+sign \x7285 13-1346-3
+sign \x7286 124-2346-5
+sign \x7287 135-136-3
+sign \x7288 245-45-2
+sign \x7289 1245-123456-2
+sign \x728A 145-34-2
+sign \x728B 135-345-1
+sign \x728C 13-23456-3
+sign \x728D 13-2345-3
+sign \x728E 12345-1356-3
+sign \x728F 1234-2345-3
+sign \x7290 123-2346-3
+sign \x7291 13-1256-2
+sign \x7292 123-146-5
+sign \x7293 12-34-2
+sign \x7294 15-16-5
+sign \x7295 135-356-5
+sign \x7296 14-25-5
+sign \x7297 13-346-5
+sign \x7298 134-345-2
+sign \x7299 15-1236-3
+sign \x729A 1246-5
+sign \x729B 14-16-2
+sign \x729C 145-123456-3
+sign \x729D 124-12346-2
+sign \x729E 245-246-2
+sign \x729F 13-46-5
+sign \x72A1 14-16-5
+sign \x72A2 145-34-2
+sign \x72A3 14-346-5
+sign \x72A4 1234-16-2
+sign \x72A5 1234-246-4
+sign \x72A6 135-146-5
+sign \x72A7 15-16-3
+sign \x72A8 12-12356-3
+sign \x72A9 1246-2
+sign \x72AA 123-1246-2
+sign \x72AB 12-12356-3
+sign \x72AC 245-45-4
+sign \x72AE 135-126-2
+sign \x72AF 12345-1236-5
+sign \x72B0 245-234-2
+sign \x72B1 13-16-4
+sign \x72B2 245-2456-2
+sign \x72B3 12-25-2
+sign \x72B4 1235-1236-2
+sign \x72B5 13-346-2
+sign \x72B6 1-456-5
+sign \x72B7 13-456-4
+sign \x72B8 134-345-5
+sign \x72B9 234-2
+sign \x72BA 123-1346-5
+sign \x72BB 135-126-2
+sign \x72BC 1235-12356-4
+sign \x72BD 23456-5
+sign \x72BE 1456-2
+sign \x72BF 1235-12456-3
+sign \x72C0 1-456-5
+sign \x72C1 256-4
+sign \x72C2 123-456-2
+sign \x72C3 1345-234-4
+sign \x72C4 145-16-2
+sign \x72C5 245-13456-3
+sign \x72C6 1-12346-5
+sign \x72C7 134-34-5
+sign \x72C8 135-356-5
+sign \x72C9 1234-16-3
+sign \x72CA 13-1256-2
+sign \x72CB 1345-16-2
+sign \x72CC 24-1356-3
+sign \x72CD 1234-146-2
+sign \x72CE 15-23456-2
+sign \x72CF 124-25-2
+sign \x72D0 1235-34-2
+sign \x72D1 14-13456-2
+sign \x72D2 12345-356-5
+sign \x72D3 1234-16-3
+sign \x72D4 1345-16-4
+sign \x72D5 146-4
+sign \x72D6 234-5
+sign \x72D7 13-12356-4
+sign \x72D8 236-5
+sign \x72D9 13-1256-3
+sign \x72DA 145-1236-5
+sign \x72DB 1234-126-5
+sign \x72DC 13-34-4
+sign \x72DD 15-2345-4
+sign \x72DE 1345-13456-2
+sign \x72DF 1235-12456-2
+sign \x72E0 1235-136-4
+sign \x72E1 13-246-4
+sign \x72E2 1235-2346-2
+sign \x72E3 1-146-5
+sign \x72E4 13-16-2
+sign \x72E5 15-256-2
+sign \x72E6 24-1236-3
+sign \x72E7 124-345-5
+sign \x72E8 1245-12346-2
+sign \x72E9 24-12356-5
+sign \x72EA 124-12346-3
+sign \x72EB 14-146-4
+sign \x72EC 145-34-2
+sign \x72ED 15-23456-2
+sign \x72EE 24-156-3
+sign \x72EF 123-2356-5
+sign \x72F0 1-1356-3
+sign \x72F1 1256-5
+sign \x72F2 15-123456-3
+sign \x72F3 1256-2
+sign \x72F4 135-16-5
+sign \x72F5 134-1346-2
+sign \x72F6 15-16-4
+sign \x72F7 13-45-5
+sign \x72F8 14-16-2
+sign \x72F9 15-23456-2
+sign \x72FA 1456-2
+sign \x72FB 15-12456-3
+sign \x72FC 14-1346-2
+sign \x72FD 135-356-5
+sign \x72FE 1-156-5
+sign \x72FF 2345-2
+sign \x7300 24-345-3
+sign \x7301 14-16-5
+sign \x7302 1235-1236-5
+sign \x7303 15-2345-4
+sign \x7304 13-13456-3
+sign \x7305 1234-2456-2
+sign \x7306 12345-356-3
+sign \x7307 246-2
+sign \x7308 135-345-5
+sign \x7309 245-16-2
+sign \x730A 1345-16-2
+sign \x730B 135-246-3
+sign \x730C 1456-5
+sign \x730D 14-2456-2
+sign \x730E 14-346-5
+sign \x730F 13-2345-3
+sign \x7310 245-46-3
+sign \x7311 123-123456-3
+sign \x7312 2345-3
+sign \x7313 13-25-4
+sign \x7314 125-12346-5
+sign \x7315 134-16-2
+sign \x7316 12-1346-3
+sign \x7317 16-3
+sign \x7318 1-156-5
+sign \x7319 1-1356-3
+sign \x731A 23456-2
+sign \x731B 134-1356-4
+sign \x731C 245-2456-3
+sign \x731D 245-34-5
+sign \x731E 24-2346-5
+sign \x7321 14-25-2
+sign \x7322 1235-34-2
+sign \x7323 125-12346-3
+sign \x7324 13-16-5
+sign \x7325 1246-4
+sign \x7326 12345-1356-3
+sign \x7327 25-3
+sign \x7328 45-2
+sign \x7329 15-13456-3
+sign \x732A 1-34-3
+sign \x732B 134-146-3
+sign \x732C 1246-5
+sign \x732D 12-12456-2
+sign \x732E 15-2345-5
+sign \x732F 124-12456-3
+sign \x7330 23456-5
+sign \x7331 1345-146-2
+sign \x7332 15-346-3
+sign \x7333 13-23456-3
+sign \x7334 1235-12356-2
+sign \x7335 135-2345-3
+sign \x7336 234-2
+sign \x7337 234-2
+sign \x7338 134-356-2
+sign \x7339 1-345-3
+sign \x733A 246-2
+sign \x733B 15-123456-3
+sign \x733C 135-126-2
+sign \x733D 134-13456-2
+sign \x733E 1235-35-2
+sign \x733F 45-2
+sign \x7340 15-12356-3
+sign \x7341 134-345-5
+sign \x7342 45-2
+sign \x7343 145-2456-3
+sign \x7344 1256-5
+sign \x7345 24-156-3
+sign \x7346 1235-146-2
+sign \x7348 16-5
+sign \x7349 1-136-3
+sign \x734A 12-456-5
+sign \x734B 1235-146-2
+sign \x734C 134-1236-5
+sign \x734D 13-13456-5
+sign \x734E 13-46-4
+sign \x734F 134-34-2
+sign \x7350 1-1346-3
+sign \x7351 12-1236-2
+sign \x7352 146-2
+sign \x7353 146-2
+sign \x7354 1235-146-2
+sign \x7355 245-1246-3
+sign \x7356 12345-136-2
+sign \x7357 13-236-2
+sign \x7358 135-16-5
+sign \x7359 135-16-5
+sign \x735A 1235-456-2
+sign \x735B 135-34-4
+sign \x735C 14-1456-2
+sign \x735D 1256-5
+sign \x735E 124-12346-2
+sign \x735F 246-5
+sign \x7360 14-246-2
+sign \x7361 135-345-1
+sign \x7362 15-246-3
+sign \x7365 15-16-2
+sign \x7366 13-2346-2
+sign \x7367 13-45-5
+sign \x7368 145-34-2
+sign \x7369 1235-1246-5
+sign \x736A 123-2356-5
+sign \x736B 15-2345-4
+sign \x736C 15-346-5
+sign \x736D 124-345-5
+sign \x736E 15-2345-4
+sign \x736F 15-256-3
+sign \x7370 1345-13456-2
+sign \x7371 1234-1456-2
+sign \x7372 1235-25-5
+sign \x7373 1345-12356-5
+sign \x7374 134-1356-2
+sign \x7375 14-346-5
+sign \x7376 1345-146-2
+sign \x7377 13-456-4
+sign \x7378 24-12356-5
+sign \x7379 14-34-2
+sign \x737A 124-345-5
+sign \x737B 15-2345-5
+sign \x737C 134-16-2
+sign \x737D 1245-1346-2
+sign \x737E 1235-12456-3
+sign \x737F 1345-146-2
+sign \x7380 14-25-2
+sign \x7381 15-2345-4
+sign \x7382 245-16-2
+sign \x7383 13-236-2
+sign \x7384 15-45-2
+sign \x7385 134-246-5
+sign \x7386 125-156-3
+sign \x7387 14-1256-5
+sign \x7388 14-34-2
+sign \x7389 1256-5
+sign \x738A 15-34-5
+sign \x738B 456-2
+sign \x738C 245-234-2
+sign \x738D 13-345-4
+sign \x738E 145-13456-3
+sign \x738F 14-2346-5
+sign \x7390 135-345-3
+sign \x7391 13-16-3
+sign \x7392 1235-12346-2
+sign \x7393 145-16-5
+sign \x7394 12-12456-5
+sign \x7395 13-1236-3
+sign \x7396 13-234-4
+sign \x7397 1256-2
+sign \x7398 13-16-4
+sign \x7399 1256-2
+sign \x739A 46-2
+sign \x739B 134-345-4
+sign \x739C 13-12346-3
+sign \x739D 34-4
+sign \x739E 12345-34-3
+sign \x739F 123456-2
+sign \x73A0 13-346-5
+sign \x73A1 23456-5
+sign \x73A2 135-1456-3
+sign \x73A3 135-2345-5
+sign \x73A4 135-1356-4
+sign \x73A5 236-5
+sign \x73A6 13-236-2
+sign \x73A7 256-4
+sign \x73A8 13-236-2
+sign \x73A9 12456-2
+sign \x73AA 13-2345-3
+sign \x73AB 134-356-2
+sign \x73AC 145-1236-4
+sign \x73AD 1234-1456-2
+sign \x73AE 1246-4
+sign \x73AF 1235-12456-2
+sign \x73B0 15-2345-5
+sign \x73B1 245-46-3
+sign \x73B2 14-13456-2
+sign \x73B3 145-2456-5
+sign \x73B4 16-5
+sign \x73B5 1236-2
+sign \x73B6 1234-13456-2
+sign \x73B7 145-2345-5
+sign \x73B8 12345-34-2
+sign \x73B9 15-45-2
+sign \x73BA 15-16-4
+sign \x73BB 135-126-3
+sign \x73BC 245-156-4
+sign \x73BD 13-12356-4
+sign \x73BE 13-23456-4
+sign \x73BF 24-146-2
+sign \x73C0 1234-126-5
+sign \x73C1 245-156-2
+sign \x73C2 123-2346-3
+sign \x73C3 1245-1236-4
+sign \x73C4 24-1356-3
+sign \x73C5 24-136-3
+sign \x73C6 16-2
+sign \x73C7 125-34-4
+sign \x73C8 13-23456-3
+sign \x73C9 134-1456-2
+sign \x73CA 24-1236-3
+sign \x73CB 14-234-4
+sign \x73CC 135-16-5
+sign \x73CD 1-136-3
+sign \x73CE 1-136-3
+sign \x73CF 13-236-2
+sign \x73D0 12345-345-5
+sign \x73D1 14-12346-2
+sign \x73D2 13-1456-3
+sign \x73D3 13-246-5
+sign \x73D4 13-2345-5
+sign \x73D5 14-16-5
+sign \x73D6 13-456-3
+sign \x73D7 15-2345-3
+sign \x73D8 1-12356-3
+sign \x73D9 13-12346-4
+sign \x73DA 2345-3
+sign \x73DB 15-234-5
+sign \x73DC 46-2
+sign \x73DD 15-1256-4
+sign \x73DE 14-25-5
+sign \x73DF 15-34-5
+sign \x73E0 1-34-3
+sign \x73E1 245-1456-2
+sign \x73E2 123-136-5
+sign \x73E3 15-256-2
+sign \x73E4 135-146-4
+sign \x73E5 156-4
+sign \x73E6 15-46-5
+sign \x73E7 246-2
+sign \x73E8 15-23456-2
+sign \x73E9 1235-1356-2
+sign \x73EA 13-1246-3
+sign \x73EB 12-12346-3
+sign \x73EC 15-1256-5
+sign \x73ED 135-1236-3
+sign \x73EE 1234-356-5
+sign \x73F0 145-1346-3
+sign \x73F2 1235-123456-2
+sign \x73F3 123456-2
+sign \x73F4 2346-2
+sign \x73F5 12-1356-2
+sign \x73F6 124-16-2
+sign \x73F7 34-4
+sign \x73F8 34-2
+sign \x73F9 12-1356-2
+sign \x73FA 13-256-5
+sign \x73FB 134-356-2
+sign \x73FC 135-356-5
+sign \x73FD 124-13456-4
+sign \x73FE 15-2345-5
+sign \x73FF 12-25-5
+sign \x7400 1235-1236-5
+sign \x7401 15-45-2
+sign \x7402 2345-2
+sign \x7403 245-234-2
+sign \x7404 245-45-4
+sign \x7405 14-1346-2
+sign \x7406 14-16-4
+sign \x7407 15-234-5
+sign \x7408 12345-34-2
+sign \x7409 14-234-2
+sign \x740A 346-2
+sign \x740B 15-16-3
+sign \x740C 14-13456-2
+sign \x740D 14-16-5
+sign \x740E 13-1456-5
+sign \x740F 14-2345-4
+sign \x7410 15-25-4
+sign \x7413 12456-2
+sign \x7414 145-2345-5
+sign \x7415 1234-1456-2
+sign \x7416 1-1236-4
+sign \x7417 245-1246-5
+sign \x7418 134-1456-2
+sign \x7419 1256-5
+sign \x741A 13-1256-3
+sign \x741B 12-136-3
+sign \x741C 14-2456-2
+sign \x741D 123456-2
+sign \x741E 24-1356-5
+sign \x741F 1246-2
+sign \x7420 145-2345-4
+sign \x7421 12-34-5
+sign \x7422 1-25-2
+sign \x7423 1234-356-4
+sign \x7424 12-1356-3
+sign \x7425 1235-34-4
+sign \x7426 245-16-2
+sign \x7427 2346-5
+sign \x7428 123-123456-3
+sign \x7429 12-1346-3
+sign \x742A 245-16-2
+sign \x742B 135-1356-4
+sign \x742C 12456-4
+sign \x742D 14-34-5
+sign \x742E 245-12346-2
+sign \x742F 13-12456-4
+sign \x7430 2345-4
+sign \x7431 145-246-3
+sign \x7432 135-356-5
+sign \x7433 14-1456-2
+sign \x7434 245-1456-2
+sign \x7435 1234-16-2
+sign \x7436 1234-345-2
+sign \x7437 245-236-5
+sign \x7438 1-25-2
+sign \x7439 245-1456-2
+sign \x743A 12345-345-5
+sign \x743C 245-235-2
+sign \x743D 145-34-4
+sign \x743E 13-346-5
+sign \x743F 1235-123456-2
+sign \x7440 1256-4
+sign \x7441 134-356-5
+sign \x7442 134-356-2
+sign \x7444 15-45-3
+sign \x7445 124-16-2
+sign \x7446 15-13456-3
+sign \x7447 145-2456-5
+sign \x7448 1245-12356-2
+sign \x7449 134-1456-2
+sign \x744A 1-136-3
+sign \x744B 1246-4
+sign \x744C 1245-12456-4
+sign \x744D 1235-12456-5
+sign \x744E 13-346-3
+sign \x744F 12-12456-3
+sign \x7450 13-2345-4
+sign \x7451 1-12456-5
+sign \x7452 12-1346-5
+sign \x7453 14-2345-5
+sign \x7454 245-45-2
+sign \x7455 15-23456-2
+sign \x7456 145-12456-5
+sign \x7457 45-5
+sign \x7458 346-2
+sign \x7459 1345-146-4
+sign \x745A 1235-34-2
+sign \x745B 13456-3
+sign \x745C 1256-2
+sign \x745D 1235-456-2
+sign \x745E 1245-1246-5
+sign \x745F 15-2346-5
+sign \x7460 14-234-2
+sign \x7462 1245-12346-2
+sign \x7463 15-25-4
+sign \x7464 246-2
+sign \x7465 123456-3
+sign \x7466 34-3
+sign \x7467 13-1456-3
+sign \x7468 13-1456-5
+sign \x7469 13456-2
+sign \x746A 134-345-4
+sign \x746B 124-146-3
+sign \x746C 14-234-2
+sign \x746D 124-1346-2
+sign \x746E 14-16-5
+sign \x746F 14-1346-2
+sign \x7470 13-1246-3
+sign \x7471 124-2345-5
+sign \x7472 245-46-3
+sign \x7473 245-25-3
+sign \x7474 13-236-2
+sign \x7475 1-146-4
+sign \x7476 246-2
+sign \x7477 2456-5
+sign \x7478 135-1456-3
+sign \x7479 124-34-2
+sign \x747A 12-1346-2
+sign \x747B 123-123456-3
+sign \x747C 1-12456-3
+sign \x747D 245-12346-3
+sign \x747E 13-1456-4
+sign \x747F 16-3
+sign \x7480 245-1246-4
+sign \x7481 245-12346-3
+sign \x7482 245-16-2
+sign \x7483 14-16-2
+sign \x7484 13456-4
+sign \x7485 125-146-4
+sign \x7486 245-234-2
+sign \x7487 15-45-2
+sign \x7488 146-2
+sign \x7489 14-2345-4
+sign \x748A 134-136-2
+sign \x748B 1-1346-3
+sign \x748C 1456-2
+sign \x748E 13456-3
+sign \x748F 1-156-5
+sign \x7490 14-34-5
+sign \x7491 34-2
+sign \x7492 145-1356-3
+sign \x7494 125-1356-3
+sign \x7495 15-256-2
+sign \x7496 245-1256-2
+sign \x7497 145-1346-5
+sign \x7498 14-1456-2
+sign \x7499 14-246-2
+sign \x749A 245-235-2
+sign \x749B 15-34-5
+sign \x749C 1235-456-2
+sign \x749D 13-1246-3
+sign \x749E 1234-34-2
+sign \x749F 13-13456-4
+sign \x74A0 12345-1236-2
+sign \x74A1 13-1456-5
+sign \x74A2 14-234-2
+sign \x74A3 13-16-3
+sign \x74A5 13-13456-4
+sign \x74A6 2456-5
+sign \x74A7 135-16-5
+sign \x74A8 245-1236-5
+sign \x74A9 245-1256-2
+sign \x74AA 125-146-4
+sign \x74AB 145-1346-3
+sign \x74AC 13-246-4
+sign \x74AD 13-123456-5
+sign \x74AE 124-1236-4
+sign \x74AF 1235-1246-5
+sign \x74B0 1235-12456-2
+sign \x74B1 15-2346-5
+sign \x74B2 15-1246-5
+sign \x74B3 124-2345-2
+sign \x74B5 1256-2
+sign \x74B6 13-1456-5
+sign \x74B7 12345-34-3
+sign \x74B8 135-1456-3
+sign \x74B9 24-12356-5
+sign \x74BA 123456-5
+sign \x74BB 125-1246-4
+sign \x74BC 14-1236-2
+sign \x74BD 15-16-4
+sign \x74BE 13-16-5
+sign \x74BF 15-45-2
+sign \x74C0 1245-12456-2
+sign \x74C1 1235-25-5
+sign \x74C2 13-2456-5
+sign \x74C3 14-356-2
+sign \x74C4 145-34-2
+sign \x74C5 14-16-5
+sign \x74C6 1-156-2
+sign \x74C7 1245-12356-2
+sign \x74C8 14-16-2
+sign \x74C9 125-1236-5
+sign \x74CA 245-235-2
+sign \x74CB 1-2456-3
+sign \x74CC 13-1246-3
+sign \x74CD 15-1246-5
+sign \x74CE 14-345-5
+sign \x74CF 14-12346-2
+sign \x74D0 14-34-2
+sign \x74D1 14-16-5
+sign \x74D2 125-1236-5
+sign \x74D3 14-1236-5
+sign \x74D4 13456-3
+sign \x74D5 134-16-2
+sign \x74D6 15-46-3
+sign \x74D7 15-16-3
+sign \x74D8 13-12456-5
+sign \x74D9 145-146-5
+sign \x74DA 125-1236-5
+sign \x74DB 1235-12456-2
+sign \x74DC 13-35-3
+sign \x74DD 135-126-2
+sign \x74DE 145-346-2
+sign \x74DF 135-126-2
+sign \x74E0 1235-34-2
+sign \x74E1 1-156-2
+sign \x74E2 1234-246-2
+sign \x74E3 135-1236-5
+sign \x74E4 1245-1346-2
+sign \x74E5 14-16-5
+sign \x74E6 35-4
+sign \x74E8 13-1346-3
+sign \x74E9 13-2456
+sign \x74EA 12345-1236-4
+sign \x74EB 1234-136-2
+sign \x74EC 12345-1346-4
+sign \x74ED 145-1236-4
+sign \x74EE 12346-5
+sign \x74EF 12356-3
+sign \x74F3 1235-34-2
+sign \x74F4 14-13456-2
+sign \x74F5 16-2
+sign \x74F6 1234-13456-2
+sign \x74F7 245-156-2
+sign \x74F9 13-45-5
+sign \x74FA 12-1346-2
+sign \x74FB 12-156-3
+sign \x74FD 145-1346-5
+sign \x74FE 35-3
+sign \x74FF 1234-12356-4
+sign \x7500 1-1246-5
+sign \x7501 1234-13456-2
+sign \x7502 135-2345-3
+sign \x7503 1-12356-5
+sign \x7504 1-136-3
+sign \x7506 245-156-2
+sign \x7507 13456-3
+sign \x7508 245-16-5
+sign \x7509 15-2345-2
+sign \x750A 14-12356-4
+sign \x750B 145-16-5
+sign \x750C 12356-3
+sign \x750D 134-1356-2
+sign \x750E 1-12456-3
+sign \x750F 1234-1356-5
+sign \x7510 14-1456-5
+sign \x7511 125-1356-5
+sign \x7512 34-4
+sign \x7513 1234-16-5
+sign \x7514 145-1236-3
+sign \x7515 12346-5
+sign \x7516 13456-3
+sign \x7517 2345-4
+sign \x7518 13-1236-3
+sign \x7519 145-2456-5
+sign \x751A 24-136-5
+sign \x751B 124-2345-2
+sign \x751C 124-2345-2
+sign \x751D 1235-1236-3
+sign \x751E 12-1346-2
+sign \x751F 24-1356-3
+sign \x7520 245-13456-2
+sign \x7521 24-136-3
+sign \x7522 12-1236-4
+sign \x7523 12-1236-4
+sign \x7524 1245-1246-2
+sign \x7525 24-1356-3
+sign \x7526 15-34-3
+sign \x7527 15-136-3
+sign \x7528 235-5
+sign \x7529 24-2356-4
+sign \x752A 14-34-5
+sign \x752B 12345-34-4
+sign \x752C 235-4
+sign \x752D 135-1356-2
+sign \x752E 12345-1356-5
+sign \x752F 1345-13456-5
+sign \x7530 124-2345-2
+sign \x7531 234-2
+sign \x7532 13-23456-4
+sign \x7533 24-136-3
+sign \x7534 1-345-2
+sign \x7535 145-2345-5
+sign \x7536 12345-34-2
+sign \x7537 1345-1236-2
+sign \x7538 145-2345-5
+sign \x7539 1234-13456-2
+sign \x753A 124-13456-3
+sign \x753B 1235-35-5
+sign \x753C 124-13456-4
+sign \x753D 245-45-4
+sign \x753E 125-156-3
+sign \x753F 134-1356-2
+sign \x7540 135-16-5
+sign \x7541 245-16-2
+sign \x7542 134-34-4
+sign \x7543 15-256-2
+sign \x7544 14-234-2
+sign \x7545 12-1346-5
+sign \x7546 134-34-4
+sign \x7547 256-2
+sign \x7548 12345-1236-5
+sign \x7549 12345-34-2
+sign \x754A 13-1356-3
+sign \x754B 124-2345-2
+sign \x754C 13-346-5
+sign \x754D 13-346-5
+sign \x754E 245-45-4
+sign \x754F 1246-5
+sign \x7550 12345-34-2
+sign \x7551 124-2345-2
+sign \x7552 134-34-4
+sign \x7554 1234-1236-5
+sign \x7555 13-46-3
+sign \x7556 35-3
+sign \x7557 145-345-2
+sign \x7558 1345-1236-2
+sign \x7559 14-234-2
+sign \x755A 135-136-4
+sign \x755B 1-136-4
+sign \x755C 12-34-5
+sign \x755D 134-34-4
+sign \x755E 134-34-4
+sign \x755F 245-2346-5
+sign \x7560 125-156-3
+sign \x7561 13-2456-3
+sign \x7562 135-16-5
+sign \x7563 145-345-2
+sign \x7564 1-156-4
+sign \x7565 14-236-5
+sign \x7566 245-16-2
+sign \x7567 14-236-5
+sign \x7568 1234-1236-3
+sign \x756A 12345-1236-3
+sign \x756B 1235-35-5
+sign \x756C 1256-2
+sign \x756D 1256-2
+sign \x756E 134-34-4
+sign \x756F 13-256-5
+sign \x7570 16-5
+sign \x7571 14-234-2
+sign \x7572 1256-2
+sign \x7573 145-346-2
+sign \x7574 12-12356-2
+sign \x7575 1235-35-5
+sign \x7576 145-1346-3
+sign \x7577 12-25-5
+sign \x7578 13-16-3
+sign \x7579 12456-4
+sign \x757A 13-46-3
+sign \x757B 24-1356-2
+sign \x757C 12-1346-4
+sign \x757D 124-12456-4
+sign \x757E 14-356-2
+sign \x757F 13-16-3
+sign \x7580 12-345-3
+sign \x7581 14-234-2
+sign \x7583 124-12456-4
+sign \x7584 14-1456-2
+sign \x7585 13-46-3
+sign \x7586 13-46-3
+sign \x7587 12-12356-2
+sign \x7588 135-126-5
+sign \x7589 145-346-2
+sign \x758A 145-346-2
+sign \x758B 1234-16-4
+sign \x758C 1345-346-5
+sign \x758D 145-1236-5
+sign \x758E 24-34-3
+sign \x758F 24-34-3
+sign \x7590 1-156-5
+sign \x7591 16-2
+sign \x7592 12-456-2
+sign \x7593 1345-2456-4
+sign \x7594 145-13456-3
+sign \x7595 135-16-4
+sign \x7596 13-346-2
+sign \x7597 14-246-2
+sign \x7598 13-12346-3
+sign \x7599 13-2346-3
+sign \x759A 13-234-5
+sign \x759B 1-12356-4
+sign \x759C 15-23456-5
+sign \x759D 24-1236-5
+sign \x759E 15-1256-3
+sign \x759F 1345-236-5
+sign \x75A0 14-16-5
+sign \x75A1 46-2
+sign \x75A2 12-136-5
+sign \x75A3 234-2
+sign \x75A4 135-345-3
+sign \x75A5 13-346-5
+sign \x75A6 13-236-2
+sign \x75A7 245-16-2
+sign \x75A8 15-23456-3
+sign \x75A9 245-1246-5
+sign \x75AA 135-16-5
+sign \x75AB 16-5
+sign \x75AC 14-16-5
+sign \x75AD 125-12346-5
+sign \x75AE 12-456-3
+sign \x75AF 12345-1356-3
+sign \x75B0 1-34-5
+sign \x75B1 1234-146-5
+sign \x75B2 1234-16-2
+sign \x75B3 13-1236-3
+sign \x75B4 2346-3
+sign \x75B5 245-156-3
+sign \x75B6 15-346-5
+sign \x75B7 245-16-2
+sign \x75B8 145-1236-4
+sign \x75B9 1-136-4
+sign \x75BA 12345-345-2
+sign \x75BB 1-156-4
+sign \x75BC 124-1356-2
+sign \x75BD 13-1256-3
+sign \x75BE 13-16-2
+sign \x75BF 12345-356-5
+sign \x75C0 13-1256-3
+sign \x75C1 24-1236-3
+sign \x75C2 13-23456-3
+sign \x75C3 15-2345-2
+sign \x75C4 12-345-2
+sign \x75C5 135-13456-5
+sign \x75C6 1345-16-5
+sign \x75C7 1-1356-5
+sign \x75C8 235-3
+sign \x75C9 13-13456-5
+sign \x75CA 245-45-2
+sign \x75CB 12-12346-2
+sign \x75CC 145-12346-5
+sign \x75CD 16-2
+sign \x75CE 13-346-3
+sign \x75CF 1246-4
+sign \x75D0 1235-1246-2
+sign \x75D1 145-25-4
+sign \x75D2 46-4
+sign \x75D3 12-156-5
+sign \x75D4 1-156-5
+sign \x75D5 1235-136-2
+sign \x75D6 23456-4
+sign \x75D7 134-356-5
+sign \x75D8 145-12356-5
+sign \x75D9 13-13456-5
+sign \x75DA 15-246-3
+sign \x75DB 124-12346-5
+sign \x75DC 124-34-3
+sign \x75DD 134-1346-2
+sign \x75DE 1234-16-4
+sign \x75DF 15-246-3
+sign \x75E0 15-12456-3
+sign \x75E1 1234-34-3
+sign \x75E2 14-16-5
+sign \x75E3 1-156-5
+sign \x75E4 245-25-2
+sign \x75E5 145-25-2
+sign \x75E6 34-5
+sign \x75E7 24-345-3
+sign \x75E8 14-146-2
+sign \x75E9 24-12356-5
+sign \x75EA 1235-12456-5
+sign \x75EB 15-2345-2
+sign \x75EC 16-5
+sign \x75ED 1234-1356-2
+sign \x75EE 1-1346-5
+sign \x75EF 13-12456-4
+sign \x75F0 124-1236-2
+sign \x75F1 12345-356-5
+sign \x75F2 134-345-2
+sign \x75F3 14-1456-2
+sign \x75F4 12-156-3
+sign \x75F5 13-16-5
+sign \x75F6 145-2345-4
+sign \x75F7 1236-3
+sign \x75F8 12-156-5
+sign \x75F9 135-16-5
+sign \x75FA 135-16-5
+sign \x75FB 134-1456-2
+sign \x75FC 13-34-5
+sign \x75FD 145-1246-3
+sign \x75FE 2346-3
+sign \x75FF 1246-4
+sign \x7600 1256-3
+sign \x7601 245-1246-5
+sign \x7602 23456-4
+sign \x7603 1-34-4
+sign \x7604 245-34-5
+sign \x7605 145-1236-5
+sign \x7606 24-136-5
+sign \x7607 1-12346-4
+sign \x7608 1-156-5
+sign \x7609 1256-5
+sign \x760A 1235-12356-2
+sign \x760B 12345-1356-3
+sign \x760C 14-345-5
+sign \x760D 46-2
+sign \x760E 24-136-5
+sign \x760F 124-34-2
+sign \x7610 1256-4
+sign \x7611 13-35-3
+sign \x7612 123456-2
+sign \x7613 1235-12456-5
+sign \x7614 123-34-5
+sign \x7615 13-23456-4
+sign \x7616 1456-3
+sign \x7617 16-5
+sign \x7618 14-1256-2
+sign \x7619 15-146-3
+sign \x761A 13-236-2
+sign \x761B 12-156-5
+sign \x761C 15-16-2
+sign \x761D 13-12456-3
+sign \x761E 16-5
+sign \x761F 123456-3
+sign \x7620 13-16-2
+sign \x7621 12-456-3
+sign \x7622 135-1236-3
+sign \x7623 1235-1246-5
+sign \x7624 14-234-2
+sign \x7625 245-25-2
+sign \x7626 24-12356-5
+sign \x7627 1345-236-5
+sign \x7628 145-2345-3
+sign \x7629 145-345-1
+sign \x762A 135-346-4
+sign \x762B 124-1236-3
+sign \x762C 1-1346-5
+sign \x762D 135-246-3
+sign \x762E 24-136-5
+sign \x762F 245-34-5
+sign \x7630 14-25-4
+sign \x7631 16-5
+sign \x7632 125-12346-5
+sign \x7633 12-12356-3
+sign \x7634 1-1346-5
+sign \x7635 1-2456-5
+sign \x7636 15-12356-5
+sign \x7637 15-25-4
+sign \x7638 245-236-2
+sign \x7639 145-246-5
+sign \x763A 14-12356-5
+sign \x763B 14-1256-2
+sign \x763C 134-126-5
+sign \x763D 13-1456-5
+sign \x763E 1456-4
+sign \x763F 13456-4
+sign \x7640 1235-456-2
+sign \x7641 12345-34-2
+sign \x7642 14-246-2
+sign \x7643 14-12346-2
+sign \x7644 245-246-2
+sign \x7645 14-234-2
+sign \x7646 14-146-2
+sign \x7647 15-2345-2
+sign \x7648 12345-356-5
+sign \x7649 145-1236-5
+sign \x764A 1456-5
+sign \x764B 1235-2346-5
+sign \x764C 2345-2
+sign \x764D 135-1236-3
+sign \x764E 15-2345-2
+sign \x764F 13-12456-3
+sign \x7650 13-2356-5
+sign \x7651 1345-12346-2
+sign \x7652 1256-5
+sign \x7653 1246-2
+sign \x7654 16-5
+sign \x7655 235-3
+sign \x7656 1234-16-4
+sign \x7657 14-356-4
+sign \x7658 14-16-5
+sign \x7659 24-34-4
+sign \x765A 145-1236-5
+sign \x765B 14-1456-4
+sign \x765C 145-2345-5
+sign \x765D 14-1456-4
+sign \x765E 14-2456-5
+sign \x765F 135-346-4
+sign \x7660 13-16-5
+sign \x7661 12-156-3
+sign \x7662 46-4
+sign \x7663 15-2345-4
+sign \x7664 13-346-2
+sign \x7665 1-1356-3
+sign \x7667 14-16-5
+sign \x7668 1235-25-5
+sign \x7669 14-2456-5
+sign \x766A 135-345-1
+sign \x766B 145-2345-3
+sign \x766C 15-2345-4
+sign \x766D 13456-4
+sign \x766E 1456-4
+sign \x766F 245-1256-2
+sign \x7670 235-3
+sign \x7671 124-1236-3
+sign \x7672 145-2345-3
+sign \x7673 14-25-4
+sign \x7674 14-12456-2
+sign \x7675 14-12456-2
+sign \x7676 135-126-3
+sign \x7678 13-1246-4
+sign \x7679 1234-126-3
+sign \x767A 12345-345-3
+sign \x767B 145-1356-3
+sign \x767C 12345-345-3
+sign \x767D 135-2456-2
+sign \x767E 135-2456-4
+sign \x767F 245-346-2
+sign \x7680 135-16-3
+sign \x7681 125-146-5
+sign \x7682 125-146-5
+sign \x7683 134-146-5
+sign \x7684 145-2346-1
+sign \x7685 1234-345-3
+sign \x7686 13-346-3
+sign \x7687 1235-456-2
+sign \x7688 13-1246-3
+sign \x7689 245-156-4
+sign \x768A 14-13456-2
+sign \x768B 13-146-3
+sign \x768C 134-126-5
+sign \x768D 13-16-2
+sign \x768E 13-246-4
+sign \x768F 1234-1356-4
+sign \x7690 13-146-3
+sign \x7691 2456-2
+sign \x7692 2346-2
+sign \x7693 1235-146-5
+sign \x7694 1235-1236-5
+sign \x7695 135-16-5
+sign \x7696 12456-4
+sign \x7697 12-12356-2
+sign \x7698 245-2345-5
+sign \x7699 15-16-3
+sign \x769A 2456-2
+sign \x769B 13-235-4
+sign \x769C 1235-146-5
+sign \x769D 1235-456-4
+sign \x769E 1235-146-5
+sign \x769F 125-2346-2
+sign \x76A0 245-1246-4
+sign \x76A1 1235-146-5
+sign \x76A2 15-246-4
+sign \x76A3 346-5
+sign \x76A4 1234-126-2
+sign \x76A5 1235-146-5
+sign \x76A6 13-246-4
+sign \x76A7 2456-5
+sign \x76A8 15-13456-3
+sign \x76A9 1235-456-5
+sign \x76AA 14-16-5
+sign \x76AB 1234-246-4
+sign \x76AC 1235-2346-5
+sign \x76AD 13-246-5
+sign \x76AE 1234-16-2
+sign \x76AF 13-1236-4
+sign \x76B0 1234-146-5
+sign \x76B1 1-12356-5
+sign \x76B2 13-256-3
+sign \x76B3 245-234-2
+sign \x76B4 245-123456-3
+sign \x76B5 245-236-5
+sign \x76B6 1-345-3
+sign \x76B7 13-34-4
+sign \x76B8 13-256-3
+sign \x76B9 13-256-3
+sign \x76BA 1-12356-5
+sign \x76BB 1-345-3
+sign \x76BC 13-34-4
+sign \x76BD 1-1236-4
+sign \x76BE 145-34-2
+sign \x76BF 134-1456-4
+sign \x76C0 245-16-4
+sign \x76C1 13456-2
+sign \x76C2 1256-2
+sign \x76C3 135-356-3
+sign \x76C4 1-146-3
+sign \x76C5 1-12346-3
+sign \x76C6 1234-136-2
+sign \x76C7 1235-2346-2
+sign \x76C8 13456-2
+sign \x76C9 1235-2346-2
+sign \x76CA 16-5
+sign \x76CB 135-126-3
+sign \x76CC 12456-4
+sign \x76CD 1235-2346-2
+sign \x76CE 1346-5
+sign \x76CF 1-1236-4
+sign \x76D0 2345-2
+sign \x76D1 13-2345-3
+sign \x76D2 1235-2346-2
+sign \x76D3 1256-3
+sign \x76D4 123-1246-3
+sign \x76D5 12345-1236-5
+sign \x76D6 13-2456-5
+sign \x76D7 145-146-5
+sign \x76D8 1234-1236-2
+sign \x76D9 12345-34-4
+sign \x76DA 245-234-2
+sign \x76DB 24-1356-5
+sign \x76DC 145-146-5
+sign \x76DD 14-34-5
+sign \x76DE 1-1236-4
+sign \x76DF 134-1356-2
+sign \x76E0 14-16-4
+sign \x76E1 13-1456-5
+sign \x76E2 15-1256-5
+sign \x76E3 13-2345-3
+sign \x76E4 1234-1236-2
+sign \x76E5 13-12456-5
+sign \x76E6 1236-3
+sign \x76E7 14-34-2
+sign \x76E8 24-34-4
+sign \x76E9 1-12356-3
+sign \x76EA 145-1346-5
+sign \x76EB 1236-3
+sign \x76EC 13-34-4
+sign \x76ED 14-16-5
+sign \x76EE 134-34-5
+sign \x76EF 145-13456-3
+sign \x76F0 13-1236-4
+sign \x76F1 15-1256-3
+sign \x76F2 134-1346-2
+sign \x76F3 134-1346-2
+sign \x76F4 1-156-2
+sign \x76F5 245-16-5
+sign \x76F6 1245-12456-4
+sign \x76F7 124-2345-2
+sign \x76F8 15-46-3
+sign \x76F9 145-123456-4
+sign \x76FA 15-1456-3
+sign \x76FB 15-16-5
+sign \x76FC 1234-1236-5
+sign \x76FD 12345-1356-3
+sign \x76FE 145-123456-5
+sign \x76FF 134-1456-2
+sign \x7700 134-13456-2
+sign \x7701 24-1356-4
+sign \x7702 24-156-5
+sign \x7703 256-2
+sign \x7704 134-2345-4
+sign \x7705 1234-1236-3
+sign \x7706 12345-1346-4
+sign \x7707 134-246-4
+sign \x7708 145-1236-3
+sign \x7709 134-356-2
+sign \x770A 134-146-5
+sign \x770B 123-1236-5
+sign \x770C 15-2345-5
+sign \x770D 12356-3
+sign \x770E 24-156-5
+sign \x770F 46-3
+sign \x7710 1-1356-3
+sign \x7711 246-4
+sign \x7712 24-136-5
+sign \x7713 1235-25-5
+sign \x7714 145-345-5
+sign \x7715 1-136-4
+sign \x7716 123-456-5
+sign \x7717 13-1256-3
+sign \x7718 24-136-5
+sign \x7719 12-156-5
+sign \x771A 24-1356-4
+sign \x771B 134-356-5
+sign \x771C 134-126-5
+sign \x771D 1-34-5
+sign \x771E 1-136-3
+sign \x771F 1-136-3
+sign \x7720 134-2345-2
+sign \x7721 24-156-5
+sign \x7722 12456-3
+sign \x7723 145-346-2
+sign \x7724 16-2
+sign \x7725 125-156-5
+sign \x7726 125-156-5
+sign \x7727 12-146-4
+sign \x7728 1-345-4
+sign \x7729 15-45-5
+sign \x772A 135-13456-4
+sign \x772B 134-16-4
+sign \x772C 14-12346-2
+sign \x772D 1235-1246-3
+sign \x772E 145-12346-5
+sign \x772F 134-16-4
+sign \x7730 145-346-2
+sign \x7731 16-2
+sign \x7732 156-5
+sign \x7733 134-13456-2
+sign \x7734 15-45-5
+sign \x7735 12-156-3
+sign \x7736 123-456-5
+sign \x7737 13-45-5
+sign \x7738 134-12356-2
+sign \x7739 1-136-5
+sign \x773A 124-246-5
+sign \x773B 46-2
+sign \x773C 2345-4
+sign \x773D 134-126-5
+sign \x773E 1-12346-5
+sign \x773F 134-2456-5
+sign \x7740 1-2346-1
+sign \x7741 1-1356-3
+sign \x7742 134-356-2
+sign \x7743 13-256-5
+sign \x7744 24-146-5
+sign \x7745 1235-1236-5
+sign \x7746 1235-12456-4
+sign \x7747 145-16-5
+sign \x7748 12-1356-4
+sign \x7749 245-25-3
+sign \x774A 13-45-5
+sign \x774B 2346-2
+sign \x774C 12456-4
+sign \x774D 15-2345-5
+sign \x774E 15-16-3
+sign \x774F 123-123456-5
+sign \x7750 14-2456-5
+sign \x7751 13-2345-4
+sign \x7752 24-1236-4
+sign \x7753 124-2345-4
+sign \x7754 1235-123456-4
+sign \x7755 12456-4
+sign \x7756 14-13456-2
+sign \x7757 24-156-5
+sign \x7758 245-235-2
+sign \x7759 14-346-5
+sign \x775A 26-2
+sign \x775B 13-13456-3
+sign \x775C 1-1356-3
+sign \x775D 14-16-2
+sign \x775E 14-2456-5
+sign \x775F 15-1246-5
+sign \x7760 13-45-5
+sign \x7761 24-1246-5
+sign \x7762 15-1246-3
+sign \x7763 145-34-3
+sign \x7764 135-16-5
+sign \x7765 135-16-5
+sign \x7766 134-34-5
+sign \x7767 1235-123456-3
+sign \x7768 1345-16-5
+sign \x7769 14-34-5
+sign \x776A 13-146-4
+sign \x776B 13-346-2
+sign \x776C 245-2456-4
+sign \x776D 1-12356-4
+sign \x776E 1256-2
+sign \x776F 1235-123456-3
+sign \x7770 134-345-5
+sign \x7771 15-23456-5
+sign \x7772 15-13456-4
+sign \x7773 15-16-3
+sign \x7774 13-123456-5
+sign \x7776 12-123456-4
+sign \x7777 13-2345-3
+sign \x7778 134-356-5
+sign \x7779 145-34-4
+sign \x777A 1235-12356-2
+sign \x777B 15-45-3
+sign \x777C 124-16-5
+sign \x777D 123-1246-2
+sign \x777E 13-146-3
+sign \x777F 1245-1246-5
+sign \x7780 134-146-5
+sign \x7781 15-1256-5
+sign \x7782 12345-345-3
+sign \x7783 123456-3
+sign \x7784 134-246-2
+sign \x7785 12-12356-4
+sign \x7786 123-1246-5
+sign \x7787 134-16-3
+sign \x7788 12346-4
+sign \x7789 123-12356-5
+sign \x778A 145-1346-5
+sign \x778B 12-136-3
+sign \x778C 123-2346-3
+sign \x778D 15-12356-4
+sign \x778E 15-23456-3
+sign \x778F 245-235-2
+sign \x7790 134-146-5
+sign \x7791 134-13456-2
+sign \x7792 134-1236-2
+sign \x7793 24-1246-5
+sign \x7794 125-2346-2
+sign \x7795 1-1346-5
+sign \x7796 16-3
+sign \x7797 145-246-3
+sign \x7798 12356-3
+sign \x7799 134-126-5
+sign \x779A 24-123456-5
+sign \x779B 245-12346-3
+sign \x779C 14-12356-3
+sign \x779D 12-156-3
+sign \x779E 134-1236-2
+sign \x779F 1234-246-4
+sign \x77A0 12-1356-3
+sign \x77A1 13-16-5
+sign \x77A2 134-1356-2
+sign \x77A3 1235-12456-5
+sign \x77A4 1245-123456-2
+sign \x77A5 1234-346-3
+sign \x77A6 15-16-3
+sign \x77A7 245-246-2
+sign \x77A8 1234-34-3
+sign \x77A9 1-34-4
+sign \x77AA 145-1356-5
+sign \x77AB 24-136-4
+sign \x77AC 24-123456-5
+sign \x77AD 14-246-4
+sign \x77AE 12-2346-5
+sign \x77AF 15-2345-2
+sign \x77B0 123-1236-5
+sign \x77B1 346-5
+sign \x77B2 15-1256-5
+sign \x77B3 124-12346-2
+sign \x77B4 134-12356-2
+sign \x77B5 14-1456-2
+sign \x77B6 123-1246-5
+sign \x77B7 13-2345-5
+sign \x77B8 346-5
+sign \x77B9 2456-5
+sign \x77BA 1235-1246-5
+sign \x77BB 1-1236-3
+sign \x77BC 13-2345-4
+sign \x77BD 13-34-4
+sign \x77BE 1-146-5
+sign \x77BF 245-1256-3
+sign \x77C0 1246-2
+sign \x77C1 12-12356-4
+sign \x77C2 135-345-1
+sign \x77C3 1345-13456-4
+sign \x77C4 15-256-3
+sign \x77C5 246-5
+sign \x77C6 1235-25-5
+sign \x77C7 134-1356-2
+sign \x77C8 134-2345-2
+sign \x77C9 1234-1456-2
+sign \x77CA 134-2345-2
+sign \x77CB 14-16-5
+sign \x77CC 123-456-5
+sign \x77CD 13-236-2
+sign \x77CE 15-45-3
+sign \x77CF 134-2345-2
+sign \x77D0 1235-2346-5
+sign \x77D1 14-34-2
+sign \x77D2 134-1356-2
+sign \x77D3 14-12346-2
+sign \x77D4 13-12456-5
+sign \x77D5 134-1236-4
+sign \x77D6 15-16-4
+sign \x77D7 12-34-5
+sign \x77D8 124-1346-4
+sign \x77D9 123-1236-5
+sign \x77DA 1-34-4
+sign \x77DB 134-146-2
+sign \x77DC 13-1456-3
+sign \x77DD 14-1456-2
+sign \x77DE 1256-5
+sign \x77DF 24-25-5
+sign \x77E0 245-2346-5
+sign \x77E1 13-236-2
+sign \x77E2 24-156-4
+sign \x77E3 16-4
+sign \x77E4 24-136-4
+sign \x77E5 1-156-3
+sign \x77E6 1235-12356-2
+sign \x77E7 24-136-4
+sign \x77E8 13456-4
+sign \x77E9 13-1256-4
+sign \x77EA 1-12356-3
+sign \x77EB 13-246-4
+sign \x77EC 245-25-2
+sign \x77ED 145-12456-4
+sign \x77EE 2456-4
+sign \x77EF 13-246-4
+sign \x77F0 125-1356-3
+sign \x77F1 1235-25-5
+sign \x77F2 135-345-5
+sign \x77F3 24-156-2
+sign \x77F4 145-13456-5
+sign \x77F5 245-16-5
+sign \x77F6 13-16-3
+sign \x77F7 125-156-4
+sign \x77F8 1236-5
+sign \x77F9 34-5
+sign \x77FA 1-2346-2
+sign \x77FB 123-34-5
+sign \x77FC 13-46-3
+sign \x77FD 15-16-5
+sign \x77FE 12345-1236-2
+sign \x77FF 123-456-5
+sign \x7800 145-1346-5
+sign \x7801 134-345-4
+sign \x7802 24-345-3
+sign \x7803 145-1236-3
+sign \x7804 13-236-2
+sign \x7805 14-16-5
+sign \x7806 12345-34-3
+sign \x7807 134-1456-2
+sign \x7808 1345-25-4
+sign \x7809 1235-25-5
+sign \x780A 123-1346-5
+sign \x780B 1-156-4
+sign \x780C 245-16-5
+sign \x780D 123-1236-4
+sign \x780E 13-346-5
+sign \x780F 135-1456-3
+sign \x7810 2346-5
+sign \x7811 23456-5
+sign \x7812 1234-16-3
+sign \x7813 1-2346-2
+sign \x7814 2345-2
+sign \x7815 15-1246-5
+sign \x7816 1-12456-3
+sign \x7817 12-2346-3
+sign \x7818 145-123456-5
+sign \x7819 1234-1236-3
+sign \x781A 2345-5
+sign \x781C 12345-1356-3
+sign \x781D 12345-345-4
+sign \x781E 134-126-5
+sign \x781F 1-345-5
+sign \x7820 245-1256-3
+sign \x7821 1256-5
+sign \x7822 14-25-4
+sign \x7823 124-25-2
+sign \x7824 124-25-2
+sign \x7825 145-16-4
+sign \x7826 1-2456-5
+sign \x7827 1-136-3
+sign \x7828 2456-5
+sign \x7829 12345-356-5
+sign \x782A 134-34-4
+sign \x782B 1-34-4
+sign \x782C 14-16-5
+sign \x782D 135-2345-3
+sign \x782E 1345-34-4
+sign \x782F 1234-13456-3
+sign \x7830 1234-1356-3
+sign \x7831 14-13456-2
+sign \x7832 1234-146-5
+sign \x7833 14-2346-5
+sign \x7834 1234-126-5
+sign \x7835 135-126-3
+sign \x7836 1234-126-5
+sign \x7837 24-136-3
+sign \x7838 125-345-2
+sign \x7839 1345-25-4
+sign \x783A 14-16-5
+sign \x783B 14-12346-2
+sign \x783C 124-12346-2
+sign \x783E 14-16-5
+sign \x7840 12-34-4
+sign \x7841 123-1356-3
+sign \x7842 245-45-2
+sign \x7843 1-34-3
+sign \x7844 123-456-3
+sign \x7845 1235-25-5
+sign \x7846 2346-5
+sign \x7847 1345-146-2
+sign \x7848 13-23456-2
+sign \x7849 14-34-5
+sign \x784A 1246-4
+sign \x784B 2456-5
+sign \x784C 14-25-5
+sign \x784D 123-136-5
+sign \x784E 15-13456-2
+sign \x784F 2345-2
+sign \x7850 124-12346-2
+sign \x7851 1234-1356-3
+sign \x7852 15-16-3
+sign \x7854 1235-12346-2
+sign \x7855 24-25-5
+sign \x7856 15-23456-2
+sign \x7857 245-246-3
+sign \x7859 1246-5
+sign \x785A 245-246-2
+sign \x785C 123-1356-3
+sign \x785D 15-246-3
+sign \x785E 245-236-5
+sign \x785F 12-1236-5
+sign \x7860 14-1346-4
+sign \x7861 1235-12346-2
+sign \x7862 1256-2
+sign \x7863 15-246-3
+sign \x7864 15-23456-2
+sign \x7865 134-1346-4
+sign \x7866 14-12346-5
+sign \x7867 235-4
+sign \x7868 12-2346-3
+sign \x7869 12-2346-5
+sign \x786A 2346-2
+sign \x786B 14-234-2
+sign \x786C 13456-5
+sign \x786D 134-1346-2
+sign \x786E 245-236-5
+sign \x786F 2345-5
+sign \x7870 24-345-3
+sign \x7871 123-123456-4
+sign \x7872 1256-5
+sign \x7875 14-34-4
+sign \x7876 12-136-4
+sign \x7877 13-2345-4
+sign \x7878 1345-236-5
+sign \x7879 15-12346-3
+sign \x787A 1-25-2
+sign \x787B 123-1356-3
+sign \x787C 1234-1356-2
+sign \x787D 2345-4
+sign \x787E 1-1246-5
+sign \x787F 123-12346-3
+sign \x7880 245-1356-2
+sign \x7881 13-16-3
+sign \x7882 125-12346-5
+sign \x7883 245-13456-5
+sign \x7884 14-1456-2
+sign \x7885 13-256-3
+sign \x7886 135-126-3
+sign \x7887 145-13456-5
+sign \x7888 134-1456-2
+sign \x7889 145-246-3
+sign \x788A 13-2345-3
+sign \x788B 1235-2346-5
+sign \x788C 14-34-5
+sign \x788D 2456-5
+sign \x788E 15-1246-5
+sign \x788F 245-236-5
+sign \x7890 14-13456-2
+sign \x7891 135-356-3
+sign \x7892 1456-2
+sign \x7893 145-1246-5
+sign \x7894 34-4
+sign \x7895 245-16-2
+sign \x7896 14-123456-5
+sign \x7897 12456-4
+sign \x7898 145-2345-4
+sign \x7899 13-1346-3
+sign \x789A 1234-356-2
+sign \x789B 245-16-5
+sign \x789C 12-136-4
+sign \x789D 1245-12456-4
+sign \x789E 2345-2
+sign \x789F 145-346-2
+sign \x78A0 145-13456-5
+sign \x78A1 145-34-2
+sign \x78A2 124-25-2
+sign \x78A3 13-346-2
+sign \x78A4 13456-3
+sign \x78A5 135-2345-4
+sign \x78A6 123-2346-5
+sign \x78A7 135-16-5
+sign \x78A8 1246-3
+sign \x78A9 24-25-5
+sign \x78AA 1-136-3
+sign \x78AB 145-12456-5
+sign \x78AC 15-23456-2
+sign \x78AD 145-1346-5
+sign \x78AE 124-16-2
+sign \x78AF 1345-146-4
+sign \x78B0 1234-1356-5
+sign \x78B1 13-2345-4
+sign \x78B2 145-16-5
+sign \x78B3 124-1236-5
+sign \x78B4 12-345-2
+sign \x78B6 245-16-5
+sign \x78B8 12345-1356-3
+sign \x78B9 15-45-5
+sign \x78BA 245-236-5
+sign \x78BB 245-236-5
+sign \x78BC 134-345-4
+sign \x78BD 13-12346-3
+sign \x78BE 1345-2345-4
+sign \x78BF 15-34-5
+sign \x78C0 2346-2
+sign \x78C1 245-156-2
+sign \x78C2 14-234-5
+sign \x78C3 124-16-2
+sign \x78C4 124-1346-2
+sign \x78C5 135-1346-5
+sign \x78C6 1235-35-2
+sign \x78C7 1234-16-3
+sign \x78C8 1246-4
+sign \x78C9 15-1346-4
+sign \x78CA 14-356-4
+sign \x78CB 245-25-3
+sign \x78CC 124-2345-2
+sign \x78CD 15-23456-2
+sign \x78CE 15-16-3
+sign \x78CF 14-2345-2
+sign \x78D0 1234-1236-2
+sign \x78D1 1246-5
+sign \x78D2 256-4
+sign \x78D3 145-1246-3
+sign \x78D4 1-2346-2
+sign \x78D5 123-2346-3
+sign \x78D6 14-16-5
+sign \x78D8 245-13456-5
+sign \x78D9 13-123456-4
+sign \x78DA 1-12456-3
+sign \x78DB 12-1236-2
+sign \x78DC 245-16-5
+sign \x78DD 146-2
+sign \x78DE 1234-1356-3
+sign \x78DF 14-34-5
+sign \x78E0 14-34-4
+sign \x78E1 123-1236-5
+sign \x78E2 245-46-4
+sign \x78E3 12-136-4
+sign \x78E4 1456-4
+sign \x78E5 14-356-4
+sign \x78E6 135-246-3
+sign \x78E7 245-16-5
+sign \x78E8 134-126-2
+sign \x78E9 245-16-3
+sign \x78EA 245-1246-3
+sign \x78EB 125-12346-3
+sign \x78EC 245-13456-5
+sign \x78ED 12-25-5
+sign \x78EF 13-16-3
+sign \x78F0 24-1236-5
+sign \x78F1 14-146-2
+sign \x78F2 245-1256-2
+sign \x78F3 125-1356-3
+sign \x78F4 145-1356-5
+sign \x78F5 13-2345-5
+sign \x78F6 15-16-5
+sign \x78F7 14-1456-2
+sign \x78F8 145-13456-5
+sign \x78F9 145-2345-5
+sign \x78FA 1235-456-2
+sign \x78FB 1234-1236-2
+sign \x78FC 125-345-2
+sign \x78FD 245-246-3
+sign \x78FE 145-16-3
+sign \x78FF 14-16-5
+sign \x7901 13-246-3
+sign \x7902 15-16-3
+sign \x7903 1-1346-4
+sign \x7904 245-246-2
+sign \x7905 145-123456-3
+sign \x7906 15-2345-4
+sign \x7907 1256-5
+sign \x7908 1-1246-5
+sign \x7909 1235-2346-2
+sign \x790A 1235-25-5
+sign \x790B 1-2456-2
+sign \x790C 14-356-5
+sign \x790D 123-2346-4
+sign \x790E 12-34-4
+sign \x790F 13-16-2
+sign \x7910 245-236-5
+sign \x7911 145-1346-5
+sign \x7912 16-4
+sign \x7913 13-46-3
+sign \x7914 1234-16-5
+sign \x7915 1234-16-3
+sign \x7916 1256-5
+sign \x7917 1234-1456-3
+sign \x7918 245-16-5
+sign \x7919 2456-5
+sign \x791A 123-2456-4
+sign \x791B 13-2345-3
+sign \x791C 1256-5
+sign \x791D 1245-12456-4
+sign \x791E 134-1356-2
+sign \x791F 1234-146-5
+sign \x7920 245-156-2
+sign \x7921 135-126-2
+sign \x7923 134-346-5
+sign \x7924 245-345-4
+sign \x7925 15-2345-2
+sign \x7926 123-456-5
+sign \x7927 14-356-4
+sign \x7928 14-356-4
+sign \x7929 1-156-5
+sign \x792A 14-16-5
+sign \x792B 14-16-5
+sign \x792C 12345-1236-2
+sign \x792D 245-236-5
+sign \x792E 1234-146-5
+sign \x792F 13456-3
+sign \x7930 14-16-5
+sign \x7931 14-12346-2
+sign \x7932 14-12346-2
+sign \x7933 134-126-5
+sign \x7934 135-126-2
+sign \x7935 24-456-3
+sign \x7936 13-12456-5
+sign \x7937 14-1236-2
+sign \x7938 125-1236-4
+sign \x7939 2345-2
+sign \x793A 24-156-5
+sign \x793B 24-156-5
+sign \x793C 14-16-4
+sign \x793D 1245-1356-2
+sign \x793E 24-2346-5
+sign \x793F 236-5
+sign \x7940 15-156-5
+sign \x7941 245-16-2
+sign \x7942 124-3458-3
+sign \x7943 134-345-5
+sign \x7944 15-346-5
+sign \x7945 246-3
+sign \x7946 246-3
+sign \x7947 1-156-4
+sign \x7948 245-16-2
+sign \x7949 1-156-4
+sign \x794A 135-1356-3
+sign \x794B 145-1246-5
+sign \x794C 1-12346-5
+sign \x794E 16-3
+sign \x794F 24-156-2
+sign \x7950 234-5
+sign \x7951 1-156-5
+sign \x7952 124-246-2
+sign \x7953 12345-34-2
+sign \x7954 12345-34-5
+sign \x7955 134-16-5
+sign \x7956 125-34-4
+sign \x7957 1-156-3
+sign \x7958 15-12456-5
+sign \x7959 134-356-5
+sign \x795A 125-25-5
+sign \x795B 245-1256-3
+sign \x795C 1235-34-5
+sign \x795D 1-34-5
+sign \x795E 24-136-2
+sign \x795F 15-1246-5
+sign \x7960 245-156-2
+sign \x7961 12-2456-2
+sign \x7962 134-16-2
+sign \x7963 14-1256-4
+sign \x7964 1256-4
+sign \x7965 15-46-2
+sign \x7966 34-2
+sign \x7967 124-246-3
+sign \x7968 1234-246-5
+sign \x7969 1-34-3
+sign \x796A 13-1246-4
+sign \x796B 15-23456-2
+sign \x796C 1-156-3
+sign \x796D 13-16-5
+sign \x796E 13-146-5
+sign \x796F 1-136-3
+sign \x7970 13-146-5
+sign \x7971 24-1246-5
+sign \x7972 13-1456-3
+sign \x7973 12-136-4
+sign \x7974 13-2456-3
+sign \x7975 123-123456-4
+sign \x7976 145-16-5
+sign \x7977 145-146-4
+sign \x7978 1235-25-5
+sign \x7979 124-146-2
+sign \x797A 245-16-2
+sign \x797B 13-34-5
+sign \x797C 13-12456-5
+sign \x797D 125-1246-5
+sign \x797E 14-13456-2
+sign \x797F 14-34-5
+sign \x7980 135-13456-4
+sign \x7981 13-1456-5
+sign \x7982 145-146-4
+sign \x7983 1-156-2
+sign \x7984 14-34-5
+sign \x7985 12-1236-2
+sign \x7986 135-356-3
+sign \x7987 12-34-4
+sign \x7988 1235-1246-3
+sign \x7989 234-4
+sign \x798A 15-16-5
+sign \x798B 1456-3
+sign \x798C 125-156-3
+sign \x798D 1235-25-5
+sign \x798E 1-136-3
+sign \x798F 12345-34-2
+sign \x7990 45-5
+sign \x7991 34-2
+sign \x7992 15-2345-4
+sign \x7993 46-2
+sign \x7994 124-16-2
+sign \x7995 16-3
+sign \x7996 134-356-2
+sign \x7997 15-156-3
+sign \x7998 145-16-5
+sign \x799A 1-25-2
+sign \x799B 1-136-3
+sign \x799C 235-4
+sign \x799D 13-16-2
+sign \x799E 13-146-5
+sign \x799F 124-1346-2
+sign \x79A0 15-156-3
+sign \x79A1 134-345-5
+sign \x79A2 124-345-3
+sign \x79A4 15-45-3
+sign \x79A5 245-16-2
+sign \x79A6 1256-5
+sign \x79A7 15-16-4
+sign \x79A8 13-16-3
+sign \x79A9 15-156-5
+sign \x79AA 12-1236-2
+sign \x79AB 124-1236-4
+sign \x79AC 123-2356-5
+sign \x79AD 15-1246-5
+sign \x79AE 14-16-4
+sign \x79AF 1345-12346-2
+sign \x79B0 1345-16-4
+sign \x79B1 145-146-4
+sign \x79B2 14-16-5
+sign \x79B3 1245-1346-2
+sign \x79B4 236-5
+sign \x79B5 124-16-2
+sign \x79B6 125-1236-5
+sign \x79B7 14-356-5
+sign \x79B8 1245-12356-2
+sign \x79B9 1256-4
+sign \x79BA 1256-2
+sign \x79BB 14-16-2
+sign \x79BC 15-346-5
+sign \x79BD 245-1456-2
+sign \x79BE 1235-2346-2
+sign \x79BF 124-34-3
+sign \x79C0 15-234-5
+sign \x79C1 15-156-3
+sign \x79C2 1245-136-2
+sign \x79C3 124-34-3
+sign \x79C4 125-156-4
+sign \x79C5 12-345-2
+sign \x79C6 13-1236-4
+sign \x79C7 16-5
+sign \x79C8 15-2345-3
+sign \x79C9 135-13456-4
+sign \x79CA 1345-2345-2
+sign \x79CB 245-234-3
+sign \x79CC 245-234-3
+sign \x79CD 1-12346-4
+sign \x79CE 12345-136-2
+sign \x79CF 1235-146-5
+sign \x79D0 256-2
+sign \x79D1 123-2346-3
+sign \x79D2 134-246-4
+sign \x79D3 1-156-3
+sign \x79D4 13-1356-3
+sign \x79D5 135-16-4
+sign \x79D6 1-156-3
+sign \x79D7 1256-5
+sign \x79D8 134-16-5
+sign \x79D9 123-34-5
+sign \x79DA 135-1236-5
+sign \x79DB 1234-16-3
+sign \x79DC 1345-16-2
+sign \x79DD 14-16-5
+sign \x79DE 234-2
+sign \x79DF 125-34-3
+sign \x79E0 1234-16-3
+sign \x79E1 135-345-2
+sign \x79E2 14-13456-2
+sign \x79E3 134-126-5
+sign \x79E4 12-1356-5
+sign \x79E5 1345-2345-2
+sign \x79E6 245-1456-2
+sign \x79E7 46-3
+sign \x79E8 125-25-2
+sign \x79E9 1-156-5
+sign \x79EA 1-156-3
+sign \x79EB 24-34-2
+sign \x79EC 13-1256-5
+sign \x79ED 125-156-4
+sign \x79EE 1235-25-2
+sign \x79EF 13-16-3
+sign \x79F0 12-1356-3
+sign \x79F1 124-12346-2
+sign \x79F2 1-156-5
+sign \x79F3 1235-25-2
+sign \x79F4 1235-2346-2
+sign \x79F5 1456-3
+sign \x79F6 1-2456-3
+sign \x79F7 1-156-2
+sign \x79F8 13-346-3
+sign \x79F9 1245-136-4
+sign \x79FA 145-34-5
+sign \x79FB 16-2
+sign \x79FC 1-34-3
+sign \x79FD 1235-1246-5
+sign \x79FE 1345-12346-2
+sign \x79FF 12345-34-4
+sign \x7A00 15-16-3
+sign \x7A01 123-146-4
+sign \x7A02 14-1346-2
+sign \x7A03 12345-34-3
+sign \x7A04 125-2346-5
+sign \x7A05 24-1246-5
+sign \x7A06 14-1256-4
+sign \x7A07 123-123456-4
+sign \x7A08 13-1236-4
+sign \x7A09 13-1356-3
+sign \x7A0A 124-16-2
+sign \x7A0B 12-1356-2
+sign \x7A0C 124-34-2
+sign \x7A0D 24-146-3
+sign \x7A0E 24-1246-5
+sign \x7A0F 23456-5
+sign \x7A10 14-123456-4
+sign \x7A11 14-34-5
+sign \x7A12 13-34-5
+sign \x7A13 125-25-2
+sign \x7A14 1245-136-4
+sign \x7A15 1-123456-5
+sign \x7A16 135-1346-5
+sign \x7A17 135-2456-5
+sign \x7A18 13-16-3
+sign \x7A19 1-156-2
+sign \x7A1A 1-156-5
+sign \x7A1B 123-123456-4
+sign \x7A1C 14-1356-2
+sign \x7A1D 1234-1356-2
+sign \x7A1E 123-2346-3
+sign \x7A1F 135-13456-4
+sign \x7A20 12-12356-2
+sign \x7A21 125-34-2
+sign \x7A22 1256-5
+sign \x7A23 15-34-3
+sign \x7A24 14-236-5
+sign \x7A26 16-3
+sign \x7A27 15-16-5
+sign \x7A28 135-2345-3
+sign \x7A29 13-16-5
+sign \x7A2A 12345-34-5
+sign \x7A2B 135-16-5
+sign \x7A2C 1345-25-5
+sign \x7A2D 13-346-3
+sign \x7A2E 1-12346-4
+sign \x7A2F 125-12346-3
+sign \x7A30 15-1256-3
+sign \x7A31 12-1356-3
+sign \x7A32 145-146-5
+sign \x7A33 123456-4
+sign \x7A34 14-2345-2
+sign \x7A35 125-156-3
+sign \x7A36 1256-5
+sign \x7A37 13-16-5
+sign \x7A38 15-1256-5
+sign \x7A39 1-136-4
+sign \x7A3A 1-156-5
+sign \x7A3B 145-146-5
+sign \x7A3C 13-23456-5
+sign \x7A3D 13-16-3
+sign \x7A3E 13-146-4
+sign \x7A3F 13-146-4
+sign \x7A40 13-34-4
+sign \x7A41 1245-12346-2
+sign \x7A42 15-1246-5
+sign \x7A44 13-16-5
+sign \x7A45 123-1346-3
+sign \x7A46 134-34-5
+sign \x7A47 24-1236-3
+sign \x7A48 134-136-2
+sign \x7A49 1-156-5
+sign \x7A4A 13-16-5
+sign \x7A4B 14-34-5
+sign \x7A4C 15-34-3
+sign \x7A4D 13-16-3
+sign \x7A4E 13456-4
+sign \x7A4F 123456-4
+sign \x7A50 245-234-3
+sign \x7A51 15-2346-5
+sign \x7A53 16-5
+sign \x7A54 1235-456-2
+sign \x7A55 245-346-5
+sign \x7A56 13-16-4
+sign \x7A57 15-1246-5
+sign \x7A58 15-246-3
+sign \x7A59 1234-34-2
+sign \x7A5A 13-246-3
+sign \x7A5B 1-25-3
+sign \x7A5C 124-12346-2
+sign \x7A5E 14-1256-4
+sign \x7A5F 15-1246-5
+sign \x7A60 1345-12346-2
+sign \x7A61 15-2346-5
+sign \x7A62 1235-1246-5
+sign \x7A63 1245-1346-2
+sign \x7A64 1345-25-5
+sign \x7A65 1256-5
+sign \x7A67 13-16-5
+sign \x7A68 124-1246-2
+sign \x7A69 123456-4
+sign \x7A6A 12-1356-3
+sign \x7A6B 1235-25-5
+sign \x7A6C 13-12346-4
+sign \x7A6D 14-1256-4
+sign \x7A6E 135-246-3
+sign \x7A70 1245-1346-2
+sign \x7A71 1-25-3
+sign \x7A72 14-16-2
+sign \x7A73 125-1236-5
+sign \x7A74 15-236-5
+sign \x7A75 35-3
+sign \x7A76 13-234-5
+sign \x7A77 245-235-2
+sign \x7A78 15-16-5
+sign \x7A79 245-235-3
+sign \x7A7A 123-12346-3
+sign \x7A7B 1256-3
+sign \x7A7C 15-136-3
+sign \x7A7D 13-13456-4
+sign \x7A7E 246-5
+sign \x7A7F 12-12456-3
+sign \x7A80 1-123456-3
+sign \x7A81 124-34-2
+sign \x7A82 14-146-2
+sign \x7A83 245-346-5
+sign \x7A84 1-2456-4
+sign \x7A85 246-4
+sign \x7A86 135-2345-4
+sign \x7A87 135-146-2
+sign \x7A88 246-4
+sign \x7A89 135-13456-4
+sign \x7A8A 35-3
+sign \x7A8B 1-34-2
+sign \x7A8C 13-246-5
+sign \x7A8D 245-246-5
+sign \x7A8E 145-246-5
+sign \x7A8F 34-3
+sign \x7A90 35-3
+sign \x7A91 246-2
+sign \x7A92 1-156-5
+sign \x7A93 12-456-3
+sign \x7A94 246-5
+sign \x7A95 124-246-4
+sign \x7A96 13-246-5
+sign \x7A97 12-456-3
+sign \x7A98 13-235-4
+sign \x7A99 15-246-3
+sign \x7A9A 12-1356-2
+sign \x7A9B 123-12356-5
+sign \x7A9C 245-12456-5
+sign \x7A9D 25-3
+sign \x7A9E 145-1236-5
+sign \x7A9F 123-34-3
+sign \x7AA0 123-2346-3
+sign \x7AA1 1-1246-5
+sign \x7AA2 15-1256-5
+sign \x7AA3 15-34-5
+sign \x7AA5 123-1246-3
+sign \x7AA6 145-12356-5
+sign \x7AA8 1456-5
+sign \x7AA9 25-3
+sign \x7AAA 35-3
+sign \x7AAB 23456-5
+sign \x7AAC 1256-2
+sign \x7AAD 13-1256-5
+sign \x7AAE 245-235-2
+sign \x7AAF 246-2
+sign \x7AB0 246-2
+sign \x7AB1 124-246-5
+sign \x7AB2 12-146-2
+sign \x7AB3 1256-4
+sign \x7AB4 124-2345-2
+sign \x7AB5 145-246-5
+sign \x7AB6 13-1256-5
+sign \x7AB7 14-246-2
+sign \x7AB8 15-16-3
+sign \x7AB9 34-5
+sign \x7ABA 123-1246-3
+sign \x7ABB 12-456-3
+sign \x7ABC 1-146-3
+sign \x7ABE 123-12456-4
+sign \x7ABF 14-12346-2
+sign \x7AC0 12-1356-3
+sign \x7AC1 245-1246-5
+sign \x7AC2 1234-246-2
+sign \x7AC3 125-146-5
+sign \x7AC4 245-12456-5
+sign \x7AC5 245-246-5
+sign \x7AC6 245-235-2
+sign \x7AC7 145-12356-5
+sign \x7AC8 125-146-5
+sign \x7AC9 14-12346-4
+sign \x7ACA 245-346-5
+sign \x7ACB 14-16-5
+sign \x7ACC 12-34-5
+sign \x7ACE 12345-12356-5
+sign \x7AD0 12-34-5
+sign \x7AD1 1235-12346-2
+sign \x7AD2 245-16-2
+sign \x7AD6 24-34-5
+sign \x7AD7 134-246-5
+sign \x7AD8 13-1256-4
+sign \x7AD9 1-1236-5
+sign \x7ADA 1-34-5
+sign \x7ADB 14-13456-2
+sign \x7ADC 14-12346-2
+sign \x7ADD 135-13456-5
+sign \x7ADE 13-13456-5
+sign \x7ADF 13-13456-5
+sign \x7AE0 1-1346-3
+sign \x7AE2 15-156-5
+sign \x7AE3 13-256-5
+sign \x7AE4 1235-12346-2
+sign \x7AE5 124-12346-2
+sign \x7AE6 15-12346-4
+sign \x7AE7 13-13456-5
+sign \x7AE8 145-246-5
+sign \x7AE9 16-5
+sign \x7AEA 24-34-5
+sign \x7AEB 13-13456-5
+sign \x7AEC 245-1256-4
+sign \x7AED 13-346-2
+sign \x7AEE 1234-13456-2
+sign \x7AEF 145-12456-3
+sign \x7AF0 24-146-2
+sign \x7AF1 1-12456-4
+sign \x7AF2 245-1356-2
+sign \x7AF3 145-1356-3
+sign \x7AF4 245-1246-3
+sign \x7AF5 2356-3
+sign \x7AF6 13-13456-5
+sign \x7AF7 123-1236-5
+sign \x7AF8 13-13456-5
+sign \x7AF9 1-34-2
+sign \x7AFA 1-34-2
+sign \x7AFB 14-2346-5
+sign \x7AFC 1234-1356-2
+sign \x7AFD 1256-2
+sign \x7AFE 12-156-2
+sign \x7AFF 13-1236-3
+sign \x7B00 134-1346-2
+sign \x7B01 1-34-2
+sign \x7B03 145-34-4
+sign \x7B04 13-16-3
+sign \x7B05 15-246-2
+sign \x7B06 135-345-3
+sign \x7B07 15-12456-5
+sign \x7B08 13-346-2
+sign \x7B09 1-136-4
+sign \x7B0A 1-146-4
+sign \x7B0B 15-123456-4
+sign \x7B0C 23456-2
+sign \x7B0D 1-1246-5
+sign \x7B0E 45-2
+sign \x7B0F 1235-34-5
+sign \x7B10 13-1346-3
+sign \x7B11 15-246-5
+sign \x7B12 245-136-2
+sign \x7B13 1234-16-2
+sign \x7B14 135-16-4
+sign \x7B15 13-2345-4
+sign \x7B16 16-4
+sign \x7B17 145-12346-3
+sign \x7B18 24-1236-3
+sign \x7B19 24-1356-3
+sign \x7B1A 15-23456-2
+sign \x7B1B 145-16-2
+sign \x7B1C 1-34-2
+sign \x7B1D 1345-345-5
+sign \x7B1E 12-156-3
+sign \x7B1F 13-34-3
+sign \x7B20 14-16-5
+sign \x7B21 245-346-5
+sign \x7B22 134-1456-4
+sign \x7B23 135-146-3
+sign \x7B24 124-246-2
+sign \x7B25 15-156-5
+sign \x7B26 12345-34-2
+sign \x7B27 245-2346-5
+sign \x7B28 135-136-5
+sign \x7B29 1234-356-5
+sign \x7B2A 145-345-2
+sign \x7B2B 125-156-4
+sign \x7B2C 145-16-5
+sign \x7B2D 14-13456-2
+sign \x7B2E 125-2346-2
+sign \x7B2F 1345-34-2
+sign \x7B30 12345-34-2
+sign \x7B31 13-12356-4
+sign \x7B32 12345-1236-2
+sign \x7B33 13-23456-3
+sign \x7B34 13-2346-4
+sign \x7B35 12345-1236-5
+sign \x7B36 24-156-4
+sign \x7B37 134-146-4
+sign \x7B38 1234-126-4
+sign \x7B3A 13-2345-3
+sign \x7B3B 1-34-2
+sign \x7B3C 14-12346-2
+sign \x7B3E 135-2345-3
+sign \x7B3F 14-25-5
+sign \x7B40 13-1246-5
+sign \x7B41 245-1256-4
+sign \x7B42 12-156-2
+sign \x7B43 1456-3
+sign \x7B44 246-5
+sign \x7B45 15-2345-4
+sign \x7B46 135-16-4
+sign \x7B47 245-235-2
+sign \x7B48 13-35-3
+sign \x7B49 145-1356-4
+sign \x7B4A 15-246-2
+sign \x7B4B 13-1456-3
+sign \x7B4C 245-45-2
+sign \x7B4D 15-123456-4
+sign \x7B4E 1245-34-2
+sign \x7B4F 12345-345-2
+sign \x7B50 123-456-3
+sign \x7B51 1-34-2
+sign \x7B52 124-12346-4
+sign \x7B53 13-16-3
+sign \x7B54 145-345-2
+sign \x7B55 15-13456-2
+sign \x7B56 245-2346-5
+sign \x7B57 1-12346-5
+sign \x7B58 123-12356-5
+sign \x7B59 14-2456-2
+sign \x7B5A 135-16-5
+sign \x7B5B 24-2456-3
+sign \x7B5C 145-1346-3
+sign \x7B5D 1-1356-3
+sign \x7B5E 245-2346-5
+sign \x7B5F 12345-34-3
+sign \x7B60 256-2
+sign \x7B61 124-34-2
+sign \x7B62 1234-345-2
+sign \x7B63 14-16-2
+sign \x7B64 14-1346-2
+sign \x7B65 13-1256-4
+sign \x7B66 13-12456-4
+sign \x7B67 13-2345-4
+sign \x7B68 1235-1236-2
+sign \x7B69 124-12346-2
+sign \x7B6A 15-23456-2
+sign \x7B6B 1-156-5
+sign \x7B6C 12-1356-2
+sign \x7B6D 15-12456-5
+sign \x7B6E 24-156-5
+sign \x7B6F 1-34-5
+sign \x7B70 125-25-2
+sign \x7B71 15-246-4
+sign \x7B72 24-146-3
+sign \x7B73 124-13456-2
+sign \x7B74 245-2346-5
+sign \x7B75 2345-2
+sign \x7B76 13-146-4
+sign \x7B77 123-2356-5
+sign \x7B78 13-1236-3
+sign \x7B79 12-12356-2
+sign \x7B7B 13-1346-5
+sign \x7B7C 256-2
+sign \x7B7E 245-2345-3
+sign \x7B7F 15-246-4
+sign \x7B80 13-2345-4
+sign \x7B81 1234-34-2
+sign \x7B82 14-2456-2
+sign \x7B83 125-12356-3
+sign \x7B84 1234-2456-2
+sign \x7B85 135-16-5
+sign \x7B86 135-16-5
+sign \x7B87 13-2346-5
+sign \x7B88 12-156-2
+sign \x7B89 13-2356-4
+sign \x7B8A 1256-3
+sign \x7B8B 13-2345-3
+sign \x7B8C 1-146-5
+sign \x7B8D 13-34-3
+sign \x7B8E 12-156-2
+sign \x7B8F 1-1356-3
+sign \x7B90 13-13456-3
+sign \x7B91 24-345-5
+sign \x7B92 1-12356-4
+sign \x7B93 14-34-5
+sign \x7B94 135-126-2
+sign \x7B95 13-16-3
+sign \x7B96 14-1456-2
+sign \x7B97 15-12456-5
+sign \x7B98 13-256-5
+sign \x7B99 12345-34-2
+sign \x7B9A 123-123456-3
+sign \x7B9B 13-34-3
+sign \x7B9C 123-12346-3
+sign \x7B9D 245-2345-2
+sign \x7B9E 245-45-3
+sign \x7B9F 13-256-5
+sign \x7BA0 12-1246-2
+sign \x7BA1 13-12456-4
+sign \x7BA2 45-3
+sign \x7BA3 245-2346-5
+sign \x7BA4 15-1246-5
+sign \x7BA5 135-126-4
+sign \x7BA6 125-2346-2
+sign \x7BA7 245-346-5
+sign \x7BA8 124-25-5
+sign \x7BA9 14-25-2
+sign \x7BAA 145-1236-3
+sign \x7BAB 15-246-3
+sign \x7BAC 1245-25-5
+sign \x7BAD 13-2345-5
+sign \x7BAF 135-2345-3
+sign \x7BB0 15-123456-4
+sign \x7BB1 15-46-3
+sign \x7BB2 15-2345-4
+sign \x7BB3 1234-13456-2
+sign \x7BB4 1-136-3
+sign \x7BB5 24-1356-4
+sign \x7BB6 1235-34-2
+sign \x7BB7 24-156-3
+sign \x7BB8 1-34-5
+sign \x7BB9 236-3
+sign \x7BBA 12-123456-4
+sign \x7BBB 14-1256-5
+sign \x7BBC 34-3
+sign \x7BBD 145-12346-4
+sign \x7BBE 24-25-5
+sign \x7BBF 13-16-2
+sign \x7BC0 13-346-2
+sign \x7BC1 1235-456-2
+sign \x7BC2 15-13456-3
+sign \x7BC3 134-356-2
+sign \x7BC4 12345-1236-5
+sign \x7BC5 12-1246-2
+sign \x7BC6 1-12456-5
+sign \x7BC7 1234-2345-3
+sign \x7BC8 12345-1356-3
+sign \x7BC9 1-34-2
+sign \x7BCA 1235-12346-2
+sign \x7BCB 245-346-5
+sign \x7BCC 1235-12356-2
+sign \x7BCD 245-234-3
+sign \x7BCE 134-246-4
+sign \x7BCF 245-2345-5
+sign \x7BD1 123-1246-5
+sign \x7BD3 14-12356-4
+sign \x7BD4 256-2
+sign \x7BD5 1235-2346-2
+sign \x7BD6 124-1346-2
+sign \x7BD7 236-5
+sign \x7BD8 12-12356-3
+sign \x7BD9 13-146-3
+sign \x7BDA 12345-356-4
+sign \x7BDB 1245-25-5
+sign \x7BDC 1-1356-3
+sign \x7BDD 13-12356-3
+sign \x7BDE 1345-346-5
+sign \x7BDF 245-2345-5
+sign \x7BE0 15-246-4
+sign \x7BE1 245-12456-5
+sign \x7BE2 13-12346-3
+sign \x7BE3 1234-1346-2
+sign \x7BE4 145-34-4
+sign \x7BE5 14-16-5
+sign \x7BE6 135-16-5
+sign \x7BE7 1-25-2
+sign \x7BE8 12-34-2
+sign \x7BE9 24-2456-3
+sign \x7BEA 12-156-2
+sign \x7BEB 1-34-2
+sign \x7BEC 245-46-3
+sign \x7BED 14-12346-2
+sign \x7BEE 14-1236-2
+sign \x7BEF 13-2345-3
+sign \x7BF0 135-34-5
+sign \x7BF1 14-16-2
+sign \x7BF2 15-1246-5
+sign \x7BF3 135-16-5
+sign \x7BF4 145-16-2
+sign \x7BF5 245-12346-3
+sign \x7BF6 2345-3
+sign \x7BF7 1234-1356-2
+sign \x7BF8 15-136-3
+sign \x7BF9 1-12456-5
+sign \x7BFA 1234-2456-2
+sign \x7BFB 1234-246-4
+sign \x7BFC 145-12356-3
+sign \x7BFD 1256-4
+sign \x7BFE 134-346-5
+sign \x7BFF 124-12456-2
+sign \x7C00 125-2346-2
+sign \x7C01 15-156-3
+sign \x7C02 13-25-2
+sign \x7C03 16-2
+sign \x7C04 1235-34-5
+sign \x7C05 12-1236-4
+sign \x7C06 123-12356-5
+sign \x7C07 245-34-5
+sign \x7C08 1234-13456-2
+sign \x7C09 12-12356-5
+sign \x7C0A 13-16-3
+sign \x7C0B 13-1246-4
+sign \x7C0C 15-34-5
+sign \x7C0D 14-12356-4
+sign \x7C0E 13-16-2
+sign \x7C0F 14-34-5
+sign \x7C10 1345-2345-4
+sign \x7C11 15-25-3
+sign \x7C12 245-12456-5
+sign \x7C14 15-25-3
+sign \x7C15 14-2346-5
+sign \x7C16 145-12456-5
+sign \x7C18 15-246-3
+sign \x7C19 135-126-2
+sign \x7C1A 134-16-5
+sign \x7C1B 15-156-3
+sign \x7C1C 145-1346-5
+sign \x7C1D 14-246-2
+sign \x7C1E 145-1236-3
+sign \x7C1F 145-2345-5
+sign \x7C20 12345-34-4
+sign \x7C21 13-2345-4
+sign \x7C22 134-1456-4
+sign \x7C23 123-1246-5
+sign \x7C24 145-2456-5
+sign \x7C25 13-246-3
+sign \x7C26 145-1356-3
+sign \x7C27 1235-456-2
+sign \x7C28 15-123456-4
+sign \x7C29 14-146-2
+sign \x7C2A 125-1236-3
+sign \x7C2B 15-246-3
+sign \x7C2C 145-34-5
+sign \x7C2D 24-156-5
+sign \x7C2E 125-1236-3
+sign \x7C30 1234-2456-2
+sign \x7C32 1234-2456-2
+sign \x7C33 13-1236-4
+sign \x7C34 13-1256-5
+sign \x7C35 145-34-5
+sign \x7C36 14-34-5
+sign \x7C37 2345-2
+sign \x7C38 135-126-4
+sign \x7C39 145-1346-3
+sign \x7C3A 15-2456-5
+sign \x7C3B 1-35-3
+sign \x7C3C 14-12346-2
+sign \x7C3D 245-2345-3
+sign \x7C3E 14-2345-2
+sign \x7C3F 135-34-5
+sign \x7C40 1-12356-5
+sign \x7C41 14-2456-5
+sign \x7C43 14-1236-2
+sign \x7C44 123-1246-5
+sign \x7C45 1256-2
+sign \x7C46 236-5
+sign \x7C47 1235-146-2
+sign \x7C48 1-136-3
+sign \x7C49 124-2456-2
+sign \x7C4A 124-16-5
+sign \x7C4B 134-16-2
+sign \x7C4C 12-12356-2
+sign \x7C4D 13-16-2
+sign \x7C50 124-1356-2
+sign \x7C51 1-12456-5
+sign \x7C52 1-12356-5
+sign \x7C53 12345-1236-3
+sign \x7C54 15-12356-4
+sign \x7C55 1-12356-5
+sign \x7C57 1-25-2
+sign \x7C58 124-1356-2
+sign \x7C59 14-34-5
+sign \x7C5A 14-34-2
+sign \x7C5B 13-2345-3
+sign \x7C5C 124-25-5
+sign \x7C5D 13456-2
+sign \x7C5E 1256-5
+sign \x7C5F 14-2456-5
+sign \x7C60 14-12346-2
+sign \x7C62 14-2345-2
+sign \x7C63 14-1236-2
+sign \x7C64 245-2345-3
+sign \x7C65 236-5
+sign \x7C66 1-12346-3
+sign \x7C67 245-1256-2
+sign \x7C68 14-2345-2
+sign \x7C69 135-2345-3
+sign \x7C6A 145-12456-5
+sign \x7C6B 125-12456-4
+sign \x7C6C 14-16-2
+sign \x7C6D 15-156-3
+sign \x7C6E 14-25-2
+sign \x7C6F 13456-2
+sign \x7C70 236-5
+sign \x7C71 1-25-2
+sign \x7C72 1256-5
+sign \x7C73 134-16-4
+sign \x7C74 145-16-2
+sign \x7C75 12345-1236-2
+sign \x7C76 24-136-3
+sign \x7C77 1-2346-2
+sign \x7C78 24-136-3
+sign \x7C79 1245-34-4
+sign \x7C7A 15-346-2
+sign \x7C7B 14-356-5
+sign \x7C7C 15-2345-3
+sign \x7C7D 125-156-4
+sign \x7C7E 1345-16-2
+sign \x7C7F 245-123456-5
+sign \x7C80 1-1346-5
+sign \x7C81 245-2345-3
+sign \x7C83 135-16-4
+sign \x7C84 135-1236-4
+sign \x7C85 34-5
+sign \x7C86 24-345-3
+sign \x7C87 123-1346-3
+sign \x7C88 1245-12356-4
+sign \x7C89 12345-136-4
+sign \x7C8A 135-16-5
+sign \x7C8B 245-1246-5
+sign \x7C8C 1456-2
+sign \x7C8D 14-16-2
+sign \x7C8E 12-156-4
+sign \x7C91 135-345-3
+sign \x7C92 14-16-5
+sign \x7C93 13-1236-3
+sign \x7C94 13-1256-5
+sign \x7C95 1234-126-5
+sign \x7C96 134-126-5
+sign \x7C97 245-34-3
+sign \x7C98 1345-2345-2
+sign \x7C99 1-12356-5
+sign \x7C9A 14-16-2
+sign \x7C9B 15-34-5
+sign \x7C9C 124-246-5
+sign \x7C9D 14-16-5
+sign \x7C9E 15-16-3
+sign \x7C9F 15-34-5
+sign \x7CA0 1235-12346-2
+sign \x7CA1 124-12346-2
+sign \x7CA2 125-156-3
+sign \x7CA3 245-2346-5
+sign \x7CA4 236-5
+sign \x7CA5 1-12356-3
+sign \x7CA6 14-1456-2
+sign \x7CA7 1-456-3
+sign \x7CA8 135-2456-4
+sign \x7CAA 12345-136-5
+sign \x7CAE 14-46-2
+sign \x7CAF 15-2345-5
+sign \x7CB0 12345-34-3
+sign \x7CB1 14-46-2
+sign \x7CB2 245-1236-5
+sign \x7CB3 13-1356-3
+sign \x7CB4 14-16-4
+sign \x7CB5 236-5
+sign \x7CB6 14-34-5
+sign \x7CB7 13-1256-2
+sign \x7CB8 245-16-2
+sign \x7CB9 245-1246-5
+sign \x7CBA 135-2456-5
+sign \x7CBB 1-1346-3
+sign \x7CBC 14-1456-2
+sign \x7CBD 125-12346-5
+sign \x7CBE 13-13456-3
+sign \x7CBF 13-25-4
+sign \x7CC1 15-1236-4
+sign \x7CC2 15-1236-4
+sign \x7CC3 124-1346-2
+sign \x7CC4 135-2345-3
+sign \x7CC5 1245-12356-4
+sign \x7CC6 134-2345-5
+sign \x7CC7 1235-12356-2
+sign \x7CC8 15-1256-3
+sign \x7CC9 125-12346-5
+sign \x7CCA 1235-34-2
+sign \x7CCB 13-2345-5
+sign \x7CCC 125-1236-2
+sign \x7CCD 245-156-2
+sign \x7CCE 14-134
+sign \x7CCF 15-346-5
+sign \x7CD0 12345-34-3
+sign \x7CD1 1345-16-5
+sign \x7CD2 135-356-5
+sign \x7CD3 13-34-4
+sign \x7CD4 15-234-4
+sign \x7CD5 13-146-3
+sign \x7CD6 124-1346-2
+sign \x7CD7 245-234-4
+sign \x7CD9 245-146-3
+sign \x7CDA 1-456-3
+sign \x7CDB 124-1346-2
+sign \x7CDC 134-16-2
+sign \x7CDD 15-1236-4
+sign \x7CDE 12345-136-5
+sign \x7CDF 125-146-3
+sign \x7CE0 123-1346-3
+sign \x7CE1 13-46-5
+sign \x7CE2 134-126-2
+sign \x7CE3 15-1236-4
+sign \x7CE4 15-1236-4
+sign \x7CE5 1345-25-5
+sign \x7CE6 15-16-3
+sign \x7CE7 14-46-2
+sign \x7CE8 13-46-5
+sign \x7CE9 123-2356-5
+sign \x7CEA 135-126-2
+sign \x7CEB 1235-12456-2
+sign \x7CEC 135-345-1
+sign \x7CED 125-12346-5
+sign \x7CEE 13-2345-5
+sign \x7CEF 1345-25-5
+sign \x7CF0 124-12456-2
+sign \x7CF1 1345-346-5
+sign \x7CF2 14-16-5
+sign \x7CF3 125-25-5
+sign \x7CF4 145-16-2
+sign \x7CF5 1345-346-5
+sign \x7CF6 124-246-5
+sign \x7CF7 14-1236-2
+sign \x7CF8 134-16-5
+sign \x7CF9 15-156-3
+sign \x7CFA 13-234-3
+sign \x7CFB 15-16-5
+sign \x7CFC 13-12346-3
+sign \x7CFD 1-1356-4
+sign \x7CFE 13-234-3
+sign \x7CFF 234-5
+sign \x7D00 13-16-5
+sign \x7D01 12-345-5
+sign \x7D02 1-12356-5
+sign \x7D03 15-256-2
+sign \x7D04 236-3
+sign \x7D05 1235-12346-2
+sign \x7D06 1256-3
+sign \x7D07 1235-2346-2
+sign \x7D08 12456-2
+sign \x7D09 1245-136-5
+sign \x7D0A 123456-5
+sign \x7D0B 123456-2
+sign \x7D0C 245-234-2
+sign \x7D0D 1345-345-5
+sign \x7D0E 125-156-3
+sign \x7D0F 124-12356-4
+sign \x7D10 1345-234-4
+sign \x7D11 12345-12356-2
+sign \x7D12 13-16-5
+sign \x7D13 24-34-3
+sign \x7D14 12-123456-2
+sign \x7D15 1234-16-3
+sign \x7D16 1-136-5
+sign \x7D17 24-345-3
+sign \x7D18 1235-12346-2
+sign \x7D19 1-156-4
+sign \x7D1A 13-16-2
+sign \x7D1B 12345-136-3
+sign \x7D1C 256-2
+sign \x7D1D 1245-136-5
+sign \x7D1E 145-1236-4
+sign \x7D1F 13-1456-3
+sign \x7D20 15-34-5
+sign \x7D21 12345-1346-4
+sign \x7D22 15-25-4
+sign \x7D23 245-1246-5
+sign \x7D24 13-234-4
+sign \x7D25 1-345-2
+sign \x7D27 13-1456-4
+sign \x7D28 12345-34-5
+sign \x7D29 1-156-5
+sign \x7D2A 245-156-4
+sign \x7D2B 125-156-4
+sign \x7D2C 12-12356-2
+sign \x7D2D 1235-12346-2
+sign \x7D2E 1-345-2
+sign \x7D2F 14-356-5
+sign \x7D30 15-16-5
+sign \x7D31 12345-34-2
+sign \x7D32 15-346-5
+sign \x7D33 24-136-3
+sign \x7D34 135-356-5
+sign \x7D35 1-34-5
+sign \x7D36 245-1256-4
+sign \x7D37 14-13456-2
+sign \x7D38 1-34-5
+sign \x7D39 24-146-5
+sign \x7D3A 13-1236-5
+sign \x7D3B 46-3
+sign \x7D3C 12345-34-2
+sign \x7D3D 124-25-2
+sign \x7D3E 1-136-4
+sign \x7D3F 145-2456-5
+sign \x7D40 12-34-5
+sign \x7D41 24-156-3
+sign \x7D42 1-12346-3
+sign \x7D43 15-2345-2
+sign \x7D44 125-34-4
+sign \x7D45 13-235-3
+sign \x7D46 135-1236-5
+sign \x7D47 245-1256-2
+sign \x7D48 134-126-5
+sign \x7D49 24-34-5
+sign \x7D4A 125-1246-5
+sign \x7D4C 13-13456-3
+sign \x7D4D 1245-136-2
+sign \x7D4E 1235-1356-5
+sign \x7D4F 15-346-5
+sign \x7D50 13-346-2
+sign \x7D51 1-34-3
+sign \x7D52 12-12356-2
+sign \x7D53 13-35-5
+sign \x7D54 135-2456-4
+sign \x7D55 13-236-2
+sign \x7D56 123-456-5
+sign \x7D57 1235-34-2
+sign \x7D58 125-156-3
+sign \x7D59 13-1356-3
+sign \x7D5A 13-1356-3
+sign \x7D5B 124-146-3
+sign \x7D5C 13-346-2
+sign \x7D5D 123-34-5
+sign \x7D5E 13-246-4
+sign \x7D5F 245-45-3
+sign \x7D60 13-2456-4
+sign \x7D61 14-25-5
+sign \x7D62 15-45-5
+sign \x7D63 135-1356-3
+sign \x7D64 15-2345-5
+sign \x7D65 12345-34-2
+sign \x7D66 13-356-4
+sign \x7D67 124-12346-2
+sign \x7D68 1245-12346-2
+sign \x7D69 124-246-5
+sign \x7D6A 1456-3
+sign \x7D6B 14-356-4
+sign \x7D6C 15-346-5
+sign \x7D6D 245-45-5
+sign \x7D6E 15-1256-5
+sign \x7D6F 13-2456-3
+sign \x7D70 145-346-2
+sign \x7D71 124-12346-4
+sign \x7D72 15-156-3
+sign \x7D73 13-46-5
+sign \x7D74 15-46-2
+sign \x7D75 1235-1246-5
+sign \x7D76 13-236-2
+sign \x7D77 1-156-2
+sign \x7D78 13-2345-4
+sign \x7D79 13-45-5
+sign \x7D7A 12-156-3
+sign \x7D7B 123456-5
+sign \x7D7C 1-136-4
+sign \x7D7D 14-1256-4
+sign \x7D7E 12-1356-2
+sign \x7D7F 245-234-2
+sign \x7D80 24-34-3
+sign \x7D81 135-1346-4
+sign \x7D82 124-12346-4
+sign \x7D83 15-246-3
+sign \x7D84 12456-5
+sign \x7D85 245-1456-3
+sign \x7D86 13-1356-4
+sign \x7D87 15-234-4
+sign \x7D88 124-16-2
+sign \x7D89 15-234-5
+sign \x7D8A 15-346-2
+sign \x7D8B 1235-12346-2
+sign \x7D8C 15-16-5
+sign \x7D8D 12345-34-2
+sign \x7D8E 124-13456-3
+sign \x7D8F 15-1246-3
+sign \x7D90 145-1246-5
+sign \x7D91 123-123456-4
+sign \x7D92 12345-34-3
+sign \x7D93 13-13456-3
+sign \x7D94 1235-34-5
+sign \x7D95 1-156-3
+sign \x7D96 2345-2
+sign \x7D97 13-235-4
+sign \x7D98 12345-1356-2
+sign \x7D99 13-16-5
+sign \x7D9C 125-12346-5
+sign \x7D9D 12-136-3
+sign \x7D9E 145-25-4
+sign \x7D9F 14-16-5
+sign \x7DA0 14-1256-5
+sign \x7DA1 14-46-2
+sign \x7DA2 12-12356-2
+sign \x7DA3 245-45-4
+sign \x7DA4 24-146-5
+sign \x7DA5 245-16-5
+sign \x7DA6 245-16-2
+sign \x7DA7 1-123456-4
+sign \x7DA8 245-16-2
+sign \x7DA9 12456-4
+sign \x7DAA 245-2345-5
+sign \x7DAB 15-2345-5
+sign \x7DAC 24-12356-5
+sign \x7DAD 1246-2
+sign \x7DAE 245-16-4
+sign \x7DAF 124-146-2
+sign \x7DB0 12456-4
+sign \x7DB1 13-1346-3
+sign \x7DB2 456-4
+sign \x7DB3 135-1356-3
+sign \x7DB4 1-1246-5
+sign \x7DB5 245-2456-4
+sign \x7DB6 13-25-4
+sign \x7DB7 125-1246-5
+sign \x7DB8 14-123456-2
+sign \x7DB9 14-234-4
+sign \x7DBA 245-16-4
+sign \x7DBB 1-1236-5
+sign \x7DBC 135-16-5
+sign \x7DBD 12-25-5
+sign \x7DBE 14-13456-2
+sign \x7DBF 134-2345-2
+sign \x7DC0 245-16-3
+sign \x7DC1 245-346-5
+sign \x7DC2 124-1236-3
+sign \x7DC3 125-12346-3
+sign \x7DC4 13-123456-4
+sign \x7DC5 125-12356-3
+sign \x7DC6 15-16-5
+sign \x7DC7 125-156-3
+sign \x7DC8 15-13456-5
+sign \x7DC9 14-46-4
+sign \x7DCA 13-1456-4
+sign \x7DCB 12345-356-3
+sign \x7DCC 1245-1246-2
+sign \x7DCD 134-1456-2
+sign \x7DCE 1256-5
+sign \x7DCF 125-12346-4
+sign \x7DD0 12345-1236-2
+sign \x7DD1 14-1256-5
+sign \x7DD2 15-1256-5
+sign \x7DD3 13456-3
+sign \x7DD4 1-1346-5
+sign \x7DD6 15-1256-5
+sign \x7DD7 15-46-3
+sign \x7DD8 13-2345-3
+sign \x7DD9 123-2346-5
+sign \x7DDA 15-2345-5
+sign \x7DDB 1245-12456-4
+sign \x7DDC 134-2345-2
+sign \x7DDD 245-16-5
+sign \x7DDE 145-12456-5
+sign \x7DDF 1-12346-5
+sign \x7DE0 145-16-5
+sign \x7DE1 134-1456-2
+sign \x7DE2 134-246-2
+sign \x7DE3 45-2
+sign \x7DE4 15-346-5
+sign \x7DE5 135-146-4
+sign \x7DE6 15-156-3
+sign \x7DE7 245-234-3
+sign \x7DE8 135-2345-3
+sign \x7DE9 1235-12456-4
+sign \x7DEA 13-1356-3
+sign \x7DEB 125-12346-4
+sign \x7DEC 134-2345-4
+sign \x7DED 1246-5
+sign \x7DEE 12345-34-5
+sign \x7DEF 1246-4
+sign \x7DF0 124-12356-2
+sign \x7DF1 13-12356-3
+sign \x7DF2 134-246-4
+sign \x7DF3 15-346-2
+sign \x7DF4 14-2345-5
+sign \x7DF5 125-12346-3
+sign \x7DF6 1234-2345-2
+sign \x7DF7 256-5
+sign \x7DF8 1456-3
+sign \x7DF9 124-16-2
+sign \x7DFA 13-35-3
+sign \x7DFB 1-156-5
+sign \x7DFC 256-3
+sign \x7DFD 12-1356-3
+sign \x7DFE 12-1236-2
+sign \x7DFF 145-2456-5
+sign \x7E00 15-23456-2
+sign \x7E01 45-2
+sign \x7E02 125-12346-4
+sign \x7E03 15-1256-3
+sign \x7E06 13-1356-3
+sign \x7E08 13456-2
+sign \x7E09 13-1456-5
+sign \x7E0A 16-5
+sign \x7E0B 1-1246-5
+sign \x7E0C 1345-16-5
+sign \x7E0D 135-1346-3
+sign \x7E0E 13-34-4
+sign \x7E0F 1234-1236-2
+sign \x7E10 1-12356-5
+sign \x7E11 13-2345-3
+sign \x7E12 245-25-4
+sign \x7E13 245-45-2
+sign \x7E14 24-456-4
+sign \x7E15 256-5
+sign \x7E16 15-23456-2
+sign \x7E17 245-1246-3
+sign \x7E18 15-16-3
+sign \x7E19 1245-12346-2
+sign \x7E1A 124-146-3
+sign \x7E1B 12345-34-2
+sign \x7E1C 256-2
+sign \x7E1D 1-136-4
+sign \x7E1E 13-146-4
+sign \x7E1F 1245-34-5
+sign \x7E20 1235-34-2
+sign \x7E21 125-2456-4
+sign \x7E22 124-1356-2
+sign \x7E23 15-2345-5
+sign \x7E24 15-34-5
+sign \x7E25 1-136-4
+sign \x7E26 125-12346-5
+sign \x7E27 124-146-3
+sign \x7E29 245-2456-5
+sign \x7E2A 135-16-5
+sign \x7E2B 12345-1356-2
+sign \x7E2C 245-34-5
+sign \x7E2D 14-16-2
+sign \x7E2E 15-25-3
+sign \x7E2F 2345-4
+sign \x7E30 15-16-4
+sign \x7E31 125-12346-5
+sign \x7E32 14-356-2
+sign \x7E33 1-12456-5
+sign \x7E34 245-2345-5
+sign \x7E35 134-1236-5
+sign \x7E36 1-156-2
+sign \x7E37 14-1256-4
+sign \x7E38 134-126-5
+sign \x7E39 1234-246-4
+sign \x7E3A 14-2345-2
+sign \x7E3B 134-16-2
+sign \x7E3C 15-45-5
+sign \x7E3D 125-12346-4
+sign \x7E3E 13-16-3
+sign \x7E3F 24-1236-3
+sign \x7E40 15-1246-5
+sign \x7E41 12345-1236-2
+sign \x7E42 14-1256-5
+sign \x7E43 135-1356-3
+sign \x7E44 16-3
+sign \x7E45 15-146-3
+sign \x7E46 134-12356-2
+sign \x7E47 234-2
+sign \x7E48 245-46-4
+sign \x7E49 1235-123456-2
+sign \x7E4B 15-16-5
+sign \x7E4C 24-345-4
+sign \x7E4D 15-234-5
+sign \x7E4E 1245-1236-2
+sign \x7E4F 15-45-5
+sign \x7E50 1235-1246-5
+sign \x7E51 245-246-3
+sign \x7E52 125-1356-3
+sign \x7E53 125-25-4
+sign \x7E54 1-156-3
+sign \x7E55 24-1236-5
+sign \x7E56 15-1236-4
+sign \x7E57 14-1456-2
+sign \x7E58 1256-5
+sign \x7E59 12345-1236-3
+sign \x7E5A 14-246-2
+sign \x7E5B 12-25-5
+sign \x7E5C 125-123456-3
+sign \x7E5D 13-2345-5
+sign \x7E5E 1245-146-5
+sign \x7E5F 12-1236-4
+sign \x7E60 1245-1246-4
+sign \x7E61 15-234-5
+sign \x7E62 1235-1246-5
+sign \x7E63 1235-35-5
+sign \x7E64 125-12456-4
+sign \x7E65 15-16-3
+sign \x7E66 245-46-4
+sign \x7E68 145-345-2
+sign \x7E69 24-1356-2
+sign \x7E6A 1235-1246-5
+sign \x7E6B 15-16-5
+sign \x7E6C 15-2346-5
+sign \x7E6D 13-2345-4
+sign \x7E6E 13-46-3
+sign \x7E6F 15-45-5
+sign \x7E70 125-146-4
+sign \x7E71 245-12346-3
+sign \x7E72 13-346-5
+sign \x7E73 13-246-4
+sign \x7E74 135-16-5
+sign \x7E75 12-1236-2
+sign \x7E76 16-5
+sign \x7E77 1345-146-2
+sign \x7E78 15-1246-5
+sign \x7E79 16-5
+sign \x7E7A 24-2456-4
+sign \x7E7B 15-1256-3
+sign \x7E7C 13-16-5
+sign \x7E7D 135-1456-3
+sign \x7E7E 245-2345-4
+sign \x7E7F 13-246-3
+sign \x7E80 1234-34-2
+sign \x7E81 15-256-3
+sign \x7E82 125-12456-4
+sign \x7E83 245-16-2
+sign \x7E84 1234-1356-2
+sign \x7E85 14-16-5
+sign \x7E86 134-126-5
+sign \x7E87 14-356-5
+sign \x7E88 15-346-2
+sign \x7E89 125-12456-4
+sign \x7E8A 123-456-5
+sign \x7E8B 234-3
+sign \x7E8C 15-1256-5
+sign \x7E8D 14-356-2
+sign \x7E8E 15-2345-3
+sign \x7E8F 12-1236-2
+sign \x7E91 14-34-2
+sign \x7E92 12-1236-2
+sign \x7E93 13456-3
+sign \x7E94 245-2456-2
+sign \x7E95 15-46-3
+sign \x7E96 15-2345-3
+sign \x7E97 125-1246-3
+sign \x7E98 125-12456-4
+sign \x7E99 14-25-5
+sign \x7E9A 15-16-4
+sign \x7E9B 145-146-5
+sign \x7E9C 14-1236-4
+sign \x7E9D 14-356-2
+sign \x7E9E 14-2345-5
+sign \x7E9F 15-156-3
+sign \x7EA0 13-234-3
+sign \x7EA1 1256-3
+sign \x7EA2 1235-12346-2
+sign \x7EA3 1-12356-5
+sign \x7EA4 15-2345-3
+sign \x7EA5 1235-2346-2
+sign \x7EA6 236-3
+sign \x7EA7 13-16-2
+sign \x7EA8 12456-2
+sign \x7EA9 123-456-5
+sign \x7EAA 13-16-5
+sign \x7EAB 1245-136-5
+sign \x7EAC 1246-4
+sign \x7EAD 256-2
+sign \x7EAE 1235-12346-2
+sign \x7EAF 12-123456-2
+sign \x7EB0 1234-16-3
+sign \x7EB1 24-345-3
+sign \x7EB2 13-1346-3
+sign \x7EB3 1345-345-5
+sign \x7EB4 1245-136-2
+sign \x7EB5 125-12346-5
+sign \x7EB6 14-123456-2
+sign \x7EB7 12345-136-3
+sign \x7EB8 1-156-4
+sign \x7EB9 123456-2
+sign \x7EBA 12345-1346-4
+sign \x7EBB 1-34-5
+sign \x7EBC 1456-4
+sign \x7EBD 1345-234-4
+sign \x7EBE 24-34-3
+sign \x7EBF 15-2345-5
+sign \x7EC0 13-1236-5
+sign \x7EC1 15-346-5
+sign \x7EC2 12345-34-2
+sign \x7EC3 14-2345-5
+sign \x7EC4 125-34-4
+sign \x7EC5 24-136-3
+sign \x7EC6 15-16-5
+sign \x7EC7 1-156-3
+sign \x7EC8 1-12346-3
+sign \x7EC9 1-12356-5
+sign \x7ECA 135-1236-5
+sign \x7ECB 12345-34-2
+sign \x7ECC 12-34-5
+sign \x7ECD 24-146-5
+sign \x7ECE 16-5
+sign \x7ECF 13-13456-3
+sign \x7ED0 145-2456-5
+sign \x7ED1 135-1346-4
+sign \x7ED2 1245-12346-2
+sign \x7ED3 13-346-2
+sign \x7ED4 123-34-5
+sign \x7ED5 1245-146-5
+sign \x7ED6 145-346-2
+sign \x7ED7 1235-1356-5
+sign \x7ED8 1235-1246-5
+sign \x7ED9 13-356-4
+sign \x7EDA 15-45-5
+sign \x7EDB 13-46-5
+sign \x7EDC 14-25-5
+sign \x7EDD 13-236-2
+sign \x7EDE 13-246-4
+sign \x7EDF 124-12346-4
+sign \x7EE0 13-1356-4
+sign \x7EE1 15-246-3
+sign \x7EE2 13-45-5
+sign \x7EE3 15-234-5
+sign \x7EE4 15-16-5
+sign \x7EE5 15-1246-3
+sign \x7EE6 124-146-3
+sign \x7EE7 13-16-5
+sign \x7EE8 124-16-2
+sign \x7EE9 13-16-3
+sign \x7EEA 15-1256-5
+sign \x7EEB 14-13456-2
+sign \x7EEC 13456-3
+sign \x7EED 15-1256-5
+sign \x7EEE 245-16-4
+sign \x7EEF 12345-356-3
+sign \x7EF0 12-25-5
+sign \x7EF1 1-1346-4
+sign \x7EF2 13-123456-4
+sign \x7EF3 24-1356-2
+sign \x7EF4 1246-2
+sign \x7EF5 134-2345-2
+sign \x7EF6 24-12356-5
+sign \x7EF7 135-1356-3
+sign \x7EF8 12-12356-2
+sign \x7EF9 124-146-2
+sign \x7EFA 14-234-4
+sign \x7EFB 245-45-4
+sign \x7EFC 125-12346-5
+sign \x7EFD 1-1236-5
+sign \x7EFE 12456-4
+sign \x7EFF 14-1256-5
+sign \x7F00 1-1246-5
+sign \x7F01 125-156-3
+sign \x7F02 123-2346-5
+sign \x7F03 15-46-3
+sign \x7F04 13-2345-3
+sign \x7F05 134-2345-4
+sign \x7F06 14-1236-4
+sign \x7F07 124-16-2
+sign \x7F08 134-246-4
+sign \x7F09 245-16-5
+sign \x7F0A 256-3
+sign \x7F0B 1235-1246-5
+sign \x7F0C 15-156-3
+sign \x7F0D 145-25-4
+sign \x7F0E 145-12456-5
+sign \x7F0F 1234-2345-2
+sign \x7F10 15-2345-5
+sign \x7F11 13-12356-3
+sign \x7F12 1-1246-5
+sign \x7F13 1235-12456-4
+sign \x7F14 145-16-5
+sign \x7F15 14-1256-4
+sign \x7F16 135-2345-3
+sign \x7F17 134-1456-2
+sign \x7F18 45-2
+sign \x7F19 13-1456-5
+sign \x7F1A 12345-34-2
+sign \x7F1B 1245-34-5
+sign \x7F1C 1-136-4
+sign \x7F1D 12345-1356-2
+sign \x7F1E 24-2356-3
+sign \x7F1F 13-146-4
+sign \x7F20 12-1236-2
+sign \x7F21 14-16-2
+sign \x7F22 16-5
+sign \x7F23 13-2345-3
+sign \x7F24 135-1456-3
+sign \x7F25 1234-246-4
+sign \x7F26 134-1236-5
+sign \x7F27 14-356-2
+sign \x7F28 13456-3
+sign \x7F29 15-25-3
+sign \x7F2A 134-12356-2
+sign \x7F2B 15-146-3
+sign \x7F2C 15-346-2
+sign \x7F2D 14-246-2
+sign \x7F2E 24-1236-5
+sign \x7F2F 125-1356-3
+sign \x7F30 13-46-3
+sign \x7F31 245-2345-4
+sign \x7F32 125-146-4
+sign \x7F33 15-45-5
+sign \x7F34 13-246-4
+sign \x7F35 125-12456-4
+sign \x7F36 12345-12356-4
+sign \x7F37 15-346-5
+sign \x7F38 13-1346-3
+sign \x7F39 12345-12356-4
+sign \x7F3A 245-236-3
+sign \x7F3B 12345-12356-4
+sign \x7F3D 135-126-3
+sign \x7F3E 1234-13456-2
+sign \x7F3F 15-46-5
+sign \x7F41 13-1346-3
+sign \x7F42 13456-3
+sign \x7F43 13456-3
+sign \x7F44 245-13456-5
+sign \x7F45 15-23456-5
+sign \x7F46 13-12456-5
+sign \x7F47 125-123456-3
+sign \x7F48 124-1236-2
+sign \x7F4A 245-16-5
+sign \x7F4B 12346-5
+sign \x7F4C 13456-3
+sign \x7F4D 14-356-2
+sign \x7F4E 124-1236-2
+sign \x7F4F 14-34-2
+sign \x7F50 13-12456-5
+sign \x7F51 456-4
+sign \x7F52 456-4
+sign \x7F53 13-1346-3
+sign \x7F54 456-4
+sign \x7F55 1235-1236-4
+sign \x7F57 14-25-2
+sign \x7F58 12345-34-2
+sign \x7F59 24-136-3
+sign \x7F5A 12345-345-2
+sign \x7F5B 13-34-3
+sign \x7F5C 1-34-4
+sign \x7F5D 13-346-3
+sign \x7F5E 134-146-2
+sign \x7F5F 13-34-4
+sign \x7F60 134-1456-2
+sign \x7F61 13-1346-3
+sign \x7F62 135-345-5
+sign \x7F63 13-35-5
+sign \x7F64 124-16-2
+sign \x7F65 13-45-5
+sign \x7F66 12345-34-2
+sign \x7F67 15-136-3
+sign \x7F68 2345-4
+sign \x7F69 1-146-5
+sign \x7F6A 125-1246-5
+sign \x7F6B 13-35-5
+sign \x7F6C 1-25-2
+sign \x7F6D 1256-5
+sign \x7F6E 1-156-5
+sign \x7F6F 1236-4
+sign \x7F70 12345-345-2
+sign \x7F71 1345-1236-4
+sign \x7F72 24-34-4
+sign \x7F73 15-156-3
+sign \x7F74 1234-16-2
+sign \x7F75 134-345-5
+sign \x7F76 14-234-4
+sign \x7F77 135-345-5
+sign \x7F78 12345-345-2
+sign \x7F79 14-16-2
+sign \x7F7A 1-146-3
+sign \x7F7B 1246-5
+sign \x7F7C 135-16-5
+sign \x7F7D 13-16-5
+sign \x7F7E 125-1356-3
+sign \x7F7F 12-12346-3
+sign \x7F80 14-234-4
+sign \x7F81 13-16-3
+sign \x7F82 13-45-5
+sign \x7F83 134-16-5
+sign \x7F84 1-146-5
+sign \x7F85 14-25-2
+sign \x7F86 1234-16-2
+sign \x7F87 13-16-3
+sign \x7F88 13-16-3
+sign \x7F89 14-12456-2
+sign \x7F8A 46-2
+sign \x7F8B 134-346-3
+sign \x7F8C 245-46-3
+sign \x7F8D 124-345-5
+sign \x7F8E 134-356-4
+sign \x7F8F 46-2
+sign \x7F90 234-4
+sign \x7F91 234-4
+sign \x7F92 12345-136-2
+sign \x7F93 135-345-3
+sign \x7F94 13-146-3
+sign \x7F95 46-5
+sign \x7F96 13-34-4
+sign \x7F97 245-46-3
+sign \x7F98 125-1346-3
+sign \x7F99 13-146-3
+sign \x7F9A 14-13456-2
+sign \x7F9B 16-5
+sign \x7F9C 1-34-5
+sign \x7F9D 145-16-3
+sign \x7F9E 15-234-3
+sign \x7F9F 245-2345-3
+sign \x7FA0 16-2
+sign \x7FA1 15-2345-5
+sign \x7FA2 1245-12346-2
+sign \x7FA3 245-256-2
+sign \x7FA4 245-256-2
+sign \x7FA5 245-2345-3
+sign \x7FA6 1235-12456-2
+sign \x7FA7 125-1246-3
+sign \x7FA8 15-2345-5
+sign \x7FA9 16-5
+sign \x7FAB 245-46-3
+sign \x7FAC 2345-2
+sign \x7FAD 1256-2
+sign \x7FAE 13-1356-3
+sign \x7FAF 13-346-2
+sign \x7FB0 124-1346-3
+sign \x7FB1 45-2
+sign \x7FB2 15-16-3
+sign \x7FB3 12345-1236-2
+sign \x7FB4 124-1236-4
+sign \x7FB5 12345-136-2
+sign \x7FB6 24-1236-3
+sign \x7FB7 14-2345-4
+sign \x7FB8 14-356-2
+sign \x7FB9 13-1356-3
+sign \x7FBA 1345-12356-2
+sign \x7FBB 245-46-5
+sign \x7FBC 12-1236-5
+sign \x7FBD 1256-4
+sign \x7FBE 13-12346-5
+sign \x7FBF 16-5
+sign \x7FC0 12-12346-2
+sign \x7FC1 12346-3
+sign \x7FC2 12345-136-3
+sign \x7FC3 1235-12346-2
+sign \x7FC4 12-156-5
+sign \x7FC5 12-156-5
+sign \x7FC6 245-1246-5
+sign \x7FC7 12345-34-2
+sign \x7FC8 15-23456-2
+sign \x7FC9 1234-136-4
+sign \x7FCA 16-5
+sign \x7FCB 14-345-3
+sign \x7FCC 16-5
+sign \x7FCD 1234-16-3
+sign \x7FCE 14-13456-2
+sign \x7FCF 14-234-5
+sign \x7FD0 1-156-5
+sign \x7FD1 245-1256-2
+sign \x7FD2 15-16-2
+sign \x7FD3 15-346-2
+sign \x7FD4 15-46-2
+sign \x7FD5 15-16-5
+sign \x7FD6 15-16-5
+sign \x7FD7 245-16-2
+sign \x7FD8 245-246-5
+sign \x7FD9 1235-1246-5
+sign \x7FDA 1235-1246-3
+sign \x7FDB 24-34-5
+sign \x7FDC 15-2346-5
+sign \x7FDD 1235-12346-2
+sign \x7FDE 13-46-3
+sign \x7FDF 1-2456-2
+sign \x7FE0 245-1246-5
+sign \x7FE1 12345-356-4
+sign \x7FE2 124-146-3
+sign \x7FE3 24-345-5
+sign \x7FE4 12-156-5
+sign \x7FE5 1-34-5
+sign \x7FE6 13-2345-4
+sign \x7FE7 15-45-3
+sign \x7FE8 24-156-5
+sign \x7FE9 1234-2345-3
+sign \x7FEA 125-12346-3
+sign \x7FEB 12456-5
+sign \x7FEC 1235-1246-3
+sign \x7FED 1235-12356-2
+sign \x7FEE 1235-2346-2
+sign \x7FEF 1235-34-2
+sign \x7FF0 1235-1236-5
+sign \x7FF1 146-2
+sign \x7FF2 1234-246-3
+sign \x7FF3 16-3
+sign \x7FF4 14-2345-2
+sign \x7FF5 245-1256-2
+sign \x7FF7 14-1456-2
+sign \x7FF8 1234-136-4
+sign \x7FF9 245-246-5
+sign \x7FFA 146-2
+sign \x7FFB 12345-1236-3
+sign \x7FFC 16-5
+sign \x7FFD 1235-1246-5
+sign \x7FFE 15-45-3
+sign \x7FFF 145-146-5
+sign \x8000 246-5
+sign \x8001 14-146-4
+sign \x8003 123-146-4
+sign \x8004 134-146-5
+sign \x8005 1-2346-4
+sign \x8006 245-16-2
+sign \x8007 13-12356-4
+sign \x8008 13-12356-4
+sign \x8009 13-12356-4
+sign \x800A 145-346-5
+sign \x800B 145-346-2
+sign \x800C 156-2
+sign \x800D 24-35-4
+sign \x800E 1245-12456-4
+sign \x800F 156-2
+sign \x8010 1345-2456-5
+sign \x8011 1-12456-3
+sign \x8012 14-356-4
+sign \x8013 124-13456-3
+sign \x8014 125-156-4
+sign \x8015 13-1356-3
+sign \x8016 12-146-5
+sign \x8017 1235-146-5
+sign \x8018 256-2
+sign \x8019 1234-345-2
+sign \x801A 1234-16-3
+sign \x801B 12-156-2
+sign \x801C 15-156-5
+sign \x801D 12-34-2
+sign \x801E 13-23456-3
+sign \x801F 13-1256-5
+sign \x8020 1235-2346-2
+sign \x8021 12-34-2
+sign \x8022 14-146-5
+sign \x8023 14-123456-4
+sign \x8024 13-16-2
+sign \x8025 124-1346-4
+sign \x8026 12356-4
+sign \x8027 14-12356-2
+sign \x8028 1245-34-5
+sign \x8029 13-12356-3
+sign \x802A 1234-1346-4
+sign \x802B 125-2346-2
+sign \x802C 14-12356-2
+sign \x802D 13-16-3
+sign \x802E 14-146-5
+sign \x802F 1235-25-5
+sign \x8030 234-3
+sign \x8031 134-126-5
+sign \x8032 1235-2356-2
+sign \x8033 156-4
+sign \x8034 1345-346-5
+sign \x8035 145-13456-4
+sign \x8036 346-3
+sign \x8037 145-345-3
+sign \x8038 15-12346-4
+sign \x8039 245-1456-2
+sign \x803A 256-2
+sign \x803B 12-156-4
+sign \x803C 145-1236-3
+sign \x803D 145-1236-3
+sign \x803E 1235-12346-2
+sign \x803F 13-1356-4
+sign \x8040 1-156-2
+sign \x8042 1345-346-5
+sign \x8043 145-1236-3
+sign \x8044 1-136-4
+sign \x8045 12-2346-5
+sign \x8046 14-13456-2
+sign \x8047 1-1356-3
+sign \x8048 13-246-3
+sign \x8049 35-3
+sign \x804A 14-246-2
+sign \x804B 14-12346-2
+sign \x804C 1-156-2
+sign \x804D 1345-13456-2
+sign \x804E 124-246-3
+sign \x804F 1345-1256-5
+sign \x8050 23456-5
+sign \x8051 145-346-2
+sign \x8052 13-35-3
+sign \x8053 15-1256-5
+sign \x8054 14-2345-2
+sign \x8055 1235-146-5
+sign \x8056 24-1356-5
+sign \x8057 14-346-5
+sign \x8058 1234-1456-5
+sign \x8059 13-13456-3
+sign \x805A 13-1256-5
+sign \x805B 135-16-5
+sign \x805C 145-16-4
+sign \x805D 13-25-2
+sign \x805E 123456-2
+sign \x805F 15-1256-5
+sign \x8060 1234-13456-2
+sign \x8061 245-12346-3
+sign \x8064 124-13456-2
+sign \x8065 1256-4
+sign \x8066 245-12346-3
+sign \x8067 123-1246-2
+sign \x8069 123-1246-5
+sign \x806A 245-12346-3
+sign \x806B 14-2345-2
+sign \x806C 12346-4
+sign \x806D 123-1246-5
+sign \x806E 14-2345-2
+sign \x806F 14-2345-2
+sign \x8070 245-12346-3
+sign \x8071 146-2
+sign \x8072 24-1356-3
+sign \x8073 15-12346-4
+sign \x8074 124-13456-3
+sign \x8075 123-1246-5
+sign \x8076 1345-346-5
+sign \x8077 1-156-2
+sign \x8078 145-1236-3
+sign \x8079 1345-13456-2
+sign \x807B 13-16-3
+sign \x807C 124-13456-3
+sign \x807D 124-13456-3
+sign \x807E 14-12346-2
+sign \x807F 1256-5
+sign \x8080 1256-5
+sign \x8081 1-146-5
+sign \x8082 15-156-5
+sign \x8083 15-34-5
+sign \x8084 16-5
+sign \x8085 15-34-5
+sign \x8086 15-156-5
+sign \x8087 1-146-5
+sign \x8088 1-146-5
+sign \x8089 1245-12356-5
+sign \x808A 16-5
+sign \x808B 14-2346-5
+sign \x808C 13-16-3
+sign \x808D 245-234-2
+sign \x808E 123-136-4
+sign \x808F 245-146-5
+sign \x8090 13-2346-3
+sign \x8091 145-16-5
+sign \x8092 1235-12456-5
+sign \x8093 1235-456-3
+sign \x8094 16-4
+sign \x8095 1245-136-5
+sign \x8096 15-246-5
+sign \x8097 1245-34-4
+sign \x8098 1-12356-4
+sign \x8099 45-3
+sign \x809A 145-34-5
+sign \x809B 13-1346-3
+sign \x809C 1245-12346-2
+sign \x809D 13-1236-3
+sign \x809E 12-345-3
+sign \x809F 25-5
+sign \x80A0 12-1346-2
+sign \x80A1 13-34-4
+sign \x80A2 1-156-3
+sign \x80A3 1235-1236-2
+sign \x80A4 12345-34-3
+sign \x80A5 12345-356-2
+sign \x80A6 12345-136-2
+sign \x80A7 1234-356-3
+sign \x80A8 1234-1346-5
+sign \x80A9 13-2345-3
+sign \x80AA 12345-1346-2
+sign \x80AB 124-123456-2
+sign \x80AC 234-2
+sign \x80AD 1345-345-5
+sign \x80AE 1346-3
+sign \x80AF 123-136-4
+sign \x80B0 1245-1236-2
+sign \x80B1 13-12346-3
+sign \x80B2 1256-5
+sign \x80B3 123456-4
+sign \x80B4 246-2
+sign \x80B5 245-16-2
+sign \x80B6 1234-16-2
+sign \x80B7 245-2345-3
+sign \x80B8 15-16-5
+sign \x80B9 15-16-3
+sign \x80BA 12345-356-5
+sign \x80BB 123-136-4
+sign \x80BC 13-13456-4
+sign \x80BD 124-2456-5
+sign \x80BE 24-136-5
+sign \x80BF 1-12346-4
+sign \x80C0 1-1346-5
+sign \x80C1 15-346-2
+sign \x80C2 24-136-3
+sign \x80C3 1246-5
+sign \x80C4 1-12356-5
+sign \x80C5 145-346-2
+sign \x80C6 145-1236-4
+sign \x80C7 12345-356-5
+sign \x80C8 135-345-2
+sign \x80C9 135-126-2
+sign \x80CA 245-1256-2
+sign \x80CB 124-2345-2
+sign \x80CC 135-356-5
+sign \x80CD 13-34-3
+sign \x80CE 124-2456-3
+sign \x80CF 125-156-4
+sign \x80D0 123-34-3
+sign \x80D1 1-156-3
+sign \x80D2 1345-16-5
+sign \x80D3 1234-13456-2
+sign \x80D4 125-156-5
+sign \x80D5 12345-34-3
+sign \x80D6 1234-1346-5
+sign \x80D7 1-136-4
+sign \x80D8 15-2345-2
+sign \x80D9 125-34-5
+sign \x80DA 1234-356-3
+sign \x80DB 13-23456-4
+sign \x80DC 15-13456-3
+sign \x80DD 1-156-3
+sign \x80DE 135-146-3
+sign \x80DF 134-34-4
+sign \x80E0 245-1256-3
+sign \x80E1 1235-34-2
+sign \x80E2 123-2346-3
+sign \x80E3 12-156-4
+sign \x80E4 1456-5
+sign \x80E5 15-1256-3
+sign \x80E6 46-3
+sign \x80E7 14-12346-2
+sign \x80E8 145-12346-5
+sign \x80E9 123-345-4
+sign \x80EA 14-34-2
+sign \x80EB 13-13456-5
+sign \x80EC 1345-34-4
+sign \x80ED 2345-3
+sign \x80EE 135-1346-4
+sign \x80EF 123-35-5
+sign \x80F0 16-2
+sign \x80F1 13-456-3
+sign \x80F2 13-2456-3
+sign \x80F3 13-2346-3
+sign \x80F4 145-12346-5
+sign \x80F5 12-156-3
+sign \x80F6 13-246-3
+sign \x80F7 15-235-3
+sign \x80F8 15-235-3
+sign \x80F9 156-2
+sign \x80FA 1236-3
+sign \x80FB 15-13456-2
+sign \x80FC 1234-2345-2
+sign \x80FD 1345-1356-2
+sign \x80FE 125-156-5
+sign \x8100 12-1356-2
+sign \x8101 124-246-5
+sign \x8102 1-156-3
+sign \x8103 245-1246-5
+sign \x8104 134-356-2
+sign \x8105 15-346-2
+sign \x8106 245-1246-5
+sign \x8107 15-346-2
+sign \x8108 134-126-5
+sign \x8109 134-126-5
+sign \x810A 13-16-4
+sign \x810D 123-2356-5
+sign \x810E 15-345-5
+sign \x810F 125-1346-5
+sign \x8110 245-16-2
+sign \x8111 1345-146-4
+sign \x8112 134-16-4
+sign \x8113 1345-12346-2
+sign \x8114 14-12456-2
+sign \x8115 12456-5
+sign \x8116 135-126-2
+sign \x8117 123456-4
+sign \x8118 13-12456-4
+sign \x8119 245-234-2
+sign \x811A 13-246-4
+sign \x811B 13-13456-5
+sign \x811C 1245-12356-2
+sign \x811D 1235-1356-3
+sign \x811E 245-25-4
+sign \x811F 14-346-5
+sign \x8120 24-1236-3
+sign \x8121 124-13456-4
+sign \x8122 134-356-2
+sign \x8123 12-123456-2
+sign \x8124 24-136-5
+sign \x8125 15-346-2
+sign \x8126 124-2346-5
+sign \x8127 13-45-3
+sign \x8128 245-34-5
+sign \x8129 15-234-3
+sign \x812A 15-1456-5
+sign \x812B 124-25-3
+sign \x812C 1234-146-3
+sign \x812D 12-1356-2
+sign \x812E 1345-356-4
+sign \x812F 1234-34-2
+sign \x8130 145-12356-5
+sign \x8131 124-25-3
+sign \x8132 1345-246-5
+sign \x8134 1234-16-4
+sign \x8135 13-34-4
+sign \x8136 14-25-2
+sign \x8137 14-16-5
+sign \x8138 14-2345-4
+sign \x8139 1-1346-5
+sign \x813A 15-1246-5
+sign \x813B 13-346-2
+sign \x813C 14-46-4
+sign \x813D 24-1246-2
+sign \x813E 1234-16-2
+sign \x813F 135-246-3
+sign \x8140 14-123456-2
+sign \x8141 1234-2345-2
+sign \x8142 13-25-5
+sign \x8143 123-1246-5
+sign \x8144 1-1246-3
+sign \x8145 145-1236-5
+sign \x8146 124-2345-4
+sign \x8147 1345-356-4
+sign \x8148 13-13456-3
+sign \x8149 13-346-3
+sign \x814A 15-16-2
+sign \x814B 16-5
+sign \x814C 2345-3
+sign \x814D 1245-136-4
+sign \x814E 24-136-5
+sign \x814F 12-25-5
+sign \x8150 12345-34-4
+sign \x8151 12345-34-4
+sign \x8152 13-1256-3
+sign \x8153 12345-356-2
+sign \x8154 245-46-3
+sign \x8155 12456-5
+sign \x8156 145-12346-5
+sign \x8157 1234-16-2
+sign \x8158 13-25-2
+sign \x8159 125-12346-3
+sign \x815A 145-13456-5
+sign \x815B 25-5
+sign \x815C 134-356-2
+sign \x815D 1245-12456-4
+sign \x815E 1-12456-5
+sign \x815F 1-156-5
+sign \x8160 245-12356-5
+sign \x8161 14-25-2
+sign \x8162 12356-4
+sign \x8163 145-16-5
+sign \x8164 1236-3
+sign \x8165 15-13456-3
+sign \x8166 1345-146-4
+sign \x8167 24-34-5
+sign \x8168 12-12456-4
+sign \x8169 1345-1236-4
+sign \x816A 256-5
+sign \x816B 1-12346-4
+sign \x816C 1245-12356-2
+sign \x816D 2346-5
+sign \x816E 15-2456-3
+sign \x816F 124-34-2
+sign \x8170 246-3
+sign \x8171 13-2345-5
+sign \x8172 1246-4
+sign \x8173 13-246-4
+sign \x8174 1256-2
+sign \x8175 13-23456-3
+sign \x8176 145-12456-5
+sign \x8177 135-16-5
+sign \x8178 12-1346-2
+sign \x8179 12345-34-5
+sign \x817A 15-2345-5
+sign \x817B 1345-16-5
+sign \x817C 134-2345-4
+sign \x817D 35-5
+sign \x817E 124-1356-2
+sign \x817F 124-1246-4
+sign \x8180 135-1346-4
+sign \x8181 245-2345-3
+sign \x8182 14-1256-4
+sign \x8183 35-5
+sign \x8184 15-12356-5
+sign \x8185 124-1346-2
+sign \x8186 15-34-5
+sign \x8187 1-1246-5
+sign \x8188 13-2346-2
+sign \x8189 16-5
+sign \x818A 135-126-2
+sign \x818B 14-246-2
+sign \x818C 13-16-2
+sign \x818D 1234-16-2
+sign \x818E 15-346-2
+sign \x818F 13-146-3
+sign \x8190 14-1256-4
+sign \x8191 135-1456-5
+sign \x8193 12-1346-2
+sign \x8194 14-34-5
+sign \x8195 13-25-2
+sign \x8196 1234-1346-3
+sign \x8197 12-2356-2
+sign \x8198 135-246-3
+sign \x8199 13-46-4
+sign \x819A 12345-34-3
+sign \x819B 124-1346-2
+sign \x819C 134-126-5
+sign \x819D 15-16-3
+sign \x819E 1-12456-4
+sign \x819F 14-1256-5
+sign \x81A0 13-246-3
+sign \x81A1 13456-5
+sign \x81A2 14-1256-2
+sign \x81A3 1-156-5
+sign \x81A5 12-123456-3
+sign \x81A6 14-2345-4
+sign \x81A7 124-12346-2
+sign \x81A8 1234-1356-2
+sign \x81A9 1345-16-5
+sign \x81AA 1-345-5
+sign \x81AB 14-246-2
+sign \x81AC 245-1246-5
+sign \x81AD 13-1246-3
+sign \x81AE 15-246-3
+sign \x81AF 124-1356-3
+sign \x81B0 12345-1236-2
+sign \x81B1 1-156-2
+sign \x81B2 13-246-3
+sign \x81B3 24-1236-5
+sign \x81B4 1235-34-3
+sign \x81B5 245-1246-5
+sign \x81B6 1245-123456-5
+sign \x81B7 15-46-3
+sign \x81B8 15-1246-4
+sign \x81B9 12345-136-5
+sign \x81BA 13456-3
+sign \x81BB 124-1236-4
+sign \x81BC 1-35-3
+sign \x81BD 145-1236-4
+sign \x81BE 123-2356-5
+sign \x81BF 1345-12346-2
+sign \x81C0 124-123456-2
+sign \x81C1 14-2345-2
+sign \x81C2 135-356-5
+sign \x81C3 235-4
+sign \x81C4 13-236-2
+sign \x81C5 12-34-5
+sign \x81C6 16-5
+sign \x81C7 13-45-4
+sign \x81C8 14-345-5
+sign \x81C9 14-2345-4
+sign \x81CA 15-146-3
+sign \x81CB 124-123456-2
+sign \x81CC 13-34-4
+sign \x81CD 245-16-2
+sign \x81CE 245-1246-5
+sign \x81CF 135-1456-5
+sign \x81D0 15-256-3
+sign \x81D1 1245-34-2
+sign \x81D2 1235-25-5
+sign \x81D3 125-1346-5
+sign \x81D4 15-2345-5
+sign \x81D5 135-246-3
+sign \x81D6 15-13456-5
+sign \x81D7 123-12456-3
+sign \x81D8 14-345-5
+sign \x81D9 2345-3
+sign \x81DA 14-34-2
+sign \x81DB 1235-25-5
+sign \x81DC 125-1236-3
+sign \x81DD 14-25-4
+sign \x81DE 245-1256-2
+sign \x81DF 125-1346-5
+sign \x81E0 14-12456-2
+sign \x81E1 1345-16-2
+sign \x81E2 125-1236-3
+sign \x81E3 12-136-2
+sign \x81E4 245-2345-3
+sign \x81E5 25-5
+sign \x81E6 13-456-5
+sign \x81E7 125-1346-3
+sign \x81E8 14-1456-2
+sign \x81E9 13-456-5
+sign \x81EA 125-156-5
+sign \x81EB 13-246-4
+sign \x81EC 1345-346-5
+sign \x81ED 12-12356-5
+sign \x81EE 13-16-5
+sign \x81EF 13-146-3
+sign \x81F0 12-12356-5
+sign \x81F1 134-2345-2
+sign \x81F2 1345-346-5
+sign \x81F3 1-156-5
+sign \x81F4 1-156-5
+sign \x81F5 13-2346-2
+sign \x81F6 13-2345-5
+sign \x81F7 145-346-2
+sign \x81F8 1-156-5
+sign \x81F9 15-234-3
+sign \x81FA 124-2456-2
+sign \x81FB 1-136-3
+sign \x81FC 13-234-5
+sign \x81FD 15-2345-5
+sign \x81FE 1256-2
+sign \x81FF 12-345-3
+sign \x8200 246-4
+sign \x8201 1256-2
+sign \x8202 12-12346-3
+sign \x8203 15-16-5
+sign \x8204 15-16-5
+sign \x8205 13-234-5
+sign \x8206 1256-2
+sign \x8207 1256-4
+sign \x8208 15-13456-3
+sign \x8209 13-1256-4
+sign \x820A 13-234-5
+sign \x820B 15-1456-5
+sign \x820C 24-2346-2
+sign \x820D 24-2346-5
+sign \x820F 13-234-4
+sign \x8210 24-156-5
+sign \x8211 124-1236-3
+sign \x8212 24-34-3
+sign \x8213 24-156-5
+sign \x8214 124-2345-4
+sign \x8215 124-1236-5
+sign \x8216 1234-34-5
+sign \x8217 1234-34-5
+sign \x8218 13-12456-4
+sign \x8219 1235-35-5
+sign \x821A 124-1236-3
+sign \x821B 12-12456-4
+sign \x821C 24-123456-5
+sign \x821D 15-23456-2
+sign \x821E 34-4
+sign \x821F 1-12356-3
+sign \x8220 145-146-3
+sign \x8221 13-1346-3
+sign \x8222 24-1236-3
+sign \x8223 16-4
+sign \x8225 1234-345-3
+sign \x8226 124-2456-5
+sign \x8227 12345-1236-2
+sign \x8228 135-1236-4
+sign \x8229 12-12456-2
+sign \x822A 1235-1346-2
+sign \x822B 12345-1346-4
+sign \x822C 135-1236-3
+sign \x822D 245-236-5
+sign \x822F 1-12346-3
+sign \x8230 13-2345-5
+sign \x8231 245-1346-3
+sign \x8232 14-13456-2
+sign \x8233 1-34-2
+sign \x8234 1-2346-2
+sign \x8235 145-25-5
+sign \x8236 135-126-2
+sign \x8237 15-2345-2
+sign \x8238 13-2346-4
+sign \x8239 12-12456-2
+sign \x823A 13-23456-2
+sign \x823B 14-34-2
+sign \x823C 245-235-2
+sign \x823D 1234-1346-2
+sign \x823E 15-16-3
+sign \x823F 135-345-1
+sign \x8240 12345-34-2
+sign \x8241 125-146-5
+sign \x8242 12345-1356-2
+sign \x8243 14-16-2
+sign \x8244 24-146-3
+sign \x8245 1256-2
+sign \x8246 14-1346-2
+sign \x8247 124-13456-4
+sign \x8249 1246-4
+sign \x824A 135-126-2
+sign \x824B 134-1356-4
+sign \x824C 1345-2345-5
+sign \x824D 13-1256-3
+sign \x824E 1235-456-2
+sign \x824F 24-12356-4
+sign \x8250 125-12346-3
+sign \x8251 135-2345-5
+sign \x8252 134-146-5
+sign \x8253 145-346-2
+sign \x8255 135-1346-5
+sign \x8256 12-345-3
+sign \x8257 16-5
+sign \x8258 15-146-3
+sign \x8259 245-1346-3
+sign \x825A 245-146-2
+sign \x825B 14-12356-2
+sign \x825C 145-2456-5
+sign \x825E 246-5
+sign \x825F 124-12346-2
+sign \x8261 145-1346-3
+sign \x8262 245-46-2
+sign \x8263 14-34-4
+sign \x8264 16-4
+sign \x8265 13-346-5
+sign \x8266 13-2345-5
+sign \x8267 1235-25-5
+sign \x8268 134-1356-2
+sign \x8269 245-16-2
+sign \x826A 14-34-4
+sign \x826B 14-34-2
+sign \x826C 12-1236-2
+sign \x826D 24-456-3
+sign \x826E 13-136-5
+sign \x826F 14-46-2
+sign \x8270 13-2345-3
+sign \x8271 13-2345-3
+sign \x8272 15-2346-5
+sign \x8273 2345-5
+sign \x8274 12345-34-2
+sign \x8275 1234-13456-3
+sign \x8276 2345-5
+sign \x8277 2345-5
+sign \x8278 245-146-4
+sign \x827A 16-5
+sign \x827B 14-2346-5
+sign \x827C 124-13456-3
+sign \x827D 245-234-2
+sign \x827E 2456-5
+sign \x827F 1245-1356-2
+sign \x8280 124-246-2
+sign \x8281 13-246-3
+sign \x8282 13-346-2
+sign \x8283 1234-1356-2
+sign \x8284 12456-2
+sign \x8285 16-5
+sign \x8286 12-2456-3
+sign \x8287 134-2345-2
+sign \x8288 134-346-3
+sign \x8289 13-1236-3
+sign \x828A 245-2345-3
+sign \x828B 1256-5
+sign \x828C 1256-5
+sign \x828D 24-146-2
+sign \x828E 245-235-3
+sign \x828F 124-34-4
+sign \x8290 1235-34-5
+sign \x8291 245-16-4
+sign \x8292 134-1346-2
+sign \x8293 125-156-5
+sign \x8294 1235-1246-5
+sign \x8295 15-1246-3
+sign \x8296 1-156-5
+sign \x8297 15-46-3
+sign \x8298 1234-16-2
+sign \x8299 12345-34-2
+sign \x829A 124-123456-2
+sign \x829B 1246-4
+sign \x829C 34-2
+sign \x829D 1-156-3
+sign \x829E 245-16-4
+sign \x829F 24-1236-3
+sign \x82A0 123456-2
+sign \x82A1 245-2345-5
+sign \x82A2 1245-136-2
+sign \x82A3 12345-12356-2
+sign \x82A4 123-12356-3
+sign \x82A5 13-346-5
+sign \x82A6 14-34-2
+sign \x82A7 15-1256-5
+sign \x82A8 13-16-2
+sign \x82A9 245-1456-2
+sign \x82AA 245-16-2
+sign \x82AB 45-2
+sign \x82AC 12345-136-3
+sign \x82AD 135-345-3
+sign \x82AE 1245-1246-5
+sign \x82AF 15-1456-3
+sign \x82B0 13-16-5
+sign \x82B1 1235-35-3
+sign \x82B2 1235-35-3
+sign \x82B3 12345-1346-3
+sign \x82B4 34-5
+sign \x82B5 13-236-2
+sign \x82B6 13-12356-3
+sign \x82B7 1-156-4
+sign \x82B8 256-2
+sign \x82B9 245-1456-2
+sign \x82BA 146-4
+sign \x82BB 12-34-2
+sign \x82BC 134-146-5
+sign \x82BD 23456-2
+sign \x82BE 12345-356-5
+sign \x82BF 1245-1356-5
+sign \x82C0 1235-1346-2
+sign \x82C1 125-12346-4
+sign \x82C2 1456-2
+sign \x82C3 234-4
+sign \x82C4 135-2345-5
+sign \x82C5 16-5
+sign \x82C7 1246-4
+sign \x82C8 14-16-5
+sign \x82C9 1234-16-4
+sign \x82CA 2346-5
+sign \x82CB 15-2345-5
+sign \x82CC 12-1346-2
+sign \x82CD 245-1346-3
+sign \x82CE 1-34-5
+sign \x82CF 15-34-3
+sign \x82D0 16-2
+sign \x82D1 45-5
+sign \x82D2 1245-1236-4
+sign \x82D3 14-13456-2
+sign \x82D4 124-2456-2
+sign \x82D5 124-246-2
+sign \x82D6 145-16-2
+sign \x82D7 134-246-2
+sign \x82D8 245-235-4
+sign \x82D9 14-16-5
+sign \x82DA 235-5
+sign \x82DB 123-2346-3
+sign \x82DC 134-34-5
+sign \x82DD 1234-356-5
+sign \x82DE 135-146-3
+sign \x82DF 13-12356-4
+sign \x82E0 134-1456-2
+sign \x82E1 16-4
+sign \x82E2 16-4
+sign \x82E3 13-1256-5
+sign \x82E4 1234-16-4
+sign \x82E5 1245-25-5
+sign \x82E6 123-34-4
+sign \x82E7 1-34-5
+sign \x82E8 1345-16-4
+sign \x82E9 135-126-2
+sign \x82EA 135-13456-4
+sign \x82EB 24-1236-3
+sign \x82EC 234-2
+sign \x82ED 246-4
+sign \x82EE 15-2345-3
+sign \x82EF 135-136-4
+sign \x82F0 1235-12346-2
+sign \x82F1 13456-3
+sign \x82F2 1-345-4
+sign \x82F3 145-12346-3
+sign \x82F4 13-1256-2
+sign \x82F5 145-346-2
+sign \x82F6 1345-346-2
+sign \x82F7 13-1236-3
+sign \x82F8 1235-34-3
+sign \x82F9 1234-13456-2
+sign \x82FA 134-356-2
+sign \x82FB 12345-34-2
+sign \x82FC 24-1356-3
+sign \x82FD 13-34-3
+sign \x82FE 135-16-5
+sign \x82FF 1246-5
+sign \x8300 12345-34-2
+sign \x8301 1-25-2
+sign \x8302 134-146-5
+sign \x8303 12345-1236-5
+sign \x8304 245-346-2
+sign \x8305 134-146-2
+sign \x8306 134-146-2
+sign \x8307 135-345-2
+sign \x8308 125-156-4
+sign \x8309 134-126-5
+sign \x830A 125-156-3
+sign \x830B 145-16-4
+sign \x830C 12-156-2
+sign \x830D 13-12356-4
+sign \x830E 13-13456-3
+sign \x830F 14-12346-2
+sign \x8311 1345-246-4
+sign \x8313 15-236-2
+sign \x8314 13456-2
+sign \x8315 245-235-2
+sign \x8316 13-2346-2
+sign \x8317 134-13456-2
+sign \x8318 14-16-5
+sign \x8319 1245-12346-2
+sign \x831A 1456-5
+sign \x831B 13-136-5
+sign \x831C 245-2345-5
+sign \x831D 12-2456-4
+sign \x831E 12-136-2
+sign \x831F 1256-5
+sign \x8320 15-234-3
+sign \x8321 125-156-5
+sign \x8322 14-346-5
+sign \x8323 34-2
+sign \x8324 13-16-5
+sign \x8325 123-1246-3
+sign \x8326 245-2346-5
+sign \x8327 13-2345-4
+sign \x8328 245-156-2
+sign \x8329 1235-12356-5
+sign \x832A 13-456-3
+sign \x832B 134-1346-2
+sign \x832C 125-156-3
+sign \x832D 13-246-3
+sign \x832E 13-246-3
+sign \x832F 12345-34-2
+sign \x8330 1256-2
+sign \x8331 1-34-3
+sign \x8332 125-156-3
+sign \x8333 13-46-3
+sign \x8334 1235-1246-2
+sign \x8335 1456-3
+sign \x8336 12-345-2
+sign \x8337 12345-345-2
+sign \x8338 1245-12346-2
+sign \x8339 1245-34-2
+sign \x833A 12-12346-3
+sign \x833B 134-1346-4
+sign \x833C 124-12346-2
+sign \x833D 1-12346-5
+sign \x833F 1-34-2
+sign \x8340 15-256-2
+sign \x8341 1235-12456-2
+sign \x8342 123-35-3
+sign \x8343 245-45-2
+sign \x8344 13-2456-3
+sign \x8345 145-345-2
+sign \x8346 13-13456-3
+sign \x8347 15-13456-5
+sign \x8348 12-12456-4
+sign \x8349 245-146-4
+sign \x834A 13-13456-3
+sign \x834B 156-2
+sign \x834C 1236-5
+sign \x834D 245-246-2
+sign \x834E 12-156-2
+sign \x834F 1245-136-4
+sign \x8350 13-2345-5
+sign \x8351 124-16-2
+sign \x8352 1235-456-3
+sign \x8353 1234-13456-2
+sign \x8354 14-16-5
+sign \x8355 13-1456-3
+sign \x8356 14-146-4
+sign \x8357 24-34-5
+sign \x8358 1-456-3
+sign \x8359 145-345-2
+sign \x835A 13-23456-2
+sign \x835B 1245-146-2
+sign \x835C 135-16-5
+sign \x835D 125-2346-2
+sign \x835E 245-246-2
+sign \x835F 1235-1246-5
+sign \x8360 13-16-5
+sign \x8361 145-1346-5
+sign \x8363 1245-12346-2
+sign \x8364 1235-123456-3
+sign \x8365 13456-2
+sign \x8366 14-25-5
+sign \x8367 13456-2
+sign \x8368 15-256-2
+sign \x8369 13-1456-5
+sign \x836A 15-123456-3
+sign \x836B 1456-5
+sign \x836C 134-2456-4
+sign \x836D 1235-12346-2
+sign \x836E 1-12356-5
+sign \x836F 246-5
+sign \x8370 145-34-5
+sign \x8371 1246-4
+sign \x8372 12-34-5
+sign \x8373 145-12356-5
+sign \x8374 12345-34-3
+sign \x8375 1245-136-4
+sign \x8376 1456-2
+sign \x8377 1235-2346-2
+sign \x8378 135-126-2
+sign \x8379 135-34-5
+sign \x837A 256-4
+sign \x837B 145-16-2
+sign \x837C 124-34-2
+sign \x837D 15-1246-3
+sign \x837E 15-1246-3
+sign \x837F 12-1356-2
+sign \x8380 12-136-2
+sign \x8381 34-2
+sign \x8382 135-346-2
+sign \x8383 15-16-3
+sign \x8384 13-1356-4
+sign \x8385 14-16-5
+sign \x8386 1234-34-2
+sign \x8387 1-34-5
+sign \x8388 134-126-5
+sign \x8389 14-16-5
+sign \x838A 1-456-3
+sign \x838B 125-25-2
+sign \x838C 145-25-2
+sign \x838D 245-234-2
+sign \x838E 24-345-3
+sign \x838F 15-25-3
+sign \x8390 12-136-2
+sign \x8391 12345-1356-3
+sign \x8392 13-1256-4
+sign \x8393 134-356-2
+sign \x8394 134-1356-2
+sign \x8395 15-13456-5
+sign \x8396 13-13456-3
+sign \x8397 12-2346-3
+sign \x8398 15-1456-3
+sign \x8399 13-256-3
+sign \x839A 2345-2
+sign \x839B 124-13456-2
+sign \x839C 145-246-5
+sign \x839D 245-25-5
+sign \x839E 12456-4
+sign \x839F 1235-1236-5
+sign \x83A0 234-4
+sign \x83A1 245-25-5
+sign \x83A2 13-23456-2
+sign \x83A3 456-2
+sign \x83A4 15-25-3
+sign \x83A5 1345-234-4
+sign \x83A6 24-146-3
+sign \x83A7 15-2345-5
+sign \x83A8 14-1346-2
+sign \x83A9 1234-246-4
+sign \x83AA 2346-2
+sign \x83AB 134-126-5
+sign \x83AC 123456-5
+sign \x83AD 13-346-2
+sign \x83AE 1345-1236-2
+sign \x83AF 134-34-5
+sign \x83B0 135-345-1
+sign \x83B1 14-2456-2
+sign \x83B2 14-2345-2
+sign \x83B3 24-156-2
+sign \x83B4 25-3
+sign \x83B6 14-2345-5
+sign \x83B7 1235-25-5
+sign \x83B8 234-2
+sign \x83B9 13456-2
+sign \x83BA 13456-3
+sign \x83BC 12-123456-2
+sign \x83BD 134-1346-4
+sign \x83BE 134-1346-4
+sign \x83BF 245-156-5
+sign \x83C0 12456-4
+sign \x83C1 13-13456-3
+sign \x83C2 145-16-3
+sign \x83C3 245-1256-2
+sign \x83C4 145-12346-3
+sign \x83C5 13-2345-3
+sign \x83C6 125-12356-3
+sign \x83C7 13-34-3
+sign \x83C8 14-345-3
+sign \x83C9 14-34-5
+sign \x83CA 13-1256-2
+sign \x83CB 1246-5
+sign \x83CC 13-256-5
+sign \x83CD 1345-346-5
+sign \x83CE 123-123456-3
+sign \x83CF 1235-2346-2
+sign \x83D0 1234-34-2
+sign \x83D1 125-156-3
+sign \x83D2 13-146-4
+sign \x83D3 13-25-4
+sign \x83D4 135-126-2
+sign \x83D5 14-123456-2
+sign \x83D6 12-1346-3
+sign \x83D7 12-12356-2
+sign \x83D8 15-12346-3
+sign \x83D9 1-1246-5
+sign \x83DA 1-1236-5
+sign \x83DB 134-136-2
+sign \x83DC 245-2456-5
+sign \x83DD 135-345-2
+sign \x83DE 14-16-2
+sign \x83DF 124-34-5
+sign \x83E0 135-126-3
+sign \x83E1 1235-1236-5
+sign \x83E2 135-146-5
+sign \x83E3 245-1456-5
+sign \x83E4 13-45-4
+sign \x83E5 15-16-3
+sign \x83E6 245-1456-2
+sign \x83E7 145-16-4
+sign \x83E8 13-346-3
+sign \x83E9 1234-34-2
+sign \x83EA 145-1346-5
+sign \x83EB 13-1456-4
+sign \x83EC 1-146-4
+sign \x83ED 124-2456-2
+sign \x83EE 13-1356-3
+sign \x83EF 1235-35-2
+sign \x83F0 13-34-3
+sign \x83F1 14-13456-2
+sign \x83F2 12345-356-3
+sign \x83F3 13-1456-3
+sign \x83F4 1236-3
+sign \x83F5 456-4
+sign \x83F6 135-1356-4
+sign \x83F7 1-12356-4
+sign \x83F8 2345-3
+sign \x83F9 13-1256-3
+sign \x83FA 13-2345-3
+sign \x83FB 14-1456-4
+sign \x83FC 124-1236-4
+sign \x83FD 24-34-2
+sign \x83FE 124-2345-2
+sign \x83FF 145-146-5
+sign \x8400 1235-34-4
+sign \x8401 245-16-2
+sign \x8402 1235-2346-2
+sign \x8403 245-1246-5
+sign \x8404 124-146-2
+sign \x8405 12-123456-3
+sign \x8406 135-16-5
+sign \x8407 12-1346-2
+sign \x8408 1235-12456-2
+sign \x8409 12345-356-5
+sign \x840A 14-2456-2
+sign \x840B 245-16-3
+sign \x840C 134-1356-2
+sign \x840D 1234-13456-2
+sign \x840E 1246-4
+sign \x840F 145-1236-5
+sign \x8410 24-345-5
+sign \x8411 1-1246-3
+sign \x8412 2345-4
+sign \x8413 16-2
+sign \x8414 124-246-2
+sign \x8415 245-16-2
+sign \x8416 12456-4
+sign \x8417 245-2346-5
+sign \x8418 1345-2456-5
+sign \x841A 124-25-5
+sign \x841B 13-234-3
+sign \x841C 124-346-3
+sign \x841D 14-25-2
+sign \x8420 134-1356-2
+sign \x8423 145-13456-5
+sign \x8424 13456-2
+sign \x8425 13456-2
+sign \x8426 13456-2
+sign \x8427 15-246-3
+sign \x8428 15-345-5
+sign \x8429 245-234-3
+sign \x842A 123-2346-3
+sign \x842B 15-46-5
+sign \x842C 12456-5
+sign \x842D 13-1256-3
+sign \x842E 1256-5
+sign \x842F 12345-34-5
+sign \x8430 14-2345-5
+sign \x8431 15-45-3
+sign \x8432 15-45-3
+sign \x8433 1345-1236-2
+sign \x8434 125-2346-2
+sign \x8435 25-3
+sign \x8436 12-123456-4
+sign \x8437 15-246-3
+sign \x8438 1256-2
+sign \x8439 135-2345-4
+sign \x843A 134-146-5
+sign \x843B 1236-3
+sign \x843C 2346-5
+sign \x843D 14-25-5
+sign \x843E 13456-2
+sign \x843F 13-35-3
+sign \x8440 13-35-3
+sign \x8441 13-46-3
+sign \x8442 12456-4
+sign \x8443 135-345-1
+sign \x8444 125-25-5
+sign \x8445 13-1256-3
+sign \x8446 135-146-4
+sign \x8447 1245-12356-2
+sign \x8448 15-16-4
+sign \x8449 346-5
+sign \x844A 1236-3
+sign \x844B 245-1256-2
+sign \x844C 13-2345-3
+sign \x844D 12345-34-2
+sign \x844E 14-1256-5
+sign \x844F 13-13456-3
+sign \x8450 1234-136-2
+sign \x8451 12345-1356-3
+sign \x8452 1235-12346-2
+sign \x8453 1235-12346-2
+sign \x8454 1235-12356-2
+sign \x8455 2345-2
+sign \x8456 124-34-2
+sign \x8457 1-2346-1
+sign \x8458 125-156-3
+sign \x8459 15-46-3
+sign \x845A 24-136-5
+sign \x845B 13-2346-4
+sign \x845C 13-346-2
+sign \x845D 245-13456-2
+sign \x845E 134-16-4
+sign \x845F 1235-456-2
+sign \x8460 24-136-3
+sign \x8461 1234-34-2
+sign \x8462 13-2456-5
+sign \x8463 145-12346-4
+sign \x8464 1-12356-5
+sign \x8465 13-2345-5
+sign \x8466 1246-4
+sign \x8467 135-126-2
+sign \x8468 1246-3
+sign \x8469 1234-345-3
+sign \x846A 13-16-5
+sign \x846B 1235-34-2
+sign \x846C 125-1346-5
+sign \x846D 13-23456-3
+sign \x846E 145-12456-5
+sign \x846F 246-5
+sign \x8470 15-1246-3
+sign \x8471 245-12346-3
+sign \x8472 245-45-2
+sign \x8473 1246-3
+sign \x8474 1-136-3
+sign \x8475 123-1246-2
+sign \x8476 124-13456-2
+sign \x8477 1235-123456-3
+sign \x8478 15-16-4
+sign \x8479 24-156-3
+sign \x847A 245-16-5
+sign \x847B 14-1236-2
+sign \x847C 125-12346-3
+sign \x847D 246-3
+sign \x847E 45-3
+sign \x847F 134-356-2
+sign \x8480 256-3
+sign \x8481 24-34-5
+sign \x8482 145-16-5
+sign \x8483 1-12456-5
+sign \x8484 13-12456-3
+sign \x8486 135-345-1
+sign \x8487 12-1236-4
+sign \x8488 123-2456-4
+sign \x8489 123-1246-5
+sign \x848B 13-46-4
+sign \x848C 14-12356-2
+sign \x848D 1246-4
+sign \x848E 12345-34-5
+sign \x848F 135-345-1
+sign \x8490 15-12356-3
+sign \x8491 1456-3
+sign \x8492 24-156-3
+sign \x8493 12-123456-2
+sign \x8494 24-156-2
+sign \x8495 256-3
+sign \x8496 1-136-3
+sign \x8497 14-1346-5
+sign \x8498 1245-34-2
+sign \x8499 134-1356-2
+sign \x849A 1235-2346-2
+sign \x849B 245-236-3
+sign \x849C 15-12456-5
+sign \x849D 45-2
+sign \x849E 14-16-5
+sign \x849F 13-1256-4
+sign \x84A0 15-16-2
+sign \x84A1 1234-1346-2
+sign \x84A2 12-34-2
+sign \x84A3 15-1256-2
+sign \x84A4 124-34-2
+sign \x84A5 14-234-2
+sign \x84A6 25-5
+sign \x84A7 1-136-3
+sign \x84A8 245-2345-5
+sign \x84A9 125-34-3
+sign \x84AA 1234-126-5
+sign \x84AB 245-25-3
+sign \x84AC 45-3
+sign \x84AD 12-34-2
+sign \x84AE 1256-5
+sign \x84AF 123-2356-5
+sign \x84B0 1234-1236-2
+sign \x84B1 1234-34-2
+sign \x84B2 1234-34-2
+sign \x84B3 1345-345-5
+sign \x84B4 24-25-5
+sign \x84B5 15-16-3
+sign \x84B6 12345-136-2
+sign \x84B7 256-2
+sign \x84B8 1-1356-3
+sign \x84B9 13-2345-3
+sign \x84BA 13-16-2
+sign \x84BB 1245-25-5
+sign \x84BC 245-1346-3
+sign \x84BD 136-3
+sign \x84BE 134-16-2
+sign \x84BF 1235-146-3
+sign \x84C0 15-123456-3
+sign \x84C1 1-136-3
+sign \x84C2 134-13456-2
+sign \x84C3 1235-25-5
+sign \x84C4 15-1256-5
+sign \x84C5 14-234-2
+sign \x84C6 15-16-2
+sign \x84C7 13-34-4
+sign \x84C8 14-1346-2
+sign \x84C9 1245-12346-2
+sign \x84CA 12346-3
+sign \x84CB 13-2456-5
+sign \x84CC 245-25-5
+sign \x84CD 24-156-3
+sign \x84CE 124-1346-2
+sign \x84CF 14-25-4
+sign \x84D0 1245-34-5
+sign \x84D1 15-25-3
+sign \x84D2 15-2345-3
+sign \x84D3 135-356-5
+sign \x84D4 246-4
+sign \x84D5 13-1246-5
+sign \x84D6 135-16-5
+sign \x84D7 125-12346-4
+sign \x84D8 13-123456-4
+sign \x84DA 15-234-3
+sign \x84DB 245-2346-5
+sign \x84DD 14-1236-2
+sign \x84DF 13-16-5
+sign \x84E0 14-16-2
+sign \x84E1 245-1236-3
+sign \x84E2 14-1346-2
+sign \x84E3 1256-5
+sign \x84E5 13456-2
+sign \x84E6 134-126-5
+sign \x84E7 124-246-3
+sign \x84E8 124-246-3
+sign \x84E9 134-146-5
+sign \x84EA 124-12346-3
+sign \x84EB 1-34-2
+sign \x84EC 1234-1356-2
+sign \x84ED 1236-3
+sign \x84EE 14-2345-2
+sign \x84EF 125-12346-4
+sign \x84F0 15-16-4
+sign \x84F1 1234-13456-2
+sign \x84F2 245-234-3
+sign \x84F3 13-1456-4
+sign \x84F4 12-123456-2
+sign \x84F5 13-346-2
+sign \x84F6 1246-2
+sign \x84F7 124-1246-3
+sign \x84F8 245-146-2
+sign \x84F9 1256-5
+sign \x84FA 16-5
+sign \x84FB 13-16-2
+sign \x84FC 14-246-4
+sign \x84FD 135-16-5
+sign \x84FE 14-34-4
+sign \x84FF 15-34-5
+sign \x8500 135-34-5
+sign \x8501 1-1346-3
+sign \x8502 14-356-2
+sign \x8503 13-46-5
+sign \x8504 134-1236-5
+sign \x8505 2345-2
+sign \x8506 14-13456-2
+sign \x8507 13-16-5
+sign \x8508 135-246-3
+sign \x8509 13-123456-4
+sign \x850A 1235-1236-4
+sign \x850B 145-16-2
+sign \x850C 15-34-5
+sign \x850D 14-34-5
+sign \x850E 24-2346-5
+sign \x850F 24-1346-3
+sign \x8510 145-16-2
+sign \x8511 134-346-5
+sign \x8512 15-256-3
+sign \x8513 134-1236-5
+sign \x8514 135-126-2
+sign \x8515 145-16-5
+sign \x8516 245-34-4
+sign \x8517 1-2346-5
+sign \x8518 15-136-3
+sign \x8519 15-45-5
+sign \x851A 1246-5
+sign \x851B 1235-34-2
+sign \x851C 146-2
+sign \x851D 134-16-4
+sign \x851E 14-12356-2
+sign \x851F 245-34-5
+sign \x8520 1-12346-3
+sign \x8521 245-2456-5
+sign \x8522 1234-126-2
+sign \x8523 13-46-4
+sign \x8524 134-16-5
+sign \x8525 245-12346-3
+sign \x8526 1345-246-4
+sign \x8527 1235-1246-5
+sign \x8528 13-256-5
+sign \x8529 1456-2
+sign \x852A 24-1236-3
+sign \x852B 2345-3
+sign \x852C 24-34-3
+sign \x852D 1456-5
+sign \x852E 123-1246-5
+sign \x852F 12-136-2
+sign \x8530 1235-34-5
+sign \x8531 24-345-3
+sign \x8532 123-12356-5
+sign \x8533 245-2345-5
+sign \x8534 134-345-2
+sign \x8535 125-1346-3
+sign \x8537 245-46-2
+sign \x8538 145-12356-3
+sign \x8539 14-2345-2
+sign \x853A 14-1456-5
+sign \x853B 123-12356-5
+sign \x853C 2456-4
+sign \x853D 135-16-5
+sign \x853E 14-16-2
+sign \x853F 1246-2
+sign \x8540 13-16-2
+sign \x8541 15-256-2
+sign \x8542 24-1356-5
+sign \x8543 12345-1236-2
+sign \x8544 134-1356-2
+sign \x8545 12356-4
+sign \x8546 12-1236-4
+sign \x8547 145-2345-4
+sign \x8548 15-256-5
+sign \x8549 13-246-3
+sign \x854A 1245-1246-4
+sign \x854B 1245-1246-4
+sign \x854C 14-356-4
+sign \x854D 1256-2
+sign \x854E 245-246-2
+sign \x854F 12-34-2
+sign \x8550 1235-35-2
+sign \x8551 13-2345-3
+sign \x8552 134-2456-4
+sign \x8553 256-2
+sign \x8554 135-146-3
+sign \x8555 234-2
+sign \x8556 245-1256-2
+sign \x8557 14-34-5
+sign \x8558 1245-146-2
+sign \x8559 1235-1246-5
+sign \x855A 2346-5
+sign \x855B 124-16-2
+sign \x855C 12345-356-4
+sign \x855D 13-236-2
+sign \x855E 125-1246-5
+sign \x855F 12345-345-5
+sign \x8560 1345-34-2
+sign \x8561 12345-136-2
+sign \x8562 123-1246-5
+sign \x8563 24-123456-5
+sign \x8564 1245-1246-2
+sign \x8565 23456-4
+sign \x8566 15-1256-3
+sign \x8567 12345-34-5
+sign \x8568 13-236-2
+sign \x8569 145-1346-5
+sign \x856A 34-2
+sign \x856B 145-12346-4
+sign \x856C 15-156-3
+sign \x856D 15-246-3
+sign \x856E 15-16-5
+sign \x856F 15-345-5
+sign \x8570 256-5
+sign \x8571 24-146-3
+sign \x8572 245-16-2
+sign \x8573 13-2345-3
+sign \x8574 256-5
+sign \x8575 15-123456-3
+sign \x8576 14-13456-2
+sign \x8577 1256-5
+sign \x8578 15-23456-2
+sign \x8579 235-3
+sign \x857A 13-16-2
+sign \x857B 1235-12346-2
+sign \x857C 15-156-5
+sign \x857D 1345-12346-2
+sign \x857E 14-356-4
+sign \x857F 15-45-3
+sign \x8580 256-4
+sign \x8581 1256-5
+sign \x8582 15-16-2
+sign \x8583 1235-146-5
+sign \x8584 135-126-2
+sign \x8585 1235-146-3
+sign \x8586 2456-5
+sign \x8587 1246-2
+sign \x8588 1235-1246-5
+sign \x8589 1235-1246-5
+sign \x858A 13-16-5
+sign \x858B 245-156-2
+sign \x858C 15-46-3
+sign \x858D 12456-5
+sign \x858E 134-346-5
+sign \x858F 16-5
+sign \x8590 14-1356-2
+sign \x8591 13-46-3
+sign \x8592 245-1236-5
+sign \x8593 24-136-3
+sign \x8594 245-46-2
+sign \x8595 14-2345-2
+sign \x8596 123-2346-3
+sign \x8597 45-2
+sign \x8598 145-345-2
+sign \x8599 124-16-5
+sign \x859A 124-1346-2
+sign \x859B 15-236-3
+sign \x859C 135-16-5
+sign \x859D 1-1236-3
+sign \x859E 15-123456-3
+sign \x859F 14-2345-5
+sign \x85A0 12345-1236-2
+sign \x85A1 145-13456-4
+sign \x85A2 15-346-5
+sign \x85A3 13-34-4
+sign \x85A4 15-346-5
+sign \x85A5 24-34-4
+sign \x85A6 13-2345-5
+sign \x85A7 1235-146-3
+sign \x85A8 1235-12346-3
+sign \x85A9 15-345-5
+sign \x85AA 15-1456-3
+sign \x85AB 15-256-3
+sign \x85AC 246-5
+sign \x85AE 15-12356-4
+sign \x85AF 24-34-4
+sign \x85B0 15-256-3
+sign \x85B1 145-1246-5
+sign \x85B2 1234-1456-2
+sign \x85B3 1246-4
+sign \x85B4 1345-13456-2
+sign \x85B5 12-12356-2
+sign \x85B6 134-2456-2
+sign \x85B7 1245-34-2
+sign \x85B8 1234-246-2
+sign \x85B9 124-2456-2
+sign \x85BA 245-16-2
+sign \x85BB 125-146-4
+sign \x85BC 12-136-2
+sign \x85BD 1-136-3
+sign \x85BE 156-4
+sign \x85BF 1345-16-4
+sign \x85C0 13456-2
+sign \x85C1 13-146-4
+sign \x85C2 245-12346-2
+sign \x85C3 15-246-3
+sign \x85C4 245-16-2
+sign \x85C5 12345-345-2
+sign \x85C6 13-2345-4
+sign \x85C7 15-1256-5
+sign \x85C8 123-1246-3
+sign \x85C9 13-346-5
+sign \x85CA 135-2345-4
+sign \x85CB 145-246-5
+sign \x85CC 134-16-5
+sign \x85CD 14-1236-2
+sign \x85CE 13-1456-5
+sign \x85CF 125-1346-5
+sign \x85D0 134-246-4
+sign \x85D1 245-235-2
+sign \x85D2 245-346-5
+sign \x85D3 15-2345-4
+sign \x85D5 12356-4
+sign \x85D6 15-2345-2
+sign \x85D7 15-34-5
+sign \x85D8 14-1256-2
+sign \x85D9 16-5
+sign \x85DA 15-1256-5
+sign \x85DB 15-346-4
+sign \x85DC 14-16-2
+sign \x85DD 16-5
+sign \x85DE 14-345-4
+sign \x85DF 14-356-4
+sign \x85E0 15-246-5
+sign \x85E1 145-16-2
+sign \x85E2 1-156-4
+sign \x85E3 135-356-3
+sign \x85E4 124-1356-2
+sign \x85E5 246-5
+sign \x85E6 134-126-2
+sign \x85E7 1235-12456-4
+sign \x85E8 135-246-3
+sign \x85E9 12345-1236-2
+sign \x85EA 15-12356-4
+sign \x85EB 124-1236-2
+sign \x85EC 124-1246-3
+sign \x85ED 245-235-2
+sign \x85EE 245-246-2
+sign \x85EF 1246-5
+sign \x85F0 14-234-2
+sign \x85F1 1235-1246-5
+sign \x85F2 12356-3
+sign \x85F3 13-146-4
+sign \x85F4 256-5
+sign \x85F6 14-16-5
+sign \x85F7 24-34-4
+sign \x85F8 12-34-2
+sign \x85F9 2456-4
+sign \x85FA 14-1456-5
+sign \x85FB 125-146-4
+sign \x85FC 15-45-3
+sign \x85FD 12-136-5
+sign \x85FE 14-2456-5
+sign \x85FF 1235-25-5
+sign \x8600 124-25-5
+sign \x8601 34-5
+sign \x8602 1245-1246-4
+sign \x8603 1245-1246-4
+sign \x8604 245-16-2
+sign \x8605 1235-1356-2
+sign \x8606 14-34-2
+sign \x8607 15-34-3
+sign \x8608 124-1246-2
+sign \x8609 134-1346-2
+sign \x860A 256-5
+sign \x860B 1234-13456-2
+sign \x860C 1256-4
+sign \x860D 15-256-3
+sign \x860E 13-16-5
+sign \x860F 13-235-3
+sign \x8610 15-45-3
+sign \x8611 134-126-2
+sign \x8613 15-34-3
+sign \x8614 13-235-3
+sign \x8616 135-126-5
+sign \x8617 135-126-5
+sign \x8618 1245-1346-2
+sign \x8619 16-5
+sign \x861A 15-2345-4
+sign \x861B 1256-5
+sign \x861C 13-1256-2
+sign \x861D 14-2345-5
+sign \x861E 14-2345-2
+sign \x861F 1456-4
+sign \x8620 245-46-2
+sign \x8621 13456-3
+sign \x8622 14-12346-2
+sign \x8623 1235-1246-3
+sign \x8624 1246-4
+sign \x8625 236-5
+sign \x8626 14-13456-2
+sign \x8627 245-1256-2
+sign \x8628 246-2
+sign \x8629 12345-1236-2
+sign \x862A 134-16-2
+sign \x862B 14-1236-2
+sign \x862C 123-1246-3
+sign \x862D 14-1236-2
+sign \x862E 13-16-5
+sign \x862F 145-1346-5
+sign \x8631 14-356-5
+sign \x8632 14-356-2
+sign \x8633 1235-35-4
+sign \x8634 12345-1356-3
+sign \x8635 1-156-2
+sign \x8636 1246-5
+sign \x8637 123-1246-2
+sign \x8638 1-1236-5
+sign \x8639 1235-2356-2
+sign \x863A 14-16-2
+sign \x863B 13-16-5
+sign \x863C 134-16-2
+sign \x863D 14-356-4
+sign \x863E 1235-2356-5
+sign \x863F 14-25-2
+sign \x8640 13-16-3
+sign \x8641 123-1246-2
+sign \x8642 14-34-5
+sign \x8643 15-2345-3
+sign \x8646 14-356-2
+sign \x8647 245-45-4
+sign \x8648 15-246-3
+sign \x8649 16-5
+sign \x864A 14-12456-2
+sign \x864B 134-136-2
+sign \x864C 135-346-3
+sign \x864D 1235-34-3
+sign \x864E 1235-34-4
+sign \x864F 14-34-4
+sign \x8650 1345-236-5
+sign \x8651 14-1256-5
+sign \x8652 15-156-3
+sign \x8653 15-246-3
+sign \x8654 245-2345-2
+sign \x8655 12-34-5
+sign \x8656 1235-34-3
+sign \x8657 15-1256-3
+sign \x8658 245-25-2
+sign \x8659 12345-34-2
+sign \x865A 15-1256-3
+sign \x865B 15-1256-3
+sign \x865C 14-34-4
+sign \x865D 1235-34-4
+sign \x865E 1256-2
+sign \x865F 1235-146-5
+sign \x8660 13-246-4
+sign \x8661 13-1256-5
+sign \x8662 13-25-2
+sign \x8663 135-146-5
+sign \x8664 2345-2
+sign \x8665 12-1236-2
+sign \x8666 1-1236-5
+sign \x8667 123-1246-3
+sign \x8668 135-1236-3
+sign \x8669 15-16-5
+sign \x866A 24-34-2
+sign \x866B 12-12346-2
+sign \x866C 245-234-2
+sign \x866D 145-246-3
+sign \x866E 13-16-3
+sign \x866F 245-234-2
+sign \x8670 145-13456-3
+sign \x8671 24-156-3
+sign \x8673 145-16-5
+sign \x8674 1-2346-2
+sign \x8675 24-2346-2
+sign \x8676 1256-3
+sign \x8677 1235-1236-2
+sign \x8678 125-156-4
+sign \x8679 1235-12346-2
+sign \x867A 1235-1246-4
+sign \x867B 134-1356-2
+sign \x867C 13-2346-5
+sign \x867D 15-1246-3
+sign \x867E 15-23456-3
+sign \x867F 12-2456-5
+sign \x8680 24-156-2
+sign \x8681 16-4
+sign \x8682 134-345-4
+sign \x8683 15-46-5
+sign \x8684 12345-1346-3
+sign \x8685 2346-5
+sign \x8686 135-345-3
+sign \x8687 12-156-4
+sign \x8688 245-2345-3
+sign \x8689 123456-2
+sign \x868A 123456-2
+sign \x868B 1245-1246-5
+sign \x868C 135-1346-5
+sign \x868D 1234-16-2
+sign \x868E 236-5
+sign \x868F 236-5
+sign \x8690 13-256-3
+sign \x8691 245-16-2
+sign \x8692 124-12346-2
+sign \x8693 1456-4
+sign \x8694 245-16-2
+sign \x8695 245-1236-2
+sign \x8696 45-2
+sign \x8697 13-236-2
+sign \x8698 1235-1246-2
+sign \x8699 245-1456-2
+sign \x869A 245-16-2
+sign \x869B 1-12346-5
+sign \x869C 23456-2
+sign \x869D 245-156-5
+sign \x869E 134-34-5
+sign \x869F 456-2
+sign \x86A0 12345-136-2
+sign \x86A1 12345-136-2
+sign \x86A2 1235-1346-2
+sign \x86A3 13-12346-3
+sign \x86A4 125-146-4
+sign \x86A5 12345-34-4
+sign \x86A6 1245-1236-2
+sign \x86A7 13-346-5
+sign \x86A8 12345-34-2
+sign \x86A9 12-156-3
+sign \x86AA 145-12356-4
+sign \x86AB 1234-246-2
+sign \x86AC 15-2345-5
+sign \x86AD 1345-16-2
+sign \x86AE 124-2346-5
+sign \x86AF 245-234-3
+sign \x86B0 234-2
+sign \x86B1 1-345-5
+sign \x86B2 1234-13456-2
+sign \x86B3 12-156-2
+sign \x86B4 234-4
+sign \x86B5 1235-2346-2
+sign \x86B6 1235-1236-3
+sign \x86B7 13-1256-5
+sign \x86B8 14-16-5
+sign \x86B9 12345-34-5
+sign \x86BA 1245-1236-2
+sign \x86BB 1-345-2
+sign \x86BC 13-12356-4
+sign \x86BD 1234-16-2
+sign \x86BE 135-126-4
+sign \x86BF 15-2345-2
+sign \x86C0 1-34-5
+sign \x86C1 145-246-3
+sign \x86C2 135-346-2
+sign \x86C3 135-13456-4
+sign \x86C4 13-34-3
+sign \x86C5 1-1236-3
+sign \x86C6 245-1256-3
+sign \x86C7 24-2346-2
+sign \x86C8 124-346-4
+sign \x86C9 14-13456-2
+sign \x86CA 13-34-4
+sign \x86CB 145-1236-5
+sign \x86CC 13-34-4
+sign \x86CD 13456-2
+sign \x86CE 14-16-5
+sign \x86CF 12-1356-3
+sign \x86D0 245-1256-3
+sign \x86D1 134-12356-2
+sign \x86D2 13-2346-2
+sign \x86D3 245-156-5
+sign \x86D4 1235-1246-2
+sign \x86D5 1235-1246-2
+sign \x86D6 134-1346-2
+sign \x86D7 12345-34-5
+sign \x86D8 46-4
+sign \x86D9 35-3
+sign \x86DA 14-346-5
+sign \x86DB 1-34-3
+sign \x86DC 16-3
+sign \x86DD 15-2345-2
+sign \x86DE 13-35-3
+sign \x86DF 13-246-3
+sign \x86E0 14-16-5
+sign \x86E1 16-5
+sign \x86E2 1234-13456-2
+sign \x86E3 13-346-2
+sign \x86E4 13-2346-2
+sign \x86E5 24-2346-2
+sign \x86E6 124-16-2
+sign \x86E7 456-4
+sign \x86E8 134-126-5
+sign \x86E9 245-235-2
+sign \x86EA 245-346-5
+sign \x86EB 13-1246-4
+sign \x86EC 13-12346-4
+sign \x86ED 1-156-5
+sign \x86EE 134-1236-2
+sign \x86F0 1-156-2
+sign \x86F1 13-23456-2
+sign \x86F2 1245-146-2
+sign \x86F3 15-156-3
+sign \x86F4 245-16-2
+sign \x86F5 15-13456-3
+sign \x86F6 14-346-5
+sign \x86F7 245-234-2
+sign \x86F8 15-246-3
+sign \x86F9 235-4
+sign \x86FA 13-23456-2
+sign \x86FB 24-1246-5
+sign \x86FC 12-2346-3
+sign \x86FD 135-2456-5
+sign \x86FE 2346-2
+sign \x86FF 1235-1236-5
+sign \x8700 24-34-4
+sign \x8701 15-45-2
+sign \x8702 12345-1356-3
+sign \x8703 24-136-5
+sign \x8704 1-136-5
+sign \x8705 12345-34-4
+sign \x8706 15-2345-5
+sign \x8707 1-2346-2
+sign \x8708 34-2
+sign \x8709 12345-34-2
+sign \x870A 14-16-2
+sign \x870B 14-1346-2
+sign \x870C 135-16-5
+sign \x870D 12-34-2
+sign \x870E 13-45-4
+sign \x870F 234-4
+sign \x8710 13-346-2
+sign \x8711 145-1236-5
+sign \x8712 2345-2
+sign \x8713 124-13456-2
+sign \x8714 145-2345-5
+sign \x8715 24-1246-5
+sign \x8716 1235-1246-2
+sign \x8717 13-35-3
+sign \x8718 1-156-3
+sign \x8719 15-12346-3
+sign \x871A 12345-356-4
+sign \x871B 13-1256-3
+sign \x871C 134-16-5
+sign \x871D 245-16-2
+sign \x871E 245-16-2
+sign \x871F 1256-5
+sign \x8720 13-256-4
+sign \x8721 245-1256-5
+sign \x8722 134-1356-4
+sign \x8723 245-46-3
+sign \x8724 15-156-3
+sign \x8725 15-16-3
+sign \x8726 14-123456-2
+sign \x8727 14-16-5
+sign \x8728 145-346-2
+sign \x8729 124-246-2
+sign \x872A 124-146-2
+sign \x872B 123-123456-3
+sign \x872C 1235-1236-2
+sign \x872D 1235-1236-5
+sign \x872E 1256-5
+sign \x872F 135-1346-5
+sign \x8730 12345-356-2
+sign \x8731 1234-16-2
+sign \x8732 1246-3
+sign \x8733 145-123456-3
+sign \x8734 16-5
+sign \x8735 45-3
+sign \x8736 15-34-5
+sign \x8737 245-45-2
+sign \x8738 245-2345-4
+sign \x8739 1245-1246-5
+sign \x873A 1345-16-2
+sign \x873B 245-13456-3
+sign \x873C 1246-5
+sign \x873D 14-46-4
+sign \x873E 13-25-4
+sign \x873F 12456-3
+sign \x8740 145-12346-5
+sign \x8741 2346-5
+sign \x8742 135-1236-4
+sign \x8743 145-16-5
+sign \x8744 456-4
+sign \x8745 245-1236-2
+sign \x8746 46-4
+sign \x8747 13456-2
+sign \x8748 13-25-3
+sign \x8749 12-1236-2
+sign \x874B 14-345-5
+sign \x874C 123-2346-3
+sign \x874D 13-16-2
+sign \x874E 15-346-3
+sign \x874F 124-13456-2
+sign \x8750 134-356-5
+sign \x8751 15-1256-3
+sign \x8752 134-2345-2
+sign \x8753 1256-2
+sign \x8754 13-346-3
+sign \x8755 24-156-2
+sign \x8756 15-45-3
+sign \x8757 1235-456-2
+sign \x8758 2345-4
+sign \x8759 135-2345-3
+sign \x875A 1245-12356-2
+sign \x875B 1246-3
+sign \x875C 12345-34-5
+sign \x875D 45-2
+sign \x875E 134-356-5
+sign \x875F 1246-5
+sign \x8760 12345-34-2
+sign \x8761 1245-12456-4
+sign \x8762 15-346-2
+sign \x8763 234-2
+sign \x8764 245-234-2
+sign \x8765 134-146-2
+sign \x8766 15-23456-3
+sign \x8767 13456-3
+sign \x8768 24-156-3
+sign \x8769 12-12346-2
+sign \x876A 124-1346-3
+sign \x876B 1-34-3
+sign \x876C 125-12346-3
+sign \x876D 124-16-2
+sign \x876E 12345-34-5
+sign \x876F 45-2
+sign \x8770 1235-1246-4
+sign \x8771 134-1356-2
+sign \x8772 14-345-5
+sign \x8773 145-2456-5
+sign \x8774 1235-34-2
+sign \x8775 245-234-3
+sign \x8776 145-346-2
+sign \x8777 14-16-5
+sign \x8778 13-35-3
+sign \x8779 256-3
+sign \x877A 13-1256-4
+sign \x877B 1345-1236-2
+sign \x877C 14-12356-2
+sign \x877D 245-256-4
+sign \x877E 1245-12346-2
+sign \x877F 13456-2
+sign \x8780 13-46-3
+sign \x8781 135-345-1
+sign \x8782 14-1346-2
+sign \x8783 1234-1346-2
+sign \x8784 15-156-3
+sign \x8785 15-16-3
+sign \x8786 245-156-5
+sign \x8787 15-16-3
+sign \x8788 45-2
+sign \x8789 12346-3
+sign \x878A 14-2345-2
+sign \x878B 15-12356-3
+sign \x878C 135-1236-3
+sign \x878D 1245-12346-2
+sign \x878E 1245-12346-2
+sign \x878F 13-16-2
+sign \x8790 34-3
+sign \x8791 245-234-5
+sign \x8792 1235-1236-5
+sign \x8793 245-1456-2
+sign \x8794 16-2
+sign \x8795 135-16-3
+sign \x8796 1235-35-2
+sign \x8797 124-1346-2
+sign \x8798 16-4
+sign \x8799 145-34-5
+sign \x879A 1345-2456-5
+sign \x879B 1235-2346-2
+sign \x879C 1235-34-2
+sign \x879D 1235-1246-5
+sign \x879E 134-345-4
+sign \x879F 134-13456-2
+sign \x87A0 16-5
+sign \x87A1 123456-2
+sign \x87A2 13456-2
+sign \x87A3 124-1356-2
+sign \x87A4 135-345-1
+sign \x87A5 245-1346-3
+sign \x87A8 134-1236-4
+sign \x87AA 24-1346-3
+sign \x87AB 1-2346-3
+sign \x87AC 245-146-2
+sign \x87AD 12-156-3
+sign \x87AE 145-16-5
+sign \x87AF 146-2
+sign \x87B0 14-34-5
+sign \x87B1 1246-5
+sign \x87B2 145-346-2
+sign \x87B3 124-1346-2
+sign \x87B4 12-136-2
+sign \x87B5 1234-246-3
+sign \x87B6 245-1256-2
+sign \x87B7 135-1356-5
+sign \x87B8 1256-2
+sign \x87B9 13-2345-5
+sign \x87BA 14-25-2
+sign \x87BB 14-12356-2
+sign \x87BC 245-1456-4
+sign \x87BD 1-12346-3
+sign \x87BE 1456-4
+sign \x87BF 13-46-3
+sign \x87C0 24-2356-5
+sign \x87C1 123456-2
+sign \x87C2 13-246-3
+sign \x87C3 12456-5
+sign \x87C4 1-156-2
+sign \x87C5 1-2346-5
+sign \x87C6 134-345-1
+sign \x87C7 134-345-2
+sign \x87C8 13-25-3
+sign \x87C9 13-234-5
+sign \x87CA 134-146-2
+sign \x87CB 15-16-3
+sign \x87CC 245-12346-3
+sign \x87CD 14-16-2
+sign \x87CE 134-1236-4
+sign \x87CF 15-246-3
+sign \x87D1 1-1346-3
+sign \x87D2 134-1346-4
+sign \x87D3 15-46-5
+sign \x87D4 134-126-5
+sign \x87D5 125-1246-3
+sign \x87D6 15-156-3
+sign \x87D7 245-234-3
+sign \x87D8 124-2346-5
+sign \x87D9 1-156-2
+sign \x87DA 1234-1356-2
+sign \x87DB 1234-1356-2
+sign \x87DC 13-246-4
+sign \x87DD 245-1256-2
+sign \x87DE 135-346-2
+sign \x87DF 14-246-2
+sign \x87E0 1234-1236-2
+sign \x87E1 13-1246-4
+sign \x87E2 15-16-4
+sign \x87E3 13-16-4
+sign \x87E4 245-45-2
+sign \x87E5 1235-456-2
+sign \x87E6 12345-356-5
+sign \x87E7 14-146-2
+sign \x87E8 13-236-2
+sign \x87E9 13-236-2
+sign \x87EA 1235-1246-5
+sign \x87EB 1456-2
+sign \x87EC 12-1236-2
+sign \x87ED 13-246-3
+sign \x87EE 24-1236-5
+sign \x87EF 1245-146-2
+sign \x87F0 15-246-3
+sign \x87F1 134-12356-2
+sign \x87F2 12-12346-2
+sign \x87F3 15-256-2
+sign \x87F4 15-156-3
+sign \x87F6 12-1356-3
+sign \x87F7 145-1346-3
+sign \x87F8 14-16-4
+sign \x87F9 15-346-5
+sign \x87FA 24-1236-5
+sign \x87FB 16-4
+sign \x87FC 13-13456-4
+sign \x87FD 145-345-2
+sign \x87FE 12-1236-2
+sign \x87FF 245-16-5
+sign \x8800 245-156-3
+sign \x8801 15-46-5
+sign \x8802 24-2346-5
+sign \x8803 14-25-4
+sign \x8804 245-1456-2
+sign \x8805 13456-2
+sign \x8806 12-2456-5
+sign \x8807 14-16-5
+sign \x8808 125-2346-2
+sign \x8809 15-45-4
+sign \x880A 14-2345-2
+sign \x880B 1-34-4
+sign \x880C 125-2346-2
+sign \x880D 15-346-3
+sign \x880E 134-1346-4
+sign \x880F 15-346-5
+sign \x8810 245-16-2
+sign \x8811 1245-12346-2
+sign \x8812 13-2345-4
+sign \x8813 134-1356-4
+sign \x8814 1235-146-2
+sign \x8815 1245-34-2
+sign \x8816 25-5
+sign \x8817 1-25-2
+sign \x8818 13-346-2
+sign \x8819 135-1456-3
+sign \x881A 1235-2346-5
+sign \x881B 134-346-5
+sign \x881C 12345-1236-2
+sign \x881D 14-356-2
+sign \x881E 13-346-2
+sign \x881F 14-345-5
+sign \x8820 134-16-5
+sign \x8821 14-16-4
+sign \x8822 12-123456-4
+sign \x8823 14-16-5
+sign \x8824 245-234-3
+sign \x8825 1345-346-5
+sign \x8826 14-34-2
+sign \x8827 145-34-5
+sign \x8828 15-246-3
+sign \x8829 1-34-3
+sign \x882A 14-12346-2
+sign \x882B 14-16-5
+sign \x882C 14-12346-2
+sign \x882D 12345-1356-3
+sign \x882E 346-3
+sign \x882F 1234-16-2
+sign \x8830 15-46-3
+sign \x8831 13-34-4
+sign \x8832 13-45-3
+sign \x8833 13456-3
+sign \x8835 15-16-3
+sign \x8836 245-1236-2
+sign \x8837 245-1256-2
+sign \x8838 245-45-2
+sign \x8839 145-34-5
+sign \x883A 245-1236-2
+sign \x883B 134-1236-2
+sign \x883C 13-236-2
+sign \x883D 13-346-2
+sign \x883E 1-34-2
+sign \x883F 1-25-2
+sign \x8840 15-346-4
+sign \x8841 134-1346-5
+sign \x8842 1345-234-5
+sign \x8843 1234-356-3
+sign \x8844 1345-1256-5
+sign \x8845 15-1456-5
+sign \x8846 1-12346-5
+sign \x8847 134-126-5
+sign \x8848 156-5
+sign \x8849 123-2346-5
+sign \x884A 134-346-5
+sign \x884B 15-16-5
+sign \x884C 15-13456-2
+sign \x884D 2345-4
+sign \x884E 123-1236-4
+sign \x884F 45-5
+sign \x8851 14-13456-2
+sign \x8852 15-45-5
+sign \x8853 24-34-5
+sign \x8854 15-2345-2
+sign \x8855 124-12346-2
+sign \x8856 15-46-5
+sign \x8857 13-346-3
+sign \x8858 15-2345-2
+sign \x8859 23456-2
+sign \x885A 1235-34-2
+sign \x885B 1246-5
+sign \x885C 145-146-5
+sign \x885D 12-12346-3
+sign \x885E 1246-5
+sign \x885F 145-146-5
+sign \x8860 1-123456-3
+sign \x8861 1235-1356-2
+sign \x8862 245-1256-2
+sign \x8863 16-3
+sign \x8865 135-34-4
+sign \x8866 13-1236-4
+sign \x8867 1256-2
+sign \x8868 135-246-4
+sign \x8869 12-2456-5
+sign \x886A 16-5
+sign \x886B 24-1236-3
+sign \x886C 12-136-5
+sign \x886D 12345-34-3
+sign \x886E 13-123456-4
+sign \x886F 12345-136-3
+sign \x8870 24-2356-3
+sign \x8871 13-346-2
+sign \x8872 1345-345-5
+sign \x8873 1-12346-3
+sign \x8874 145-1236-4
+sign \x8875 1345-16-5
+sign \x8876 1-12346-5
+sign \x8877 1-12346-3
+sign \x8878 15-346-5
+sign \x8879 1-156-4
+sign \x887A 15-346-2
+sign \x887B 1245-1236-2
+sign \x887C 1-156-3
+sign \x887D 1245-136-5
+sign \x887E 245-1456-3
+sign \x887F 13-1456-3
+sign \x8880 13-256-3
+sign \x8881 45-2
+sign \x8882 134-356-5
+sign \x8883 12-2456-5
+sign \x8884 146-4
+sign \x8885 1345-246-4
+sign \x8886 1235-1246-3
+sign \x8887 1245-1236-2
+sign \x8888 13-23456-3
+sign \x8889 124-25-2
+sign \x888A 14-13456-4
+sign \x888B 145-2456-5
+sign \x888C 135-146-5
+sign \x888D 1234-146-2
+sign \x888E 246-5
+sign \x888F 125-25-5
+sign \x8890 135-16-5
+sign \x8891 24-146-5
+sign \x8892 124-1236-4
+sign \x8893 13-1256-4
+sign \x8894 1235-2346-5
+sign \x8895 15-236-5
+sign \x8896 15-234-5
+sign \x8897 1-136-4
+sign \x8898 16-2
+sign \x8899 1234-345-5
+sign \x889A 135-126-3
+sign \x889B 145-16-3
+sign \x889C 35-5
+sign \x889D 12345-34-5
+sign \x889E 13-123456-4
+sign \x889F 1-156-5
+sign \x88A0 1-156-5
+sign \x88A1 1245-1236-2
+sign \x88A2 1234-1236-5
+sign \x88A3 16-5
+sign \x88A4 134-146-5
+sign \x88A6 1345-345-5
+sign \x88A7 123-12356-3
+sign \x88A8 15-45-5
+sign \x88A9 12-1236-3
+sign \x88AA 245-1256-3
+sign \x88AB 135-356-5
+sign \x88AC 124-2456-2
+sign \x88AD 15-16-2
+sign \x88AF 135-126-2
+sign \x88B1 12345-34-2
+sign \x88B2 16-2
+sign \x88B3 12-156-4
+sign \x88B4 123-34-5
+sign \x88B5 1245-136-5
+sign \x88B6 13-46-5
+sign \x88B7 13-23456-2
+sign \x88B8 245-123456-2
+sign \x88B9 1234-345-5
+sign \x88BA 13-346-2
+sign \x88BB 156-2
+sign \x88BC 13-2346-5
+sign \x88BD 1245-34-2
+sign \x88BE 1-34-3
+sign \x88BF 13-1246-3
+sign \x88C0 1456-3
+sign \x88C1 245-2456-2
+sign \x88C2 14-346-5
+sign \x88C5 1-456-3
+sign \x88C6 145-1346-3
+sign \x88C8 123-123456-3
+sign \x88C9 123-136-5
+sign \x88CA 1345-246-4
+sign \x88CB 24-34-5
+sign \x88CC 125-1246-4
+sign \x88CD 123-123456-4
+sign \x88CE 12-1356-2
+sign \x88CF 14-16-4
+sign \x88D0 13-45-3
+sign \x88D1 24-136-3
+sign \x88D2 1234-12356-2
+sign \x88D3 13-2346-2
+sign \x88D4 16-5
+sign \x88D5 1256-5
+sign \x88D6 1-136-4
+sign \x88D7 14-234-2
+sign \x88D8 245-234-2
+sign \x88D9 245-256-2
+sign \x88DA 13-16-5
+sign \x88DB 346-5
+sign \x88DC 135-34-4
+sign \x88DD 1-456-3
+sign \x88DE 24-1246-5
+sign \x88DF 24-345-3
+sign \x88E0 245-256-2
+sign \x88E1 14-16-4
+sign \x88E2 14-2345-2
+sign \x88E3 14-2345-2
+sign \x88E4 123-34-5
+sign \x88E5 13-2345-5
+sign \x88E6 12345-12356-2
+sign \x88E7 12-1236-3
+sign \x88E8 135-16-5
+sign \x88E9 13-123456-3
+sign \x88EA 124-146-2
+sign \x88EB 45-5
+sign \x88EC 14-13456-2
+sign \x88ED 12-156-4
+sign \x88EE 12-1346-3
+sign \x88EF 145-146-3
+sign \x88F0 145-25-2
+sign \x88F1 135-246-4
+sign \x88F2 14-46-4
+sign \x88F3 24-1346-3
+sign \x88F4 1234-356-2
+sign \x88F5 1234-356-2
+sign \x88F6 12345-356-3
+sign \x88F7 45-3
+sign \x88F8 14-25-4
+sign \x88F9 13-25-4
+sign \x88FA 2345-4
+sign \x88FB 145-34-4
+sign \x88FC 15-16-2
+sign \x88FD 1-156-5
+sign \x88FE 13-1256-3
+sign \x88FF 245-16-4
+sign \x8900 13-16-5
+sign \x8901 1-156-2
+sign \x8902 13-35-5
+sign \x8903 123-136-5
+sign \x8905 124-16-5
+sign \x8906 124-16-2
+sign \x8907 12345-34-5
+sign \x8908 12-12346-2
+sign \x8909 15-346-3
+sign \x890A 135-2345-4
+sign \x890B 145-346-2
+sign \x890C 123-123456-3
+sign \x890D 145-12456-3
+sign \x890E 15-234-5
+sign \x890F 15-234-5
+sign \x8910 1235-2346-2
+sign \x8911 45-5
+sign \x8912 135-146-3
+sign \x8913 135-146-4
+sign \x8914 12345-34-5
+sign \x8915 1256-2
+sign \x8916 124-12456-5
+sign \x8917 2345-4
+sign \x8918 1235-1246-3
+sign \x8919 135-356-5
+sign \x891A 12-34-4
+sign \x891B 14-1256-4
+sign \x891E 256-4
+sign \x891F 145-345-2
+sign \x8920 13-12356-3
+sign \x8921 145-345-3
+sign \x8922 1235-2356-2
+sign \x8923 1245-12346-2
+sign \x8924 45-5
+sign \x8925 1245-34-5
+sign \x8926 1345-2456-5
+sign \x8927 13-235-4
+sign \x8928 15-25-4
+sign \x8929 135-1236-3
+sign \x892A 124-123456-5
+sign \x892B 12-156-4
+sign \x892C 15-1346-4
+sign \x892D 1345-246-4
+sign \x892E 13456-2
+sign \x892F 13-346-5
+sign \x8930 245-2345-3
+sign \x8931 1235-2356-2
+sign \x8932 123-34-5
+sign \x8933 14-2345-2
+sign \x8934 14-1236-2
+sign \x8935 14-16-2
+sign \x8936 1-2346-2
+sign \x8937 24-156-3
+sign \x8938 14-1256-4
+sign \x8939 16-5
+sign \x893A 145-346-2
+sign \x893B 15-346-5
+sign \x893C 15-2345-3
+sign \x893D 1246-5
+sign \x893E 135-246-4
+sign \x893F 245-146-2
+sign \x8940 13-16-3
+sign \x8941 245-46-4
+sign \x8942 15-136-3
+sign \x8943 135-146-3
+sign \x8944 15-46-3
+sign \x8946 1234-34-2
+sign \x8947 13-2345-4
+sign \x8948 1-12456-5
+sign \x8949 13-2345-5
+sign \x894A 125-1246-5
+sign \x894B 13-16-2
+sign \x894C 145-1236-3
+sign \x894D 125-345-2
+sign \x894E 12345-1236-2
+sign \x894F 135-126-2
+sign \x8950 15-46-5
+sign \x8951 15-1456-2
+sign \x8952 135-346-2
+sign \x8953 1245-146-2
+sign \x8954 134-1236-4
+sign \x8955 14-1236-2
+sign \x8956 146-4
+sign \x8957 145-25-2
+sign \x8958 13-1246-5
+sign \x8959 245-146-5
+sign \x895A 15-1246-5
+sign \x895B 1345-12346-2
+sign \x895C 12-1236-3
+sign \x895D 14-2345-2
+sign \x895E 135-16-5
+sign \x895F 13-1456-3
+sign \x8960 145-1346-3
+sign \x8961 24-34-4
+sign \x8962 124-1236-4
+sign \x8963 135-16-5
+sign \x8964 14-1236-2
+sign \x8965 1234-34-2
+sign \x8966 1245-34-2
+sign \x8967 1-156-4
+sign \x8969 24-34-4
+sign \x896A 35-5
+sign \x896B 24-156-5
+sign \x896C 135-2456-4
+sign \x896D 15-346-2
+sign \x896E 135-126-2
+sign \x896F 12-136-5
+sign \x8970 14-2456-5
+sign \x8971 14-12346-2
+sign \x8972 15-16-2
+sign \x8973 15-2345-3
+sign \x8974 14-1236-2
+sign \x8975 1-2346-2
+sign \x8976 145-2456-5
+sign \x8978 125-1236-5
+sign \x8979 15-16-4
+sign \x897A 13-2345-4
+sign \x897B 1234-1236-5
+sign \x897C 16-5
+sign \x897E 23456-5
+sign \x897F 15-16-3
+sign \x8980 15-16-3
+sign \x8981 246-5
+sign \x8982 12345-1356-4
+sign \x8983 245-1456-2
+sign \x8985 12345-246-5
+sign \x8986 12345-34-5
+sign \x8987 135-345-5
+sign \x8988 1235-2346-2
+sign \x8989 13-16-3
+sign \x898A 13-16-3
+sign \x898B 13-2345-5
+sign \x898C 13-12456-3
+sign \x898D 135-2345-5
+sign \x898E 2345-5
+sign \x898F 13-1246-3
+sign \x8990 13-236-2
+sign \x8991 1234-2345-4
+sign \x8992 134-146-2
+sign \x8993 134-16-5
+sign \x8994 134-16-5
+sign \x8995 1234-346-3
+sign \x8996 24-156-5
+sign \x8997 15-156-3
+sign \x8998 12-1236-3
+sign \x8999 14-25-2
+sign \x899A 13-236-2
+sign \x899B 134-16-5
+sign \x899C 124-246-5
+sign \x899D 14-2345-2
+sign \x899E 246-5
+sign \x899F 1-156-5
+sign \x89A0 13-256-3
+sign \x89A1 15-16-2
+sign \x89A2 24-1236-4
+sign \x89A3 1246-3
+sign \x89A4 15-16-5
+sign \x89A5 124-2345-4
+sign \x89A6 1256-2
+sign \x89A7 14-1236-4
+sign \x89A8 2346-5
+sign \x89A9 145-34-4
+sign \x89AA 245-1456-3
+sign \x89AB 1234-1346-4
+sign \x89AC 13-16-5
+sign \x89AD 134-13456-2
+sign \x89AE 1234-13456-3
+sign \x89AF 13-12356-5
+sign \x89B0 245-1256-5
+sign \x89B1 1-1236-5
+sign \x89B2 13-1456-5
+sign \x89B3 13-12456-3
+sign \x89B4 145-1356-3
+sign \x89B5 13-2345-5
+sign \x89B6 14-25-2
+sign \x89B7 245-1256-5
+sign \x89B8 13-2345-5
+sign \x89B9 1246-2
+sign \x89BA 13-236-2
+sign \x89BB 245-1256-5
+sign \x89BC 14-25-2
+sign \x89BD 14-1236-4
+sign \x89BE 24-136-4
+sign \x89BF 145-16-2
+sign \x89C0 13-12456-3
+sign \x89C1 13-2345-5
+sign \x89C2 13-12456-3
+sign \x89C3 2345-5
+sign \x89C4 13-1246-3
+sign \x89C5 134-16-5
+sign \x89C6 24-156-5
+sign \x89C7 12-1236-3
+sign \x89C8 14-1236-4
+sign \x89C9 13-236-2
+sign \x89CA 13-16-5
+sign \x89CB 15-16-2
+sign \x89CC 145-16-2
+sign \x89CD 124-2345-4
+sign \x89CE 1256-2
+sign \x89CF 13-12356-5
+sign \x89D0 13-1456-5
+sign \x89D1 245-1256-5
+sign \x89D2 13-246-4
+sign \x89D3 245-234-2
+sign \x89D4 13-1456-3
+sign \x89D5 245-34-3
+sign \x89D6 13-236-2
+sign \x89D7 1-156-5
+sign \x89D8 12-146-5
+sign \x89D9 13-16-2
+sign \x89DA 13-34-3
+sign \x89DB 145-1236-5
+sign \x89DC 125-156-3
+sign \x89DD 145-16-4
+sign \x89DE 24-1346-3
+sign \x89DF 1235-35-5
+sign \x89E0 245-45-2
+sign \x89E1 13-2346-2
+sign \x89E2 12-156-5
+sign \x89E3 13-346-4
+sign \x89E4 13-1246-4
+sign \x89E5 13-12346-3
+sign \x89E6 12-34-5
+sign \x89E7 13-346-4
+sign \x89E8 1235-123456-5
+sign \x89E9 245-234-2
+sign \x89EA 15-13456-3
+sign \x89EB 15-34-5
+sign \x89EC 1345-16-2
+sign \x89ED 245-16-3
+sign \x89EE 14-34-5
+sign \x89EF 1-156-5
+sign \x89F0 1-345-3
+sign \x89F1 135-16-5
+sign \x89F2 15-13456-1
+sign \x89F3 1235-34-2
+sign \x89F4 24-1346-3
+sign \x89F5 13-12346-3
+sign \x89F6 1-156-5
+sign \x89F7 15-236-2
+sign \x89F8 12-34-5
+sign \x89F9 15-16-3
+sign \x89FA 16-2
+sign \x89FB 14-34-5
+sign \x89FC 13-236-2
+sign \x89FD 15-16-3
+sign \x89FE 2345-5
+sign \x89FF 15-16-3
+sign \x8A00 2345-2
+sign \x8A02 145-13456-5
+sign \x8A03 12345-34-5
+sign \x8A04 245-234-2
+sign \x8A05 245-234-2
+sign \x8A06 13-246-5
+sign \x8A07 1235-12346-3
+sign \x8A08 13-16-5
+sign \x8A09 12345-1236-5
+sign \x8A0A 15-256-5
+sign \x8A0B 145-246-5
+sign \x8A0C 1235-12346-2
+sign \x8A0D 12-345-5
+sign \x8A0E 124-146-4
+sign \x8A0F 15-1256-3
+sign \x8A10 13-346-2
+sign \x8A11 16-2
+sign \x8A12 1245-136-5
+sign \x8A13 15-256-5
+sign \x8A14 1456-2
+sign \x8A15 24-1236-5
+sign \x8A16 245-16-5
+sign \x8A17 124-25-3
+sign \x8A18 13-16-5
+sign \x8A19 15-256-5
+sign \x8A1A 1456-2
+sign \x8A1B 2346-2
+sign \x8A1C 12345-136-3
+sign \x8A1D 23456-5
+sign \x8A1E 246-3
+sign \x8A1F 15-12346-5
+sign \x8A20 24-136-4
+sign \x8A21 1456-2
+sign \x8A22 15-1456-3
+sign \x8A23 13-236-2
+sign \x8A24 15-246-2
+sign \x8A25 1345-345-5
+sign \x8A26 12-136-2
+sign \x8A27 234-2
+sign \x8A28 1-156-4
+sign \x8A29 15-235-3
+sign \x8A2A 12345-1346-4
+sign \x8A2B 15-1456-5
+sign \x8A2C 12-146-3
+sign \x8A2D 24-2346-5
+sign \x8A2E 15-2345-3
+sign \x8A2F 24-345-4
+sign \x8A30 1-123456-5
+sign \x8A31 15-1256-4
+sign \x8A32 16-5
+sign \x8A33 16-5
+sign \x8A34 15-34-5
+sign \x8A35 12-156-3
+sign \x8A36 1235-2346-3
+sign \x8A37 24-136-3
+sign \x8A38 1235-2346-2
+sign \x8A39 15-1256-5
+sign \x8A3A 1-136-4
+sign \x8A3B 1-34-5
+sign \x8A3C 1-1356-5
+sign \x8A3D 13-12356-5
+sign \x8A3E 125-156-3
+sign \x8A3F 125-156-3
+sign \x8A40 1-1236-3
+sign \x8A41 13-34-4
+sign \x8A42 12345-34-5
+sign \x8A43 245-45-4
+sign \x8A44 16-5
+sign \x8A45 14-13456-5
+sign \x8A46 145-16-4
+sign \x8A47 46-5
+sign \x8A48 14-16-5
+sign \x8A49 1345-146-2
+sign \x8A4A 1234-1236-5
+sign \x8A4B 1-12356-5
+sign \x8A4C 13-1236-5
+sign \x8A4D 16-5
+sign \x8A4E 13-1256-5
+sign \x8A4F 146-5
+sign \x8A50 1-345-5
+sign \x8A51 16-2
+sign \x8A52 16-2
+sign \x8A53 245-1256-4
+sign \x8A54 1-146-5
+sign \x8A55 1234-13456-2
+sign \x8A56 135-16-5
+sign \x8A57 15-235-4
+sign \x8A58 245-1256-3
+sign \x8A59 135-345-2
+sign \x8A5A 145-345-2
+sign \x8A5B 125-34-4
+sign \x8A5C 124-146-3
+sign \x8A5D 1-34-4
+sign \x8A5E 245-156-2
+sign \x8A5F 1-2346-2
+sign \x8A60 235-4
+sign \x8A61 15-1256-4
+sign \x8A62 15-256-2
+sign \x8A63 16-5
+sign \x8A64 1235-456-4
+sign \x8A65 1235-2346-2
+sign \x8A66 24-156-5
+sign \x8A67 12-345-2
+sign \x8A68 15-246-3
+sign \x8A69 24-156-3
+sign \x8A6A 1235-136-4
+sign \x8A6B 12-345-5
+sign \x8A6C 13-12356-5
+sign \x8A6D 13-1246-4
+sign \x8A6E 245-45-2
+sign \x8A6F 1235-1246-5
+sign \x8A70 13-346-2
+sign \x8A71 1235-35-5
+sign \x8A72 13-2456-3
+sign \x8A73 15-46-2
+sign \x8A74 1246-3
+sign \x8A75 24-136-3
+sign \x8A76 12-12356-2
+sign \x8A77 124-12346-2
+sign \x8A78 134-16-2
+sign \x8A79 1-1236-3
+sign \x8A7A 134-13456-5
+sign \x8A7B 2346-5
+sign \x8A7C 1235-1246-3
+sign \x8A7D 2345-2
+sign \x8A7E 15-235-3
+sign \x8A7F 13-35-5
+sign \x8A80 156-5
+sign \x8A81 1234-13456-5
+sign \x8A82 124-246-4
+sign \x8A83 12-156-4
+sign \x8A84 14-356-4
+sign \x8A85 1-34-3
+sign \x8A86 13-456-3
+sign \x8A87 123-35-3
+sign \x8A88 34-2
+sign \x8A89 1256-5
+sign \x8A8A 124-1356-2
+sign \x8A8B 13-16-5
+sign \x8A8C 1-156-5
+sign \x8A8D 1245-136-5
+sign \x8A8E 15-34-5
+sign \x8A8F 14-1346-4
+sign \x8A90 2346-2
+sign \x8A91 123-456-2
+sign \x8A92 15-16-3
+sign \x8A93 24-156-5
+sign \x8A94 124-13456-4
+sign \x8A95 145-1236-5
+sign \x8A96 135-356-5
+sign \x8A97 12-1236-2
+sign \x8A98 234-5
+sign \x8A99 123-1356-3
+sign \x8A9A 245-246-5
+sign \x8A9B 245-1456-3
+sign \x8A9C 24-35-5
+sign \x8A9D 1236-3
+sign \x8A9E 1256-4
+sign \x8A9F 15-246-5
+sign \x8AA0 12-1356-2
+sign \x8AA1 13-346-5
+sign \x8AA2 15-2345-5
+sign \x8AA3 34-3
+sign \x8AA4 34-5
+sign \x8AA5 13-146-5
+sign \x8AA6 15-12346-5
+sign \x8AA7 1234-34-4
+sign \x8AA8 1235-1246-4
+sign \x8AA9 13-13456-5
+sign \x8AAA 24-25-3
+sign \x8AAB 1-136-5
+sign \x8AAC 24-25-3
+sign \x8AAD 145-34-2
+sign \x8AAF 12-1346-5
+sign \x8AB0 24-356-2
+sign \x8AB1 13-346-2
+sign \x8AB2 123-2346-5
+sign \x8AB3 245-1256-3
+sign \x8AB4 245-12346-2
+sign \x8AB5 15-246-2
+sign \x8AB6 15-1246-5
+sign \x8AB7 456-4
+sign \x8AB8 15-2345-2
+sign \x8AB9 12345-356-4
+sign \x8ABA 12-156-3
+sign \x8ABB 124-345-5
+sign \x8ABC 16-2
+sign \x8ABD 16-5
+sign \x8ABE 1456-2
+sign \x8ABF 145-246-5
+sign \x8AC0 1234-16-4
+sign \x8AC1 12-25-5
+sign \x8AC2 12-1236-4
+sign \x8AC3 12-136-3
+sign \x8AC4 1-123456-3
+sign \x8AC5 13-16-5
+sign \x8AC6 245-16-3
+sign \x8AC7 124-1236-2
+sign \x8AC8 12-1246-2
+sign \x8AC9 1246-4
+sign \x8ACA 13-1256-2
+sign \x8ACB 245-13456-4
+sign \x8ACC 13-2345-5
+sign \x8ACD 1-1356-5
+sign \x8ACE 125-2346-2
+sign \x8ACF 125-12356-3
+sign \x8AD0 245-2345-3
+sign \x8AD1 1-25-2
+sign \x8AD2 14-46-5
+sign \x8AD3 13-2345-3
+sign \x8AD4 12-34-5
+sign \x8AD5 1235-146-2
+sign \x8AD6 14-123456-5
+sign \x8AD7 24-136-4
+sign \x8AD8 135-246-4
+sign \x8AD9 1235-2356-5
+sign \x8ADA 1234-2345-2
+sign \x8ADB 1256-2
+sign \x8ADC 145-346-2
+sign \x8ADD 15-1256-4
+sign \x8ADE 1234-2345-2
+sign \x8ADF 24-156-5
+sign \x8AE0 15-45-3
+sign \x8AE1 24-156-5
+sign \x8AE2 1235-123456-5
+sign \x8AE3 1235-35-5
+sign \x8AE4 2346-5
+sign \x8AE5 1-12346-5
+sign \x8AE6 145-16-5
+sign \x8AE7 15-346-2
+sign \x8AE8 12345-34-2
+sign \x8AE9 1234-34-4
+sign \x8AEA 124-13456-2
+sign \x8AEB 13-2345-5
+sign \x8AEC 245-16-4
+sign \x8AED 1256-5
+sign \x8AEE 125-156-3
+sign \x8AEF 12-12456-2
+sign \x8AF0 15-16-4
+sign \x8AF1 1235-1246-5
+sign \x8AF2 1456-3
+sign \x8AF3 1236-3
+sign \x8AF4 15-2345-2
+sign \x8AF5 1345-1236-2
+sign \x8AF6 12-136-2
+sign \x8AF7 12345-1356-5
+sign \x8AF8 1-34-3
+sign \x8AF9 46-2
+sign \x8AFA 2345-5
+sign \x8AFB 1235-1356-3
+sign \x8AFC 15-45-3
+sign \x8AFD 13-2346-2
+sign \x8AFE 1345-25-5
+sign \x8AFF 245-16-5
+sign \x8B00 134-12356-2
+sign \x8B01 346-5
+sign \x8B02 1246-5
+sign \x8B04 124-1356-2
+sign \x8B05 125-12356-3
+sign \x8B06 24-1236-5
+sign \x8B07 13-2345-4
+sign \x8B08 135-126-2
+sign \x8B0A 1235-456-4
+sign \x8B0B 1235-25-5
+sign \x8B0C 13-2346-3
+sign \x8B0D 13456-2
+sign \x8B0E 134-16-2
+sign \x8B0F 15-12356-4
+sign \x8B10 134-16-5
+sign \x8B11 15-16-5
+sign \x8B12 245-46-3
+sign \x8B13 12-136-3
+sign \x8B14 1345-236-5
+sign \x8B15 124-16-2
+sign \x8B16 15-34-5
+sign \x8B17 135-1346-5
+sign \x8B18 12-156-2
+sign \x8B19 245-2345-3
+sign \x8B1A 24-156-5
+sign \x8B1B 13-46-4
+sign \x8B1C 45-5
+sign \x8B1D 15-346-5
+sign \x8B1E 1235-2346-5
+sign \x8B1F 124-146-3
+sign \x8B20 246-2
+sign \x8B21 246-2
+sign \x8B22 135-345-1
+sign \x8B23 1256-2
+sign \x8B24 135-246-3
+sign \x8B25 245-12346-5
+sign \x8B26 245-13456-4
+sign \x8B27 14-16-2
+sign \x8B28 134-126-2
+sign \x8B29 134-126-2
+sign \x8B2A 24-1346-3
+sign \x8B2B 1-2346-2
+sign \x8B2C 134-234-5
+sign \x8B2D 13-2345-4
+sign \x8B2E 125-2346-2
+sign \x8B2F 1-34-5
+sign \x8B30 14-2345-2
+sign \x8B31 14-12356-2
+sign \x8B32 245-1236-3
+sign \x8B33 12356-3
+sign \x8B34 13-12456-5
+sign \x8B35 15-16-2
+sign \x8B36 1-25-2
+sign \x8B37 146-2
+sign \x8B38 146-2
+sign \x8B39 13-1456-4
+sign \x8B3A 1-2346-2
+sign \x8B3B 12-156-2
+sign \x8B3C 1235-34-3
+sign \x8B3D 13-46-5
+sign \x8B3E 134-1236-5
+sign \x8B3F 12-146-2
+sign \x8B40 1235-1236-5
+sign \x8B41 1235-35-2
+sign \x8B42 12-1236-4
+sign \x8B43 15-1256-3
+sign \x8B44 125-1356-3
+sign \x8B45 15-2346-5
+sign \x8B46 15-16-3
+sign \x8B47 1-345-3
+sign \x8B48 145-1246-5
+sign \x8B49 1-1356-5
+sign \x8B4A 1345-146-2
+sign \x8B4B 14-1236-2
+sign \x8B4C 2346-2
+sign \x8B4D 13456-5
+sign \x8B4E 13-236-2
+sign \x8B4F 13-16-3
+sign \x8B50 125-123456-4
+sign \x8B51 13-246-4
+sign \x8B52 135-126-5
+sign \x8B53 1235-1246-5
+sign \x8B54 1-12456-5
+sign \x8B55 134-34-2
+sign \x8B56 125-136-5
+sign \x8B57 1-345-2
+sign \x8B58 24-156-5
+sign \x8B59 13-246-3
+sign \x8B5A 124-1236-2
+sign \x8B5B 125-136-5
+sign \x8B5C 1234-34-4
+sign \x8B5D 24-1356-2
+sign \x8B5E 15-45-3
+sign \x8B5F 125-146-5
+sign \x8B60 124-1236-3
+sign \x8B61 145-1346-4
+sign \x8B62 15-1246-5
+sign \x8B63 245-2345-3
+sign \x8B64 13-16-3
+sign \x8B65 13-246-5
+sign \x8B66 13-13456-4
+sign \x8B67 14-2345-2
+sign \x8B68 1345-12356-5
+sign \x8B69 16-3
+sign \x8B6A 2456-5
+sign \x8B6B 1-1236-3
+sign \x8B6C 1234-16-5
+sign \x8B6D 1235-1246-4
+sign \x8B6E 1235-35-5
+sign \x8B6F 16-5
+sign \x8B70 16-5
+sign \x8B71 24-1236-5
+sign \x8B72 1245-1346-5
+sign \x8B73 1345-12356-5
+sign \x8B74 245-2345-4
+sign \x8B75 1-1246-5
+sign \x8B76 124-345-5
+sign \x8B77 1235-34-5
+sign \x8B78 1-12356-3
+sign \x8B79 13-146-3
+sign \x8B7A 346-5
+sign \x8B7B 13456-3
+sign \x8B7C 13-2345-5
+sign \x8B7D 1256-5
+sign \x8B7E 13-2345-4
+sign \x8B7F 1235-1246-5
+sign \x8B80 145-34-2
+sign \x8B81 1-2346-2
+sign \x8B82 15-45-5
+sign \x8B83 125-1236-5
+sign \x8B84 14-356-4
+sign \x8B85 24-136-4
+sign \x8B86 1246-5
+sign \x8B87 12-1236-4
+sign \x8B88 14-16-5
+sign \x8B89 16-2
+sign \x8B8A 135-2345-5
+sign \x8B8B 1-2346-2
+sign \x8B8C 2345-5
+sign \x8B8D 2346-5
+sign \x8B8E 12-12356-2
+sign \x8B8F 1246-5
+sign \x8B90 12-12356-2
+sign \x8B91 246-5
+sign \x8B92 12-1236-2
+sign \x8B93 1245-1346-5
+sign \x8B94 1456-4
+sign \x8B95 14-1236-2
+sign \x8B96 12-136-5
+sign \x8B97 1235-25-5
+sign \x8B98 1-2346-2
+sign \x8B99 1235-12456-3
+sign \x8B9A 125-1236-5
+sign \x8B9B 16-5
+sign \x8B9C 145-1346-4
+sign \x8B9D 1-1236-3
+sign \x8B9E 2345-5
+sign \x8B9F 145-34-2
+sign \x8BA0 14-234-2
+sign \x8BA1 13-16-5
+sign \x8BA2 145-13456-5
+sign \x8BA3 12345-34-5
+sign \x8BA4 1245-136-5
+sign \x8BA5 13-16-3
+sign \x8BA6 13-346-2
+sign \x8BA7 1235-12346-2
+sign \x8BA8 124-146-4
+sign \x8BA9 1245-1346-5
+sign \x8BAA 24-1236-5
+sign \x8BAB 245-16-5
+sign \x8BAC 124-25-3
+sign \x8BAD 15-256-5
+sign \x8BAE 16-5
+sign \x8BAF 15-256-5
+sign \x8BB0 13-16-5
+sign \x8BB1 1245-136-5
+sign \x8BB2 13-46-4
+sign \x8BB3 1235-1246-5
+sign \x8BB4 12356-3
+sign \x8BB5 13-1256-5
+sign \x8BB6 23456-5
+sign \x8BB7 1345-345-5
+sign \x8BB8 15-1256-4
+sign \x8BB9 2346-2
+sign \x8BBA 14-123456-5
+sign \x8BBB 15-235-3
+sign \x8BBC 15-12346-5
+sign \x8BBD 12345-1356-5
+sign \x8BBE 24-2346-5
+sign \x8BBF 12345-1346-4
+sign \x8BC0 13-236-2
+sign \x8BC1 1-1356-5
+sign \x8BC2 13-34-4
+sign \x8BC3 1235-2346-3
+sign \x8BC4 1234-13456-2
+sign \x8BC5 125-34-4
+sign \x8BC6 24-156-5
+sign \x8BC7 15-235-5
+sign \x8BC8 1-345-5
+sign \x8BC9 15-34-5
+sign \x8BCA 1-136-4
+sign \x8BCB 145-16-4
+sign \x8BCC 125-12356-3
+sign \x8BCD 245-156-2
+sign \x8BCE 1-146-5
+sign \x8BCF 1-146-5
+sign \x8BD0 135-16-5
+sign \x8BD1 16-5
+sign \x8BD2 16-2
+sign \x8BD3 13-456-3
+sign \x8BD4 14-356-4
+sign \x8BD5 24-156-5
+sign \x8BD6 13-35-5
+sign \x8BD7 24-156-3
+sign \x8BD8 13-346-2
+sign \x8BD9 1235-1246-3
+sign \x8BDA 12-1356-2
+sign \x8BDB 1-34-3
+sign \x8BDC 24-136-3
+sign \x8BDD 1235-35-5
+sign \x8BDE 145-1236-5
+sign \x8BDF 13-12356-5
+sign \x8BE0 245-45-2
+sign \x8BE1 13-1246-4
+sign \x8BE2 15-256-2
+sign \x8BE3 16-5
+sign \x8BE4 1-1356-5
+sign \x8BE5 13-2456-3
+sign \x8BE6 15-46-2
+sign \x8BE7 12-345-5
+sign \x8BE8 1235-123456-5
+sign \x8BE9 15-1256-4
+sign \x8BEA 1-12356-3
+sign \x8BEB 13-346-5
+sign \x8BEC 34-3
+sign \x8BED 1256-4
+sign \x8BEE 245-246-5
+sign \x8BEF 34-5
+sign \x8BF0 13-146-5
+sign \x8BF1 234-5
+sign \x8BF2 1235-1246-4
+sign \x8BF3 123-456-2
+sign \x8BF4 24-25-3
+sign \x8BF5 15-12346-5
+sign \x8BF6 15-16-3
+sign \x8BF7 245-13456-4
+sign \x8BF8 1-34-3
+sign \x8BF9 125-12356-3
+sign \x8BFA 1345-25-5
+sign \x8BFB 145-34-2
+sign \x8BFC 1-25-2
+sign \x8BFD 12345-356-4
+sign \x8BFE 123-2346-5
+sign \x8BFF 1246-4
+sign \x8C00 1256-2
+sign \x8C01 24-356-2
+sign \x8C02 24-136-4
+sign \x8C03 145-246-5
+sign \x8C04 12-1236-4
+sign \x8C05 14-46-5
+sign \x8C06 1-123456-3
+sign \x8C07 15-1246-5
+sign \x8C08 124-1236-2
+sign \x8C09 24-136-4
+sign \x8C0A 16-2
+sign \x8C0B 134-12356-2
+sign \x8C0C 12-136-2
+sign \x8C0D 145-346-2
+sign \x8C0E 1235-456-4
+sign \x8C0F 13-2345-5
+sign \x8C10 15-346-2
+sign \x8C11 1345-236-5
+sign \x8C12 346-5
+sign \x8C13 1246-5
+sign \x8C14 2346-5
+sign \x8C15 1256-5
+sign \x8C16 15-45-3
+sign \x8C17 12-1236-2
+sign \x8C18 125-156-3
+sign \x8C19 1236-3
+sign \x8C1A 2345-5
+sign \x8C1B 145-16-5
+sign \x8C1C 134-16-2
+sign \x8C1D 1234-2345-2
+sign \x8C1E 15-1256-4
+sign \x8C1F 134-126-2
+sign \x8C20 145-1346-4
+sign \x8C21 15-34-5
+sign \x8C22 15-346-5
+sign \x8C23 246-2
+sign \x8C24 135-1346-5
+sign \x8C25 24-156-5
+sign \x8C26 245-2345-3
+sign \x8C27 134-16-5
+sign \x8C28 13-1456-4
+sign \x8C29 134-1236-5
+sign \x8C2A 1-2346-2
+sign \x8C2B 13-2345-4
+sign \x8C2C 134-234-5
+sign \x8C2D 124-1236-2
+sign \x8C2E 125-136-5
+sign \x8C2F 13-246-3
+sign \x8C30 14-1236-2
+sign \x8C31 1234-34-4
+sign \x8C32 13-236-2
+sign \x8C33 2345-5
+sign \x8C34 245-2345-4
+sign \x8C35 1-1236-3
+sign \x8C36 12-136-5
+sign \x8C37 13-34-4
+sign \x8C38 245-2345-3
+sign \x8C39 1235-12346-2
+sign \x8C3A 15-23456-3
+sign \x8C3B 13-236-2
+sign \x8C3C 1235-12346-2
+sign \x8C3D 1235-1236-3
+sign \x8C3E 1235-12346-3
+sign \x8C3F 15-16-3
+sign \x8C40 15-16-3
+sign \x8C41 1235-25-5
+sign \x8C42 14-246-2
+sign \x8C43 1235-1236-4
+sign \x8C44 145-34-2
+sign \x8C45 14-12346-2
+sign \x8C46 145-12356-5
+sign \x8C47 13-46-3
+sign \x8C48 245-16-4
+sign \x8C49 24-156-5
+sign \x8C4A 14-16-4
+sign \x8C4B 145-1356-3
+sign \x8C4C 12456-3
+sign \x8C4D 135-16-3
+sign \x8C4E 24-34-5
+sign \x8C4F 15-2345-5
+sign \x8C50 12345-1356-3
+sign \x8C51 1-156-5
+sign \x8C52 1-156-5
+sign \x8C53 2345-5
+sign \x8C54 2345-5
+sign \x8C55 24-156-4
+sign \x8C56 12-34-5
+sign \x8C57 1235-1246-3
+sign \x8C58 124-123456-2
+sign \x8C59 16-5
+sign \x8C5A 124-123456-2
+sign \x8C5B 16-5
+sign \x8C5C 13-2345-3
+sign \x8C5D 135-345-3
+sign \x8C5E 1235-12356-5
+sign \x8C5F 2346-5
+sign \x8C60 245-34-2
+sign \x8C61 15-46-5
+sign \x8C62 1235-12456-5
+sign \x8C63 13-2345-3
+sign \x8C64 123-136-4
+sign \x8C65 13-2456-3
+sign \x8C66 245-1256-2
+sign \x8C67 12345-34-3
+sign \x8C68 15-16-4
+sign \x8C69 135-1456-3
+sign \x8C6A 1235-146-2
+sign \x8C6B 1256-5
+sign \x8C6C 1-34-3
+sign \x8C6D 13-23456-3
+sign \x8C6E 12345-136-2
+sign \x8C6F 15-16-3
+sign \x8C70 1235-34-5
+sign \x8C71 123456-3
+sign \x8C72 1235-12456-2
+sign \x8C73 135-1456-3
+sign \x8C74 145-16-2
+sign \x8C75 125-12346-3
+sign \x8C76 12345-136-2
+sign \x8C77 15-16-5
+sign \x8C78 1-156-5
+sign \x8C79 135-146-5
+sign \x8C7A 12-2456-2
+sign \x8C7B 1235-1236-5
+sign \x8C7C 1234-16-2
+sign \x8C7D 1345-345-5
+sign \x8C7E 1234-16-3
+sign \x8C7F 13-12356-4
+sign \x8C80 1345-345-5
+sign \x8C81 234-5
+sign \x8C82 145-246-3
+sign \x8C83 134-126-5
+sign \x8C84 15-156-5
+sign \x8C85 15-234-3
+sign \x8C86 1235-12456-2
+sign \x8C87 123-123456-3
+sign \x8C88 1235-2346-2
+sign \x8C89 1235-2346-2
+sign \x8C8A 134-126-5
+sign \x8C8B 1235-1236-5
+sign \x8C8C 134-146-5
+sign \x8C8D 14-16-2
+sign \x8C8E 1345-16-2
+sign \x8C8F 135-16-4
+sign \x8C90 1256-4
+sign \x8C91 13-23456-3
+sign \x8C92 124-12456-3
+sign \x8C93 134-146-3
+sign \x8C94 1234-16-2
+sign \x8C95 15-16-3
+sign \x8C96 2346-5
+sign \x8C97 13-1256-5
+sign \x8C98 134-126-5
+sign \x8C99 12-34-3
+sign \x8C9A 124-1236-2
+sign \x8C9B 1235-12456-3
+sign \x8C9C 13-236-2
+sign \x8C9D 135-356-5
+sign \x8C9E 1-136-3
+sign \x8C9F 45-2
+sign \x8CA0 12345-34-5
+sign \x8CA1 245-2456-2
+sign \x8CA2 13-12346-5
+sign \x8CA3 124-2346-5
+sign \x8CA4 16-5
+sign \x8CA5 1235-1346-2
+sign \x8CA6 12456-5
+sign \x8CA7 1234-1456-2
+sign \x8CA8 1235-25-5
+sign \x8CA9 12345-1236-5
+sign \x8CAA 124-1236-3
+sign \x8CAB 13-12456-5
+sign \x8CAC 125-2346-2
+sign \x8CAD 1-156-2
+sign \x8CAE 156-5
+sign \x8CAF 1-34-4
+sign \x8CB0 24-156-5
+sign \x8CB1 135-16-5
+sign \x8CB2 125-156-3
+sign \x8CB3 156-5
+sign \x8CB4 13-1246-5
+sign \x8CB5 1234-2345-3
+sign \x8CB6 135-2345-4
+sign \x8CB7 134-2456-4
+sign \x8CB8 145-2456-5
+sign \x8CB9 24-1356-5
+sign \x8CBA 123-456-5
+sign \x8CBB 12345-356-5
+sign \x8CBC 124-346-3
+sign \x8CBD 16-2
+sign \x8CBE 12-156-2
+sign \x8CBF 134-146-5
+sign \x8CC0 1235-2346-5
+sign \x8CC1 135-136-3
+sign \x8CC2 14-34-5
+sign \x8CC3 1245-136-5
+sign \x8CC4 1235-1246-5
+sign \x8CC5 13-2456-3
+sign \x8CC6 1234-2345-2
+sign \x8CC7 125-156-3
+sign \x8CC8 13-23456-4
+sign \x8CC9 15-1256-5
+sign \x8CCA 125-356-2
+sign \x8CCB 13-246-4
+sign \x8CCC 13-2456-3
+sign \x8CCD 125-1346-3
+sign \x8CCE 13-2345-5
+sign \x8CCF 13456-5
+sign \x8CD0 15-256-5
+sign \x8CD1 1-136-5
+sign \x8CD2 24-2346-3
+sign \x8CD3 135-1456-3
+sign \x8CD4 135-1456-3
+sign \x8CD5 245-234-2
+sign \x8CD6 24-2346-3
+sign \x8CD7 12-12456-5
+sign \x8CD8 125-1346-3
+sign \x8CD9 1-12356-3
+sign \x8CDA 14-2456-5
+sign \x8CDB 125-1236-5
+sign \x8CDC 15-156-5
+sign \x8CDD 12-136-3
+sign \x8CDE 24-1346-4
+sign \x8CDF 124-2345-4
+sign \x8CE0 1234-356-2
+sign \x8CE1 13-1356-3
+sign \x8CE2 15-2345-2
+sign \x8CE3 134-2456-5
+sign \x8CE4 13-2345-5
+sign \x8CE5 15-1246-5
+sign \x8CE6 12345-34-5
+sign \x8CE7 124-1236-5
+sign \x8CE8 245-12346-2
+sign \x8CE9 245-12346-2
+sign \x8CEA 1-156-2
+sign \x8CEB 13-16-3
+sign \x8CEC 1-1346-5
+sign \x8CED 145-34-4
+sign \x8CEE 15-1456-5
+sign \x8CEF 15-235-3
+sign \x8CF0 24-123456-4
+sign \x8CF1 256-4
+sign \x8CF2 135-146-4
+sign \x8CF3 125-2456-3
+sign \x8CF4 14-2456-5
+sign \x8CF5 12345-1356-5
+sign \x8CF6 245-1346-5
+sign \x8CF7 13-16-3
+sign \x8CF8 24-1356-5
+sign \x8CF9 2456-5
+sign \x8CFA 1-12456-5
+sign \x8CFB 12345-34-5
+sign \x8CFC 13-12356-5
+sign \x8CFD 15-2456-5
+sign \x8CFE 125-2346-2
+sign \x8CFF 14-246-2
+sign \x8D00 1246-5
+sign \x8D01 135-2456-5
+sign \x8D02 12-136-4
+sign \x8D03 1-12456-5
+sign \x8D04 1-156-5
+sign \x8D05 1-1246-5
+sign \x8D06 135-246-3
+sign \x8D07 256-3
+sign \x8D08 125-1356-5
+sign \x8D09 124-1236-4
+sign \x8D0A 125-1236-5
+sign \x8D0B 2345-5
+sign \x8D0D 24-1236-5
+sign \x8D0E 12456-5
+sign \x8D0F 13456-2
+sign \x8D10 13-1456-5
+sign \x8D11 13-1236-4
+sign \x8D12 15-2345-2
+sign \x8D13 125-1346-3
+sign \x8D14 135-16-5
+sign \x8D15 145-34-2
+sign \x8D16 24-34-2
+sign \x8D17 2345-5
+sign \x8D19 15-45-5
+sign \x8D1A 14-12346-5
+sign \x8D1B 13-1236-5
+sign \x8D1C 125-1346-3
+sign \x8D1D 135-356-5
+sign \x8D1E 1-136-3
+sign \x8D1F 12345-34-5
+sign \x8D20 45-2
+sign \x8D21 13-12346-5
+sign \x8D22 245-2456-2
+sign \x8D23 125-2346-2
+sign \x8D24 15-2345-2
+sign \x8D25 135-2456-5
+sign \x8D26 1-1346-5
+sign \x8D27 1235-25-5
+sign \x8D28 1-156-2
+sign \x8D29 12345-1236-5
+sign \x8D2A 124-1236-3
+sign \x8D2B 1234-1456-2
+sign \x8D2C 135-2345-4
+sign \x8D2D 13-12356-5
+sign \x8D2E 1-34-4
+sign \x8D2F 13-12456-5
+sign \x8D30 156-5
+sign \x8D31 13-2345-5
+sign \x8D32 135-136-3
+sign \x8D33 24-156-5
+sign \x8D34 124-346-3
+sign \x8D35 13-1246-5
+sign \x8D36 123-456-5
+sign \x8D37 145-2456-5
+sign \x8D38 134-146-5
+sign \x8D39 12345-356-5
+sign \x8D3A 1235-2346-5
+sign \x8D3B 16-2
+sign \x8D3C 125-356-2
+sign \x8D3D 1-156-5
+sign \x8D3E 13-23456-4
+sign \x8D3F 1235-1246-5
+sign \x8D40 125-156-3
+sign \x8D41 1245-136-5
+sign \x8D42 14-34-5
+sign \x8D43 125-1346-3
+sign \x8D44 125-156-3
+sign \x8D45 13-2456-3
+sign \x8D46 13-1456-5
+sign \x8D47 245-234-2
+sign \x8D48 1-136-5
+sign \x8D49 14-2456-5
+sign \x8D4A 24-2346-3
+sign \x8D4B 12345-34-5
+sign \x8D4C 145-34-4
+sign \x8D4D 13-16-3
+sign \x8D4E 24-34-2
+sign \x8D4F 24-1346-4
+sign \x8D50 245-156-5
+sign \x8D51 135-16-5
+sign \x8D52 1-12356-3
+sign \x8D53 13-1356-3
+sign \x8D54 1234-356-2
+sign \x8D55 124-1236-5
+sign \x8D56 14-2456-5
+sign \x8D57 12345-1356-5
+sign \x8D58 1-1246-5
+sign \x8D59 12345-34-5
+sign \x8D5A 1-12456-5
+sign \x8D5B 15-2456-5
+sign \x8D5C 125-2346-2
+sign \x8D5D 2345-5
+sign \x8D5E 125-1236-5
+sign \x8D5F 256-3
+sign \x8D60 125-1356-5
+sign \x8D61 24-1236-5
+sign \x8D62 13456-2
+sign \x8D63 13-1236-5
+sign \x8D64 12-156-5
+sign \x8D65 15-16-5
+sign \x8D66 24-2346-5
+sign \x8D67 1345-1236-4
+sign \x8D68 124-12346-2
+sign \x8D69 15-16-5
+sign \x8D6A 12-1356-3
+sign \x8D6B 1235-2346-5
+sign \x8D6C 12-1356-3
+sign \x8D6D 1-2346-4
+sign \x8D6E 15-23456-2
+sign \x8D6F 124-1346-2
+sign \x8D70 125-12356-4
+sign \x8D71 125-12356-4
+sign \x8D72 14-16-5
+sign \x8D73 13-234-3
+sign \x8D74 12345-34-5
+sign \x8D75 1-146-5
+sign \x8D76 13-1236-4
+sign \x8D77 245-16-4
+sign \x8D78 24-1236-5
+sign \x8D79 245-235-2
+sign \x8D7A 245-1456-2
+sign \x8D7B 15-2345-3
+sign \x8D7C 245-156-3
+sign \x8D7D 13-236-2
+sign \x8D7E 245-1456-4
+sign \x8D7F 12-156-2
+sign \x8D80 245-156-3
+sign \x8D81 12-136-5
+sign \x8D82 12-136-5
+sign \x8D83 145-346-2
+sign \x8D84 13-1256-3
+sign \x8D85 12-146-3
+sign \x8D86 145-16-3
+sign \x8D87 15-2346-5
+sign \x8D88 1-1236-3
+sign \x8D89 1-34-2
+sign \x8D8A 236-5
+sign \x8D8B 245-1256-3
+sign \x8D8C 13-346-2
+sign \x8D8D 245-1256-3
+sign \x8D8E 12-34-2
+sign \x8D8F 13-35-3
+sign \x8D90 15-236-5
+sign \x8D91 125-156-3
+sign \x8D92 124-246-2
+sign \x8D93 145-25-4
+sign \x8D94 14-346-5
+sign \x8D95 13-1236-4
+sign \x8D96 15-25-3
+sign \x8D97 245-34-5
+sign \x8D98 15-16-2
+sign \x8D99 1-146-5
+sign \x8D9A 15-34-5
+sign \x8D9B 1456-4
+sign \x8D9C 13-1256-2
+sign \x8D9D 13-2345-5
+sign \x8D9E 245-236-5
+sign \x8D9F 124-1346-5
+sign \x8DA0 12-25-5
+sign \x8DA1 245-1246-4
+sign \x8DA2 14-34-5
+sign \x8DA3 245-1256-5
+sign \x8DA4 145-1346-5
+sign \x8DA5 245-234-3
+sign \x8DA6 125-156-3
+sign \x8DA7 124-16-2
+sign \x8DA8 245-1256-3
+sign \x8DA9 12-156-5
+sign \x8DAA 1235-456-2
+sign \x8DAB 245-246-2
+sign \x8DAC 245-246-3
+sign \x8DAD 13-246-5
+sign \x8DAE 125-146-5
+sign \x8DAF 124-16-5
+sign \x8DB1 125-1236-4
+sign \x8DB2 125-1236-4
+sign \x8DB3 125-34-2
+sign \x8DB4 1234-345-3
+sign \x8DB5 135-146-5
+sign \x8DB6 123-34-5
+sign \x8DB7 135-345-1
+sign \x8DB8 145-123456-4
+sign \x8DB9 13-236-2
+sign \x8DBA 12345-34-3
+sign \x8DBB 12-136-4
+sign \x8DBC 13-2345-4
+sign \x8DBD 12345-1346-5
+sign \x8DBE 1-156-4
+sign \x8DBF 15-345-5
+sign \x8DC0 236-5
+sign \x8DC1 1234-345-2
+sign \x8DC2 245-16-2
+sign \x8DC3 236-5
+sign \x8DC4 245-46-3
+sign \x8DC5 124-25-5
+sign \x8DC6 124-2456-2
+sign \x8DC7 12-156-5
+sign \x8DC8 1345-2345-4
+sign \x8DC9 14-13456-2
+sign \x8DCA 134-356-5
+sign \x8DCB 135-345-2
+sign \x8DCC 145-346-2
+sign \x8DCD 123-34-3
+sign \x8DCE 124-25-2
+sign \x8DCF 13-23456-3
+sign \x8DD0 245-156-4
+sign \x8DD1 1234-146-4
+sign \x8DD2 245-23456-4
+sign \x8DD3 1-34-5
+sign \x8DD4 13-1256-3
+sign \x8DD5 124-346-3
+sign \x8DD6 1-156-2
+sign \x8DD7 12345-34-3
+sign \x8DD8 1234-1236-2
+sign \x8DD9 13-1256-4
+sign \x8DDA 24-1236-3
+sign \x8DDB 135-126-4
+sign \x8DDC 1345-16-2
+sign \x8DDD 13-1256-5
+sign \x8DDE 14-16-5
+sign \x8DDF 13-136-3
+sign \x8DE0 16-2
+sign \x8DE1 13-16-3
+sign \x8DE2 12-156-2
+sign \x8DE3 15-2345-4
+sign \x8DE4 13-246-3
+sign \x8DE5 145-25-5
+sign \x8DE6 1-34-3
+sign \x8DE7 245-45-2
+sign \x8DE8 123-35-5
+sign \x8DE9 1-2356-4
+sign \x8DEA 13-1246-5
+sign \x8DEB 245-235-2
+sign \x8DEC 123-1246-4
+sign \x8DED 15-46-2
+sign \x8DEE 12-156-5
+sign \x8DEF 14-34-5
+sign \x8DF0 135-1356-5
+sign \x8DF1 1-156-5
+sign \x8DF2 13-346-2
+sign \x8DF3 124-246-5
+sign \x8DF4 245-2456-4
+sign \x8DF5 13-2345-5
+sign \x8DF6 124-345-5
+sign \x8DF7 245-246-3
+sign \x8DF8 135-16-5
+sign \x8DF9 15-2345-3
+sign \x8DFA 145-25-5
+sign \x8DFB 13-16-3
+sign \x8DFC 13-1256-2
+sign \x8DFD 13-16-5
+sign \x8DFE 24-34-2
+sign \x8DFF 124-34-2
+sign \x8E00 12-34-5
+sign \x8E01 13-13456-5
+sign \x8E02 1345-346-5
+sign \x8E03 15-246-3
+sign \x8E04 135-126-2
+sign \x8E05 12-156-5
+sign \x8E06 245-256-3
+sign \x8E07 134-12356-4
+sign \x8E08 24-34-3
+sign \x8E09 14-46-2
+sign \x8E0A 235-4
+sign \x8E0B 13-246-4
+sign \x8E0C 12-12356-2
+sign \x8E0D 15-246-5
+sign \x8E0F 124-345-5
+sign \x8E10 13-2345-5
+sign \x8E11 13-16-5
+sign \x8E12 25-3
+sign \x8E13 1246-4
+sign \x8E14 1-25-2
+sign \x8E15 13-346-2
+sign \x8E16 13-16-2
+sign \x8E17 1345-346-3
+sign \x8E18 13-1256-2
+sign \x8E19 1345-346-5
+sign \x8E1A 14-123456-2
+sign \x8E1B 14-34-5
+sign \x8E1C 14-1356-5
+sign \x8E1D 1235-35-5
+sign \x8E1E 13-1256-5
+sign \x8E1F 12-156-2
+sign \x8E20 12456-4
+sign \x8E21 245-45-2
+sign \x8E22 124-16-3
+sign \x8E23 135-126-2
+sign \x8E24 125-34-2
+sign \x8E25 245-346-5
+sign \x8E26 245-16-3
+sign \x8E27 245-34-5
+sign \x8E28 125-12346-3
+sign \x8E29 245-2456-4
+sign \x8E2A 125-12346-3
+sign \x8E2B 1234-1356-5
+sign \x8E2C 1-156-5
+sign \x8E2D 1-1356-3
+sign \x8E2E 145-2345-4
+sign \x8E2F 1-156-2
+sign \x8E30 1256-2
+sign \x8E31 145-25-5
+sign \x8E32 145-123456-5
+sign \x8E33 12-123456-4
+sign \x8E34 235-4
+sign \x8E35 1-12346-4
+sign \x8E36 145-16-5
+sign \x8E37 1-2346-4
+sign \x8E38 12-136-4
+sign \x8E39 12-2356-5
+sign \x8E3A 13-2345-5
+sign \x8E3B 13-35-3
+sign \x8E3C 124-1346-2
+sign \x8E3D 13-1256-4
+sign \x8E3E 135-16-5
+sign \x8E3F 125-34-2
+sign \x8E40 145-346-2
+sign \x8E41 1234-2345-2
+sign \x8E42 1245-12356-2
+sign \x8E43 1345-25-5
+sign \x8E44 124-16-2
+sign \x8E45 12-345-4
+sign \x8E46 124-1246-4
+sign \x8E47 13-2345-4
+sign \x8E48 145-146-5
+sign \x8E49 245-25-3
+sign \x8E4A 15-16-3
+sign \x8E4B 124-345-5
+sign \x8E4C 245-46-3
+sign \x8E4D 1-1236-4
+sign \x8E4E 145-2345-3
+sign \x8E4F 124-16-2
+sign \x8E50 13-16-2
+sign \x8E51 1345-346-5
+sign \x8E52 134-1236-2
+sign \x8E53 14-234-5
+sign \x8E54 125-1236-5
+sign \x8E55 135-16-5
+sign \x8E56 12-12346-3
+sign \x8E57 14-34-5
+sign \x8E58 14-246-2
+sign \x8E59 245-34-5
+sign \x8E5A 124-1346-3
+sign \x8E5B 145-2456-5
+sign \x8E5C 15-25-3
+sign \x8E5D 15-16-4
+sign \x8E5E 123-1246-4
+sign \x8E5F 13-16-3
+sign \x8E60 1-156-2
+sign \x8E61 245-46-3
+sign \x8E62 1-156-2
+sign \x8E63 134-1236-2
+sign \x8E64 125-12346-3
+sign \x8E65 14-2345-2
+sign \x8E66 135-1356-5
+sign \x8E67 125-146-3
+sign \x8E68 1345-2345-4
+sign \x8E69 135-346-2
+sign \x8E6A 124-1246-2
+sign \x8E6B 13-1256-2
+sign \x8E6C 145-1356-5
+sign \x8E6D 245-1356-5
+sign \x8E6E 15-2345-3
+sign \x8E6F 12345-1236-2
+sign \x8E70 12-34-2
+sign \x8E71 1-12346-3
+sign \x8E72 145-123456-3
+sign \x8E73 135-126-3
+sign \x8E74 245-34-5
+sign \x8E75 245-34-5
+sign \x8E76 13-236-2
+sign \x8E77 13-236-2
+sign \x8E78 14-1456-5
+sign \x8E79 124-345-5
+sign \x8E7A 245-246-3
+sign \x8E7B 245-246-2
+sign \x8E7C 1234-34-2
+sign \x8E7D 14-246-3
+sign \x8E7E 145-123456-3
+sign \x8E7F 245-12456-3
+sign \x8E80 123-456-5
+sign \x8E81 125-146-5
+sign \x8E82 124-345-5
+sign \x8E83 135-16-5
+sign \x8E84 135-16-5
+sign \x8E85 1-25-2
+sign \x8E86 13-1256-5
+sign \x8E87 12-34-2
+sign \x8E88 245-246-5
+sign \x8E89 145-123456-4
+sign \x8E8A 12-12356-2
+sign \x8E8B 13-16-3
+sign \x8E8C 34-4
+sign \x8E8D 236-5
+sign \x8E8E 1345-2345-4
+sign \x8E8F 14-1456-5
+sign \x8E90 14-346-5
+sign \x8E91 1-156-2
+sign \x8E92 14-16-5
+sign \x8E93 1-156-5
+sign \x8E94 12-1236-2
+sign \x8E95 12-34-2
+sign \x8E96 145-12456-5
+sign \x8E97 1246-5
+sign \x8E98 14-12346-2
+sign \x8E99 14-1456-5
+sign \x8E9A 15-2345-3
+sign \x8E9B 1246-5
+sign \x8E9C 125-12456-3
+sign \x8E9D 14-1236-2
+sign \x8E9E 15-346-5
+sign \x8E9F 1245-1346-2
+sign \x8EA0 15-345-4
+sign \x8EA1 1345-346-5
+sign \x8EA2 124-345-5
+sign \x8EA3 245-1256-2
+sign \x8EA4 13-346-5
+sign \x8EA5 245-12456-3
+sign \x8EA6 125-12456-3
+sign \x8EA7 15-16-4
+sign \x8EA8 123-1246-2
+sign \x8EA9 13-236-2
+sign \x8EAA 14-1456-5
+sign \x8EAB 24-136-3
+sign \x8EAC 13-12346-3
+sign \x8EAD 145-1236-3
+sign \x8EAF 245-1256-3
+sign \x8EB0 124-16-4
+sign \x8EB1 145-25-4
+sign \x8EB2 145-25-4
+sign \x8EB3 13-12346-3
+sign \x8EB4 14-1346-2
+sign \x8EB6 14-25-4
+sign \x8EB7 2456-4
+sign \x8EB8 13-16-3
+sign \x8EB9 13-1256-2
+sign \x8EBA 124-1346-4
+sign \x8EBD 2345-4
+sign \x8EBF 123-1346-3
+sign \x8EC0 245-1256-3
+sign \x8EC1 14-12356-2
+sign \x8EC2 14-146-5
+sign \x8EC3 124-25-4
+sign \x8EC4 1-156-2
+sign \x8EC6 124-16-4
+sign \x8EC7 145-146-5
+sign \x8EC9 1256-5
+sign \x8ECA 12-2346-3
+sign \x8ECB 23456-5
+sign \x8ECC 13-1246-4
+sign \x8ECD 13-256-3
+sign \x8ECE 1246-5
+sign \x8ECF 236-5
+sign \x8ED0 15-1456-5
+sign \x8ED1 145-16-5
+sign \x8ED2 15-45-3
+sign \x8ED3 12345-1236-5
+sign \x8ED4 1245-136-5
+sign \x8ED5 24-1236-3
+sign \x8ED6 245-46-2
+sign \x8ED7 24-34-3
+sign \x8ED8 124-123456-2
+sign \x8ED9 12-136-2
+sign \x8EDA 145-2456-5
+sign \x8EDB 2346-5
+sign \x8EDC 1345-345-5
+sign \x8EDD 245-16-2
+sign \x8EDE 134-146-2
+sign \x8EDF 1245-12456-4
+sign \x8EE0 1245-136-5
+sign \x8EE1 245-1456-2
+sign \x8EE2 1-12456-4
+sign \x8EE3 1235-12346-3
+sign \x8EE4 1235-34-3
+sign \x8EE5 245-1256-2
+sign \x8EE6 1235-456-5
+sign \x8EE7 145-16-4
+sign \x8EE8 14-13456-2
+sign \x8EE9 145-2456-5
+sign \x8EEA 146-3
+sign \x8EEB 1-136-4
+sign \x8EEC 12345-1236-5
+sign \x8EED 123-456-3
+sign \x8EEE 1346-4
+sign \x8EEF 1234-1356-3
+sign \x8EF0 135-356-5
+sign \x8EF1 13-34-3
+sign \x8EF2 123-34-3
+sign \x8EF3 1234-146-2
+sign \x8EF4 1-34-5
+sign \x8EF5 1245-12346-4
+sign \x8EF6 2346-5
+sign \x8EF7 135-345-2
+sign \x8EF8 1-12356-2
+sign \x8EF9 1-156-4
+sign \x8EFA 246-2
+sign \x8EFB 123-2346-3
+sign \x8EFC 16-5
+sign \x8EFD 245-13456-3
+sign \x8EFE 24-156-5
+sign \x8EFF 1234-13456-2
+sign \x8F00 156-2
+sign \x8F01 245-235-2
+sign \x8F02 13-1256-2
+sign \x8F03 13-246-5
+sign \x8F04 13-456-3
+sign \x8F05 14-34-5
+sign \x8F06 123-2456-4
+sign \x8F07 245-45-2
+sign \x8F08 1-12356-3
+sign \x8F09 125-2456-5
+sign \x8F0A 1-156-5
+sign \x8F0B 24-156-3
+sign \x8F0C 14-46-5
+sign \x8F0D 1256-5
+sign \x8F0E 24-146-3
+sign \x8F0F 234-2
+sign \x8F10 12456-5
+sign \x8F11 256-4
+sign \x8F12 1-2346-2
+sign \x8F13 12456-4
+sign \x8F14 12345-34-4
+sign \x8F15 245-13456-3
+sign \x8F16 1-12356-3
+sign \x8F17 1345-16-2
+sign \x8F18 14-13456-2
+sign \x8F19 1-2346-2
+sign \x8F1A 1-1236-5
+sign \x8F1B 14-46-5
+sign \x8F1C 125-156-3
+sign \x8F1D 1235-1246-3
+sign \x8F1E 456-4
+sign \x8F1F 12-25-5
+sign \x8F20 13-25-4
+sign \x8F21 123-1236-4
+sign \x8F22 16-4
+sign \x8F23 1234-1356-2
+sign \x8F24 245-2345-5
+sign \x8F25 13-123456-4
+sign \x8F26 1345-2345-4
+sign \x8F27 1234-13456-2
+sign \x8F28 13-12456-4
+sign \x8F29 135-356-5
+sign \x8F2A 14-123456-2
+sign \x8F2B 1234-2456-2
+sign \x8F2C 14-46-2
+sign \x8F2D 1245-12456-4
+sign \x8F2E 1245-12356-2
+sign \x8F2F 13-16-2
+sign \x8F30 46-2
+sign \x8F31 15-2345-2
+sign \x8F32 24-12456-5
+sign \x8F33 245-12356-5
+sign \x8F34 12-123456-3
+sign \x8F35 13-2346-2
+sign \x8F36 234-2
+sign \x8F37 1235-12346-3
+sign \x8F38 24-34-3
+sign \x8F39 12345-34-5
+sign \x8F3A 125-156-3
+sign \x8F3B 12345-34-2
+sign \x8F3C 123456-3
+sign \x8F3D 135-136-5
+sign \x8F3E 1-1236-4
+sign \x8F3F 1256-2
+sign \x8F40 123456-3
+sign \x8F41 124-146-3
+sign \x8F42 13-34-4
+sign \x8F43 1-136-3
+sign \x8F44 15-23456-2
+sign \x8F45 45-2
+sign \x8F46 14-34-5
+sign \x8F47 13-246-3
+sign \x8F48 12-146-2
+sign \x8F49 1-12456-4
+sign \x8F4A 1246-5
+sign \x8F4B 1235-123456-3
+sign \x8F4D 12-2346-5
+sign \x8F4E 13-246-5
+sign \x8F4F 1-1236-5
+sign \x8F50 135-34-2
+sign \x8F51 14-146-4
+sign \x8F52 12345-136-2
+sign \x8F53 12345-1236-3
+sign \x8F54 14-1456-2
+sign \x8F55 13-2346-2
+sign \x8F56 15-2346-5
+sign \x8F57 123-1236-4
+sign \x8F58 1235-12456-2
+sign \x8F59 16-4
+sign \x8F5A 13-16-2
+sign \x8F5B 145-1246-5
+sign \x8F5C 156-2
+sign \x8F5D 1256-2
+sign \x8F5E 15-2345-5
+sign \x8F5F 1235-12346-3
+sign \x8F60 14-356-2
+sign \x8F61 1234-356-5
+sign \x8F62 14-16-5
+sign \x8F63 14-16-5
+sign \x8F64 14-34-2
+sign \x8F65 14-1456-5
+sign \x8F66 12-2346-3
+sign \x8F67 23456-5
+sign \x8F68 13-1246-4
+sign \x8F69 15-45-3
+sign \x8F6A 145-16-5
+sign \x8F6B 1245-136-5
+sign \x8F6C 1-12456-4
+sign \x8F6D 2346-5
+sign \x8F6E 14-123456-2
+sign \x8F6F 1245-12456-4
+sign \x8F70 1235-12346-3
+sign \x8F71 123-34-3
+sign \x8F72 123-2346-3
+sign \x8F73 14-34-2
+sign \x8F74 1-12356-2
+sign \x8F75 1-156-4
+sign \x8F76 16-5
+sign \x8F77 1235-34-3
+sign \x8F78 1-136-4
+sign \x8F79 14-16-5
+sign \x8F7A 246-2
+sign \x8F7B 245-13456-3
+sign \x8F7C 24-156-5
+sign \x8F7D 125-2456-5
+sign \x8F7E 1-156-5
+sign \x8F7F 13-246-5
+sign \x8F80 1-12356-3
+sign \x8F81 245-45-2
+sign \x8F82 14-34-5
+sign \x8F83 13-246-5
+sign \x8F84 1-2346-2
+sign \x8F85 12345-34-4
+sign \x8F86 14-46-5
+sign \x8F87 1345-2345-4
+sign \x8F88 135-356-5
+sign \x8F89 1235-1246-3
+sign \x8F8A 13-123456-4
+sign \x8F8B 456-4
+sign \x8F8C 14-46-2
+sign \x8F8D 12-25-5
+sign \x8F8E 125-156-3
+sign \x8F8F 245-12356-5
+sign \x8F90 12345-34-2
+sign \x8F91 13-16-2
+sign \x8F92 123456-3
+sign \x8F93 24-34-3
+sign \x8F94 1234-356-5
+sign \x8F95 45-2
+sign \x8F96 15-23456-2
+sign \x8F97 1-1236-4
+sign \x8F98 14-34-5
+sign \x8F99 12-2346-5
+sign \x8F9A 14-1456-2
+sign \x8F9B 15-1456-3
+sign \x8F9C 13-34-3
+sign \x8F9D 245-156-2
+sign \x8F9E 245-156-2
+sign \x8F9F 135-16-5
+sign \x8FA0 125-1246-5
+sign \x8FA1 135-2345-5
+sign \x8FA2 14-345-5
+sign \x8FA3 14-345-5
+sign \x8FA4 245-156-2
+sign \x8FA5 15-236-3
+sign \x8FA6 135-1236-5
+sign \x8FA7 135-2345-5
+sign \x8FA8 135-2345-5
+sign \x8FA9 135-2345-5
+sign \x8FAB 135-2345-5
+sign \x8FAC 135-1236-3
+sign \x8FAD 245-156-2
+sign \x8FAE 135-2345-5
+sign \x8FAF 135-2345-5
+sign \x8FB0 12-136-2
+sign \x8FB1 1245-34-5
+sign \x8FB2 1345-12346-2
+sign \x8FB3 1345-12346-2
+sign \x8FB4 1-136-4
+sign \x8FB5 12-25-5
+sign \x8FB6 12-25-5
+sign \x8FB8 1245-1356-2
+sign \x8FB9 135-2345-3
+sign \x8FBA 135-2345-3
+sign \x8FBD 14-246-2
+sign \x8FBE 145-345-2
+sign \x8FBF 12-1236-3
+sign \x8FC0 13-1236-3
+sign \x8FC1 245-2345-3
+sign \x8FC2 1256-3
+sign \x8FC3 1256-3
+sign \x8FC4 245-16-5
+sign \x8FC5 15-256-5
+sign \x8FC6 16-4
+sign \x8FC7 13-25-5
+sign \x8FC8 134-2456-5
+sign \x8FC9 24-156-5
+sign \x8FCA 125-345-3
+sign \x8FCB 456-5
+sign \x8FCD 1-123456-3
+sign \x8FCE 13456-2
+sign \x8FCF 124-16-5
+sign \x8FD0 256-5
+sign \x8FD1 13-1456-5
+sign \x8FD2 1235-1346-2
+sign \x8FD3 23456-5
+sign \x8FD4 12345-1236-4
+sign \x8FD5 34-4
+sign \x8FD6 124-16-5
+sign \x8FD7 2346-2
+sign \x8FD8 1235-2456-2
+sign \x8FD9 1-2346-5
+sign \x8FDB 13-1456-5
+sign \x8FDC 45-4
+sign \x8FDD 1246-2
+sign \x8FDE 14-2345-2
+sign \x8FDF 12-156-2
+sign \x8FE0 15-16-2
+sign \x8FE1 1345-16-5
+sign \x8FE2 124-246-2
+sign \x8FE3 12-156-5
+sign \x8FE4 16-2
+sign \x8FE5 13-235-4
+sign \x8FE6 13-23456-3
+sign \x8FE7 12-136-2
+sign \x8FE8 145-2456-5
+sign \x8FE9 156-4
+sign \x8FEA 145-16-2
+sign \x8FEB 1234-126-5
+sign \x8FEC 456-4
+sign \x8FED 145-346-2
+sign \x8FEE 125-2346-2
+sign \x8FEF 124-146-2
+sign \x8FF0 24-34-5
+sign \x8FF1 124-25-2
+sign \x8FF3 13-13456-5
+sign \x8FF4 1235-1246-2
+sign \x8FF5 124-12346-2
+sign \x8FF6 234-5
+sign \x8FF7 134-16-2
+sign \x8FF8 135-1356-5
+sign \x8FF9 13-16-3
+sign \x8FFA 1345-2456-4
+sign \x8FFB 16-2
+sign \x8FFC 13-346-2
+sign \x8FFD 1-1246-3
+sign \x8FFE 14-346-5
+sign \x8FFF 15-256-5
+sign \x9000 124-1246-5
+sign \x9001 15-12346-5
+sign \x9002 24-156-5
+sign \x9003 124-146-2
+sign \x9004 1234-1346-2
+sign \x9005 13-12356-5
+sign \x9006 1345-16-5
+sign \x9007 145-123456-5
+sign \x9008 13-235-4
+sign \x9009 15-45-4
+sign \x900A 15-256-5
+sign \x900B 135-34-3
+sign \x900C 234-2
+sign \x900D 15-246-3
+sign \x900E 245-234-2
+sign \x900F 124-12356-5
+sign \x9010 1-34-2
+sign \x9011 245-234-2
+sign \x9012 145-16-5
+sign \x9013 145-16-5
+sign \x9014 124-34-2
+sign \x9015 13-13456-5
+sign \x9016 124-16-5
+sign \x9017 145-12356-5
+sign \x9018 16-4
+sign \x9019 1-2346-5
+sign \x901A 124-12346-3
+sign \x901B 13-456-5
+sign \x901C 34-5
+sign \x901D 24-156-5
+sign \x901E 12-1356-4
+sign \x901F 15-34-5
+sign \x9020 125-146-5
+sign \x9021 245-256-3
+sign \x9022 12345-1356-2
+sign \x9023 14-2345-2
+sign \x9024 15-25-5
+sign \x9025 1235-1246-2
+sign \x9026 14-16-4
+sign \x9028 14-2456-2
+sign \x9029 135-136-3
+sign \x902A 245-25-5
+sign \x902B 13-236-2
+sign \x902C 135-1356-5
+sign \x902D 1235-12456-5
+sign \x902E 145-2456-5
+sign \x902F 14-34-5
+sign \x9030 234-2
+sign \x9031 1-12356-3
+sign \x9032 13-1456-5
+sign \x9033 1256-5
+sign \x9034 1-25-2
+sign \x9035 123-1246-2
+sign \x9036 1246-3
+sign \x9037 124-16-5
+sign \x9038 16-5
+sign \x9039 145-345-2
+sign \x903A 45-4
+sign \x903B 14-25-2
+sign \x903C 135-16-3
+sign \x903D 1345-25-5
+sign \x903E 1256-2
+sign \x903F 145-1346-5
+sign \x9040 15-1246-2
+sign \x9041 145-123456-5
+sign \x9042 15-1246-5
+sign \x9043 2345-4
+sign \x9044 12-12456-2
+sign \x9045 12-156-2
+sign \x9046 124-16-2
+sign \x9047 1256-5
+sign \x9048 24-156-2
+sign \x9049 1-136-3
+sign \x904A 234-2
+sign \x904B 256-5
+sign \x904C 2346-5
+sign \x904D 135-2345-5
+sign \x904E 13-25-5
+sign \x904F 2346-5
+sign \x9050 15-23456-2
+sign \x9051 1235-456-2
+sign \x9052 245-234-2
+sign \x9053 145-146-5
+sign \x9054 145-345-2
+sign \x9055 1246-2
+sign \x9057 16-2
+sign \x9058 13-12356-5
+sign \x9059 246-2
+sign \x905A 12-34-5
+sign \x905B 14-234-5
+sign \x905C 15-256-5
+sign \x905D 124-345-5
+sign \x905E 145-16-5
+sign \x905F 12-156-2
+sign \x9060 45-4
+sign \x9061 15-34-5
+sign \x9062 124-345-5
+sign \x9063 245-2345-4
+sign \x9065 246-2
+sign \x9066 13-12456-5
+sign \x9067 1-1346-3
+sign \x9068 146-2
+sign \x9069 24-156-5
+sign \x906A 245-2346-5
+sign \x906B 12-156-5
+sign \x906C 15-34-5
+sign \x906D 125-146-3
+sign \x906E 1-2346-3
+sign \x906F 145-123456-5
+sign \x9070 145-16-5
+sign \x9071 14-12356-2
+sign \x9072 12-156-2
+sign \x9073 245-25-3
+sign \x9074 14-1456-2
+sign \x9075 125-123456-3
+sign \x9076 1245-146-4
+sign \x9077 245-2345-3
+sign \x9078 15-45-4
+sign \x9079 1256-5
+sign \x907A 16-2
+sign \x907B 2346-5
+sign \x907C 14-246-2
+sign \x907D 13-1256-5
+sign \x907E 24-156-5
+sign \x907F 135-16-5
+sign \x9080 246-3
+sign \x9081 134-2456-5
+sign \x9082 15-346-5
+sign \x9083 15-1246-5
+sign \x9084 1235-2456-2
+sign \x9085 1-1236-3
+sign \x9086 124-1356-2
+sign \x9087 156-4
+sign \x9088 134-246-4
+sign \x9089 135-2345-3
+sign \x908A 135-2345-3
+sign \x908B 14-345-2
+sign \x908C 14-16-2
+sign \x908D 45-2
+sign \x908E 246-2
+sign \x908F 14-25-2
+sign \x9090 14-16-4
+sign \x9091 16-5
+sign \x9092 124-13456-2
+sign \x9093 145-1356-5
+sign \x9094 245-16-4
+sign \x9095 235-3
+sign \x9096 24-1236-3
+sign \x9097 1235-1236-2
+sign \x9098 1256-2
+sign \x9099 134-1346-2
+sign \x909A 1245-34-2
+sign \x909B 245-235-2
+sign \x909D 13-456-4
+sign \x909E 12345-34-3
+sign \x909F 123-1346-5
+sign \x90A0 135-1456-3
+sign \x90A1 12345-1346-3
+sign \x90A2 15-13456-2
+sign \x90A3 1345-345-5
+sign \x90A5 24-136-4
+sign \x90A6 135-1346-3
+sign \x90A7 45-2
+sign \x90A8 245-123456-3
+sign \x90A9 1235-25-4
+sign \x90AA 15-346-2
+sign \x90AB 135-1346-3
+sign \x90AC 34-4
+sign \x90AD 13-1256-5
+sign \x90AE 234-2
+sign \x90AF 1235-1236-2
+sign \x90B0 124-2456-3
+sign \x90B1 245-234-3
+sign \x90B2 135-16-5
+sign \x90B3 1234-356-2
+sign \x90B4 135-13456-4
+sign \x90B5 24-146-5
+sign \x90B6 135-356-5
+sign \x90B7 35-4
+sign \x90B8 145-16-4
+sign \x90B9 125-12356-3
+sign \x90BA 346-5
+sign \x90BB 14-1456-2
+sign \x90BC 123-456-3
+sign \x90BD 13-1246-3
+sign \x90BE 1-34-3
+sign \x90BF 24-156-3
+sign \x90C0 123-34-3
+sign \x90C1 1256-5
+sign \x90C2 13-2456-3
+sign \x90C3 1235-2346-2
+sign \x90C4 15-16-5
+sign \x90C5 1-156-5
+sign \x90C6 13-16-2
+sign \x90C7 15-256-2
+sign \x90C8 1235-12356-5
+sign \x90C9 15-13456-2
+sign \x90CA 13-246-3
+sign \x90CB 15-16-3
+sign \x90CC 13-1246-3
+sign \x90CD 1345-25-2
+sign \x90CE 14-1346-2
+sign \x90CF 13-23456-2
+sign \x90D0 123-2356-5
+sign \x90D1 1-1356-5
+sign \x90D3 256-5
+sign \x90D4 2345-2
+sign \x90D5 12-1356-2
+sign \x90D6 145-12356-3
+sign \x90D7 12-156-3
+sign \x90D8 14-1256-4
+sign \x90D9 12345-34-4
+sign \x90DA 34-2
+sign \x90DB 12345-34-2
+sign \x90DC 13-146-5
+sign \x90DD 1235-146-4
+sign \x90DE 14-1346-2
+sign \x90DF 13-23456-2
+sign \x90E0 13-1356-4
+sign \x90E1 13-256-5
+sign \x90E2 13456-4
+sign \x90E3 135-126-2
+sign \x90E4 15-16-5
+sign \x90E5 135-356-5
+sign \x90E6 14-16-5
+sign \x90E7 256-2
+sign \x90E8 135-34-5
+sign \x90E9 15-246-2
+sign \x90EA 245-16-3
+sign \x90EB 1234-16-2
+sign \x90EC 245-13456-3
+sign \x90ED 13-25-3
+sign \x90EF 124-1236-2
+sign \x90F0 125-12356-3
+sign \x90F1 1234-13456-2
+sign \x90F2 14-2456-2
+sign \x90F3 1345-16-2
+sign \x90F4 12-136-3
+sign \x90F5 234-2
+sign \x90F6 135-34-5
+sign \x90F7 15-46-3
+sign \x90F8 145-1236-3
+sign \x90F9 13-1256-2
+sign \x90FA 235-3
+sign \x90FB 13-1256-2
+sign \x90FC 16-3
+sign \x90FD 145-12356-3
+sign \x90FE 2345-5
+sign \x90FF 134-356-2
+sign \x9100 1245-25-5
+sign \x9101 135-356-5
+sign \x9102 2346-5
+sign \x9103 1256-2
+sign \x9104 13-45-5
+sign \x9105 1256-4
+sign \x9106 256-5
+sign \x9107 1235-12356-5
+sign \x9108 123-1246-2
+sign \x9109 15-46-3
+sign \x910A 15-46-3
+sign \x910B 15-12356-3
+sign \x910C 124-1346-2
+sign \x910D 134-13456-2
+sign \x910E 15-16-2
+sign \x910F 1245-34-5
+sign \x9110 15-1256-5
+sign \x9111 125-156-3
+sign \x9112 125-12356-3
+sign \x9113 13-1256-2
+sign \x9114 34-4
+sign \x9115 15-46-3
+sign \x9116 256-2
+sign \x9117 1235-146-5
+sign \x9118 235-3
+sign \x9119 135-16-4
+sign \x911A 134-126-5
+sign \x911B 12-146-2
+sign \x911C 12345-34-3
+sign \x911D 14-246-4
+sign \x911E 1456-2
+sign \x911F 1-12456-3
+sign \x9120 1235-34-5
+sign \x9121 245-246-3
+sign \x9122 2345-3
+sign \x9123 1-1346-3
+sign \x9124 134-1236-5
+sign \x9125 245-246-3
+sign \x9126 15-1256-4
+sign \x9127 145-1356-5
+sign \x9128 135-16-5
+sign \x9129 15-256-2
+sign \x912A 135-16-5
+sign \x912B 245-1356-2
+sign \x912C 1246-2
+sign \x912D 1-1356-5
+sign \x912E 134-146-5
+sign \x912F 24-1236-5
+sign \x9130 14-1456-2
+sign \x9131 1234-126-2
+sign \x9132 145-1236-3
+sign \x9133 134-1356-2
+sign \x9134 346-5
+sign \x9135 245-146-5
+sign \x9136 123-2356-5
+sign \x9137 12345-1356-3
+sign \x9138 134-1356-2
+sign \x9139 125-12356-3
+sign \x913A 13-456-4
+sign \x913B 14-2345-4
+sign \x913C 125-1236-5
+sign \x913D 12-1236-2
+sign \x913E 234-3
+sign \x913F 245-16-2
+sign \x9140 2345-3
+sign \x9141 12-1236-2
+sign \x9142 125-1236-5
+sign \x9143 14-13456-2
+sign \x9144 1235-12456-3
+sign \x9145 15-16-3
+sign \x9146 12345-1356-3
+sign \x9147 125-12456-4
+sign \x9148 14-16-5
+sign \x9149 234-4
+sign \x914A 145-13456-4
+sign \x914B 245-234-2
+sign \x914C 1-25-2
+sign \x914D 1234-356-5
+sign \x914E 1-12356-5
+sign \x914F 16-2
+sign \x9150 1235-1346-4
+sign \x9151 1256-4
+sign \x9152 13-234-4
+sign \x9153 2345-4
+sign \x9154 125-1246-5
+sign \x9155 134-146-2
+sign \x9156 145-1236-3
+sign \x9157 15-1256-5
+sign \x9158 124-12356-2
+sign \x9159 1-136-3
+sign \x915A 12345-136-3
+sign \x915D 256-5
+sign \x915E 124-2456-5
+sign \x915F 124-2345-3
+sign \x9160 245-23456-4
+sign \x9161 124-25-2
+sign \x9162 125-25-5
+sign \x9163 1235-1236-3
+sign \x9164 13-34-3
+sign \x9165 15-34-3
+sign \x9166 1234-126-5
+sign \x9167 12-12356-2
+sign \x9168 145-2456-5
+sign \x9169 134-13456-4
+sign \x916A 14-25-5
+sign \x916B 12-25-5
+sign \x916C 12-12356-2
+sign \x916D 234-5
+sign \x916E 124-12346-2
+sign \x916F 1-156-4
+sign \x9170 15-2345-3
+sign \x9171 13-46-5
+sign \x9172 12-1356-2
+sign \x9173 1456-5
+sign \x9174 124-34-2
+sign \x9175 15-246-5
+sign \x9176 134-356-2
+sign \x9177 123-34-5
+sign \x9178 15-12456-3
+sign \x9179 14-356-5
+sign \x917A 1234-34-2
+sign \x917B 125-1246-5
+sign \x917C 1235-2456-4
+sign \x917D 2345-5
+sign \x917E 15-16-4
+sign \x917F 1345-46-5
+sign \x9180 1246-2
+sign \x9181 14-34-5
+sign \x9182 14-1236-4
+sign \x9183 2345-3
+sign \x9184 124-146-2
+sign \x9185 1234-356-3
+sign \x9186 1-1236-4
+sign \x9187 12-123456-2
+sign \x9188 124-1236-2
+sign \x9189 125-1246-5
+sign \x918A 1-25-2
+sign \x918B 245-34-5
+sign \x918C 123-123456-3
+sign \x918D 124-16-2
+sign \x918E 134-2345-2
+sign \x918F 145-34-3
+sign \x9190 1235-34-2
+sign \x9191 15-1256-4
+sign \x9192 15-13456-4
+sign \x9193 124-1236-4
+sign \x9194 13-234-3
+sign \x9195 12-123456-2
+sign \x9196 256-5
+sign \x9197 1234-126-5
+sign \x9198 123-2346-5
+sign \x9199 15-12356-3
+sign \x919A 134-16-2
+sign \x919B 245-45-2
+sign \x919C 12-12356-4
+sign \x919D 245-25-2
+sign \x919E 256-5
+sign \x919F 235-5
+sign \x91A0 1346-5
+sign \x91A1 1-345-5
+sign \x91A2 1235-2456-4
+sign \x91A3 124-1346-2
+sign \x91A4 13-46-5
+sign \x91A5 1234-246-4
+sign \x91A6 24-1236-4
+sign \x91A7 1256-5
+sign \x91A8 14-16-2
+sign \x91A9 125-146-2
+sign \x91AA 14-146-2
+sign \x91AB 16-3
+sign \x91AC 13-46-5
+sign \x91AD 1234-34-3
+sign \x91AE 13-246-5
+sign \x91AF 15-16-3
+sign \x91B0 145-1236-5
+sign \x91B1 1234-126-5
+sign \x91B2 1345-12346-2
+sign \x91B3 16-5
+sign \x91B4 14-16-4
+sign \x91B5 13-236-2
+sign \x91B6 13-246-5
+sign \x91B7 16-5
+sign \x91B8 1345-46-5
+sign \x91B9 1245-34-2
+sign \x91BA 15-256-3
+sign \x91BB 12-12356-2
+sign \x91BC 2345-5
+sign \x91BD 14-13456-2
+sign \x91BE 134-16-2
+sign \x91BF 134-16-2
+sign \x91C0 1345-46-5
+sign \x91C1 15-1456-5
+sign \x91C2 13-246-5
+sign \x91C3 15-16-4
+sign \x91C4 134-16-2
+sign \x91C5 2345-5
+sign \x91C6 135-2345-5
+sign \x91C7 245-2456-4
+sign \x91C8 24-156-5
+sign \x91C9 234-5
+sign \x91CA 24-156-5
+sign \x91CB 24-156-5
+sign \x91CC 14-16-4
+sign \x91CD 1-12346-5
+sign \x91CE 346-4
+sign \x91CF 14-46-5
+sign \x91D0 14-16-2
+sign \x91D1 13-1456-3
+sign \x91D3 245-234-2
+sign \x91D4 16-4
+sign \x91D5 1345-246-4
+sign \x91D6 145-146-3
+sign \x91D7 1-146-3
+sign \x91D8 145-13456-3
+sign \x91D9 1234-126-5
+sign \x91DA 245-234-2
+sign \x91DB 1235-2346-2
+sign \x91DC 12345-34-4
+sign \x91DD 1-136-3
+sign \x91DE 1-156-2
+sign \x91DF 135-345-3
+sign \x91E0 14-12456-5
+sign \x91E1 12345-34-4
+sign \x91E2 1345-2456-4
+sign \x91E3 145-246-5
+sign \x91E4 24-1236-5
+sign \x91E5 245-246-4
+sign \x91E6 123-12356-5
+sign \x91E7 12-12456-5
+sign \x91E8 125-156-4
+sign \x91E9 12345-1236-2
+sign \x91EA 1256-2
+sign \x91EB 1235-35-2
+sign \x91EC 1235-1236-5
+sign \x91ED 13-1346-3
+sign \x91EE 245-16-2
+sign \x91EF 134-1346-2
+sign \x91F0 1245-156-5
+sign \x91F1 145-16-5
+sign \x91F2 15-156-5
+sign \x91F3 15-16-5
+sign \x91F4 16-5
+sign \x91F5 12-2456-3
+sign \x91F6 24-156-3
+sign \x91F7 124-34-4
+sign \x91F8 15-16-5
+sign \x91F9 1345-1256-4
+sign \x91FA 245-2345-3
+sign \x91FC 13-2345-5
+sign \x91FD 1234-16-3
+sign \x91FE 346-2
+sign \x91FF 1456-4
+sign \x9200 135-345-4
+sign \x9201 12345-1346-3
+sign \x9202 12-136-2
+sign \x9203 13-2345-3
+sign \x9204 124-12356-4
+sign \x9205 236-5
+sign \x9206 245-2345-3
+sign \x9207 12345-34-3
+sign \x9208 1234-16-3
+sign \x9209 1345-345-5
+sign \x920A 15-1456-3
+sign \x920B 2346-2
+sign \x920C 13-236-2
+sign \x920D 145-123456-5
+sign \x920E 13-12356-3
+sign \x920F 1456-4
+sign \x9210 245-2345-2
+sign \x9211 135-1236-4
+sign \x9212 15-345-5
+sign \x9213 1245-136-2
+sign \x9214 12-146-3
+sign \x9215 1345-234-4
+sign \x9216 12345-136-3
+sign \x9217 256-4
+sign \x9218 13-16-4
+sign \x9219 245-1456-2
+sign \x921A 1234-16-2
+sign \x921B 13-25-3
+sign \x921C 1235-12346-2
+sign \x921D 1456-2
+sign \x921E 13-256-3
+sign \x921F 24-156-3
+sign \x9220 16-5
+sign \x9221 1-12346-3
+sign \x9222 1345-346-3
+sign \x9223 13-2456-5
+sign \x9224 1245-156-5
+sign \x9225 1235-25-4
+sign \x9226 124-2456-5
+sign \x9227 123-1346-5
+sign \x922C 145-25-2
+sign \x922D 125-156-3
+sign \x922E 1345-16-4
+sign \x922F 124-34-2
+sign \x9230 24-156-5
+sign \x9231 134-1456-2
+sign \x9232 13-34-3
+sign \x9233 123-2346-3
+sign \x9234 14-13456-2
+sign \x9235 135-13456-5
+sign \x9236 245-156-2
+sign \x9237 13-34-3
+sign \x9238 135-345-2
+sign \x9239 1234-16-3
+sign \x923A 1256-5
+sign \x923B 15-156-5
+sign \x923C 125-25-2
+sign \x923D 135-34-5
+sign \x923E 234-5
+sign \x923F 145-2345-5
+sign \x9240 13-23456-4
+sign \x9241 1-136-3
+sign \x9242 24-156-4
+sign \x9243 24-156-5
+sign \x9244 124-346-4
+sign \x9245 13-1256-5
+sign \x9246 1-1236-3
+sign \x9247 24-156-3
+sign \x9248 24-2346-2
+sign \x9249 15-45-5
+sign \x924A 1-146-3
+sign \x924B 135-146-5
+sign \x924C 1235-2346-2
+sign \x924D 135-16-5
+sign \x924E 24-1356-3
+sign \x924F 12-34-2
+sign \x9250 24-156-2
+sign \x9251 135-126-2
+sign \x9252 1-34-5
+sign \x9253 12-156-5
+sign \x9254 125-345-3
+sign \x9255 1234-126-3
+sign \x9256 124-12346-2
+sign \x9257 245-2345-2
+sign \x9258 12345-34-2
+sign \x9259 1-2456-4
+sign \x925A 14-234-4
+sign \x925B 245-2345-3
+sign \x925C 12345-34-2
+sign \x925D 14-16-5
+sign \x925E 1235-1246-5
+sign \x925F 1234-16-3
+sign \x9260 46-3
+sign \x9261 135-1236-5
+sign \x9262 135-126-3
+sign \x9263 13-346-2
+sign \x9264 13-12356-3
+sign \x9265 24-34-5
+sign \x9266 1-1356-3
+sign \x9267 134-34-4
+sign \x9268 1345-16-4
+sign \x9269 15-16-4
+sign \x926A 145-16-5
+sign \x926B 13-23456-3
+sign \x926C 134-34-5
+sign \x926D 145-1236-5
+sign \x926E 24-136-3
+sign \x926F 16-4
+sign \x9270 15-156-3
+sign \x9271 123-456-5
+sign \x9272 123-345-3
+sign \x9273 135-356-4
+sign \x9274 13-2345-5
+sign \x9275 124-12346-2
+sign \x9276 15-13456-2
+sign \x9277 1235-12346-2
+sign \x9278 13-246-4
+sign \x9279 12-156-4
+sign \x927A 156-5
+sign \x927B 14-25-5
+sign \x927C 135-13456-4
+sign \x927D 24-156-5
+sign \x927E 134-12356-2
+sign \x927F 13-23456-2
+sign \x9280 1456-2
+sign \x9281 13-256-3
+sign \x9282 1-12356-3
+sign \x9283 12-12346-5
+sign \x9284 24-1346-5
+sign \x9285 124-12346-2
+sign \x9286 134-126-5
+sign \x9287 14-356-5
+sign \x9288 13-16-3
+sign \x9289 1256-5
+sign \x928A 15-1256-5
+sign \x928B 1245-136-2
+sign \x928C 125-123456-5
+sign \x928D 1-156-5
+sign \x928E 245-235-3
+sign \x928F 24-1236-5
+sign \x9290 12-156-5
+sign \x9291 15-2345-4
+sign \x9292 15-13456-2
+sign \x9293 245-45-2
+sign \x9294 1234-16-3
+sign \x9295 124-346-4
+sign \x9296 1-34-3
+sign \x9297 1235-12356-2
+sign \x9298 134-13456-2
+sign \x9299 123-35-4
+sign \x929A 246-2
+sign \x929B 15-2345-3
+sign \x929C 15-2345-2
+sign \x929D 15-234-3
+sign \x929E 13-256-3
+sign \x929F 12-345-3
+sign \x92A0 14-146-4
+sign \x92A1 13-16-2
+sign \x92A2 135-345-1
+sign \x92A3 1245-34-2
+sign \x92A4 134-16-4
+sign \x92A5 16-3
+sign \x92A6 1456-3
+sign \x92A7 13-456-3
+sign \x92A8 1236-3
+sign \x92A9 145-234-3
+sign \x92AA 234-4
+sign \x92AB 15-2346-5
+sign \x92AC 123-146-5
+sign \x92AD 245-2345-2
+sign \x92AE 14-12456-2
+sign \x92B0 2456-3
+sign \x92B1 145-246-5
+sign \x92B2 1235-1236-5
+sign \x92B3 1245-1246-5
+sign \x92B4 24-156-5
+sign \x92B5 123-1356-3
+sign \x92B6 245-234-2
+sign \x92B7 15-246-3
+sign \x92B8 1-2346-2
+sign \x92B9 15-234-5
+sign \x92BA 125-1346-5
+sign \x92BB 124-16-5
+sign \x92BC 245-25-5
+sign \x92BD 13-35-3
+sign \x92BE 13-12346-4
+sign \x92BF 1-12346-3
+sign \x92C0 145-12356-5
+sign \x92C1 14-1256-4
+sign \x92C2 134-356-2
+sign \x92C3 14-1346-2
+sign \x92C4 12456-4
+sign \x92C5 15-1456-3
+sign \x92C6 256-2
+sign \x92C7 135-356-5
+sign \x92C8 34-5
+sign \x92C9 15-34-5
+sign \x92CA 1256-5
+sign \x92CB 12-1236-2
+sign \x92CC 124-13456-4
+sign \x92CD 135-126-2
+sign \x92CE 1235-1236-5
+sign \x92CF 13-23456-2
+sign \x92D0 1235-12346-2
+sign \x92D1 245-12456-3
+sign \x92D2 12345-1356-3
+sign \x92D3 12-1236-3
+sign \x92D4 12456-4
+sign \x92D5 1-156-5
+sign \x92D6 15-156-3
+sign \x92D7 15-45-3
+sign \x92D8 1235-35-2
+sign \x92D9 1256-4
+sign \x92DA 124-246-2
+sign \x92DB 13-12346-4
+sign \x92DC 1-25-2
+sign \x92DD 14-236-5
+sign \x92DE 15-13456-2
+sign \x92DF 245-1456-3
+sign \x92E0 24-136-5
+sign \x92E1 1235-1236-2
+sign \x92E2 14-236-5
+sign \x92E3 15-346-2
+sign \x92E4 12-34-2
+sign \x92E5 1-1356-5
+sign \x92E6 13-1256-2
+sign \x92E7 15-2345-5
+sign \x92E8 2346-2
+sign \x92E9 134-1346-3
+sign \x92EA 1234-34-3
+sign \x92EB 14-16-2
+sign \x92EC 1234-1236-5
+sign \x92ED 1245-1246-5
+sign \x92EE 12-1356-2
+sign \x92EF 13-146-5
+sign \x92F0 14-16-4
+sign \x92F1 124-2346-5
+sign \x92F3 1-34-5
+sign \x92F5 124-34-3
+sign \x92F6 14-234-4
+sign \x92F7 125-1246-5
+sign \x92F8 13-1256-5
+sign \x92F9 12-1346-4
+sign \x92FA 45-3
+sign \x92FB 13-2345-5
+sign \x92FC 13-1346-3
+sign \x92FD 145-246-5
+sign \x92FE 124-146-2
+sign \x92FF 12-1346-2
+sign \x9300 14-123456-2
+sign \x9301 13-25-4
+sign \x9302 14-13456-2
+sign \x9303 135-356-3
+sign \x9304 14-34-5
+sign \x9305 14-16-2
+sign \x9306 245-46-3
+sign \x9307 1234-12356-2
+sign \x9308 13-45-5
+sign \x9309 134-1456-2
+sign \x930A 125-1246-5
+sign \x930B 1234-1356-2
+sign \x930C 1236-5
+sign \x930D 1234-16-2
+sign \x930E 15-2345-5
+sign \x930F 23456-3
+sign \x9310 1-1246-3
+sign \x9311 14-356-5
+sign \x9312 345-5
+sign \x9313 123-12346-3
+sign \x9314 124-345-5
+sign \x9315 123-123456-3
+sign \x9316 145-34-4
+sign \x9317 1246-5
+sign \x9318 12-1246-2
+sign \x9319 125-156-3
+sign \x931A 1-1356-3
+sign \x931B 135-136-3
+sign \x931C 1345-346-3
+sign \x931D 245-12346-2
+sign \x931E 12-123456-2
+sign \x931F 124-1236-2
+sign \x9320 145-13456-5
+sign \x9321 16-4
+sign \x9322 245-2345-2
+sign \x9323 1-1246-5
+sign \x9324 13-16-3
+sign \x9325 1256-5
+sign \x9326 13-1456-4
+sign \x9327 13-12456-4
+sign \x9328 134-146-2
+sign \x9329 12-1346-3
+sign \x932A 124-2345-4
+sign \x932B 15-16-2
+sign \x932C 14-2345-5
+sign \x932D 145-246-3
+sign \x932E 13-34-5
+sign \x932F 245-25-5
+sign \x9330 24-34-5
+sign \x9331 1-136-3
+sign \x9332 14-34-5
+sign \x9333 134-1356-4
+sign \x9334 14-34-5
+sign \x9335 1235-35-3
+sign \x9336 135-246-4
+sign \x9337 13-345-2
+sign \x9338 14-2456-2
+sign \x9339 123-136-4
+sign \x933C 1345-2456-5
+sign \x933D 12456-4
+sign \x933E 125-1236-5
+sign \x9340 145-2346-2
+sign \x9341 15-2345-3
+sign \x9343 1235-25-3
+sign \x9344 14-46-5
+sign \x9346 134-136-2
+sign \x9347 123-2456-4
+sign \x9348 13456-3
+sign \x9349 124-16-2
+sign \x934A 14-2345-5
+sign \x934B 13-25-3
+sign \x934C 15-2345-4
+sign \x934D 145-34-5
+sign \x934E 124-34-2
+sign \x934F 1246-2
+sign \x9350 125-12346-3
+sign \x9351 12345-34-5
+sign \x9352 1245-12356-2
+sign \x9353 13-16-2
+sign \x9354 2346-5
+sign \x9355 13-256-3
+sign \x9356 12-136-4
+sign \x9357 124-16-2
+sign \x9358 1-345-2
+sign \x9359 1235-12346-5
+sign \x935A 46-2
+sign \x935B 145-12456-5
+sign \x935C 15-23456-2
+sign \x935D 1256-2
+sign \x935E 123-1356-3
+sign \x935F 15-13456-3
+sign \x9360 1235-456-2
+sign \x9361 1246-5
+sign \x9362 12345-34-5
+sign \x9363 1-146-3
+sign \x9364 12-345-2
+sign \x9365 245-16-5
+sign \x9366 24-2346-2
+sign \x9367 1235-12346-3
+sign \x9368 123-1246-2
+sign \x9369 124-2345-4
+sign \x936A 134-12356-2
+sign \x936B 245-246-3
+sign \x936C 245-246-3
+sign \x936D 1235-12356-2
+sign \x936E 124-12356-3
+sign \x936F 245-12346-3
+sign \x9370 1235-12456-2
+sign \x9371 346-5
+sign \x9372 134-1456-2
+sign \x9373 13-2345-5
+sign \x9374 145-12456-3
+sign \x9375 13-2345-5
+sign \x9376 15-12346-3
+sign \x9377 123-1246-3
+sign \x9378 1235-34-2
+sign \x9379 15-45-3
+sign \x937A 145-25-4
+sign \x937B 13-346-2
+sign \x937C 1-136-3
+sign \x937D 135-2345-3
+sign \x937E 1-12346-3
+sign \x937F 125-156-3
+sign \x9380 15-234-3
+sign \x9381 346-2
+sign \x9382 134-356-4
+sign \x9383 1234-2456-5
+sign \x9384 2456-3
+sign \x9385 13-346-5
+sign \x9387 134-356-2
+sign \x9388 12-25-3
+sign \x9389 124-345-5
+sign \x938A 135-1346-5
+sign \x938B 15-23456-2
+sign \x938C 14-2345-2
+sign \x938D 15-25-4
+sign \x938E 15-16-5
+sign \x938F 14-234-2
+sign \x9390 125-34-2
+sign \x9391 346-5
+sign \x9392 1345-12356-5
+sign \x9393 12346-3
+sign \x9394 1245-12346-2
+sign \x9395 124-1346-2
+sign \x9396 15-25-4
+sign \x9397 245-46-3
+sign \x9398 13-2346-2
+sign \x9399 24-25-5
+sign \x939A 12-1246-2
+sign \x939B 135-126-2
+sign \x939C 1234-1236-2
+sign \x939D 15-345-5
+sign \x939E 135-16-5
+sign \x939F 15-1346-4
+sign \x93A0 13-1346-3
+sign \x93A1 125-156-3
+sign \x93A2 34-3
+sign \x93A3 13456-2
+sign \x93A4 1235-456-4
+sign \x93A5 124-246-2
+sign \x93A6 14-234-2
+sign \x93A7 123-2456-4
+sign \x93A8 15-123456-4
+sign \x93A9 24-345-3
+sign \x93AA 15-12356-3
+sign \x93AB 12456-5
+sign \x93AC 13-146-4
+sign \x93AD 1-136-5
+sign \x93AE 1-136-5
+sign \x93AF 14-25-4
+sign \x93B0 16-5
+sign \x93B1 45-2
+sign \x93B2 124-1346-4
+sign \x93B3 1345-346-5
+sign \x93B4 15-16-2
+sign \x93B5 13-23456-3
+sign \x93B6 13-2346-3
+sign \x93B7 134-345-4
+sign \x93B8 13-45-3
+sign \x93BB 15-25-4
+sign \x93BF 1345-345-2
+sign \x93C0 14-34-4
+sign \x93C1 15-25-4
+sign \x93C2 12356-3
+sign \x93C3 125-34-2
+sign \x93C4 124-12456-2
+sign \x93C5 15-234-3
+sign \x93C6 13-12456-5
+sign \x93C7 15-45-2
+sign \x93C8 14-2345-5
+sign \x93C9 24-12356-5
+sign \x93CA 146-5
+sign \x93CB 134-1236-4
+sign \x93CC 134-126-5
+sign \x93CD 14-25-2
+sign \x93CE 135-16-5
+sign \x93CF 1246-5
+sign \x93D0 14-234-2
+sign \x93D1 145-16-2
+sign \x93D2 245-246-3
+sign \x93D3 245-12346-3
+sign \x93D4 16-2
+sign \x93D5 14-34-5
+sign \x93D6 146-2
+sign \x93D7 123-1356-3
+sign \x93D8 245-46-3
+sign \x93D9 245-1246-4
+sign \x93DA 245-16-5
+sign \x93DB 12-1346-2
+sign \x93DC 124-1346-3
+sign \x93DD 134-1236-5
+sign \x93DE 1245-12346-2
+sign \x93DF 12-1236-4
+sign \x93E0 12345-1356-3
+sign \x93E1 13-13456-5
+sign \x93E2 135-246-3
+sign \x93E3 24-34-5
+sign \x93E4 14-12356-5
+sign \x93E5 15-234-5
+sign \x93E6 245-12346-3
+sign \x93E7 14-12346-2
+sign \x93E8 125-1236-5
+sign \x93E9 13-2345-5
+sign \x93EA 245-146-2
+sign \x93EB 14-16-2
+sign \x93EC 15-23456-5
+sign \x93ED 15-16-3
+sign \x93EE 123-1346-3
+sign \x93F0 135-1356-5
+sign \x93F3 1-1356-3
+sign \x93F4 14-34-5
+sign \x93F5 1235-35-2
+sign \x93F6 13-16-2
+sign \x93F7 1234-34-2
+sign \x93F8 1235-1246-5
+sign \x93F9 13-46-4
+sign \x93FA 1234-126-3
+sign \x93FB 14-1456-2
+sign \x93FC 15-25-4
+sign \x93FD 15-234-5
+sign \x93FE 15-2345-5
+sign \x93FF 12-1356-3
+sign \x9400 123-1246-5
+sign \x9401 15-156-3
+sign \x9402 14-234-5
+sign \x9403 1345-146-2
+sign \x9404 1235-1356-2
+sign \x9405 1234-346-4
+sign \x9406 15-1246-5
+sign \x9407 12345-1236-2
+sign \x9408 245-246-2
+sign \x9409 245-45-2
+sign \x940A 46-2
+sign \x940B 124-1346-5
+sign \x940C 15-46-5
+sign \x940D 13-236-2
+sign \x940E 13-246-3
+sign \x940F 125-123456-5
+sign \x9410 14-246-2
+sign \x9411 13-346-2
+sign \x9412 14-146-2
+sign \x9413 145-1246-3
+sign \x9414 15-256-2
+sign \x9415 125-1236-3
+sign \x9416 13-16-3
+sign \x9417 13-2345-4
+sign \x9418 1-12346-3
+sign \x9419 145-1356-3
+sign \x941A 23456-5
+sign \x941B 13456-5
+sign \x941C 145-1246-5
+sign \x941D 13-236-2
+sign \x941E 1345-12356-5
+sign \x941F 124-16-5
+sign \x9420 1234-34-4
+sign \x9421 124-346-4
+sign \x9424 145-13456-4
+sign \x9425 24-1236-5
+sign \x9426 123-2456-3
+sign \x9427 13-2345-4
+sign \x9428 12345-356-5
+sign \x9429 15-1246-5
+sign \x942A 14-34-4
+sign \x942B 13-45-3
+sign \x942C 1235-1246-5
+sign \x942D 1256-5
+sign \x942E 14-2345-2
+sign \x942F 1-25-2
+sign \x9430 245-246-3
+sign \x9431 245-2345-3
+sign \x9432 1-25-2
+sign \x9433 14-356-2
+sign \x9434 135-16-5
+sign \x9435 124-346-4
+sign \x9436 1235-12456-2
+sign \x9437 346-5
+sign \x9438 145-25-2
+sign \x9439 13-25-4
+sign \x943A 145-1346-3
+sign \x943B 13-1256-5
+sign \x943C 135-136-3
+sign \x943D 145-345-2
+sign \x943E 135-356-5
+sign \x943F 16-5
+sign \x9440 2456-5
+sign \x9441 125-12346-3
+sign \x9442 15-256-5
+sign \x9443 145-246-5
+sign \x9444 1-34-5
+sign \x9445 1235-1356-2
+sign \x9446 1-1246-5
+sign \x9447 13-16-3
+sign \x9448 1345-346-3
+sign \x9449 13-2456-5
+sign \x944A 1235-25-5
+sign \x944B 245-13456-3
+sign \x944C 135-1456-3
+sign \x944D 13456-3
+sign \x944E 123-1246-5
+sign \x944F 1345-13456-2
+sign \x9450 15-1256-3
+sign \x9451 13-2345-5
+sign \x9452 13-2345-5
+sign \x9454 12-345-4
+sign \x9455 1-156-5
+sign \x9456 134-346-5
+sign \x9457 14-16-2
+sign \x9458 14-356-2
+sign \x9459 13-16-3
+sign \x945A 125-12456-5
+sign \x945B 123-456-5
+sign \x945C 24-1346-5
+sign \x945D 1234-1356-2
+sign \x945E 14-345-5
+sign \x945F 145-34-2
+sign \x9460 24-25-5
+sign \x9461 12-25-5
+sign \x9462 14-1256-5
+sign \x9463 135-246-3
+sign \x9464 135-146-5
+sign \x9465 14-34-4
+sign \x9468 14-12346-2
+sign \x9469 2346-5
+sign \x946A 14-34-2
+sign \x946B 15-1456-3
+sign \x946C 13-2345-5
+sign \x946D 14-1236-5
+sign \x946E 135-126-2
+sign \x946F 13-2345-3
+sign \x9470 246-5
+sign \x9471 12-1236-2
+sign \x9472 15-46-3
+sign \x9473 13-2345-5
+sign \x9474 15-16-3
+sign \x9475 13-12456-5
+sign \x9476 245-1346-2
+sign \x9477 1345-346-5
+sign \x9478 14-356-4
+sign \x9479 245-12456-5
+sign \x947A 245-1256-2
+sign \x947B 1234-1236-5
+sign \x947C 14-25-2
+sign \x947D 125-12456-3
+sign \x947E 14-12456-2
+sign \x947F 125-146-2
+sign \x9480 16-2
+sign \x9481 13-236-2
+sign \x9482 124-1346-4
+sign \x9483 1-34-2
+sign \x9484 14-1236-2
+sign \x9485 13-1456-3
+sign \x9486 245-234-2
+sign \x9487 16-4
+sign \x9488 1-136-3
+sign \x9489 145-13456-3
+sign \x948A 1-146-3
+sign \x948B 1234-126-5
+sign \x948C 1345-246-4
+sign \x948D 124-34-4
+sign \x948E 245-2345-3
+sign \x948F 12-12456-5
+sign \x9490 24-1236-5
+sign \x9491 13-16-2
+sign \x9492 12345-1236-2
+sign \x9493 145-246-5
+sign \x9494 134-136-2
+sign \x9495 1345-1256-4
+sign \x9496 15-16-2
+sign \x9497 12-2456-3
+sign \x9498 15-13456-2
+sign \x9499 13-2456-5
+sign \x949A 135-34-5
+sign \x949B 124-2456-5
+sign \x949C 13-1256-5
+sign \x949D 145-123456-5
+sign \x949E 12-146-3
+sign \x949F 1-12346-3
+sign \x94A0 1345-345-5
+sign \x94A1 135-356-5
+sign \x94A2 13-1346-3
+sign \x94A3 135-1236-4
+sign \x94A4 245-2345-2
+sign \x94A5 246-5
+sign \x94A6 245-1456-3
+sign \x94A7 13-256-3
+sign \x94A8 34-3
+sign \x94A9 13-12356-3
+sign \x94AA 123-1346-5
+sign \x94AB 12345-1346-3
+sign \x94AC 1235-25-4
+sign \x94AD 124-12356-4
+sign \x94AE 1345-234-4
+sign \x94AF 135-345-3
+sign \x94B0 1256-5
+sign \x94B1 245-2345-2
+sign \x94B2 1-1356-3
+sign \x94B3 245-2345-2
+sign \x94B4 13-34-3
+sign \x94B5 135-126-3
+sign \x94B6 123-2346-3
+sign \x94B7 1234-126-3
+sign \x94B8 135-34-5
+sign \x94B9 135-345-2
+sign \x94BA 1235-1246-5
+sign \x94BB 125-12456-3
+sign \x94BC 134-34-5
+sign \x94BD 145-1236-5
+sign \x94BE 13-23456-4
+sign \x94BF 145-2345-5
+sign \x94C0 234-5
+sign \x94C1 124-346-4
+sign \x94C2 135-126-2
+sign \x94C3 14-13456-2
+sign \x94C4 24-25-5
+sign \x94C5 245-2345-3
+sign \x94C6 14-234-4
+sign \x94C7 135-146-5
+sign \x94C8 24-156-5
+sign \x94C9 15-45-5
+sign \x94CA 24-2346-2
+sign \x94CB 135-16-5
+sign \x94CC 1345-16-4
+sign \x94CD 1234-16-3
+sign \x94CE 145-25-2
+sign \x94CF 15-13456-2
+sign \x94D0 123-146-5
+sign \x94D1 14-146-4
+sign \x94D2 156-5
+sign \x94D3 134-1346-3
+sign \x94D4 23456-5
+sign \x94D5 234-4
+sign \x94D6 12-1356-2
+sign \x94D7 13-23456-2
+sign \x94D8 346-2
+sign \x94D9 1345-146-2
+sign \x94DA 1-156-5
+sign \x94DB 145-1346-3
+sign \x94DC 124-12346-2
+sign \x94DD 14-1256-4
+sign \x94DE 145-246-5
+sign \x94DF 1456-3
+sign \x94E0 123-2456-4
+sign \x94E1 1-345-2
+sign \x94E2 1-34-3
+sign \x94E3 15-2345-4
+sign \x94E4 124-13456-4
+sign \x94E5 145-234-3
+sign \x94E6 15-2345-3
+sign \x94E7 1235-35-2
+sign \x94E8 245-45-2
+sign \x94E9 24-345-3
+sign \x94EA 13-23456-2
+sign \x94EB 246-2
+sign \x94EC 14-25-5
+sign \x94ED 134-13456-2
+sign \x94EE 1-1356-3
+sign \x94EF 15-2346-5
+sign \x94F0 13-246-4
+sign \x94F1 16-3
+sign \x94F2 12-1236-4
+sign \x94F3 12-12346-5
+sign \x94F4 124-1346-5
+sign \x94F5 1236-3
+sign \x94F6 1456-2
+sign \x94F7 1245-34-2
+sign \x94F8 1-34-5
+sign \x94F9 14-146-2
+sign \x94FA 1234-34-3
+sign \x94FB 34-2
+sign \x94FC 14-2456-2
+sign \x94FD 124-2346-5
+sign \x94FE 14-2345-5
+sign \x94FF 123-1356-3
+sign \x9500 15-246-3
+sign \x9501 15-25-4
+sign \x9502 14-16-4
+sign \x9503 1-1356-5
+sign \x9504 12-34-2
+sign \x9505 13-25-3
+sign \x9506 13-146-5
+sign \x9507 2346-2
+sign \x9508 15-234-5
+sign \x9509 245-25-5
+sign \x950A 14-236-5
+sign \x950B 12345-1356-3
+sign \x950C 15-1456-3
+sign \x950D 14-234-4
+sign \x950E 123-2456-3
+sign \x950F 13-2345-4
+sign \x9510 1245-1246-5
+sign \x9511 124-16-5
+sign \x9512 14-1346-2
+sign \x9513 245-1456-3
+sign \x9514 13-1256-2
+sign \x9515 345-5
+sign \x9516 245-46-3
+sign \x9517 145-25-4
+sign \x9518 124-2345-4
+sign \x9519 245-25-5
+sign \x951A 134-146-2
+sign \x951B 135-136-3
+sign \x951C 16-4
+sign \x951D 145-2346-2
+sign \x951E 13-25-4
+sign \x951F 123-123456-3
+sign \x9520 12-1346-3
+sign \x9521 15-16-2
+sign \x9522 13-34-5
+sign \x9523 14-25-2
+sign \x9524 12-1246-2
+sign \x9525 1-1246-3
+sign \x9526 13-1456-4
+sign \x9527 1-156-5
+sign \x9528 15-2345-3
+sign \x9529 13-45-5
+sign \x952A 1235-25-3
+sign \x952B 1234-12356-2
+sign \x952C 124-1236-2
+sign \x952D 145-13456-5
+sign \x952E 13-2345-5
+sign \x952F 13-1256-5
+sign \x9530 134-1356-4
+sign \x9531 125-156-3
+sign \x9532 245-16-5
+sign \x9533 13456-3
+sign \x9534 123-2456-4
+sign \x9535 245-46-3
+sign \x9536 15-12346-3
+sign \x9537 2346-5
+sign \x9538 12-345-2
+sign \x9539 245-246-3
+sign \x953A 1-12346-3
+sign \x953B 145-12456-5
+sign \x953C 15-12356-3
+sign \x953D 1235-456-2
+sign \x953E 1235-12456-2
+sign \x953F 2456-3
+sign \x9540 145-34-5
+sign \x9541 134-356-4
+sign \x9542 14-12356-5
+sign \x9543 125-156-3
+sign \x9544 12345-356-5
+sign \x9545 134-356-2
+sign \x9546 134-126-5
+sign \x9547 1-136-5
+sign \x9548 135-126-2
+sign \x9549 13-2346-2
+sign \x954A 1345-346-5
+sign \x954B 124-1346-4
+sign \x954C 13-45-3
+sign \x954D 1345-346-5
+sign \x954E 1345-345-2
+sign \x954F 14-234-2
+sign \x9550 13-146-4
+sign \x9551 135-1346-5
+sign \x9552 16-5
+sign \x9553 13-23456-3
+sign \x9554 135-1456-3
+sign \x9555 1245-12346-2
+sign \x9556 135-246-3
+sign \x9557 124-1346-3
+sign \x9558 134-1236-5
+sign \x9559 14-25-2
+sign \x955A 135-1356-5
+sign \x955B 1245-12346-2
+sign \x955C 13-13456-5
+sign \x955D 145-16-2
+sign \x955E 125-34-2
+sign \x955F 15-45-2
+sign \x9560 14-234-2
+sign \x9561 15-256-2
+sign \x9562 13-236-2
+sign \x9563 14-246-2
+sign \x9564 1234-34-2
+sign \x9565 14-34-4
+sign \x9566 145-1246-3
+sign \x9567 14-1236-5
+sign \x9568 1234-34-4
+sign \x9569 245-12456-5
+sign \x956A 13-46-4
+sign \x956B 145-1356-3
+sign \x956C 1235-25-5
+sign \x956D 14-356-2
+sign \x956E 1235-12456-2
+sign \x956F 1-25-2
+sign \x9570 14-2345-2
+sign \x9571 16-5
+sign \x9572 12-345-4
+sign \x9573 135-246-3
+sign \x9574 14-345-5
+sign \x9575 12-1236-2
+sign \x9576 15-46-3
+sign \x9577 12-1346-2
+sign \x9578 12-1346-2
+sign \x9579 13-234-4
+sign \x957A 146-4
+sign \x957B 145-346-2
+sign \x957C 245-1256-3
+sign \x957D 14-246-4
+sign \x957E 134-16-2
+sign \x957F 12-1346-2
+sign \x9580 134-136-2
+sign \x9581 134-345-5
+sign \x9582 24-12456-3
+sign \x9583 24-1236-4
+sign \x9584 1235-25-5
+sign \x9585 134-136-2
+sign \x9586 2345-2
+sign \x9587 135-16-5
+sign \x9588 1235-1236-5
+sign \x9589 135-16-5
+sign \x958B 123-2456-3
+sign \x958C 123-1346-5
+sign \x958D 135-1356-3
+sign \x958E 1235-12346-2
+sign \x958F 1245-123456-5
+sign \x9590 15-1236-5
+sign \x9591 15-2345-2
+sign \x9592 15-2345-2
+sign \x9593 13-2345-3
+sign \x9594 134-1456-4
+sign \x9595 15-23456-3
+sign \x9597 145-12356-5
+sign \x9598 1-345-2
+sign \x9599 1345-146-5
+sign \x959B 1234-1356-3
+sign \x959C 15-23456-4
+sign \x959D 14-13456-2
+sign \x959E 135-2345-5
+sign \x959F 135-16-5
+sign \x95A0 1245-123456-5
+sign \x95A1 1235-2346-2
+sign \x95A2 13-12456-3
+sign \x95A3 13-2346-2
+sign \x95A4 1235-2346-2
+sign \x95A5 12345-345-2
+sign \x95A6 12-34-5
+sign \x95A7 1235-12346-4
+sign \x95A8 13-1246-3
+sign \x95A9 134-1456-2
+sign \x95AB 123-123456-4
+sign \x95AC 14-1346-5
+sign \x95AD 14-1256-2
+sign \x95AE 124-13456-2
+sign \x95AF 24-345-5
+sign \x95B0 13-1256-2
+sign \x95B1 236-5
+sign \x95B2 236-5
+sign \x95B3 12-1236-4
+sign \x95B4 245-1256-5
+sign \x95B5 14-1456-5
+sign \x95B6 12-1346-3
+sign \x95B7 24-345-3
+sign \x95B8 123-123456-4
+sign \x95B9 2345-3
+sign \x95BA 134-1456-2
+sign \x95BB 2345-2
+sign \x95BC 2346-5
+sign \x95BD 1235-123456-3
+sign \x95BE 1256-5
+sign \x95BF 123456-2
+sign \x95C0 15-46-5
+sign \x95C1 135-146-3
+sign \x95C2 15-46-5
+sign \x95C3 245-1256-5
+sign \x95C4 246-4
+sign \x95C5 123456-2
+sign \x95C6 135-1236-4
+sign \x95C7 1236-5
+sign \x95C8 1246-2
+sign \x95C9 1456-3
+sign \x95CA 123-25-5
+sign \x95CB 245-236-5
+sign \x95CC 14-1236-2
+sign \x95CD 145-34-3
+sign \x95D0 124-2345-2
+sign \x95D1 1345-346-5
+sign \x95D2 124-345-5
+sign \x95D3 123-2456-4
+sign \x95D4 1235-2346-2
+sign \x95D5 245-236-5
+sign \x95D6 12-456-4
+sign \x95D7 13-12456-3
+sign \x95D8 145-12356-5
+sign \x95D9 245-16-4
+sign \x95DA 123-1246-3
+sign \x95DB 124-1346-2
+sign \x95DC 13-12456-3
+sign \x95DD 1234-246-2
+sign \x95DE 123-1236-5
+sign \x95DF 15-16-3
+sign \x95E0 1235-1246-5
+sign \x95E1 12-1236-4
+sign \x95E2 1234-16-5
+sign \x95E3 145-1346-5
+sign \x95E4 1235-12456-2
+sign \x95E5 124-345-5
+sign \x95E6 123456-2
+sign \x95E8 134-136-2
+sign \x95E9 24-12456-3
+sign \x95EA 24-1236-4
+sign \x95EB 2345-2
+sign \x95EC 1235-1236-5
+sign \x95ED 135-16-5
+sign \x95EE 123456-5
+sign \x95EF 12-456-4
+sign \x95F0 1245-123456-5
+sign \x95F1 1246-2
+sign \x95F2 15-2345-2
+sign \x95F3 1235-12346-2
+sign \x95F4 13-2345-3
+sign \x95F5 134-1456-4
+sign \x95F6 123-1346-5
+sign \x95F7 134-136-5
+sign \x95F8 1-345-2
+sign \x95F9 1345-146-5
+sign \x95FA 13-1246-3
+sign \x95FB 123456-2
+sign \x95FC 124-345-5
+sign \x95FD 134-1456-4
+sign \x95FE 14-1256-2
+sign \x95FF 123-2456-4
+sign \x9600 12345-345-2
+sign \x9601 13-2346-2
+sign \x9602 1235-2346-2
+sign \x9603 123-123456-4
+sign \x9604 13-234-3
+sign \x9605 236-5
+sign \x9606 14-1346-5
+sign \x9607 145-34-3
+sign \x9608 1256-5
+sign \x9609 2345-3
+sign \x960A 12-1346-3
+sign \x960B 15-16-5
+sign \x960C 123456-2
+sign \x960D 1235-123456-3
+sign \x960E 2345-2
+sign \x960F 2346-5
+sign \x9610 12-1236-4
+sign \x9611 14-1236-2
+sign \x9612 245-1256-5
+sign \x9613 1235-1246-5
+sign \x9614 123-25-5
+sign \x9615 245-236-5
+sign \x9616 1235-2346-2
+sign \x9617 124-2345-2
+sign \x9618 124-345-5
+sign \x9619 245-236-5
+sign \x961A 123-1236-5
+sign \x961B 1235-12456-2
+sign \x961C 12345-34-5
+sign \x961D 12345-34-5
+sign \x961E 14-2346-5
+sign \x961F 145-1246-5
+sign \x9620 24-136-3
+sign \x9621 245-2345-3
+sign \x9622 34-5
+sign \x9623 16-5
+sign \x9624 1-156-5
+sign \x9625 1456-3
+sign \x9626 46-2
+sign \x9627 145-12356-4
+sign \x9628 2346-5
+sign \x9629 24-1356-3
+sign \x962A 135-1236-4
+sign \x962B 1234-356-2
+sign \x962C 123-1356-3
+sign \x962D 256-4
+sign \x962E 1245-12456-4
+sign \x962F 1-156-4
+sign \x9630 1234-16-2
+sign \x9631 13-13456-4
+sign \x9632 12345-1346-2
+sign \x9633 46-2
+sign \x9634 1456-3
+sign \x9635 1-136-5
+sign \x9636 13-346-3
+sign \x9637 12-1356-3
+sign \x9638 2346-5
+sign \x9639 245-1256-3
+sign \x963A 145-16-4
+sign \x963B 125-34-4
+sign \x963C 125-34-5
+sign \x963D 2345-2
+sign \x963E 14-13456-4
+sign \x963F 345-3
+sign \x9640 124-25-2
+sign \x9641 124-25-2
+sign \x9642 1234-126-3
+sign \x9643 135-13456-4
+sign \x9644 12345-34-5
+sign \x9645 13-16-5
+sign \x9646 14-34-5
+sign \x9647 14-12346-4
+sign \x9648 12-136-2
+sign \x9649 15-13456-2
+sign \x964A 145-25-5
+sign \x964B 14-12356-5
+sign \x964C 134-126-5
+sign \x964D 13-46-5
+sign \x964E 24-34-3
+sign \x964F 145-25-5
+sign \x9650 15-2345-5
+sign \x9651 156-2
+sign \x9652 13-1246-4
+sign \x9653 1256-3
+sign \x9654 13-2456-3
+sign \x9655 24-1236-4
+sign \x9656 13-256-5
+sign \x9657 245-246-5
+sign \x9658 15-13456-2
+sign \x9659 12-123456-2
+sign \x965A 12345-34-5
+sign \x965B 135-16-5
+sign \x965C 24-1236-4
+sign \x965D 24-1236-4
+sign \x965E 24-1356-3
+sign \x965F 1-156-5
+sign \x9660 1234-34-3
+sign \x9661 145-12356-4
+sign \x9662 45-5
+sign \x9663 1-136-5
+sign \x9664 12-34-2
+sign \x9665 15-2345-5
+sign \x9667 1345-346-5
+sign \x9668 256-4
+sign \x9669 15-2345-4
+sign \x966A 1234-356-2
+sign \x966B 12345-356-5
+sign \x966C 125-12356-3
+sign \x966D 16-3
+sign \x966E 145-1246-4
+sign \x966F 14-123456-2
+sign \x9670 1456-3
+sign \x9671 13-1256-2
+sign \x9672 12-1246-2
+sign \x9673 12-136-2
+sign \x9674 1234-16-2
+sign \x9675 14-13456-2
+sign \x9676 124-146-2
+sign \x9677 15-2345-5
+sign \x9678 14-34-5
+sign \x967A 15-2345-4
+sign \x967B 1456-3
+sign \x967C 1-34-4
+sign \x967D 46-2
+sign \x967E 1245-1356-2
+sign \x967F 15-23456-2
+sign \x9680 12-12346-2
+sign \x9681 2345-4
+sign \x9682 1456-3
+sign \x9683 1256-2
+sign \x9684 124-16-2
+sign \x9685 1256-2
+sign \x9686 14-12346-2
+sign \x9687 1246-3
+sign \x9688 1246-3
+sign \x9689 1345-346-5
+sign \x968A 145-1246-5
+sign \x968B 15-1246-2
+sign \x968C 1236-4
+sign \x968D 1235-456-2
+sign \x968E 13-346-3
+sign \x968F 15-1246-2
+sign \x9690 1456-4
+sign \x9691 13-2456-3
+sign \x9692 2345-4
+sign \x9693 1235-1246-3
+sign \x9694 13-2346-2
+sign \x9695 256-4
+sign \x9696 34-5
+sign \x9697 1246-4
+sign \x9698 2456-5
+sign \x9699 15-16-5
+sign \x969A 124-1346-2
+sign \x969B 13-16-5
+sign \x969C 1-1346-5
+sign \x969D 145-146-4
+sign \x969E 146-2
+sign \x969F 15-16-5
+sign \x96A0 1456-4
+sign \x96A1 135-345-1
+sign \x96A2 1245-146-5
+sign \x96A3 14-1456-2
+sign \x96A4 124-1246-2
+sign \x96A5 145-1356-5
+sign \x96A6 1234-16-4
+sign \x96A7 15-1246-5
+sign \x96A8 15-1246-2
+sign \x96A9 146-5
+sign \x96AA 15-2345-4
+sign \x96AB 12345-136-2
+sign \x96AC 1345-16-4
+sign \x96AD 156-2
+sign \x96AE 13-16-3
+sign \x96AF 145-146-4
+sign \x96B0 15-16-2
+sign \x96B1 1456-4
+sign \x96B2 2346-2
+sign \x96B3 1235-1246-3
+sign \x96B4 14-12346-4
+sign \x96B5 15-16-3
+sign \x96B6 378-167
+sign \x96B7 14-16-5
+sign \x96B8 14-16-5
+sign \x96B9 1-1246-3
+sign \x96BA 1235-2346-5
+sign \x96BB 1-156-3
+sign \x96BC 15-123456-4
+sign \x96BD 13-45-5
+sign \x96BE 1345-1236-2
+sign \x96BF 16-5
+sign \x96C0 245-236-5
+sign \x96C1 2345-5
+sign \x96C2 245-2345-2
+sign \x96C3 245-2345-3
+sign \x96C4 15-235-2
+sign \x96C5 23456-4
+sign \x96C6 13-16-2
+sign \x96C7 13-34-5
+sign \x96C8 1235-12456-2
+sign \x96C9 1-156-5
+sign \x96CA 13-1256-5
+sign \x96CB 13-45-5
+sign \x96CC 245-156-2
+sign \x96CD 235-3
+sign \x96CE 13-1256-3
+sign \x96CF 12-34-2
+sign \x96D0 1235-34-3
+sign \x96D1 125-345-2
+sign \x96D2 14-25-5
+sign \x96D3 1256-2
+sign \x96D4 12-12356-2
+sign \x96D5 145-246-3
+sign \x96D6 15-1246-3
+sign \x96D7 1235-1236-5
+sign \x96D8 25-5
+sign \x96D9 24-456-3
+sign \x96DA 13-12456-5
+sign \x96DB 12-34-2
+sign \x96DC 125-345-2
+sign \x96DD 235-3
+sign \x96DE 13-16-3
+sign \x96DF 15-16-3
+sign \x96E0 12-12356-2
+sign \x96E1 14-234-5
+sign \x96E2 14-16-2
+sign \x96E3 1345-1236-2
+sign \x96E4 15-236-2
+sign \x96E5 125-345-2
+sign \x96E6 13-16-2
+sign \x96E7 13-16-2
+sign \x96E8 1256-4
+sign \x96E9 1256-2
+sign \x96EA 15-236-4
+sign \x96EB 1345-345-4
+sign \x96EC 12345-12356-4
+sign \x96ED 15-2346-5
+sign \x96EE 134-34-5
+sign \x96EF 123456-2
+sign \x96F0 12345-136-3
+sign \x96F1 1234-1346-2
+sign \x96F2 256-2
+sign \x96F3 14-16-5
+sign \x96F4 14-16-5
+sign \x96F5 1346-4
+sign \x96F6 14-13456-2
+sign \x96F7 14-356-2
+sign \x96F8 1236-2
+sign \x96F9 135-146-2
+sign \x96FA 34-5
+sign \x96FB 145-2345-5
+sign \x96FC 145-1346-5
+sign \x96FD 1235-34-3
+sign \x96FE 34-5
+sign \x96FF 1-2456-2
+sign \x9700 15-1256-3
+sign \x9701 13-16-5
+sign \x9702 134-34-5
+sign \x9703 12-136-2
+sign \x9704 15-246-3
+sign \x9705 1-345-2
+sign \x9706 124-13456-2
+sign \x9707 1-136-5
+sign \x9708 1234-356-5
+sign \x9709 134-356-2
+sign \x970A 14-13456-2
+sign \x970B 245-16-3
+sign \x970C 12-12356-3
+sign \x970D 1235-25-5
+sign \x970E 24-345-5
+sign \x970F 12345-356-3
+sign \x9710 12346-3
+sign \x9711 1-1236-3
+sign \x9712 1456-3
+sign \x9713 1345-16-2
+sign \x9714 1-34-5
+sign \x9715 124-123456-2
+sign \x9716 14-1456-2
+sign \x9718 145-12346-5
+sign \x9719 13456-3
+sign \x971A 34-5
+sign \x971B 14-13456-2
+sign \x971C 24-456-3
+sign \x971D 14-13456-2
+sign \x971E 15-23456-2
+sign \x971F 1235-12346-2
+sign \x9720 1456-3
+sign \x9721 134-126-5
+sign \x9722 134-126-5
+sign \x9723 256-4
+sign \x9724 14-234-5
+sign \x9725 134-1356-5
+sign \x9726 135-1456-3
+sign \x9727 34-5
+sign \x9728 1246-5
+sign \x9729 123-25-5
+sign \x972A 1456-2
+sign \x972B 15-16-2
+sign \x972C 16-5
+sign \x972D 2456-4
+sign \x972E 145-1236-5
+sign \x972F 145-1356-5
+sign \x9730 15-2345-5
+sign \x9731 1256-5
+sign \x9732 14-34-5
+sign \x9733 14-12346-2
+sign \x9734 145-2456-5
+sign \x9735 13-16-2
+sign \x9736 1234-1346-2
+sign \x9737 46-2
+sign \x9738 135-345-5
+sign \x9739 1234-16-3
+sign \x973A 1246-2
+sign \x973C 15-16-4
+sign \x973D 13-16-5
+sign \x973E 134-2456-2
+sign \x973F 34-5
+sign \x9740 134-1356-2
+sign \x9741 14-356-2
+sign \x9742 14-16-5
+sign \x9743 1235-25-5
+sign \x9744 2456-4
+sign \x9745 12345-356-5
+sign \x9746 145-2456-5
+sign \x9747 14-12346-2
+sign \x9748 14-13456-2
+sign \x9749 2456-5
+sign \x974A 12345-1356-3
+sign \x974B 14-16-5
+sign \x974C 135-146-4
+sign \x974E 1235-2346-5
+sign \x974F 1235-2346-5
+sign \x9750 135-13456-5
+sign \x9751 245-13456-3
+sign \x9752 245-13456-3
+sign \x9753 13-13456-5
+sign \x9754 124-2345-3
+sign \x9755 1-136-3
+sign \x9756 13-13456-5
+sign \x9757 12-1356-5
+sign \x9758 245-13456-5
+sign \x9759 13-13456-5
+sign \x975A 13-13456-5
+sign \x975B 145-2345-5
+sign \x975C 13-13456-5
+sign \x975D 124-2345-3
+sign \x975E 12345-356-3
+sign \x975F 12345-356-3
+sign \x9760 123-146-5
+sign \x9761 134-16-4
+sign \x9762 134-2345-5
+sign \x9763 134-2345-5
+sign \x9764 1234-146-5
+sign \x9765 346-5
+sign \x9766 124-2345-4
+sign \x9767 1235-1246-5
+sign \x9768 346-5
+sign \x9769 13-2346-2
+sign \x976A 145-13456-3
+sign \x976B 12-345-3
+sign \x976C 123-1236-5
+sign \x976D 1245-136-5
+sign \x976E 145-16-5
+sign \x976F 145-34-5
+sign \x9770 34-5
+sign \x9771 1245-136-5
+sign \x9772 245-1456-2
+sign \x9773 13-1456-5
+sign \x9774 15-236-3
+sign \x9775 1345-234-4
+sign \x9776 135-345-4
+sign \x9777 1456-4
+sign \x9778 15-345-5
+sign \x9779 1345-345-5
+sign \x977A 134-126-5
+sign \x977B 125-34-4
+sign \x977C 145-345-2
+sign \x977D 135-1236-5
+sign \x977E 16-5
+sign \x977F 246-5
+sign \x9780 124-146-2
+sign \x9781 135-356-5
+sign \x9782 13-346-3
+sign \x9783 1235-12346-2
+sign \x9784 1234-146-2
+sign \x9785 46-3
+sign \x9787 1456-3
+sign \x9788 13-2346-2
+sign \x9789 124-146-2
+sign \x978A 13-16-2
+sign \x978B 15-346-2
+sign \x978C 1236-3
+sign \x978D 1236-3
+sign \x978E 1235-136-2
+sign \x978F 13-12346-4
+sign \x9791 145-345-2
+sign \x9792 245-246-3
+sign \x9793 124-13456-3
+sign \x9794 134-1236-2
+sign \x9795 13456-5
+sign \x9796 15-1246-3
+sign \x9797 124-246-2
+sign \x9798 245-246-5
+sign \x9799 45-3
+sign \x979A 123-12346-5
+sign \x979B 135-1356-4
+sign \x979C 124-345-5
+sign \x979D 1-1346-4
+sign \x979E 135-13456-4
+sign \x979F 123-25-5
+sign \x97A0 13-1256-2
+sign \x97A1 135-345-1
+sign \x97A2 15-346-5
+sign \x97A3 1245-12356-2
+sign \x97A4 135-1346-3
+sign \x97A5 1356-3
+sign \x97A6 245-234-3
+sign \x97A7 245-234-3
+sign \x97A8 1235-2346-2
+sign \x97A9 15-246-5
+sign \x97AA 134-12356-2
+sign \x97AB 13-1256-2
+sign \x97AC 13-2345-3
+sign \x97AD 135-2345-3
+sign \x97AE 145-16-3
+sign \x97AF 13-2345-3
+sign \x97B1 124-146-3
+sign \x97B2 13-12356-3
+sign \x97B3 124-345-5
+sign \x97B4 135-356-5
+sign \x97B5 15-346-2
+sign \x97B6 1234-1236-2
+sign \x97B7 13-2346-2
+sign \x97B8 135-16-5
+sign \x97B9 123-25-5
+sign \x97BB 14-1256-5
+sign \x97BC 13-1246-5
+sign \x97BD 245-246-2
+sign \x97BE 15-236-3
+sign \x97BF 13-16-3
+sign \x97C0 13-2345-3
+sign \x97C1 13-46-3
+sign \x97C2 12-1236-5
+sign \x97C3 145-345-2
+sign \x97C4 25-5
+sign \x97C5 15-2345-4
+sign \x97C6 245-2345-3
+sign \x97C7 145-34-2
+sign \x97C8 35-5
+sign \x97C9 13-2345-3
+sign \x97CA 14-1236-2
+sign \x97CB 1246-2
+sign \x97CC 1245-136-5
+sign \x97CD 12345-34-2
+sign \x97CE 134-356-5
+sign \x97CF 13-45-5
+sign \x97D0 13-23456-2
+sign \x97D1 1246-4
+sign \x97D2 245-246-5
+sign \x97D3 1235-1236-2
+sign \x97D4 12-1346-5
+sign \x97D5 135-345-1
+sign \x97D6 1245-12356-4
+sign \x97D7 256-5
+sign \x97D8 24-2346-5
+sign \x97D9 1246-4
+sign \x97DA 13-2346-2
+sign \x97DB 135-356-5
+sign \x97DC 124-146-3
+sign \x97DD 13-12356-3
+sign \x97DE 256-4
+sign \x97DF 13-146-3
+sign \x97E0 135-16-5
+sign \x97E1 1246-4
+sign \x97E2 1235-1246-5
+sign \x97E3 145-34-2
+sign \x97E4 35-5
+sign \x97E5 145-34-2
+sign \x97E6 1246-2
+sign \x97E7 1245-136-5
+sign \x97E8 12345-34-2
+sign \x97E9 1235-1236-2
+sign \x97EA 1246-4
+sign \x97EB 256-4
+sign \x97EC 124-146-3
+sign \x97ED 13-234-4
+sign \x97EE 13-234-4
+sign \x97EF 15-2345-3
+sign \x97F0 15-346-5
+sign \x97F1 15-2345-3
+sign \x97F2 13-16-3
+sign \x97F3 1456-3
+sign \x97F4 125-345-2
+sign \x97F5 256-5
+sign \x97F6 24-146-2
+sign \x97F7 14-2346-5
+sign \x97F8 1234-1356-2
+sign \x97F9 1235-1356-2
+sign \x97FA 13456-3
+sign \x97FB 256-5
+sign \x97FC 1234-1356-2
+sign \x97FD 1236-3
+sign \x97FE 1456-3
+sign \x97FF 15-46-4
+sign \x9800 1235-34-5
+sign \x9801 346-5
+sign \x9802 145-13456-4
+sign \x9803 245-13456-4
+sign \x9804 123-1246-2
+sign \x9805 15-46-5
+sign \x9806 24-123456-5
+sign \x9807 1235-1236-3
+sign \x9808 15-1256-3
+sign \x9809 16-2
+sign \x980A 15-1256-5
+sign \x980B 13-34-5
+sign \x980C 15-12346-5
+sign \x980D 123-1246-4
+sign \x980E 245-16-2
+sign \x980F 1235-1346-2
+sign \x9810 1256-5
+sign \x9811 12456-2
+sign \x9812 135-1236-3
+sign \x9813 145-123456-5
+sign \x9814 145-16-2
+sign \x9815 145-1236-3
+sign \x9816 1234-1236-5
+sign \x9817 1234-126-4
+sign \x9818 14-13456-4
+sign \x9819 245-2346-5
+sign \x981A 13-13456-4
+sign \x981B 14-356-4
+sign \x981C 1235-1236-2
+sign \x981D 245-246-3
+sign \x981E 2346-5
+sign \x981F 2346-2
+sign \x9820 1246-4
+sign \x9821 13-346-2
+sign \x9822 13-35-3
+sign \x9823 24-136-4
+sign \x9824 16-2
+sign \x9825 24-136-4
+sign \x9826 1235-2456-2
+sign \x9827 145-1246-3
+sign \x9828 1234-2345-3
+sign \x9829 1234-13456-3
+sign \x982A 14-356-5
+sign \x982B 12345-34-4
+sign \x982C 13-23456-2
+sign \x982D 124-12356-2
+sign \x982E 1235-1246-5
+sign \x982F 123-1246-2
+sign \x9830 13-23456-2
+sign \x9831 14-2346-5
+sign \x9832 124-13456-4
+sign \x9833 12-1356-3
+sign \x9834 13456-4
+sign \x9835 13-256-3
+sign \x9836 1235-34-2
+sign \x9837 1235-1236-2
+sign \x9838 13-13456-4
+sign \x9839 124-1246-2
+sign \x983A 124-1246-2
+sign \x983B 1234-1456-2
+sign \x983C 14-2456-5
+sign \x983D 124-1246-2
+sign \x983E 125-156-3
+sign \x983F 125-156-3
+sign \x9840 12-1246-2
+sign \x9841 145-13456-5
+sign \x9842 14-2456-5
+sign \x9843 2345-2
+sign \x9844 1235-1236-5
+sign \x9845 13-2345-3
+sign \x9846 123-2346-3
+sign \x9847 245-1246-5
+sign \x9848 13-235-4
+sign \x9849 245-1456-3
+sign \x984A 16-2
+sign \x984B 15-2456-3
+sign \x984C 124-16-2
+sign \x984D 2346-2
+sign \x984E 2346-5
+sign \x984F 2345-2
+sign \x9850 1235-123456-5
+sign \x9851 123-1236-4
+sign \x9852 235-2
+sign \x9853 1-12456-3
+sign \x9854 2345-2
+sign \x9855 15-2345-4
+sign \x9856 15-1456-5
+sign \x9857 16-4
+sign \x9858 45-5
+sign \x9859 15-1346-4
+sign \x985A 145-2345-3
+sign \x985B 145-2345-3
+sign \x985C 13-46-4
+sign \x985D 123-34-3
+sign \x985E 14-356-5
+sign \x985F 14-246-2
+sign \x9860 1234-246-4
+sign \x9861 16-5
+sign \x9862 134-1236-2
+sign \x9863 245-34-5
+sign \x9864 246-2
+sign \x9865 1235-146-5
+sign \x9866 245-246-2
+sign \x9867 13-34-5
+sign \x9868 15-256-5
+sign \x9869 2345-4
+sign \x986A 1235-1246-5
+sign \x986B 1-1236-5
+sign \x986C 1245-34-2
+sign \x986D 1235-12346-3
+sign \x986E 135-1456-3
+sign \x986F 15-2345-4
+sign \x9870 1234-1456-2
+sign \x9871 14-34-2
+sign \x9872 14-1236-4
+sign \x9873 1345-346-5
+sign \x9874 245-45-2
+sign \x9875 346-5
+sign \x9876 145-13456-4
+sign \x9877 245-13456-4
+sign \x9878 1235-1236-3
+sign \x9879 15-46-5
+sign \x987A 24-123456-5
+sign \x987B 15-1256-3
+sign \x987C 15-1256-5
+sign \x987D 12456-2
+sign \x987E 13-34-5
+sign \x987F 145-123456-5
+sign \x9880 245-16-2
+sign \x9881 135-1236-3
+sign \x9882 15-12346-5
+sign \x9883 1235-1346-2
+sign \x9884 1256-5
+sign \x9885 14-34-2
+sign \x9886 14-13456-4
+sign \x9887 1234-126-4
+sign \x9888 13-13456-4
+sign \x9889 13-346-2
+sign \x988A 13-23456-2
+sign \x988B 124-2345-1
+sign \x988C 1235-1236-2
+sign \x988D 13456-4
+sign \x988E 13-235-4
+sign \x988F 1235-2456-2
+sign \x9890 16-2
+sign \x9891 1234-1456-2
+sign \x9892 1235-1246-5
+sign \x9893 124-1246-2
+sign \x9894 1235-1236-2
+sign \x9895 13456-4
+sign \x9896 13456-4
+sign \x9897 123-2346-3
+sign \x9898 124-16-2
+sign \x9899 235-2
+sign \x989A 2346-5
+sign \x989B 1-12456-3
+sign \x989C 2345-2
+sign \x989D 2346-2
+sign \x989E 1345-346-5
+sign \x989F 134-1236-2
+sign \x98A0 145-2345-3
+sign \x98A1 15-1346-4
+sign \x98A2 1235-146-5
+sign \x98A3 14-356-5
+sign \x98A4 1-1236-5
+sign \x98A5 1245-34-2
+sign \x98A6 1234-1456-2
+sign \x98A7 245-45-2
+sign \x98A8 12345-1356-3
+sign \x98A9 135-246-3
+sign \x98AB 12345-34-2
+sign \x98AC 15-23456-3
+sign \x98AD 1-1236-4
+sign \x98AE 135-246-3
+sign \x98AF 15-345-5
+sign \x98B0 135-345-2
+sign \x98B1 124-2456-2
+sign \x98B2 14-346-5
+sign \x98B3 13-35-3
+sign \x98B4 15-45-5
+sign \x98B5 24-146-5
+sign \x98B6 13-1256-5
+sign \x98B7 135-16-3
+sign \x98B8 15-156-3
+sign \x98B9 1246-4
+sign \x98BA 46-2
+sign \x98BB 246-2
+sign \x98BC 15-12356-3
+sign \x98BD 123-2456-4
+sign \x98BE 15-146-3
+sign \x98BF 12345-1236-2
+sign \x98C0 14-234-2
+sign \x98C1 15-16-2
+sign \x98C2 14-246-2
+sign \x98C3 1234-246-3
+sign \x98C4 1234-246-3
+sign \x98C5 14-234-2
+sign \x98C6 135-246-3
+sign \x98C7 135-246-3
+sign \x98C8 135-246-4
+sign \x98C9 14-246-2
+sign \x98CB 15-2346-5
+sign \x98CC 12345-1356-3
+sign \x98CD 135-246-3
+sign \x98CE 12345-1356-3
+sign \x98CF 46-2
+sign \x98D0 1-1236-4
+sign \x98D1 135-246-3
+sign \x98D2 15-345-5
+sign \x98D3 13-1256-5
+sign \x98D4 15-156-3
+sign \x98D5 15-12356-3
+sign \x98D6 246-2
+sign \x98D7 14-234-2
+sign \x98D8 1234-246-3
+sign \x98D9 135-246-3
+sign \x98DA 135-246-3
+sign \x98DB 12345-356-3
+sign \x98DC 12345-1236-3
+sign \x98DD 12345-356-3
+sign \x98DE 12345-356-3
+sign \x98DF 24-156-2
+sign \x98E0 24-156-2
+sign \x98E1 245-1236-3
+sign \x98E2 13-16-3
+sign \x98E3 145-13456-5
+sign \x98E4 15-156-5
+sign \x98E5 124-25-3
+sign \x98E6 1-1236-3
+sign \x98E7 15-123456-3
+sign \x98E8 15-46-4
+sign \x98E9 124-123456-2
+sign \x98EA 1245-136-5
+sign \x98EB 1256-5
+sign \x98EC 13-45-5
+sign \x98ED 12-156-5
+sign \x98EE 1456-4
+sign \x98EF 12345-1236-5
+sign \x98F0 12345-1236-5
+sign \x98F1 15-123456-3
+sign \x98F2 1456-4
+sign \x98F3 1-34-5
+sign \x98F4 16-2
+sign \x98F5 1-2456-4
+sign \x98F6 135-16-5
+sign \x98F7 13-346-4
+sign \x98F8 124-146-3
+sign \x98F9 14-234-4
+sign \x98FA 245-156-2
+sign \x98FB 124-346-5
+sign \x98FC 15-156-5
+sign \x98FD 135-146-4
+sign \x98FE 24-156-5
+sign \x98FF 145-25-5
+sign \x9900 1235-2456-5
+sign \x9901 1245-136-5
+sign \x9902 124-2345-4
+sign \x9903 13-246-4
+sign \x9904 13-23456-2
+sign \x9905 135-13456-4
+sign \x9906 246-2
+sign \x9907 124-12346-2
+sign \x9908 245-156-2
+sign \x9909 15-46-4
+sign \x990A 46-4
+sign \x990B 46-4
+sign \x990C 156-4
+sign \x990D 2345-5
+sign \x990E 14-2346-1
+sign \x990F 16-3
+sign \x9910 245-1236-3
+sign \x9911 135-126-3
+sign \x9912 1345-356-4
+sign \x9913 2346-5
+sign \x9914 135-34-3
+sign \x9915 13-256-5
+sign \x9916 145-12356-5
+sign \x9917 15-34-5
+sign \x9918 1256-2
+sign \x9919 24-156-5
+sign \x991A 246-2
+sign \x991B 1235-123456-2
+sign \x991C 13-25-4
+sign \x991D 24-156-5
+sign \x991E 13-2345-5
+sign \x991F 1-1246-5
+sign \x9920 135-13456-4
+sign \x9921 15-2345-5
+sign \x9922 135-34-5
+sign \x9923 346-5
+sign \x9924 124-1236-2
+sign \x9925 12345-356-4
+sign \x9926 1-1346-3
+sign \x9927 1246-5
+sign \x9928 13-12456-4
+sign \x9929 2346-5
+sign \x992A 1345-12456-4
+sign \x992B 256-5
+sign \x992C 1235-34-2
+sign \x992D 1235-456-2
+sign \x992E 124-346-5
+sign \x992F 1235-1246-5
+sign \x9930 1-1236-3
+sign \x9931 1235-12356-2
+sign \x9932 16-5
+sign \x9933 124-1346-2
+sign \x9934 12345-136-3
+sign \x9935 1246-5
+sign \x9936 13-34-4
+sign \x9937 12-345-3
+sign \x9938 15-12346-5
+sign \x9939 124-1346-2
+sign \x993A 135-126-2
+sign \x993B 13-146-3
+sign \x993C 15-16-5
+sign \x993D 123-1246-5
+sign \x993E 14-234-5
+sign \x993F 15-12356-3
+sign \x9940 124-146-2
+sign \x9941 346-5
+sign \x9942 256-2
+sign \x9943 134-126-2
+sign \x9944 124-1346-2
+sign \x9945 134-1236-2
+sign \x9946 135-16-5
+sign \x9947 1256-5
+sign \x9948 15-234-3
+sign \x9949 13-1456-4
+sign \x994A 15-1236-4
+sign \x994B 123-1246-5
+sign \x994C 1-12456-5
+sign \x994D 24-1236-5
+sign \x994E 12-156-5
+sign \x994F 145-1236-5
+sign \x9950 16-5
+sign \x9951 13-16-3
+sign \x9952 1245-146-2
+sign \x9953 12-1356-3
+sign \x9954 235-3
+sign \x9955 124-146-3
+sign \x9956 1235-1246-5
+sign \x9957 15-46-4
+sign \x9958 1-1236-3
+sign \x9959 12345-136-3
+sign \x995A 1235-2456-5
+sign \x995B 134-1356-2
+sign \x995C 2345-5
+sign \x995D 134-126-2
+sign \x995E 12-1236-2
+sign \x995F 15-46-5
+sign \x9960 14-25-2
+sign \x9961 125-12456-5
+sign \x9962 1345-1346-4
+sign \x9963 24-156-2
+sign \x9964 145-13456-5
+sign \x9965 13-16-3
+sign \x9966 124-25-3
+sign \x9967 124-1346-2
+sign \x9968 124-123456-2
+sign \x9969 15-16-5
+sign \x996A 1245-136-5
+sign \x996B 1256-5
+sign \x996C 12-156-5
+sign \x996D 12345-1236-5
+sign \x996E 1456-4
+sign \x996F 13-2345-5
+sign \x9970 24-156-5
+sign \x9971 135-146-4
+sign \x9972 15-156-5
+sign \x9973 145-25-5
+sign \x9974 16-2
+sign \x9975 156-4
+sign \x9976 1245-146-2
+sign \x9977 15-46-4
+sign \x9978 13-23456-2
+sign \x9979 14-2346-1
+sign \x997A 13-246-4
+sign \x997B 16-3
+sign \x997C 135-13456-4
+sign \x997D 135-126-3
+sign \x997E 145-12356-5
+sign \x997F 2346-5
+sign \x9980 1256-2
+sign \x9981 1345-356-4
+sign \x9982 13-256-5
+sign \x9983 13-25-4
+sign \x9984 1235-123456-2
+sign \x9985 15-2345-5
+sign \x9986 13-12456-4
+sign \x9987 12-345-3
+sign \x9988 123-1246-5
+sign \x9989 13-34-4
+sign \x998A 15-12356-3
+sign \x998B 12-1236-2
+sign \x998C 346-5
+sign \x998D 134-126-2
+sign \x998E 135-126-2
+sign \x998F 14-234-5
+sign \x9990 15-234-3
+sign \x9991 13-1456-4
+sign \x9992 134-1236-2
+sign \x9993 15-1236-4
+sign \x9994 1-12456-5
+sign \x9995 1345-1346-4
+sign \x9996 24-12356-4
+sign \x9997 123-1246-2
+sign \x9998 13-25-2
+sign \x9999 15-46-3
+sign \x999A 12345-136-2
+sign \x999B 135-345-2
+sign \x999C 1345-16-4
+sign \x999D 135-16-5
+sign \x999E 135-126-2
+sign \x999F 124-34-2
+sign \x99A0 1235-1236-3
+sign \x99A1 12345-356-3
+sign \x99A2 13-2345-3
+sign \x99A3 1236-4
+sign \x99A4 2456-4
+sign \x99A5 12345-34-5
+sign \x99A6 15-2345-3
+sign \x99A7 123456-3
+sign \x99A8 15-1456-3
+sign \x99A9 12345-136-2
+sign \x99AA 135-1456-3
+sign \x99AB 15-13456-3
+sign \x99AC 134-345-4
+sign \x99AD 1256-5
+sign \x99AE 12345-1356-2
+sign \x99AF 245-2345-3
+sign \x99B0 145-16-5
+sign \x99B1 124-25-2
+sign \x99B2 1-2346-2
+sign \x99B3 12-156-2
+sign \x99B4 15-256-2
+sign \x99B5 1-34-5
+sign \x99B6 1-156-3
+sign \x99B7 1234-356-5
+sign \x99B8 15-1456-5
+sign \x99B9 1245-156-5
+sign \x99BA 15-345-5
+sign \x99BB 2345-4
+sign \x99BC 123456-2
+sign \x99BD 1-156-2
+sign \x99BE 145-1236-5
+sign \x99BF 14-1256-2
+sign \x99C0 234-2
+sign \x99C1 135-126-2
+sign \x99C2 135-146-4
+sign \x99C3 13-236-2
+sign \x99C4 124-25-2
+sign \x99C5 16-5
+sign \x99C6 245-1256-3
+sign \x99C7 135-345-1
+sign \x99C8 245-1256-3
+sign \x99C9 13-235-3
+sign \x99CA 135-126-4
+sign \x99CB 1-146-3
+sign \x99CC 45-3
+sign \x99CD 1234-1356-3
+sign \x99CE 1-12356-5
+sign \x99CF 13-1256-5
+sign \x99D0 1-34-5
+sign \x99D1 1345-34-2
+sign \x99D2 13-1256-3
+sign \x99D3 1234-16-3
+sign \x99D4 125-1346-4
+sign \x99D5 13-23456-5
+sign \x99D6 14-13456-2
+sign \x99D7 1-136-4
+sign \x99D8 124-2456-2
+sign \x99D9 12345-34-5
+sign \x99DA 46-4
+sign \x99DB 24-156-4
+sign \x99DC 135-16-5
+sign \x99DD 124-25-2
+sign \x99DE 124-25-2
+sign \x99DF 15-156-5
+sign \x99E0 14-234-2
+sign \x99E1 134-345-5
+sign \x99E2 1234-2345-2
+sign \x99E3 124-146-2
+sign \x99E4 1-156-5
+sign \x99E5 15-1256-5
+sign \x99E6 124-1356-2
+sign \x99E7 145-12346-5
+sign \x99E8 15-256-2
+sign \x99E9 245-45-2
+sign \x99EA 24-136-3
+sign \x99EB 13-235-3
+sign \x99EC 156-4
+sign \x99ED 1235-2456-5
+sign \x99EE 135-126-2
+sign \x99F0 1456-3
+sign \x99F1 14-25-5
+sign \x99F3 145-1236-5
+sign \x99F4 15-346-5
+sign \x99F5 14-234-2
+sign \x99F6 13-1256-2
+sign \x99F7 15-12346-4
+sign \x99F8 245-1456-3
+sign \x99F9 134-1346-2
+sign \x99FA 14-1346-2
+sign \x99FB 1235-1236-5
+sign \x99FC 124-34-2
+sign \x99FD 15-45-3
+sign \x99FE 124-1246-5
+sign \x99FF 13-256-5
+sign \x9A00 2346-2
+sign \x9A01 12-1356-4
+sign \x9A02 15-13456-3
+sign \x9A03 2456-2
+sign \x9A04 14-34-5
+sign \x9A05 1-1246-3
+sign \x9A06 1-12356-3
+sign \x9A07 24-2346-5
+sign \x9A08 1234-2345-2
+sign \x9A09 123-123456-3
+sign \x9A0A 124-146-2
+sign \x9A0B 14-2456-2
+sign \x9A0C 125-12346-3
+sign \x9A0D 123-2346-5
+sign \x9A0E 245-16-2
+sign \x9A0F 245-16-2
+sign \x9A10 2345-5
+sign \x9A11 12345-356-3
+sign \x9A12 15-146-3
+sign \x9A13 2345-4
+sign \x9A14 13-346-2
+sign \x9A15 246-4
+sign \x9A16 34-5
+sign \x9A17 1234-2345-5
+sign \x9A18 245-12346-3
+sign \x9A19 1234-2345-5
+sign \x9A1A 245-2345-2
+sign \x9A1B 12345-356-3
+sign \x9A1C 1235-456-2
+sign \x9A1D 13-2345-3
+sign \x9A1E 1235-25-5
+sign \x9A1F 1256-5
+sign \x9A20 124-16-2
+sign \x9A21 245-45-2
+sign \x9A22 15-23456-2
+sign \x9A23 125-12346-3
+sign \x9A24 123-1246-2
+sign \x9A25 1245-12356-2
+sign \x9A26 15-156-3
+sign \x9A27 13-35-3
+sign \x9A28 124-25-2
+sign \x9A29 123-1246-5
+sign \x9A2A 15-12356-3
+sign \x9A2B 245-2345-3
+sign \x9A2C 12-1356-2
+sign \x9A2D 1-156-5
+sign \x9A2E 14-234-2
+sign \x9A2F 1234-1346-2
+sign \x9A30 124-1356-2
+sign \x9A31 15-16-3
+sign \x9A32 245-146-4
+sign \x9A33 145-34-2
+sign \x9A34 2345-5
+sign \x9A35 45-2
+sign \x9A36 125-12356-3
+sign \x9A37 15-146-3
+sign \x9A38 24-1236-5
+sign \x9A39 245-16-2
+sign \x9A3A 1-156-5
+sign \x9A3B 24-456-4
+sign \x9A3C 14-34-5
+sign \x9A3D 15-16-2
+sign \x9A3E 14-25-2
+sign \x9A3F 1-1346-3
+sign \x9A40 134-126-5
+sign \x9A41 146-2
+sign \x9A42 245-1236-3
+sign \x9A43 1234-246-5
+sign \x9A44 245-12346-3
+sign \x9A45 245-1256-3
+sign \x9A46 135-16-5
+sign \x9A47 1-156-5
+sign \x9A48 1256-5
+sign \x9A49 15-1256-3
+sign \x9A4A 1235-35-2
+sign \x9A4B 135-126-3
+sign \x9A4C 15-34-5
+sign \x9A4D 15-246-3
+sign \x9A4E 14-1456-2
+sign \x9A4F 12-1236-4
+sign \x9A50 145-123456-3
+sign \x9A51 14-234-2
+sign \x9A52 124-25-2
+sign \x9A53 125-1356-3
+sign \x9A54 124-1236-2
+sign \x9A55 13-246-3
+sign \x9A56 124-346-4
+sign \x9A57 2345-5
+sign \x9A58 14-25-2
+sign \x9A59 1-1236-3
+sign \x9A5A 13-13456-3
+sign \x9A5B 16-5
+sign \x9A5C 346-5
+sign \x9A5D 124-25-3
+sign \x9A5E 135-1456-3
+sign \x9A5F 125-12356-5
+sign \x9A60 2345-5
+sign \x9A61 1234-1356-2
+sign \x9A62 14-1256-2
+sign \x9A63 124-1356-2
+sign \x9A64 15-46-3
+sign \x9A65 13-16-5
+sign \x9A66 24-456-3
+sign \x9A67 13-1256-2
+sign \x9A68 15-16-3
+sign \x9A69 1235-12456-3
+sign \x9A6A 14-16-2
+sign \x9A6B 135-246-3
+sign \x9A6C 134-345-4
+sign \x9A6D 1256-5
+sign \x9A6E 124-25-2
+sign \x9A6F 15-256-2
+sign \x9A70 12-156-2
+sign \x9A71 245-1256-3
+sign \x9A72 1245-156-5
+sign \x9A73 135-126-2
+sign \x9A74 14-1256-2
+sign \x9A75 125-1346-4
+sign \x9A76 24-156-4
+sign \x9A77 15-156-5
+sign \x9A78 12345-34-5
+sign \x9A79 13-1256-3
+sign \x9A7A 125-12356-3
+sign \x9A7B 1-34-5
+sign \x9A7C 124-25-2
+sign \x9A7D 1345-34-2
+sign \x9A7E 13-23456-5
+sign \x9A7F 16-5
+sign \x9A80 124-2456-2
+sign \x9A81 15-246-3
+sign \x9A82 134-345-5
+sign \x9A83 1456-3
+sign \x9A84 13-246-3
+sign \x9A85 1235-35-2
+sign \x9A86 14-25-5
+sign \x9A87 1235-2456-5
+sign \x9A88 1234-2345-2
+sign \x9A89 135-246-3
+sign \x9A8A 14-16-2
+sign \x9A8B 12-1356-4
+sign \x9A8C 2345-5
+sign \x9A8D 15-1456-3
+sign \x9A8E 245-1456-3
+sign \x9A8F 13-256-5
+sign \x9A90 245-16-2
+sign \x9A91 245-16-2
+sign \x9A92 123-2346-5
+sign \x9A93 1-1246-3
+sign \x9A94 125-12346-3
+sign \x9A95 15-34-5
+sign \x9A96 245-1236-3
+sign \x9A97 1234-2345-5
+sign \x9A98 1-156-5
+sign \x9A99 123-1246-2
+sign \x9A9A 15-146-3
+sign \x9A9B 34-5
+sign \x9A9C 146-2
+sign \x9A9D 14-234-2
+sign \x9A9E 245-2345-3
+sign \x9A9F 24-1236-5
+sign \x9AA0 1234-246-5
+sign \x9AA1 14-25-2
+sign \x9AA2 245-12346-3
+sign \x9AA3 12-1236-4
+sign \x9AA4 125-12356-5
+sign \x9AA5 13-16-5
+sign \x9AA6 24-456-3
+sign \x9AA7 15-46-3
+sign \x9AA8 13-34-4
+sign \x9AA9 1246-4
+sign \x9AAA 1246-4
+sign \x9AAB 1246-4
+sign \x9AAC 1256-2
+sign \x9AAD 13-1236-5
+sign \x9AAE 16-5
+sign \x9AAF 1346-3
+sign \x9AB0 24-2456-4
+sign \x9AB1 15-346-5
+sign \x9AB2 135-146-3
+sign \x9AB3 135-16-5
+sign \x9AB4 12-156-3
+sign \x9AB5 124-16-4
+sign \x9AB6 145-16-4
+sign \x9AB7 123-34-3
+sign \x9AB8 1235-2456-2
+sign \x9AB9 245-246-3
+sign \x9ABA 13-12356-5
+sign \x9ABB 123-35-5
+sign \x9ABC 13-2346-2
+sign \x9ABD 124-1246-4
+sign \x9ABE 13-1356-4
+sign \x9ABF 1234-2345-2
+sign \x9AC0 135-16-5
+sign \x9AC1 123-2346-5
+sign \x9AC2 123-345-5
+sign \x9AC3 1256-2
+sign \x9AC4 15-1246-4
+sign \x9AC5 14-12356-2
+sign \x9AC6 135-126-2
+sign \x9AC7 15-246-3
+sign \x9AC8 135-1346-4
+sign \x9AC9 135-126-3
+sign \x9ACA 245-156-3
+sign \x9ACB 123-12456-3
+sign \x9ACC 135-1456-5
+sign \x9ACD 134-126-2
+sign \x9ACE 14-246-2
+sign \x9ACF 14-12356-2
+sign \x9AD0 15-246-3
+sign \x9AD1 145-34-2
+sign \x9AD2 125-1346-3
+sign \x9AD3 15-1246-4
+sign \x9AD4 124-16-4
+sign \x9AD5 135-1456-5
+sign \x9AD6 123-12456-3
+sign \x9AD7 14-34-2
+sign \x9AD8 13-146-3
+sign \x9AD9 13-146-3
+sign \x9ADA 245-246-5
+sign \x9ADB 123-146-3
+sign \x9ADC 245-246-3
+sign \x9ADD 14-146-5
+sign \x9ADE 125-146-5
+sign \x9ADF 135-246-3
+sign \x9AE0 123-123456-3
+sign \x9AE1 123-123456-3
+sign \x9AE2 124-16-5
+sign \x9AE3 12345-1346-4
+sign \x9AE4 15-234-3
+sign \x9AE5 1245-1236-2
+sign \x9AE6 134-146-2
+sign \x9AE7 145-1236-5
+sign \x9AE8 123-123456-3
+sign \x9AE9 135-1456-5
+sign \x9AEA 12345-345-5
+sign \x9AEB 124-246-2
+sign \x9AEC 1234-16-3
+sign \x9AED 125-156-3
+sign \x9AEE 12345-345-4
+sign \x9AEF 1245-1236-2
+sign \x9AF0 124-16-5
+sign \x9AF1 1234-146-5
+sign \x9AF2 135-16-5
+sign \x9AF3 134-146-2
+sign \x9AF4 12345-34-2
+sign \x9AF5 156-2
+sign \x9AF6 1245-12346-2
+sign \x9AF7 245-1256-5
+sign \x9AF9 15-234-3
+sign \x9AFA 13-35-3
+sign \x9AFB 13-16-5
+sign \x9AFC 1234-1356-2
+sign \x9AFD 1-35-3
+sign \x9AFE 24-146-3
+sign \x9AFF 24-345-3
+sign \x9B00 124-16-5
+sign \x9B01 14-16-5
+sign \x9B02 135-1456-5
+sign \x9B03 125-12346-3
+sign \x9B04 124-16-5
+sign \x9B05 1234-1356-2
+sign \x9B06 15-12346-3
+sign \x9B07 1-1356-3
+sign \x9B08 245-45-2
+sign \x9B09 125-12346-3
+sign \x9B0A 24-123456-5
+sign \x9B0B 13-2345-4
+sign \x9B0C 145-25-4
+sign \x9B0D 1235-34-2
+sign \x9B0E 14-345-5
+sign \x9B0F 13-234-3
+sign \x9B10 245-16-2
+sign \x9B11 14-2345-2
+sign \x9B12 1-136-4
+sign \x9B13 135-1456-5
+sign \x9B14 1234-1356-2
+sign \x9B15 134-2456-5
+sign \x9B16 15-1236-3
+sign \x9B17 134-1236-2
+sign \x9B18 134-1236-2
+sign \x9B19 15-1356-3
+sign \x9B1A 15-1256-3
+sign \x9B1B 14-346-5
+sign \x9B1C 245-2345-3
+sign \x9B1D 245-2345-3
+sign \x9B1E 1345-12346-2
+sign \x9B1F 1235-12456-2
+sign \x9B20 13-35-3
+sign \x9B21 1345-13456-2
+sign \x9B22 135-1456-5
+sign \x9B23 14-346-5
+sign \x9B24 1245-1346-2
+sign \x9B25 145-12356-5
+sign \x9B26 145-12356-5
+sign \x9B27 1345-146-5
+sign \x9B28 1235-12346-5
+sign \x9B29 15-16-5
+sign \x9B2A 145-12356-5
+sign \x9B2B 1235-1236-4
+sign \x9B2C 145-12356-5
+sign \x9B2D 145-12356-5
+sign \x9B2E 13-234-3
+sign \x9B2F 12-1346-5
+sign \x9B30 1256-5
+sign \x9B31 1256-5
+sign \x9B32 13-2346-2
+sign \x9B33 13-45-5
+sign \x9B34 12345-34-4
+sign \x9B35 15-1456-2
+sign \x9B36 13-1246-3
+sign \x9B37 125-12346-3
+sign \x9B38 14-234-5
+sign \x9B39 13-1246-3
+sign \x9B3A 24-1346-3
+sign \x9B3B 1256-5
+sign \x9B3C 13-1246-4
+sign \x9B3D 134-356-5
+sign \x9B3E 13-16-5
+sign \x9B3F 245-16-2
+sign \x9B40 13-346-5
+sign \x9B41 123-1246-2
+sign \x9B42 1235-123456-2
+sign \x9B43 135-345-2
+sign \x9B44 1234-126-5
+sign \x9B45 134-356-5
+sign \x9B46 15-1256-5
+sign \x9B47 2345-4
+sign \x9B48 15-246-3
+sign \x9B49 14-46-4
+sign \x9B4A 1256-5
+sign \x9B4B 124-1246-2
+sign \x9B4C 245-16-3
+sign \x9B4D 456-4
+sign \x9B4E 14-46-4
+sign \x9B4F 1246-5
+sign \x9B50 13-2345-3
+sign \x9B51 12-156-3
+sign \x9B52 1234-246-3
+sign \x9B53 135-16-5
+sign \x9B54 134-126-2
+sign \x9B55 245-16-2
+sign \x9B56 15-1256-3
+sign \x9B57 12-12356-4
+sign \x9B58 2345-4
+sign \x9B59 1-1236-4
+sign \x9B5A 1256-2
+sign \x9B5B 145-146-3
+sign \x9B5C 1245-136-2
+sign \x9B5D 13-16-5
+sign \x9B5F 1235-12346-3
+sign \x9B60 124-25-3
+sign \x9B61 145-246-5
+sign \x9B62 13-16-4
+sign \x9B63 15-1256-5
+sign \x9B64 2346-2
+sign \x9B65 2346-5
+sign \x9B66 24-345-3
+sign \x9B67 1235-1346-2
+sign \x9B68 124-123456-2
+sign \x9B69 134-126-5
+sign \x9B6A 13-346-5
+sign \x9B6B 24-136-4
+sign \x9B6C 135-1236-5
+sign \x9B6D 45-2
+sign \x9B6E 135-16-2
+sign \x9B6F 14-34-4
+sign \x9B70 123456-2
+sign \x9B71 1235-34-2
+sign \x9B72 14-34-2
+sign \x9B73 125-345-2
+sign \x9B74 12345-1346-2
+sign \x9B75 12345-136-2
+sign \x9B76 1345-345-5
+sign \x9B77 234-2
+sign \x9B7A 1235-2346-2
+sign \x9B7B 15-23456-2
+sign \x9B7C 245-1256-3
+sign \x9B7D 1235-1236-3
+sign \x9B7E 1234-16-2
+sign \x9B7F 14-13456-2
+sign \x9B80 124-25-2
+sign \x9B81 135-126-3
+sign \x9B82 245-234-2
+sign \x9B83 1234-13456-2
+sign \x9B84 12345-34-2
+sign \x9B85 135-16-5
+sign \x9B86 13-16-4
+sign \x9B87 1246-5
+sign \x9B88 13-1256-3
+sign \x9B89 145-246-3
+sign \x9B8A 135-126-2
+sign \x9B8B 234-2
+sign \x9B8C 13-123456-4
+sign \x9B8D 1234-16-3
+sign \x9B8E 1345-2345-2
+sign \x9B8F 15-13456-3
+sign \x9B90 124-2456-2
+sign \x9B91 135-146-5
+sign \x9B92 12345-34-5
+sign \x9B93 1-345-4
+sign \x9B94 13-1256-5
+sign \x9B95 13-34-3
+sign \x9B99 124-345-5
+sign \x9B9A 13-346-2
+sign \x9B9B 24-34-2
+sign \x9B9C 1235-12356-5
+sign \x9B9D 15-46-4
+sign \x9B9E 156-2
+sign \x9B9F 1236-5
+sign \x9BA0 1246-2
+sign \x9BA1 1-146-4
+sign \x9BA2 1-34-3
+sign \x9BA3 1456-5
+sign \x9BA4 14-346-5
+sign \x9BA5 14-25-5
+sign \x9BA6 124-12346-2
+sign \x9BA7 16-2
+sign \x9BA8 245-16-2
+sign \x9BA9 135-13456-5
+sign \x9BAA 1246-4
+sign \x9BAB 13-246-3
+sign \x9BAC 135-34-5
+sign \x9BAD 13-1246-3
+sign \x9BAE 15-2345-3
+sign \x9BAF 13-2346-2
+sign \x9BB0 1235-1246-2
+sign \x9BB3 123-146-4
+sign \x9BB5 145-25-2
+sign \x9BB6 13-256-3
+sign \x9BB7 124-16-2
+sign \x9BB8 134-2345-4
+sign \x9BB9 24-146-3
+sign \x9BBA 125-345-4
+sign \x9BBB 24-345-3
+sign \x9BBC 245-1456-3
+sign \x9BBD 1256-2
+sign \x9BBE 1345-356-4
+sign \x9BBF 1-2346-2
+sign \x9BC0 13-123456-4
+sign \x9BC1 13-1356-4
+sign \x9BC3 34-2
+sign \x9BC4 245-234-2
+sign \x9BC5 124-13456-2
+sign \x9BC6 135-34-3
+sign \x9BC7 1235-12456-4
+sign \x9BC8 124-246-2
+sign \x9BC9 14-16-4
+sign \x9BCA 24-345-3
+sign \x9BCB 24-345-3
+sign \x9BCC 13-146-5
+sign \x9BCD 134-1356-2
+sign \x9BD2 235-4
+sign \x9BD3 1345-16-2
+sign \x9BD4 125-156-3
+sign \x9BD5 245-16-2
+sign \x9BD6 245-13456-3
+sign \x9BD7 15-46-4
+sign \x9BD8 1345-356-4
+sign \x9BD9 12-123456-2
+sign \x9BDA 13-16-5
+sign \x9BDB 145-246-3
+sign \x9BDC 245-346-5
+sign \x9BDD 13-34-5
+sign \x9BDE 1-12356-4
+sign \x9BDF 145-12346-3
+sign \x9BE0 14-2456-2
+sign \x9BE1 12345-356-5
+sign \x9BE2 1345-16-2
+sign \x9BE3 16-5
+sign \x9BE4 123-123456-3
+sign \x9BE5 14-34-5
+sign \x9BE6 245-234-2
+sign \x9BE7 12-1346-3
+sign \x9BE8 13-13456-3
+sign \x9BE9 14-123456-2
+sign \x9BEA 14-13456-2
+sign \x9BEB 125-12356-3
+sign \x9BEC 14-16-2
+sign \x9BED 134-1356-4
+sign \x9BEE 125-12346-3
+sign \x9BEF 1-156-5
+sign \x9BF0 1345-2345-2
+sign \x9BF4 24-156-3
+sign \x9BF5 24-136-3
+sign \x9BF6 1235-12456-4
+sign \x9BF7 124-16-2
+sign \x9BF8 1235-12356-2
+sign \x9BF9 15-13456-3
+sign \x9BFA 1-34-3
+sign \x9BFB 14-345-5
+sign \x9BFC 125-12346-3
+sign \x9BFD 13-16-5
+sign \x9BFE 135-2345-3
+sign \x9BFF 135-2345-3
+sign \x9C00 1235-12456-5
+sign \x9C01 245-45-2
+sign \x9C02 125-2346-2
+sign \x9C03 1246-3
+sign \x9C04 1246-3
+sign \x9C05 1256-2
+sign \x9C06 12-123456-3
+sign \x9C07 1245-12356-2
+sign \x9C08 145-346-2
+sign \x9C09 1235-456-2
+sign \x9C0A 14-2345-5
+sign \x9C0B 2345-4
+sign \x9C0C 245-234-2
+sign \x9C0D 245-234-3
+sign \x9C0E 13-2345-5
+sign \x9C0F 135-16-5
+sign \x9C10 2346-5
+sign \x9C11 46-2
+sign \x9C12 12345-34-5
+sign \x9C13 15-2456-3
+sign \x9C14 13-2345-4
+sign \x9C15 15-23456-3
+sign \x9C16 124-25-4
+sign \x9C17 1235-34-2
+sign \x9C19 1245-25-5
+sign \x9C1B 123456-3
+sign \x9C1C 13-2345-3
+sign \x9C1D 1235-146-5
+sign \x9C1E 34-3
+sign \x9C1F 12345-1346-2
+sign \x9C20 15-146-3
+sign \x9C21 14-234-3
+sign \x9C22 134-345-4
+sign \x9C23 24-156-2
+sign \x9C24 24-156-3
+sign \x9C25 13-12456-3
+sign \x9C27 124-1356-2
+sign \x9C28 124-345-5
+sign \x9C29 246-2
+sign \x9C2A 13-2346-2
+sign \x9C2B 1245-12346-2
+sign \x9C2C 245-2345-2
+sign \x9C2D 245-16-2
+sign \x9C2E 123456-3
+sign \x9C2F 1245-25-5
+sign \x9C31 14-2345-2
+sign \x9C32 146-2
+sign \x9C33 14-2346-5
+sign \x9C34 1235-1246-3
+sign \x9C35 134-1456-4
+sign \x9C36 13-16-5
+sign \x9C37 124-246-2
+sign \x9C38 245-1256-3
+sign \x9C39 13-2345-3
+sign \x9C3A 15-146-3
+sign \x9C3B 134-1236-2
+sign \x9C3C 15-16-2
+sign \x9C3D 245-234-2
+sign \x9C3E 135-246-5
+sign \x9C3F 125-2346-2
+sign \x9C40 13-16-5
+sign \x9C41 1-34-2
+sign \x9C42 13-46-3
+sign \x9C43 245-234-3
+sign \x9C44 1-12456-3
+sign \x9C45 235-2
+sign \x9C46 1-1346-3
+sign \x9C47 123-1346-3
+sign \x9C48 15-236-4
+sign \x9C49 135-346-3
+sign \x9C4A 1256-5
+sign \x9C4B 245-1256-3
+sign \x9C4C 15-46-5
+sign \x9C4D 135-126-3
+sign \x9C4E 13-246-4
+sign \x9C4F 15-256-2
+sign \x9C50 15-12356-3
+sign \x9C51 1235-456-2
+sign \x9C52 125-123456-3
+sign \x9C53 24-1236-5
+sign \x9C54 24-1236-5
+sign \x9C55 12345-1236-3
+sign \x9C56 13-1246-5
+sign \x9C57 14-1456-2
+sign \x9C58 15-256-2
+sign \x9C59 134-246-2
+sign \x9C5A 15-16-4
+sign \x9C5D 12345-136-5
+sign \x9C5E 13-12456-3
+sign \x9C5F 1235-12356-5
+sign \x9C60 123-2356-5
+sign \x9C61 125-356-2
+sign \x9C62 15-146-3
+sign \x9C63 1-1236-3
+sign \x9C64 13-1236-4
+sign \x9C65 13-1246-5
+sign \x9C66 24-1356-2
+sign \x9C67 14-16-4
+sign \x9C68 12-1346-2
+sign \x9C6C 1245-34-2
+sign \x9C6D 13-16-5
+sign \x9C6E 15-1256-5
+sign \x9C6F 1235-25-5
+sign \x9C71 14-16-5
+sign \x9C72 14-346-5
+sign \x9C73 14-16-5
+sign \x9C74 134-346-5
+sign \x9C75 1-136-3
+sign \x9C76 15-46-4
+sign \x9C77 2346-5
+sign \x9C78 14-34-2
+sign \x9C79 13-12456-5
+sign \x9C7A 14-16-2
+sign \x9C7B 15-2345-3
+sign \x9C7C 1256-2
+sign \x9C7D 145-146-3
+sign \x9C7E 13-16-4
+sign \x9C7F 234-2
+sign \x9C80 124-123456-2
+sign \x9C81 14-34-4
+sign \x9C82 12345-1346-2
+sign \x9C83 135-345-3
+sign \x9C84 1235-2346-2
+sign \x9C85 135-126-3
+sign \x9C86 1234-13456-2
+sign \x9C87 1345-2345-2
+sign \x9C88 14-34-2
+sign \x9C89 234-2
+sign \x9C8A 1-345-4
+sign \x9C8B 12345-34-5
+sign \x9C8C 135-126-2
+sign \x9C8D 135-146-5
+sign \x9C8E 1235-12356-5
+sign \x9C8F 1234-16-3
+sign \x9C90 124-2456-2
+sign \x9C91 13-1246-3
+sign \x9C92 13-346-2
+sign \x9C93 123-146-4
+sign \x9C94 1246-4
+sign \x9C95 156-2
+sign \x9C96 124-12346-2
+sign \x9C97 125-2346-2
+sign \x9C98 1235-12356-5
+sign \x9C99 123-2356-5
+sign \x9C9A 13-16-5
+sign \x9C9B 13-246-3
+sign \x9C9C 15-2345-3
+sign \x9C9D 125-345-4
+sign \x9C9E 15-46-4
+sign \x9C9F 15-256-2
+sign \x9CA0 13-1356-4
+sign \x9CA1 14-16-2
+sign \x9CA2 14-2345-2
+sign \x9CA3 13-2345-3
+sign \x9CA4 14-16-4
+sign \x9CA5 24-156-2
+sign \x9CA6 124-246-2
+sign \x9CA7 13-123456-4
+sign \x9CA8 24-345-3
+sign \x9CA9 1235-12456-4
+sign \x9CAA 13-256-3
+sign \x9CAB 13-16-5
+sign \x9CAC 235-4
+sign \x9CAD 245-13456-3
+sign \x9CAE 14-13456-2
+sign \x9CAF 245-16-2
+sign \x9CB0 125-12356-3
+sign \x9CB1 12345-356-5
+sign \x9CB2 123-123456-3
+sign \x9CB3 12-1346-3
+sign \x9CB4 13-34-5
+sign \x9CB5 1345-16-2
+sign \x9CB6 1345-2345-2
+sign \x9CB7 145-246-3
+sign \x9CB8 13-13456-3
+sign \x9CB9 24-136-3
+sign \x9CBA 24-156-3
+sign \x9CBB 125-156-3
+sign \x9CBC 12345-136-5
+sign \x9CBD 145-346-2
+sign \x9CBE 135-16-5
+sign \x9CBF 12-1346-2
+sign \x9CC0 124-16-2
+sign \x9CC1 123456-3
+sign \x9CC2 1246-3
+sign \x9CC3 15-2456-3
+sign \x9CC4 2346-5
+sign \x9CC5 245-234-3
+sign \x9CC6 12345-34-5
+sign \x9CC7 1235-456-2
+sign \x9CC8 245-45-2
+sign \x9CC9 13-46-3
+sign \x9CCA 135-2345-3
+sign \x9CCB 15-146-3
+sign \x9CCC 146-2
+sign \x9CCD 245-16-2
+sign \x9CCE 124-345-5
+sign \x9CCF 13-12456-3
+sign \x9CD0 246-2
+sign \x9CD1 12345-1346-2
+sign \x9CD2 13-2345-3
+sign \x9CD3 14-2346-5
+sign \x9CD4 135-246-5
+sign \x9CD5 15-236-4
+sign \x9CD6 135-346-3
+sign \x9CD7 134-1236-2
+sign \x9CD8 134-1456-4
+sign \x9CD9 235-2
+sign \x9CDA 1246-5
+sign \x9CDB 15-16-2
+sign \x9CDC 13-1246-5
+sign \x9CDD 24-1236-5
+sign \x9CDE 14-1456-2
+sign \x9CDF 125-123456-3
+sign \x9CE0 1235-25-5
+sign \x9CE1 13-1236-4
+sign \x9CE2 14-16-4
+sign \x9CE3 1-1236-3
+sign \x9CE4 13-12456-4
+sign \x9CE5 1345-246-4
+sign \x9CE6 16-4
+sign \x9CE7 12345-34-2
+sign \x9CE8 14-16-5
+sign \x9CE9 13-234-3
+sign \x9CEA 135-34-4
+sign \x9CEB 2345-5
+sign \x9CEC 12345-34-2
+sign \x9CED 12-146-2
+sign \x9CEE 13-16-3
+sign \x9CEF 12345-1356-5
+sign \x9CF1 13-1236-3
+sign \x9CF2 24-156-3
+sign \x9CF3 12345-1356-5
+sign \x9CF4 134-13456-2
+sign \x9CF5 135-146-4
+sign \x9CF6 45-3
+sign \x9CF7 1-156-3
+sign \x9CF8 1235-34-5
+sign \x9CF9 245-1456-2
+sign \x9CFA 12345-34-3
+sign \x9CFB 12345-136-3
+sign \x9CFC 123456-2
+sign \x9CFD 2346-5
+sign \x9CFE 24-156-3
+sign \x9CFF 1256-5
+sign \x9D00 12345-12356-2
+sign \x9D01 246-3
+sign \x9D02 13-236-5
+sign \x9D03 13-236-2
+sign \x9D04 1234-16-3
+sign \x9D05 1235-12456-3
+sign \x9D06 1-136-5
+sign \x9D07 135-146-4
+sign \x9D08 2345-5
+sign \x9D09 23456-3
+sign \x9D0A 1-1356-5
+sign \x9D0B 12345-1346-3
+sign \x9D0C 12345-1356-5
+sign \x9D0D 123456-2
+sign \x9D0E 12356-3
+sign \x9D0F 124-2346-5
+sign \x9D10 13-23456-3
+sign \x9D11 1345-34-2
+sign \x9D12 14-13456-2
+sign \x9D13 134-346-5
+sign \x9D14 12345-34-2
+sign \x9D15 124-25-2
+sign \x9D16 123456-2
+sign \x9D17 14-16-5
+sign \x9D18 135-2345-5
+sign \x9D19 1-156-5
+sign \x9D1A 13-2346-3
+sign \x9D1B 45-3
+sign \x9D1C 125-156-3
+sign \x9D1D 245-1256-2
+sign \x9D1E 15-246-3
+sign \x9D1F 12-156-3
+sign \x9D20 145-1236-5
+sign \x9D21 13-1256-3
+sign \x9D22 234-5
+sign \x9D23 13-34-3
+sign \x9D24 1-12346-3
+sign \x9D25 1256-5
+sign \x9D26 46-3
+sign \x9D27 1245-12346-5
+sign \x9D28 23456-3
+sign \x9D29 16-5
+sign \x9D2A 1256-5
+sign \x9D2C 13456-3
+sign \x9D2D 1-1246-3
+sign \x9D2E 34-3
+sign \x9D2F 156-2
+sign \x9D30 13-35-3
+sign \x9D31 2456-5
+sign \x9D32 1-156-3
+sign \x9D33 2345-5
+sign \x9D34 1235-1356-2
+sign \x9D35 13-246-3
+sign \x9D36 13-23456-5
+sign \x9D37 14-346-5
+sign \x9D38 1-34-3
+sign \x9D39 1245-136-2
+sign \x9D3A 16-2
+sign \x9D3B 1235-12346-2
+sign \x9D3C 14-25-5
+sign \x9D3D 1245-34-2
+sign \x9D3E 134-12356-2
+sign \x9D3F 13-2346-3
+sign \x9D40 1245-136-2
+sign \x9D41 13-246-3
+sign \x9D42 15-234-3
+sign \x9D43 1-146-3
+sign \x9D44 12-156-3
+sign \x9D45 14-25-5
+sign \x9D49 14-12456-2
+sign \x9D4A 13-23456-2
+sign \x9D4B 13-16-5
+sign \x9D4C 124-34-2
+sign \x9D4D 1235-12456-3
+sign \x9D4E 124-25-4
+sign \x9D4F 135-34-3
+sign \x9D50 34-2
+sign \x9D51 13-45-3
+sign \x9D52 1256-5
+sign \x9D53 135-126-2
+sign \x9D54 13-256-5
+sign \x9D55 15-256-5
+sign \x9D56 135-16-5
+sign \x9D57 15-16-3
+sign \x9D58 13-256-5
+sign \x9D59 13-1256-2
+sign \x9D5A 124-34-2
+sign \x9D5B 13-13456-3
+sign \x9D5C 124-16-2
+sign \x9D5D 2346-2
+sign \x9D5E 2346-2
+sign \x9D5F 123-456-2
+sign \x9D60 1235-34-2
+sign \x9D61 34-4
+sign \x9D62 24-136-3
+sign \x9D63 14-2456-5
+sign \x9D66 14-34-5
+sign \x9D67 1234-13456-2
+sign \x9D68 24-34-3
+sign \x9D69 12345-34-2
+sign \x9D6A 1236-3
+sign \x9D6B 1-146-5
+sign \x9D6C 1234-1356-2
+sign \x9D6D 245-1456-2
+sign \x9D6E 245-2345-3
+sign \x9D6F 135-356-3
+sign \x9D70 145-246-3
+sign \x9D71 14-34-5
+sign \x9D72 245-236-5
+sign \x9D73 13-2345-3
+sign \x9D74 13-1256-2
+sign \x9D75 124-34-5
+sign \x9D76 23456-3
+sign \x9D77 45-3
+sign \x9D78 245-16-2
+sign \x9D79 14-16-2
+sign \x9D7A 346-5
+sign \x9D7B 1-1246-3
+sign \x9D7C 123-12346-3
+sign \x9D7D 145-25-5
+sign \x9D7E 123-123456-3
+sign \x9D7F 24-1356-3
+sign \x9D80 245-16-2
+sign \x9D81 13-13456-3
+sign \x9D82 16-5
+sign \x9D83 16-5
+sign \x9D84 13-13456-3
+sign \x9D85 125-156-3
+sign \x9D86 14-2456-2
+sign \x9D87 145-12346-3
+sign \x9D88 245-16-3
+sign \x9D89 12-123456-2
+sign \x9D8A 13-1356-3
+sign \x9D8B 13-1256-3
+sign \x9D8C 13-236-2
+sign \x9D8F 13-16-3
+sign \x9D90 1-156-3
+sign \x9D92 12-156-4
+sign \x9D93 134-246-2
+sign \x9D94 1245-12356-2
+sign \x9D95 1236-3
+sign \x9D96 245-234-3
+sign \x9D97 124-16-2
+sign \x9D98 1235-34-2
+sign \x9D99 124-16-2
+sign \x9D9A 2346-5
+sign \x9D9B 13-346-3
+sign \x9D9C 134-146-2
+sign \x9D9D 12345-34-2
+sign \x9D9E 12-123456-3
+sign \x9D9F 124-34-2
+sign \x9DA0 2345-4
+sign \x9DA1 1235-2346-2
+sign \x9DA2 45-2
+sign \x9DA3 1234-2345-3
+sign \x9DA4 123-123456-3
+sign \x9DA5 134-356-2
+sign \x9DA6 1235-34-2
+sign \x9DA7 13456-3
+sign \x9DA8 124-12456-5
+sign \x9DA9 134-34-5
+sign \x9DAA 13-1256-2
+sign \x9DAC 245-1346-3
+sign \x9DAD 12345-1346-4
+sign \x9DAE 13-34-5
+sign \x9DAF 13456-3
+sign \x9DB0 45-2
+sign \x9DB1 15-45-3
+sign \x9DB2 12346-3
+sign \x9DB3 24-156-3
+sign \x9DB4 1235-2346-5
+sign \x9DB5 12-34-2
+sign \x9DB6 124-1346-2
+sign \x9DB7 1235-2346-2
+sign \x9DB8 1245-25-5
+sign \x9DB9 14-234-2
+sign \x9DBA 13-16-2
+sign \x9DBB 13-34-4
+sign \x9DBC 13-2345-3
+sign \x9DBD 1-123456-4
+sign \x9DBE 1235-1236-5
+sign \x9DBF 125-156-3
+sign \x9DC0 125-156-3
+sign \x9DC1 1345-16-5
+sign \x9DC2 246-5
+sign \x9DC3 2345-5
+sign \x9DC4 13-16-3
+sign \x9DC5 14-16-5
+sign \x9DC6 124-2345-2
+sign \x9DC7 123-12356-5
+sign \x9DC8 124-16-3
+sign \x9DC9 124-16-3
+sign \x9DCA 16-5
+sign \x9DCB 124-34-2
+sign \x9DCC 134-345-4
+sign \x9DCD 13-246-3
+sign \x9DCE 13-146-3
+sign \x9DCF 124-2345-2
+sign \x9DD0 12-136-2
+sign \x9DD1 13-16-2
+sign \x9DD2 124-12456-2
+sign \x9DD3 1-2346-5
+sign \x9DD4 146-2
+sign \x9DD5 246-4
+sign \x9DD6 16-3
+sign \x9DD7 12356-3
+sign \x9DD8 12-156-5
+sign \x9DD9 1-156-5
+sign \x9DDA 14-234-5
+sign \x9DDB 1245-12346-2
+sign \x9DDC 14-1256-2
+sign \x9DDD 135-16-5
+sign \x9DDE 24-456-3
+sign \x9DDF 1-25-2
+sign \x9DE0 1256-2
+sign \x9DE1 34-2
+sign \x9DE2 13-236-2
+sign \x9DE3 1456-2
+sign \x9DE4 124-16-2
+sign \x9DE5 15-156-3
+sign \x9DE6 13-246-3
+sign \x9DE7 16-5
+sign \x9DE8 1235-35-3
+sign \x9DE9 135-16-5
+sign \x9DEA 13456-3
+sign \x9DEB 15-34-5
+sign \x9DEC 1235-456-2
+sign \x9DED 12345-1236-2
+sign \x9DEE 13-246-3
+sign \x9DEF 14-246-2
+sign \x9DF0 2345-5
+sign \x9DF1 123-146-3
+sign \x9DF2 13-234-5
+sign \x9DF3 15-2345-2
+sign \x9DF4 15-2345-2
+sign \x9DF5 124-34-2
+sign \x9DF6 134-2456-4
+sign \x9DF7 125-123456-3
+sign \x9DF8 1256-5
+sign \x9DF9 13456-3
+sign \x9DFA 14-34-5
+sign \x9DFB 124-12456-2
+sign \x9DFC 15-2345-2
+sign \x9DFD 15-236-2
+sign \x9DFE 16-5
+sign \x9DFF 1234-16-5
+sign \x9E00 24-34-2
+sign \x9E01 14-25-2
+sign \x9E02 245-16-3
+sign \x9E03 16-2
+sign \x9E04 13-246-3
+sign \x9E05 1-2346-2
+sign \x9E06 1256-2
+sign \x9E07 1-1236-3
+sign \x9E08 346-5
+sign \x9E09 46-2
+sign \x9E0A 1234-16-5
+sign \x9E0B 1345-13456-2
+sign \x9E0C 1235-25-5
+sign \x9E0D 134-16-2
+sign \x9E0E 13456-3
+sign \x9E0F 134-1356-2
+sign \x9E10 145-16-2
+sign \x9E11 236-5
+sign \x9E12 1256-5
+sign \x9E13 14-356-4
+sign \x9E14 135-126-2
+sign \x9E15 14-34-2
+sign \x9E16 1235-2346-5
+sign \x9E17 14-12346-2
+sign \x9E18 24-456-3
+sign \x9E19 236-5
+sign \x9E1A 13456-3
+sign \x9E1B 13-12456-5
+sign \x9E1C 245-1256-2
+sign \x9E1D 14-16-2
+sign \x9E1E 14-12456-2
+sign \x9E1F 1345-246-4
+sign \x9E20 13-234-3
+sign \x9E21 13-16-3
+sign \x9E22 45-3
+sign \x9E23 134-13456-2
+sign \x9E24 24-156-3
+sign \x9E25 12356-3
+sign \x9E26 23456-3
+sign \x9E27 245-1346-3
+sign \x9E28 135-146-4
+sign \x9E29 1-136-5
+sign \x9E2A 13-34-3
+sign \x9E2B 145-12346-3
+sign \x9E2C 14-34-2
+sign \x9E2D 23456-3
+sign \x9E2E 15-246-3
+sign \x9E2F 46-3
+sign \x9E30 14-13456-2
+sign \x9E31 12-156-3
+sign \x9E32 245-1256-2
+sign \x9E33 45-3
+sign \x9E34 15-236-2
+sign \x9E35 124-25-2
+sign \x9E36 15-156-3
+sign \x9E37 1-156-5
+sign \x9E38 156-2
+sign \x9E39 13-35-3
+sign \x9E3A 15-234-3
+sign \x9E3B 1235-1356-2
+sign \x9E3C 1-12356-3
+sign \x9E3D 13-2346-3
+sign \x9E3E 14-12456-2
+sign \x9E3F 1235-12346-2
+sign \x9E40 34-2
+sign \x9E41 135-126-2
+sign \x9E42 14-16-2
+sign \x9E43 13-45-3
+sign \x9E44 1235-34-2
+sign \x9E45 2346-2
+sign \x9E46 1256-5
+sign \x9E47 15-2345-2
+sign \x9E48 124-16-2
+sign \x9E49 34-4
+sign \x9E4A 245-236-5
+sign \x9E4B 134-246-2
+sign \x9E4C 1236-3
+sign \x9E4D 123-123456-3
+sign \x9E4E 135-356-3
+sign \x9E4F 1234-1356-2
+sign \x9E50 245-2345-3
+sign \x9E51 12-123456-2
+sign \x9E52 13-1356-3
+sign \x9E53 45-3
+sign \x9E54 15-34-5
+sign \x9E55 1235-34-2
+sign \x9E56 1235-2346-2
+sign \x9E57 2346-5
+sign \x9E58 13-34-4
+sign \x9E59 245-234-3
+sign \x9E5A 125-156-3
+sign \x9E5B 134-356-2
+sign \x9E5C 134-34-5
+sign \x9E5D 1345-16-5
+sign \x9E5E 246-5
+sign \x9E5F 12346-3
+sign \x9E60 14-234-2
+sign \x9E61 13-16-2
+sign \x9E62 1345-16-5
+sign \x9E63 13-2345-3
+sign \x9E64 1235-2346-5
+sign \x9E65 16-3
+sign \x9E66 13456-3
+sign \x9E67 1-2346-5
+sign \x9E68 14-234-5
+sign \x9E69 14-246-2
+sign \x9E6A 13-246-3
+sign \x9E6B 13-234-5
+sign \x9E6C 1256-5
+sign \x9E6D 14-34-5
+sign \x9E6E 15-45-2
+sign \x9E6F 1-1236-3
+sign \x9E70 13456-3
+sign \x9E71 1235-25-5
+sign \x9E72 134-1356-2
+sign \x9E73 13-12456-5
+sign \x9E74 24-456-3
+sign \x9E75 14-34-4
+sign \x9E76 13-1456-3
+sign \x9E77 14-13456-2
+sign \x9E78 13-2345-4
+sign \x9E79 15-2345-2
+sign \x9E7A 245-25-2
+sign \x9E7B 13-2345-4
+sign \x9E7C 13-2345-4
+sign \x9E7D 2345-2
+sign \x9E7E 245-25-2
+sign \x9E7F 14-34-5
+sign \x9E80 234-3
+sign \x9E81 245-34-3
+sign \x9E82 13-16-4
+sign \x9E83 135-246-3
+sign \x9E84 245-34-3
+sign \x9E85 135-246-3
+sign \x9E86 1-34-5
+sign \x9E87 13-256-3
+sign \x9E88 1-34-4
+sign \x9E89 13-2345-3
+sign \x9E8A 134-16-2
+sign \x9E8B 134-16-2
+sign \x9E8C 1256-4
+sign \x9E8D 14-234-2
+sign \x9E8E 12-136-2
+sign \x9E8F 13-256-3
+sign \x9E90 14-1456-2
+sign \x9E91 134-16-2
+sign \x9E92 245-16-2
+sign \x9E93 14-34-5
+sign \x9E94 13-234-5
+sign \x9E95 13-256-3
+sign \x9E96 13-13456-3
+sign \x9E97 14-16-5
+sign \x9E98 15-46-3
+sign \x9E99 15-2345-2
+sign \x9E9A 13-23456-3
+sign \x9E9B 134-16-2
+sign \x9E9C 14-16-5
+sign \x9E9D 24-2346-5
+sign \x9E9E 1-1346-3
+sign \x9E9F 14-1456-2
+sign \x9EA0 13-13456-3
+sign \x9EA1 13-16-3
+sign \x9EA2 14-13456-2
+sign \x9EA3 2345-2
+sign \x9EA4 245-34-3
+sign \x9EA5 134-2456-5
+sign \x9EA6 134-2456-5
+sign \x9EA7 13-2346-3
+sign \x9EA8 12-146-4
+sign \x9EA9 12345-34-3
+sign \x9EAA 134-2345-5
+sign \x9EAB 134-2345-4
+sign \x9EAC 12345-34-3
+sign \x9EAD 1234-146-5
+sign \x9EAE 245-1256-5
+sign \x9EAF 245-1256-2
+sign \x9EB0 134-12356-2
+sign \x9EB1 12345-34-3
+sign \x9EB2 15-2345-5
+sign \x9EB3 14-2456-2
+sign \x9EB4 245-1256-2
+sign \x9EB5 134-2345-5
+sign \x9EB6 135-345-1
+sign \x9EB7 12345-1356-3
+sign \x9EB8 12345-34-3
+sign \x9EB9 245-1256-2
+sign \x9EBA 134-2345-5
+sign \x9EBB 134-345-2
+sign \x9EBC 134-2346-1
+sign \x9EBD 134-126-1
+sign \x9EBE 1235-1246-3
+sign \x9EC0 125-12356-3
+sign \x9EC1 1345-136-3
+sign \x9EC2 12345-136-2
+sign \x9EC3 1235-456-2
+sign \x9EC4 1235-456-2
+sign \x9EC5 13-1456-3
+sign \x9EC6 13-456-3
+sign \x9EC7 124-2345-3
+sign \x9EC8 124-12356-4
+sign \x9EC9 1235-1356-2
+sign \x9ECA 15-16-3
+sign \x9ECB 123-456-4
+sign \x9ECC 1235-1356-2
+sign \x9ECD 24-34-4
+sign \x9ECE 14-16-2
+sign \x9ECF 1345-2345-2
+sign \x9ED0 14-16-2
+sign \x9ED1 1235-356-3
+sign \x9ED2 1235-356-3
+sign \x9ED3 16-5
+sign \x9ED4 245-2345-2
+sign \x9ED5 145-1236-4
+sign \x9ED6 15-16-5
+sign \x9ED7 124-12456-4
+sign \x9ED8 134-126-5
+sign \x9ED9 134-126-5
+sign \x9EDA 245-2345-2
+sign \x9EDB 145-2456-5
+sign \x9EDC 12-34-5
+sign \x9EDD 234-4
+sign \x9EDE 145-2345-4
+sign \x9EDF 16-3
+sign \x9EE0 15-23456-2
+sign \x9EE1 2345-4
+sign \x9EE2 245-1256-3
+sign \x9EE3 134-356-4
+sign \x9EE4 1236-4
+sign \x9EE5 245-13456-2
+sign \x9EE6 1256-5
+sign \x9EE7 14-16-2
+sign \x9EE8 145-1346-4
+sign \x9EE9 145-34-2
+sign \x9EEA 245-1236-4
+sign \x9EEB 1456-3
+sign \x9EEC 1236-5
+sign \x9EED 1236-4
+sign \x9EEE 124-1236-4
+sign \x9EEF 1236-5
+sign \x9EF0 1-136-4
+sign \x9EF1 145-2456-5
+sign \x9EF2 245-1236-4
+sign \x9EF3 16-3
+sign \x9EF4 134-356-2
+sign \x9EF5 145-1236-4
+sign \x9EF6 2345-4
+sign \x9EF7 145-34-2
+sign \x9EF8 14-34-2
+sign \x9EF9 1-156-4
+sign \x9EFA 12345-136-4
+sign \x9EFB 12345-34-2
+sign \x9EFC 12345-34-4
+sign \x9EFD 134-1456-4
+sign \x9EFE 134-1456-4
+sign \x9EFF 45-2
+sign \x9F00 245-234-3
+sign \x9F01 245-1256-5
+sign \x9F02 12-146-2
+sign \x9F03 35-3
+sign \x9F04 1-34-3
+sign \x9F05 1-156-3
+sign \x9F06 134-1346-2
+sign \x9F07 146-2
+sign \x9F08 135-346-3
+sign \x9F09 124-25-2
+sign \x9F0A 135-16-5
+sign \x9F0B 45-2
+sign \x9F0C 1-146-5
+sign \x9F0D 124-25-2
+sign \x9F0E 145-13456-4
+sign \x9F0F 134-16-5
+sign \x9F10 1345-2456-5
+sign \x9F11 145-13456-4
+sign \x9F12 125-156-3
+sign \x9F13 13-34-4
+sign \x9F14 13-34-4
+sign \x9F15 124-12346-2
+sign \x9F16 12345-136-2
+sign \x9F17 124-146-2
+sign \x9F18 45-3
+sign \x9F19 1234-16-2
+sign \x9F1A 12-1346-3
+sign \x9F1B 13-146-3
+sign \x9F1C 245-16-5
+sign \x9F1D 45-3
+sign \x9F1E 124-1346-3
+sign \x9F1F 124-1356-3
+sign \x9F20 24-34-4
+sign \x9F21 24-34-4
+sign \x9F22 12345-136-2
+sign \x9F23 12345-356-5
+sign \x9F24 123456-5
+sign \x9F25 135-345-2
+sign \x9F26 145-246-3
+sign \x9F27 124-25-2
+sign \x9F28 1-12346-3
+sign \x9F29 245-1256-2
+sign \x9F2A 24-1356-3
+sign \x9F2B 24-156-2
+sign \x9F2C 234-5
+sign \x9F2D 24-156-2
+sign \x9F2E 124-13456-2
+sign \x9F2F 34-2
+sign \x9F30 135-356-5
+sign \x9F31 13-13456-3
+sign \x9F32 1235-123456-2
+sign \x9F33 13-1256-2
+sign \x9F34 2345-4
+sign \x9F35 124-34-2
+sign \x9F36 15-156-3
+sign \x9F37 15-16-3
+sign \x9F38 245-2345-4
+sign \x9F39 2345-4
+sign \x9F3A 14-356-2
+sign \x9F3B 135-16-2
+sign \x9F3C 246-4
+sign \x9F3D 245-234-2
+sign \x9F3E 1235-1236-3
+sign \x9F3F 34-3
+sign \x9F40 34-5
+sign \x9F41 1235-12356-3
+sign \x9F42 15-16-5
+sign \x9F43 1235-2346-2
+sign \x9F44 1-345-3
+sign \x9F45 15-234-5
+sign \x9F46 12346-5
+sign \x9F47 1-345-3
+sign \x9F48 1345-12346-2
+sign \x9F49 1345-1346-5
+sign \x9F4A 245-16-2
+sign \x9F4B 1-2456-3
+sign \x9F4C 13-16-5
+sign \x9F4D 125-156-3
+sign \x9F4E 13-16-3
+sign \x9F4F 13-16-3
+sign \x9F50 245-16-2
+sign \x9F51 13-16-3
+sign \x9F52 12-156-4
+sign \x9F53 12-136-5
+sign \x9F54 12-136-4
+sign \x9F55 1235-2346-2
+sign \x9F56 23456-2
+sign \x9F57 1456-2
+sign \x9F58 15-346-5
+sign \x9F59 1234-146-2
+sign \x9F5A 245-25-5
+sign \x9F5B 15-346-5
+sign \x9F5C 125-156-3
+sign \x9F5D 12-156-3
+sign \x9F5E 1345-2345-4
+sign \x9F5F 13-1256-4
+sign \x9F60 124-246-2
+sign \x9F61 14-13456-2
+sign \x9F62 14-13456-2
+sign \x9F63 12-34-3
+sign \x9F64 245-45-2
+sign \x9F65 15-346-5
+sign \x9F66 1456-2
+sign \x9F67 1345-346-5
+sign \x9F68 13-234-5
+sign \x9F69 246-4
+sign \x9F6A 12-25-5
+sign \x9F6B 1345-136-4
+sign \x9F6C 1256-4
+sign \x9F6D 12-34-4
+sign \x9F6E 16-4
+sign \x9F6F 1345-16-2
+sign \x9F70 1-345-5
+sign \x9F71 125-12356-3
+sign \x9F72 245-1256-4
+sign \x9F73 1345-136-4
+sign \x9F74 2345-4
+sign \x9F75 12356-2
+sign \x9F76 2346-5
+sign \x9F77 25-5
+sign \x9F78 16-5
+sign \x9F79 12-25-3
+sign \x9F7A 125-12356-3
+sign \x9F7B 145-2345-3
+sign \x9F7C 12-34-4
+sign \x9F7D 13-1456-5
+sign \x9F7E 23456-5
+sign \x9F7F 12-156-4
+sign \x9F80 12-136-4
+sign \x9F81 1235-2346-2
+sign \x9F82 1456-2
+sign \x9F83 13-1256-4
+sign \x9F84 14-13456-2
+sign \x9F85 1234-146-2
+sign \x9F86 124-246-2
+sign \x9F87 125-156-3
+sign \x9F88 1456-2
+sign \x9F89 1256-4
+sign \x9F8A 12-25-5
+sign \x9F8B 245-1256-4
+sign \x9F8C 25-5
+sign \x9F8D 14-12346-2
+sign \x9F8E 1234-1346-2
+sign \x9F8F 13-12346-3
+sign \x9F90 1234-1346-2
+sign \x9F91 2345-4
+sign \x9F92 145-12346-2
+sign \x9F93 14-12346-2
+sign \x9F94 13-12346-3
+sign \x9F95 123-1236-3
+sign \x9F96 124-345-5
+sign \x9F97 14-13456-2
+sign \x9F98 124-345-5
+sign \x9F99 14-12346-2
+sign \x9F9A 13-12346-3
+sign \x9F9B 123-1236-3
+sign \x9F9C 13-1246-3
+sign \x9F9D 245-234-3
+sign \x9F9E 135-346-3
+sign \x9F9F 13-1246-3
+sign \x9FA0 236-5
+sign \x9FA1 12-1246-5
+sign \x9FA2 1235-2346-2
+sign \x9FA3 13-236-2
+sign \x9FA4 15-346-2
+sign \x9FA5 1256-5
+sign \x9FB0 235678-23467
+sign \x9FB1 235678-34567
+sign \x9FC3 24-1236-4
+sign \xE00C 14-34-5
+sign \xE074 123-123456-3
+sign \xE08A 13-246-3
+sign \xE127 15-256-5
+sign \xE171 245-156-2
+sign \xE18C 12356-17-23456
+sign \xE18D 12356-127-23456
+sign \xE18E 12356-147-23456
+sign \xE18F 12356-1457-23456
+sign \xE219 124-345-5
+sign \xE372 245-46-3
+sign \xE450 12-34-2
+sign \xE934 13-1256-4
+sign \xE9CB 245-156-2
+sign \xEB03 124-2456-5
+sign \xEB11 15-1246-5
+sign \xEB3F 24-34-5
+sign \xEB55 15-16-3
+sign \xEB76 145-345-1
+sign \xEBB9 13-1456-5
+sign \xEC41 24-2356-3
+sign \xEC5D 1456-3
+sign \xED84 135-126-2
+sign \xEDED 15-234-3
+sign \xEE56 1345-1236-2
+sign \xF455 12345-1356-4
+sign \xF6B1 378-23467
+sign \xF6B2 378-12467
+sign \xF6B3 378-34567
+sign \xF6B4 378-1467
+sign \xF6B5 378-123467
+sign \xF6B6 378-1567
+sign \xF6B7 378-357
+sign \xF6B8 378-57
+sign \xF6B9 378-23567
+sign \xF6BA 378-8
+sign \xF6BB 12356-2-23456
+sign \xF6BC 12356-23-23456
+sign \xF6BD 12356-25-23456
+sign \xF6BE 12356-256-23456
+sign \xF6BF 12356-26-23456
+sign \xF6C0 12356-235-23456
+sign \xF6C1 12356-2356-23456
+sign \xF6C2 12356-236-23456
+sign \xF6C3 12356-35-23456
+sign \xF6C4 12356-2-356-23456
+sign \xF6C5 247
+sign \xF6C6 247-247
+sign \xF6C7 247-247-247
+sign \xF6C8 247-12367
+sign \xF6C9 12367
+sign \xF6CA 12367-247
+sign \xF6CB 12367-247-247
+sign \xF6CC 12367-247-247-247
+sign \xF6CD 247-13467
+sign \xF6CE 13467
+sign \xF6CF 378-14567
+sign \xF6D0 1234-346-4
+sign \xF6D1 378-1678
+sign \xF6D2 124-12356-2
+sign \xF6D3 13-235-3
+sign \xF6D4 134-16-5
+sign \xF6D5 135-13456-3
+sign \xF6D6 135-146-3
+sign \xF6D7 15-16-5
+sign \xF6D8 13-346-2
+sign \xF6D9 378-12678
+sign \xF6DA 378-2378
+sign \xF6DB 134-2345-2
+sign \xF6DC 378-23678
+sign \xF6DD 378-14678
+sign \xF6DE 2345-4
+sign \xF6DF 378-1235678
+sign \xF6E0 378-678
+sign \xF6E1 24-1236-3
+sign \xF6E2 1234-34-3
+sign \xF6E3 378-145678
+sign \xF6E4 12-456-2
+sign \xF6E5 135-126-3
+sign \xF6E6 12-25-5
+sign \xF6E7 378-167
+sign \xF6E8 1-2346-1
+sign \xF6E9 378-35678
+sign \xF6EA 378-15678
+sign \xF6EB 378-2678
+sign \xF6EC 378-2345678
+sign \xF6ED 378-124678
+sign \xF6EE 378-3678
+sign \xF6EF 378-345678
+sign \xF6F0 378-2358
+sign \xF6F1 378-168
+sign \xF6F2 378-28
+sign \xF6F3 378-58
+sign \xF6F4 378-123468
+sign \xF6F5 378-3458
+sign \xF6F6 378-38
+sign \xF6F7 378-3468
+sign \xF6F8 378-23568
+sign \xF6F9 378-1268
+sign \xF6FA 378-238
+sign \xF6FB 378-1234568
+sign \xF6FC 378-2368
+sign \xF6FD 378-1468
+sign \xF6FE 378-258
+sign \xF6FF 378-123568
+sign \xF700 378-68
+sign \xF701 378-468
+sign \xF702 378-358
+sign \xF703 378-14568
+sign \xF704 378-2568
+sign \xF705 378-568
+sign \xF706 378-23468
+sign \xF707 378-347
+sign \xF708 378-348
+sign \xF709 378-3568
+sign \xF70A 378-1568
+sign \xF70B 378-268
+sign \xF70C 378-234568
+sign \xF70D 378-12468
+sign \xF70E 378-368
+sign \xF70F 34678-47
+sign \xF710 34678-17
+sign \xF711 34678-127
+sign \xF712 34678-147
+sign \xF713 34678-1457
+sign \xF714 34678-157
+sign \xF715 34678-1247
+sign \xF716 34678-12457
+sign \xF717 34678-1257
+sign \xF718 34678-247
+sign \xF719 34678-2457
+sign \xF71A 34678-137
+sign \xF71B 34678-1237
+sign \xF71C 34678-1347
+sign \xF71D 34678-13457
+sign \xF71E 34678-1357
+sign \xF71F 34678-12347
+sign \xF720 34678-123457
+sign \xF721 34678-12357
+sign \xF722 34678-2347
+sign \xF723 34678-23457
+sign \xF724 34678-1367
+sign \xF725 34678-12367
+sign \xF726 34678-24567
+sign \xF727 34678-13467
+sign \xF728 34678-134567
+sign \xF729 34678-13567
+sign \xF72A 34678-2467
+sign \xF72B 34678-12567
+sign \xF72C 34678-124567
+sign \xF72D 34678-457
+sign \xF72E 34678-456
+sign \xF72F 34678-4
+sign \xF730 34678-1
+sign \xF731 34678-12
+sign \xF732 34678-14
+sign \xF733 34678-145
+sign \xF734 34678-15
+sign \xF735 34678-124
+sign \xF736 34678-1245
+sign \xF737 34678-125
+sign \xF738 34678-24
+sign \xF739 34678-245
+sign \xF73A 34678-13
+sign \xF73B 34678-123
+sign \xF73C 34678-134
+sign \xF73D 34678-1345
+sign \xF73E 34678-135
+sign \xF73F 34678-1234
+sign \xF740 34678-12345
+sign \xF741 34678-1235
+sign \xF742 34678-234
+sign \xF743 34678-2345
+sign \xF744 34678-136
+sign \xF745 34678-1236
+sign \xF746 34678-2456
+sign \xF747 34678-1346
+sign \xF748 34678-13456
+sign \xF749 34678-1356
+sign \xF74A 34678-246
+sign \xF74B 34678-1256
+sign \xF74C 34678-12456
+sign \xF74D 34678-45
+sign \xF74E 34678-23467
+sign \xF74F 34678-12467
+sign \xF750 34678-34567
+sign \xF751 34678-1467
+sign \xF752 34678-123467
+sign \xF753 34678-1567
+sign \xF754 34678-357
+sign \xF755 34678-57
+sign \xF756 34678-23567
+sign \xF757 34678-8
+sign \xF758 34678-1267
+sign \xF759 34678-2567
+sign \xF75A 34678-367
+sign \xF75B 34678-2367
+sign \xF75C 34678-267
+sign \xF75D 34678-3567
+sign \xF75E 34678-3467
+sign \xF75F 34678-237
+sign \xF760 34678-257
+sign \xF761 34678-37
+sign \xF762 34678-567
+sign \xF763 34678-2357
+sign \xF764 34678-467
+sign \xF765 34678-67
+sign \xF766 34678-27
+sign \xF767 34678-7
+sign \xF768 34678-3457
+sign \xF769 34678-123567
+sign \xF76A 34678-1234567
+sign \xF76B 34678-234567
+sign \xF76C 34678-14567
+sign \xF76D 34678-23578
+sign \xF76E 34678-1678
+sign \xF76F 34678-278
+sign \xF770 34678-578
+sign \xF771 34678-1234678
+sign \xF772 34678-34578
+sign \xF773 34678-378
+sign \xF774 34678-34678
+sign \xF775 34678-235678
+sign \xF776 34678-12678
+sign \xF777 34678-2378
+sign \xF778 34678-12345678
+sign \xF779 34678-23678
+sign \xF77A 34678-14678
+sign \xF77B 34678-2578
+sign \xF77C 34678-1235678
+sign \xF77D 34678-678
+sign \xF77E 34678-4678
+sign \xF77F 34678-3578
+sign \xF780 34678-145678
+sign \xF781 34678-25678
+sign \xF782 34678-5678
+sign \xF783 34678-234678
+sign \xF784 34678-167
+sign \xF785 34678-3478
+sign \xF786 34678-35678
+sign \xF787 34678-15678
+sign \xF788 34678-2678
+sign \xF789 34678-2345678
+sign \xF78A 34678-124678
+sign \xF78B 34678-3678
+sign \xF78C 34678-345678
+sign \xF78D 34678-2358
+sign \xF78E 34678-168
+sign \xF78F 34678-28
+sign \xF790 34678-58
+sign \xF791 34678-123468
+sign \xF792 34678-3458
+sign \xF793 34678-38
+sign \xF794 34678-3468
+sign \xF795 34678-23568
+sign \xF796 34678-1268
+sign \xF797 34678-238
+sign \xF798 34678-1234568
+sign \xF799 34678-2368
+sign \xF79A 34678-1468
+sign \xF79B 34678-258
+sign \xF79C 34678-123568
+sign \xF79D 34678-68
+sign \xF79E 34678-468
+sign \xF79F 34678-358
+sign \xF7A0 34678-14568
+sign \xF7A1 34678-2568
+sign \xF7A2 34678-568
+sign \xF7A3 34678-23468
+sign \xF7A4 34678-347
+sign \xF7A5 34678-348
+sign \xF7A6 34678-3568
+sign \xF7A7 34678-1568
+sign \xF7A8 34678-268
+sign \xF7A9 34678-234568
+sign \xF7AA 34678-12468
+sign \xF7AB 34678-368
+sign \xF7AC 235678-47
+sign \xF7AD 235678-17
+sign \xF7AE 235678-127
+sign \xF7AF 235678-147
+sign \xF7B0 235678-1457
+sign \xF7B1 235678-157
+sign \xF7B2 235678-1247
+sign \xF7B3 235678-12457
+sign \xF7B4 235678-1257
+sign \xF7B5 235678-247
+sign \xF7B6 235678-2457
+sign \xF7B7 235678-137
+sign \xF7B8 235678-1237
+sign \xF7B9 235678-1347
+sign \xF7BA 235678-13457
+sign \xF7BB 235678-1357
+sign \xF7BC 235678-12347
+sign \xF7BD 235678-123457
+sign \xF7BE 235678-12357
+sign \xF7BF 235678-2347
+sign \xF7C0 235678-23457
+sign \xF7C1 235678-1367
+sign \xF7C2 235678-12367
+sign \xF7C3 235678-24567
+sign \xF7C4 235678-13467
+sign \xF7C5 235678-134567
+sign \xF7C6 235678-13567
+sign \xF7C7 235678-2467
+sign \xF7C8 235678-12567
+sign \xF7C9 235678-124567
+sign \xF7CA 235678-457
+sign \xF7CB 235678-456
+sign \xF7CC 235678-4
+sign \xF7CD 235678-1
+sign \xF7CE 235678-12
+sign \xF7CF 235678-14
+sign \xF7D0 235678-145
+sign \xF7D1 235678-15
+sign \xF7D2 235678-124
+sign \xF7D3 235678-1245
+sign \xF7D4 235678-125
+sign \xF7D5 235678-24
+sign \xF7D6 235678-245
+sign \xF7D7 235678-13
+sign \xF7D8 235678-123
+sign \xF7D9 235678-134
+sign \xF7DA 235678-1345
+sign \xF7DB 235678-135
+sign \xF7DC 235678-1234
+sign \xF7DD 235678-12345
+sign \xF7DE 235678-1235
+sign \xF7DF 235678-234
+sign \xF7E0 235678-2345
+sign \xF7E1 235678-136
+sign \xF7E2 235678-1236
+sign \xF7E3 235678-2456
+sign \xF7E4 235678-1346
+sign \xF7E5 235678-13456
+sign \xF7E6 235678-1356
+sign \xF7E7 235678-246
+sign \xF7E8 235678-1256
+sign \xF7E9 235678-12456
+sign \xF7EA 235678-45
+sign \xF7EB 235678-23467
+sign \xF7EC 235678-12467
+sign \xF7ED 235678-34567
+sign \xF7EE 235678-1467
+sign \xF7EF 235678-123467
+sign \xF7F0 235678-1567
+sign \xF7F1 235678-357
+sign \xF7F2 235678-57
+sign \xF7F3 235678-23567
+sign \xF7F4 235678-8
+sign \xF7F5 235678-1267
+sign \xF7F6 235678-2567
+sign \xF7F7 235678-367
+sign \xF7F8 235678-2367
+sign \xF7F9 235678-267
+sign \xF7FA 235678-3567
+sign \xF7FB 235678-3467
+sign \xF7FC 235678-237
+sign \xF7FD 235678-257
+sign \xF7FE 235678-37
+sign \xF7FF 235678-567
+sign \xF800 235678-2357
+sign \xF801 235678-467
+sign \xF802 235678-67
+sign \xF803 235678-27
+sign \xF804 235678-7
+sign \xF805 235678-3457
+sign \xF806 235678-123567
+sign \xF807 235678-1234567
+sign \xF808 235678-234567
+sign \xF809 235678-14567
+sign \xF80A 235678-23578
+sign \xF80B 235678-1678
+sign \xF80C 235678-278
+sign \xF80D 235678-578
+sign \xF80E 235678-1234678
+sign \xF80F 235678-34578
+sign \xF810 235678-378
+sign \xF811 235678-34678
+sign \xF812 235678-235678
+sign \xF813 235678-12678
+sign \xF814 235678-2378
+sign \xF815 235678-12345678
+sign \xF816 235678-23678
+sign \xF817 235678-14678
+sign \xF818 235678-2578
+sign \xF819 235678-1235678
+sign \xF81A 235678-678
+sign \xF81B 235678-4678
+sign \xF81C 235678-3578
+sign \xF81D 235678-145678
+sign \xF81E 235678-25678
+sign \xF81F 235678-5678
+sign \xF820 235678-234678
+sign \xF821 235678-167
+sign \xF822 235678-3478
+sign \xF823 235678-35678
+sign \xF824 235678-15678
+sign \xF825 235678-2678
+sign \xF826 235678-2345678
+sign \xF827 235678-124678
+sign \xF828 235678-3678
+sign \xF829 235678-345678
+sign \xF82A 235678-2358
+sign \xF82B 235678-168
+sign \xF82C 235678-28
+sign \xF82D 235678-58
+sign \xF82E 235678-123468
+sign \xF82F 235678-3458
+sign \xF830 235678-38
+sign \xF831 235678-3468
+sign \xF832 235678-23568
+sign \xF833 235678-1268
+sign \xF834 235678-238
+sign \xF835 235678-1234568
+sign \xF836 235678-2368
+sign \xF837 235678-1468
+sign \xF838 235678-258
+sign \xF839 235678-123568
+sign \xF83A 235678-68
+sign \xF83B 235678-468
+sign \xF83C 235678-358
+sign \xF83D 235678-14568
+sign \xF83E 235678-2568
+sign \xF83F 235678-568
+sign \xF840 235678-23468
+sign \xF841 235678-347
+sign \xF842 235678-348
+sign \xF843 235678-3568
+sign \xF844 235678-1568
+sign \xF845 235678-268
+sign \xF846 235678-234568
+sign \xF847 235678-12468
+sign \xF848 235678-368
+sign \xF849 34567-28
+sign \xF84A 34567-58
+sign \xF84B 34567-123468
+sign \xF84C 34567-3458
+sign \xF84D 34567-38
+sign \xF84E 34567-3468
+sign \xF84F 34567-23568
+sign \xF850 34567-1268
+sign \xF851 34567-238
+sign \xF852 34567-1234568
+sign \xF853 34567-2368
+sign \xF854 34567-1468
+sign \xF855 34567-258
+sign \xF856 34567-123568
+sign \xF857 34567-68
+sign \xF858 34567-468
+sign \xF859 34567-358
+sign \xF85A 34567-14568
+sign \xF85B 34567-2568
+sign \xF85C 34567-568
+sign \xF85D 34567-23468
+sign \xF85E 34567-347
+sign \xF85F 34567-348
+sign \xF860 34567-3568
+sign \xF861 34567-1568
+sign \xF862 34567-268
+sign \xF863 34567-234568
+sign \xF864 34567-12468
+sign \xF865 34567-368
+sign \xF866 378-3678
+sign \xF867 378-345678
+sign \xF900 245-16-4
+sign \xF901 13-1356-5
+sign \xF902 12-2346-3
+sign \xF903 13-23456-4
+sign \xF904 1235-35-2
+sign \xF905 12-12456-5
+sign \xF906 13-1256-5
+sign \xF907 13-1246-3
+sign \xF908 13-1246-3
+sign \xF909 245-16-5
+sign \xF90A 13-1456-3
+sign \xF90B 14-345-4
+sign \xF90C 1345-2456-5
+sign \xF90D 14-1236-4
+sign \xF90E 14-2456-5
+sign \xF90F 14-25-2
+sign \xF910 14-25-2
+sign \xF911 14-25-2
+sign \xF912 14-25-4
+sign \xF913 14-25-2
+sign \xF914 14-2346-5
+sign \xF915 14-25-5
+sign \xF916 14-25-5
+sign \xF917 14-25-5
+sign \xF918 14-25-5
+sign \xF919 14-25-5
+sign \xF91A 14-25-5
+sign \xF91B 14-12456-5
+sign \xF91C 14-12456-4
+sign \xF91D 14-1236-2
+sign \xF91E 14-1236-5
+sign \xF91F 14-1236-2
+sign \xF920 15-156-3
+sign \xF921 14-1236-2
+sign \xF922 14-1236-5
+sign \xF923 14-1236-2
+sign \xF924 14-1236-2
+sign \xF925 14-345-3
+sign \xF926 14-345-5
+sign \xF927 14-345-5
+sign \xF928 14-1346-2
+sign \xF929 14-1346-4
+sign \xF92A 14-1346-5
+sign \xF92B 14-1346-2
+sign \xF92C 14-1346-2
+sign \xF92D 14-2456-2
+sign \xF92E 14-1356-4
+sign \xF92F 14-146-2
+sign \xF930 14-34-4
+sign \xF931 14-34-4
+sign \xF932 14-34-2
+sign \xF933 14-34-2
+sign \xF934 14-146-4
+sign \xF935 14-34-2
+sign \xF936 14-34-4
+sign \xF937 14-34-5
+sign \xF938 14-34-5
+sign \xF939 14-34-4
+sign \xF93A 14-34-5
+sign \xF93B 14-34-5
+sign \xF93C 14-34-5
+sign \xF93D 14-1256-5
+sign \xF93E 14-34-5
+sign \xF93F 14-34-5
+sign \xF940 14-34-5
+sign \xF941 14-123456-5
+sign \xF942 14-12346-4
+sign \xF943 1345-12346-5
+sign \xF944 14-12346-2
+sign \xF945 14-12346-2
+sign \xF946 14-146-2
+sign \xF947 14-356-4
+sign \xF948 14-34-5
+sign \xF949 14-356-2
+sign \xF94A 14-356-4
+sign \xF94B 14-1256-4
+sign \xF94C 14-12356-2
+sign \xF94D 14-356-5
+sign \xF94E 14-12356-5
+sign \xF94F 14-356-5
+sign \xF950 14-1256-4
+sign \xF951 14-12356-5
+sign \xF952 14-2346-5
+sign \xF953 14-2346-5
+sign \xF954 14-1456-4
+sign \xF955 14-13456-2
+sign \xF956 14-1356-2
+sign \xF957 14-13456-2
+sign \xF958 14-13456-2
+sign \xF959 14-13456-2
+sign \xF95A 145-34-2
+sign \xF95B 1345-345-2
+sign \xF95C 14-2346-5
+sign \xF95D 1345-25-5
+sign \xF95E 145-1236-3
+sign \xF95F 1345-13456-2
+sign \xF960 1345-34-5
+sign \xF961 14-1256-5
+sign \xF962 16-5
+sign \xF963 135-356-4
+sign \xF964 1234-1236-2
+sign \xF965 135-2345-5
+sign \xF966 12345-34-5
+sign \xF967 135-34-5
+sign \xF968 134-16-5
+sign \xF969 24-34-5
+sign \xF96A 15-25-4
+sign \xF96B 245-1236-3
+sign \xF96C 15-2456-5
+sign \xF96D 24-1356-4
+sign \xF96E 346-5
+sign \xF96F 24-25-3
+sign \xF970 24-345-3
+sign \xF971 12-136-2
+sign \xF972 12-136-2
+sign \xF973 24-156-2
+sign \xF974 1245-25-5
+sign \xF975 14-236-5
+sign \xF976 14-236-5
+sign \xF977 14-46-5
+sign \xF978 14-46-4
+sign \xF97A 14-46-2
+sign \xF97B 14-46-2
+sign \xF97C 14-46-2
+sign \xF97D 14-46-5
+sign \xF97E 14-46-5
+sign \xF97F 14-16-5
+sign \xF980 14-1256-4
+sign \xF981 1345-1256-4
+sign \xF982 14-34-2
+sign \xF983 14-1256-4
+sign \xF984 14-1256-5
+sign \xF985 14-16-5
+sign \xF986 14-1256-2
+sign \xF987 14-16-2
+sign \xF988 14-16-5
+sign \xF989 14-16-2
+sign \xF98A 14-16-5
+sign \xF98B 14-16-5
+sign \xF98C 14-16-5
+sign \xF98D 14-16-5
+sign \xF98E 1345-2345-2
+sign \xF98F 14-2345-2
+sign \xF990 14-2345-5
+sign \xF991 1345-2345-4
+sign \xF992 14-2345-2
+sign \xF993 14-2345-5
+sign \xF994 14-2345-4
+sign \xF995 1345-2345-2
+sign \xF996 14-2345-5
+sign \xF997 14-2345-2
+sign \xF998 1345-2345-4
+sign \xF999 14-2345-2
+sign \xF99A 14-2345-2
+sign \xF99B 14-2345-5
+sign \xF99C 14-346-5
+sign \xF99D 14-346-5
+sign \xF99E 2345-5
+sign \xF99F 14-346-5
+sign \xF9A0 14-346-5
+sign \xF9A1 24-25-3
+sign \xF9A2 14-2345-2
+sign \xF9A3 1345-2345-5
+sign \xF9A4 1345-2345-4
+sign \xF9A5 14-2345-5
+sign \xF9A6 14-2345-2
+sign \xF9A7 14-346-5
+sign \xF9A8 14-13456-5
+sign \xF9A9 14-13456-2
+sign \xF9AA 1345-13456-2
+sign \xF9AB 14-13456-4
+sign \xF9AC 14-13456-2
+sign \xF9AD 14-13456-2
+sign \xF9AE 13456-2
+sign \xF9AF 14-13456-2
+sign \xF9B0 14-13456-2
+sign \xF9B1 14-13456-2
+sign \xF9B2 14-13456-2
+sign \xF9B3 14-13456-2
+sign \xF9B4 14-13456-4
+sign \xF9B5 14-16-5
+sign \xF9B6 14-16-4
+sign \xF9B7 14-16-4
+sign \xF9B8 14-16-5
+sign \xF9B9 2346-5
+sign \xF9BA 14-2346-1
+sign \xF9BB 14-246-2
+sign \xF9BC 14-246-2
+sign \xF9BD 1345-246-5
+sign \xF9BE 14-246-5
+sign \xF9BF 14-2346-5
+sign \xF9C0 14-246-5
+sign \xF9C1 14-246-2
+sign \xF9C2 14-246-4
+sign \xF9C3 14-246-2
+sign \xF9C4 14-12346-2
+sign \xF9C5 256-3
+sign \xF9C6 1245-12456-4
+sign \xF9C7 14-234-2
+sign \xF9C8 12-12356-4
+sign \xF9C9 14-234-4
+sign \xF9CA 14-234-2
+sign \xF9CB 14-234-3
+sign \xF9CC 14-234-2
+sign \xF9CD 14-234-2
+sign \xF9CE 14-234-2
+sign \xF9CF 1345-234-4
+sign \xF9D0 14-356-5
+sign \xF9D1 14-234-5
+sign \xF9D2 14-34-5
+sign \xF9D3 14-34-5
+sign \xF9D4 14-123456-2
+sign \xF9D5 14-123456-2
+sign \xF9D6 14-123456-2
+sign \xF9D7 14-123456-2
+sign \xF9D8 14-1256-5
+sign \xF9D9 14-16-5
+sign \xF9DA 14-16-5
+sign \xF9DB 14-1256-5
+sign \xF9DC 14-12346-2
+sign \xF9DD 14-16-5
+sign \xF9DE 14-16-5
+sign \xF9DF 14-1256-4
+sign \xF9E0 16-5
+sign \xF9E1 14-16-4
+sign \xF9E2 14-16-2
+sign \xF9E3 1345-16-2
+sign \xF9E4 14-16-4
+sign \xF9E5 14-16-5
+sign \xF9E6 14-16-2
+sign \xF9E7 14-16-4
+sign \xF9E8 14-16-4
+sign \xF9E9 14-16-4
+sign \xF9EA 14-16-2
+sign \xF9EB 1345-16-5
+sign \xF9EC 1345-16-5
+sign \xF9ED 14-1456-5
+sign \xF9EE 14-1456-2
+sign \xF9EF 14-1456-2
+sign \xF9F0 14-1456-5
+sign \xF9F2 14-1456-2
+sign \xF9F3 14-1456-2
+sign \xF9F4 14-1456-2
+sign \xF9F5 14-1456-2
+sign \xF9F6 14-1456-2
+sign \xF9F7 14-16-5
+sign \xF9F8 14-16-5
+sign \xF9F9 14-16-5
+sign \xF9FA 1-456-5
+sign \xF9FB 1-156-5
+sign \xF9FC 24-156-5
+sign \xF9FD 24-156-2
+sign \xF9FE 12-345-2
+sign \xF9FF 245-156-5
+sign \xFA00 245-346-5
+sign \xFA01 145-34-5
+sign \xFA02 124-25-5
+sign \xFA03 124-1346-2
+sign \xFA04 1-2456-2
+sign \xFA05 145-12346-5
+sign \xFA06 135-146-5
+sign \xFA07 12345-34-2
+sign \xFA08 15-13456-2
+sign \xFA09 13-46-5
+sign \xFA0A 13-2345-5
+sign \xFA0B 123-25-5
+sign \xFA0C 34-5
+sign \xFA0D 1235-25-5
+sign \xFA10 1-12346-4
+sign \xFA12 245-13456-2
+sign \xFA15 15-16-3
+sign \xFA16 1-34-3
+sign \xFA17 16-5
+sign \xFA18 14-16-4
+sign \xFA19 24-136-2
+sign \xFA1A 15-46-2
+sign \xFA1B 12345-34-2
+sign \xFA1C 13-13456-5
+sign \xFA1D 13-13456-3
+sign \xFA1E 1256-4
+sign \xFA22 1-34-3
+sign \xFA25 16-5
+sign \xFA26 145-12356-3
+sign \xFA2A 12345-1236-5
+sign \xFA2B 15-156-5
+sign \xFA2C 13-12456-4
+sign \xFA2D 1235-2346-5
+sign \xFA30 34-4
+sign \xFA31 15-1356-3
+sign \xFA32 134-2345-4
+sign \xFA33 134-2345-4
+sign \xFA34 245-1456-2
+sign \xFA35 135-356-3
+sign \xFA36 1235-2346-3
+sign \xFA37 124-1236-5
+sign \xFA38 245-16-5
+sign \xFA3A 134-126-5
+sign \xFA3B 245-1356-2
+sign \xFA3C 12-2346-5
+sign \xFA3D 1235-1246-4
+sign \xFA3E 123-2456-4
+sign \xFA3F 125-1356-3
+sign \xFA40 12-1356-2
+sign \xFA41 134-1456-4
+sign \xFA42 13-16-5
+sign \xFA43 24-34-4
+sign \xFA44 134-356-2
+sign \xFA45 1235-2456-4
+sign \xFA46 1-34-4
+sign \xFA47 1235-1236-5
+sign \xFA48 1-34-4
+sign \xFA4A 1-25-2
+sign \xFA4B 135-356-3
+sign \xFA4C 24-2346-5
+sign \xFA4D 1-156-4
+sign \xFA4E 245-16-2
+sign \xFA4F 234-5
+sign \xFA50 125-34-4
+sign \xFA51 1-34-5
+sign \xFA52 1235-25-5
+sign \xFA53 1-136-3
+sign \xFA54 13-34-4
+sign \xFA55 124-34-2
+sign \xFA56 13-346-2
+sign \xFA57 14-2345-5
+sign \xFA58 13-1456-5
+sign \xFA59 12345-1236-2
+sign \xFA5A 24-34-4
+sign \xFA5B 1-2346-4
+sign \xFA5C 12-12356-5
+sign \xFA5F 1-2346-1
+sign \xFA60 1235-2346-2
+sign \xFA61 24-156-5
+sign \xFA62 346-5
+sign \xFA63 13-1456-4
+sign \xFA64 135-1456-3
+sign \xFA65 125-1356-5
+sign \xFA67 16-5
+sign \xFA68 1345-1236-2
+sign \xFA69 15-46-4
+sign \xFA6A 1234-1456-2
+sign \xFA70 135-13456-5
+sign \xFA71 123-456-5
+sign \xFA72 245-45-2
+sign \xFA74 12-12346-3
+sign \xFA75 13-16-5
+sign \xFA76 235-4
+sign \xFA78 1235-2346-3
+sign \xFA79 124-146-2
+sign \xFA7A 1235-1246-5
+sign \xFA7C 1-12346-4
+sign \xFA7D 12345-136-2
+sign \xFA7E 2345-3
+sign \xFA7F 135-136-3
+sign \xFA80 135-16-5
+sign \xFA84 245-2456-4
+sign \xFA85 246-2
+sign \xFA86 456-4
+sign \xFA87 24-136-5
+sign \xFA88 1256-5
+sign \xFA89 125-1356-3
+sign \xFA8A 146-5
+sign \xFA8B 12-1356-2
+sign \xFA8C 145-2456-5
+sign \xFA8D 1256-2
+sign \xFA8E 15-12356-3
+sign \xFA8F 135-13456-5
+sign \xFA90 146-2
+sign \xFA91 245-13456-2
+sign \xFA92 14-1346-4
+sign \xFA93 456-5
+sign \xFA94 1-1346-5
+sign \xFA95 145-2456-4
+sign \xFA96 24-345-3
+sign \xFA97 14-234-2
+sign \xFA98 1456-2
+sign \xFA99 125-156-3
+sign \xFA9A 1235-1236-5
+sign \xFA9C 1-34-4
+sign \xFA9D 245-246-2
+sign \xFA9E 13-236-2
+sign \xFA9F 12345-1236-5
+sign \xFAA2 245-156-2
+sign \xFAA5 123456-3
+sign \xFAA6 16-5
+sign \xFAA7 24-1356-5
+sign \xFAA8 1-156-2
+sign \xFAAA 1-2346-1
+sign \xFAAD 13-346-2
+sign \xFAAE 14-356-5
+sign \xFAAF 124-146-3
+sign \xFAB0 14-2345-5
+sign \xFAB2 1-2346-4
+sign \xFAB3 1235-456-3
+sign \xFAB4 1235-35-2
+sign \xFAB6 245-46-4
+sign \xFAB7 12345-34-5
+sign \xFAB8 24-156-5
+sign \xFAB9 145-246-5
+sign \xFABA 1-34-3
+sign \xFABB 245-13456-4
+sign \xFABC 346-5
+sign \xFABD 1345-25-5
+sign \xFABE 1256-5
+sign \xFABF 13-1456-4
+sign \xFAC0 135-2345-5
+sign \xFAC1 125-1356-5
+sign \xFAC2 24-34-3
+sign \xFAC3 12-156-2
+sign \xFAC6 1-34-4
+sign \xFAC7 1345-1236-2
+sign \xFAC8 13-13456-5
+sign \xFACA 15-46-4
+sign \xFACC 1234-1456-2
+sign \xFACE 13-1246-3
+sign \xFAD5 245-25-5
+sign \xFAD7 13-346-2
+sign \xFAD9 1234-1346-2
+sign \xFE30 25-25
+sign \xFE31 1256-0
+sign \xFE33 456
+sign \xFE34 45
+sign \xFE35 246-0
+sign \xFE36 135-0
+sign \xFE37 246-0
+sign \xFE38 12456-0
+sign \xFE39 2467-0
+sign \xFE3A 124567-0
+sign \xFE3B 2467-0
+sign \xFE3C 124567-0
+sign \xFE3D 126-126
+sign \xFE3E 345-345
+sign \xFE3F 126
+sign \xFE40 345
+sign \xFE41 56-36
+sign \xFE42 36-23
+sign \xFE43 236-236
+sign \xFE44 356-356
+sign \xFE49 23467-378
+sign \xFE4A 23467-34678
+sign \xFE4B 23467-2378
+sign \xFE4C 23467-12345678
+sign \xFE4D 23467-235678
+sign \xFE4E 23467-12678
+sign \xFE4F 45
+sign \xFE50 23-0
+sign \xFE51 6-0
+sign \xFE52 36-0
+sign \xFE54 56-0
+sign \xFE55 156-0
+sign \xFE56 135-0
+sign \xFE57 2346-0
+sign \xFE59 12356
+sign \xFE5A 23456
+sign \xFE5B 246-0
+sign \xFE5C 12456-0
+sign \xFE5D 12346-0
+sign \xFE5E 13456-0
+sign \xFE5F 3456
+sign \xFE60 456-12346
+sign \xFE61 16
+sign \xFE62 346
+sign \xFE63 36
+sign \xFE64 126
+sign \xFE65 345
+sign \xFE66 123456
+sign \xFE68 12467-127
+sign \xFE69 1246
+sign \xFE6A 146
+sign \xFE6B 47
+sign \xFF01 123-0
+sign \xFF02 235678-678
+sign \xFF03 3456
+sign \xFF04 1246
+sign \xFF05 146
+sign \xFF06 456-12346
+sign \xFF07 235678-1235678
+sign \xFF08 246-0
+sign \xFF09 135-0
+sign \xFF0A 4-3456
+sign \xFF0B 346
+sign \xFF0C 23-0
+sign \xFF0D 36
+sign \xFF0E 46-0
+sign \xFF0F 34
+sign \xFF10 356
+sign \xFF11 2
+sign \xFF12 23
+sign \xFF13 25
+sign \xFF14 256
+sign \xFF15 26
+sign \xFF16 235
+sign \xFF17 2356
+sign \xFF18 236
+sign \xFF19 35
+sign \xFF1A 25-25
+sign \xFF1B 56-0
+sign \xFF1C 126
+sign \xFF1D 123456
+sign \xFF1E 345
+sign \xFF1F 1456-0
+sign \xFF20 47
+sign \xFF21 17
+sign \xFF22 127
+sign \xFF23 147
+sign \xFF24 1457
+sign \xFF25 157
+sign \xFF26 1247
+sign \xFF27 12457
+sign \xFF28 1257
+sign \xFF29 247
+sign \xFF2A 2457
+sign \xFF2B 137
+sign \xFF2C 1237
+sign \xFF2D 1347
+sign \xFF2E 13457
+sign \xFF2F 1357
+sign \xFF30 12347
+sign \xFF31 123457
+sign \xFF32 12357
+sign \xFF33 2347
+sign \xFF34 23457
+sign \xFF35 1367
+sign \xFF36 12367
+sign \xFF37 24567
+sign \xFF38 13467
+sign \xFF39 134567
+sign \xFF3A 13567
+sign \xFF3B 378-123468
+sign \xFF3C 12567
+sign \xFF3D 378-3458
+sign \xFF3E 0-126
+sign \xFF3F 36-0
+sign \xFF40 3
+sign \xFF41 1
+sign \xFF42 12
+sign \xFF43 14
+sign \xFF44 145
+sign \xFF45 15
+sign \xFF46 124
+sign \xFF47 1245
+sign \xFF48 125
+sign \xFF49 24
+sign \xFF4A 245
+sign \xFF4B 13
+sign \xFF4C 123
+sign \xFF4D 134
+sign \xFF4E 1345
+sign \xFF4F 135
+sign \xFF50 1234
+sign \xFF51 12345
+sign \xFF52 1235
+sign \xFF53 234
+sign \xFF54 2345
+sign \xFF55 136
+sign \xFF56 1236
+sign \xFF57 2456
+sign \xFF58 1346
+sign \xFF59 13456
+sign \xFF5A 1356
+sign \xFF5B 246-0
+sign \xFF5C 1256-0
+sign \xFF5D 12456-0
+sign \xFF5E 45
+sign \xFF61 235678-27
+sign \xFF62 235678-7
+sign \xFF63 235678-3457
+sign \xFF64 6-0
+sign \xFF65 235678-1234567
+sign \xFF66 35
+sign \xFF67 235678-14567
+sign \xFF68 235678-23578
+sign \xFF69 235678-1678
+sign \xFF6A 235678-278
+sign \xFF6B 235678-578
+sign \xFF6C 235678-1234678
+sign \xFF6D 235678-34578
+sign \xFF6E 235678-378
+sign \xFF6F 235678-34678
+sign \xFF70 235678-235678
+sign \xFF71 1
+sign \xFF72 12
+sign \xFF73 14
+sign \xFF74 124
+sign \xFF75 24
+sign \xFF76 16
+sign \xFF77 126
+sign \xFF78 146
+sign \xFF79 1246
+sign \xFF7A 246
+sign \xFF7B 156
+sign \xFF7C 1256
+sign \xFF7D 1456
+sign \xFF7E 12456
+sign \xFF7F 2456
+sign \xFF80 135
+sign \xFF81 1235
+sign \xFF82 1345
+sign \xFF83 12345
+sign \xFF84 2345
+sign \xFF85 13
+sign \xFF86 123
+sign \xFF87 134
+sign \xFF88 1234
+sign \xFF89 234
+sign \xFF8A 136
+sign \xFF8B 1236
+sign \xFF8C 1346
+sign \xFF8D 12346
+sign \xFF8E 2346
+sign \xFF8F 1356
+sign \xFF90 12356
+sign \xFF91 13456
+sign \xFF92 123456
+sign \xFF93 23456
+sign \xFF94 346
+sign \xFF95 34
+sign \xFF96 345
+sign \xFF97 15
+sign \xFF98 125
+sign \xFF99 145
+sign \xFF9A 1245
+sign \xFF9B 245
+sign \xFF9C 3
+sign \xFF9D 356
+sign \xFF9E 235678-12468
+sign \xFF9F 235678-368
+sign \xFFE0 36-14-36
+sign \xFFE1 36-1237-36
+sign \xFFE2 235678-14678
+sign \xFFE3 23467-578
+sign \xFFE4 235678-2578
+sign \xFFE5 134567-157-13457
+sign \xFFE8 12467-1346
+sign \xFFE9 1246-246-25-25
+sign \xFFEA 1246-126-25-25-135
+sign \xFFEB 1246-25-25-135
+sign \xFFEC 1246-146-25-25-135
+sign \xFFED 12345678-12345678
+sign \xFFEE 14-13456-2
+#Japanese characters
+always \x304d\x3083 4-16
+always \x304d\x3085 4-146
+always \x304d\x3087 4-246
+always \x3057\x3083 4-156
+always \x3057\x3085 4-1456
+always \x3057\x3087 4-2456
+always \x3061\x3083 4-135
+always \x3061\x3085 4-1345
+always \x3061\x3087 4-2345
+always \x306b\x3083 4-13
+always \x306b\x3085 4-134
+always \x306b\x3087 4-234
+always \x3072\x3083 4-136
+always \x3072\x3085 4-1346
+always \x3072\x3087 4-2346
+always \x307f\x3083 4-1356
+always \x307f\x3085 4-13456
+always \x307f\x3087 4-23456
+always \x308a\x3083 4-15
+always \x308a\x3085 4-145
+always \x308a\x3087 4-245
+always \x304e\x3083 45-16
+always \x304e\x3085 45-146
+always \x304e\x3087 45-246
+always \x3058\x3083 45-156
+always \x3058\x3085 45-1456
+always \x3058\x3087 45-2456
+always \x3073\x3083 45-136
+always \x3073\x3085 45-1346
+always \x3073\x3087 45-2346
+always \x3074\x3083 46-136
+always \x3074\x3085 46-1346
+always \x3074\x3087 46-2346
+always \xff76\xff9e 5-16
+always \xff77\xff9e 5-126
+always \xff78\xff9e 5-146
+always \xff79\xff9e 5-1246
+always \xff7a\xff9e 5-246
+always \xff7b\xff9e 5-156
+always \xff7c\xff9e 5-1256
+always \xff7d\xff9e 5-1456
+always \xff7e\xff9e 5-12456
+always \xff7f\xff9e 5-2456
+always \xFF80\xFF9E 5-135
+always \xff81\xff9e 5-1235
+always \xff82\xff9e 5-1345
+always \xff83\xff9e 5-12345
+always \xff84\xff9e 5-2345
+always \xff8a\xff9e 5-136
+always \xff8b\xff9e 5-1236
+always \xff8c\xff9e 5-1346
+always \xff8d\xff9e 5-12346
+always \xff8e\xff9e 5-2346
+always \xff8a\xff9f 6-136
+always \xff8b\xff9f 6-1236
+always \xff8c\xff9f 6-1346
+always \xff8d\xff9f 6-12346
+always \xff8e\xff9f 6-2346
+always \xff77\xff6c 4-16
+always \xff77\xff6d 4-146
+always \xff77\xff6e 4-246
+always \xff7c\xff6c 4-156
+always \xff7c\xff6d 4-1456
+always \xff7c\xff6e 4-2456
+always \xff81\xff6c 4-135
+always \xff81\xff6d 4-1345
+always \xff81\xff6e 4-2345
+always \xff86\xff6c 4-13
+always \xff86\xff6d 4-134
+always \xff86\xff6e 4-234
+always \xff8b\xff6c 4-136
+always \xff8b\xff6d 4-1346
+always \xff8b\xff6e 4-2346
+always \xff90\xff6c 4-1356
+always \xff90\xff6d 4-13456
+always \xff90\xff6e 4-23456
+always \xff98\xff6c 4-15
+always \xff98\xff6d 4-145
+always \xff98\xff6e 4-245
+always \xFF77\xFF9E\xFF6C 45-16
+always \xFF77\xFF9E\xFF6D 45-146
+always \xFF77\xFF9E\xFF6E 45-246
+always \xFF7C\xFF9E\xFF6C 45-156
+always \xFF7C\xFF9E\xFF6D 45-1456
+always \xFF7C\xFF9E\xFF6E 45-2456
+always \xFF8B\xFF9E\xFF6C 45-136
+always \xFF8B\xFF9E\xFF6D 45-1346
+always \xFF8B\xFF9E\xFF6E 45-2346
+always \xFF8B\xFF9F\xFF6C 46-136
+always \xFF8B\xFF9F\xFF6D 46-1346
+always \xFF8B\xFF9F\xFF6E 46-2346
+#Chinese phrases
+always \x4e00\x4e86 16-3-14-246-4
+always \x4e00\x5339 16-3-1234-16-4
+always \x4e00\x64ae 16-3-245-25-5
+always \x4e00\x64c1 16-3-235-3
+always \x4e00\x66b4 16-3-1234-34-5
+always \x4e00\x671d 16-3-1-146-3
+always \x4e00\x8457 16-3-1-25-2
+always \x4e00\x884c 16-3-1235-1346-2
+always \x4e00\x89ba 16-3-13-246-5
+always \x4e09\x66f4 15-1236-3-13-13456-3
+always \x4e09\x7701 15-1236-3-15-13456-4
+always \x4e09\x884c 15-1236-3-1235-1346-2
+always \x4e09\x91cd 15-1236-3-12-12346-2
+always \x4e0a\x4f9b 24-1346-5-13-12346-5
+always \x4e0a\x5c07 24-1346-5-13-46-5
+always \x4e0a\x7576 24-1346-5-145-1346-5
+always \x4e0a\x76f8 24-1346-5-15-46-5
+always \x4e0a\x8072 24-1346-4-24-1356-3
+always \x4e0b\x5b50 15-23456-5-125-156-1
+always \x4e0d\x4e2d 135-34-5-1-12346-5
+always \x4e0d\x4e86 135-34-5-14-246-4
+always \x4e0d\x52dd 135-34-5-24-1356-3
+always \x4e0d\x7576 135-34-5-145-1346-5
+always \x4e0d\x7701 135-34-5-15-13456-4
+always \x4e0d\x7981 135-34-5-13-1456-3
+always \x4e0d\x820d 135-34-5-24-2346-4
+always \x4e0d\x8457 135-34-5-1-146-2
+always \x4e0d\x963f 135-34-5-2346-3
+always \x4e0d\x9bae 135-34-5-15-2345-4
+always \x4e1e\x76f8 12-1356-2-15-46-5
+always \x4e2d\x50b7 1-12346-5-24-1346-3
+always \x4e2d\x610f 1-12346-5-16-5
+always \x4e2d\x6691 1-12346-5-24-34-4
+always \x4e2d\x6bd2 1-12346-5-145-34-2
+always \x4e2d\x734e 1-12346-5-13-46-4
+always \x4e2d\x80af 1-12346-5-123-136-4
+always \x4e2d\x8209 1-12346-5-13-1256-4
+always \x4e2d\x8a08 1-12346-5-13-16-5
+always \x4e2d\x98a8 1-12346-5-12345-1356-3
+always \x4e38\x5b50 12456-2-125-156-1
+always \x4e3b\x5c07 1-34-4-13-46-5
+always \x4e58\x8208 12-1356-2-15-13456-5
+always \x4e7e\x5609 245-2345-2-13-23456-3
+always \x4e7e\x5764 245-2345-2-123-123456-3
+always \x4e7e\x9686 245-2345-2-14-12346-2
+always \x4e82\x5b50 14-12456-5-125-156-1
+always \x4e86\x4e86 14-246-4-14-246-4
+always \x4e86\x4e8b 14-246-4-24-156-5
+always \x4e86\x5f97 14-246-4-145-2346-2
+always \x4e86\x609f 14-246-4-34-5
+always \x4e86\x65b7 14-246-4-145-12456-5
+always \x4e86\x7136 14-246-4-1245-1236-2
+always \x4e86\x7d50 14-246-4-13-346-2
+always \x4e86\x89e3 14-246-4-13-346-4
+always \x4e94\x66f4 34-4-13-13456-3
+always \x4ea4\x5377 13-246-3-13-45-5
+always \x4ea4\x60e1 13-246-3-34-5
+always \x4ea4\x81c2 13-246-3-135-16-5
+always \x4ea4\x9084 13-246-3-1235-12456-2
+always \x4eac\x90fd 13-13456-3-145-34-3
+always \x4ead\x5b50 124-13456-2-125-156-1
+always \x4eae\x76f8 14-46-5-15-46-5
+always \x4eb6\x7236 145-1236-4-12345-34-4
+always \x4eba\x53c3 1245-136-2-24-136-3
+always \x4ec0\x4e48 24-2346-2-134-2346-1
+always \x4ec0\x9ebc 24-2346-2-134-2346-1
+always \x4f11\x5047 15-234-3-13-23456-5
+always \x4f19\x5b50 1235-25-4-125-156-1
+always \x4f3a\x5019 245-156-5-1235-12356-5
+always \x4f4d\x5b50 1246-5-125-156-1
+always \x4f5d\x50c2 123-12356-5-14-12356-2
+always \x4f86\x964d 14-2456-2-15-46-2
+always \x4f8b\x5047 14-16-5-13-23456-5
+always \x4f8b\x5b50 14-16-5-125-156-1
+always \x4f9b\x54c1 13-12346-5-1234-1456-4
+always \x4f9b\x61c9 13-12346-3-13456-5
+always \x4f9b\x684c 13-12346-5-1-25-3
+always \x4f9b\x7d66 13-12346-3-13-16-4
+always \x4f9b\x8a5e 13-12346-5-245-156-2
+always \x4f9b\x990a 13-12346-5-46-5
+always \x4f9d\x508d 16-3-135-1346-5
+always \x4fbf\x5b9c 1234-2345-2-16-2
+always \x4fe1\x5dee 15-1456-5-12-2456-3
+always \x4fef\x755c 12345-34-4-15-1256-5
+always \x4ff8\x7d66 12345-1356-5-13-16-4
+always \x5009\x5352 245-1346-3-245-34-5
+always \x5009\x9821 245-1346-3-13-346-2
+always \x500b\x5b50 13-2346-5-125-156-1
+always \x5014\x5f37 13-236-2-13-46-5
+always \x5047\x65e5 13-23456-5-1245-156-5
+always \x5047\x671f 13-23456-5-245-16-2
+always \x504f\x597d 1234-2345-3-1235-146-5
+always \x5065\x5c07 13-2345-5-13-46-5
+always \x50b3\x8a18 1-12456-5-13-16-5
+always \x5110\x76f8 135-1456-3-15-46-5
+always \x5112\x5c07 1245-34-2-13-46-5
+always \x511f\x9084 12-1346-2-1235-12456-2
+always \x5141\x7576 256-4-145-1346-5
+always \x5144\x9577 15-235-3-1-1346-4
+always \x5145\x5206 12-12346-3-12345-136-5
+always \x5145\x585e 12-12346-3-15-2346-5
+always \x514b\x96e3 123-2346-5-1345-1236-5
+always \x5152\x5b50 156-2-125-156-1
+always \x5154\x5b50 124-34-5-125-156-1
+always \x5165\x76f8 1245-34-5-15-46-5
+always \x5167\x61c9 1345-356-5-13456-5
+always \x5167\x76f8 1345-356-5-15-46-5
+always \x5167\x7701 1345-356-5-15-13456-4
+always \x5167\x884c 1345-356-5-1235-1346-2
+always \x516c\x5dee 13-12346-3-12-2456-3
+always \x516c\x64ae 13-12346-3-245-25-5
+always \x5171\x8655 13-12346-5-12-34-4
+always \x5178\x7576 145-2345-4-145-1346-5
+always \x517c\x5dee 13-2345-3-12-2456-3
+always \x518a\x5b50 245-2346-5-125-156-1
+always \x51a0\x5195 13-12456-3-134-2345-4
+always \x51a0\x84cb 13-12456-3-13-2456-5
+always \x51b7\x85cf 14-1356-4-245-1346-2
+always \x51f1\x6492 123-2456-4-15-345-3
+always \x51f3\x5b50 145-1356-5-125-156-1
+always \x51fa\x5c07 12-34-3-13-46-5
+always \x51fa\x5dee 12-34-3-12-2456-3
+always \x51fa\x6c92 12-34-3-134-126-5
+always \x5200\x5b50 145-146-3-125-156-1
+always \x5206\x5167 12345-136-5-1345-356-5
+always \x5206\x5916 12345-136-5-2356-5
+always \x5206\x5b50 12345-136-5-125-156-4
+always \x5206\x884c 12345-136-3-1235-1346-2
+always \x5206\x91cf 12345-136-5-14-46-5
+always \x5207\x63db 245-346-3-1235-12456-5
+always \x5207\x9664 245-346-3-12-34-2
+always \x5217\x50b3 14-346-5-1-12456-5
+always \x5228\x571f 1234-146-2-124-34-4
+always \x5228\x5730 1234-146-2-145-16-5
+always \x5228\x5b50 1234-146-2-125-156-1
+always \x5237\x5b50 24-35-3-125-156-1
+always \x524e\x8eca 24-345-5-12-2346-3
+always \x524e\x90a3 12-345-5-1345-25-2
+always \x525d\x524a 135-126-3-15-236-3
+always \x526f\x5c07 12345-34-5-13-46-5
+always \x5275\x75d5 12-456-3-1235-136-2
+always \x52a9\x9577 1-34-5-1-1346-4
+always \x52c7\x5c07 235-4-13-46-5
+always \x52c9\x5f37 134-2345-4-245-46-4
+always \x52d2\x5012 14-356-3-145-146-4
+always \x52d2\x50b7 14-356-3-24-1346-3
+always \x52d2\x660f 14-356-3-1235-123456-3
+always \x52d2\x6b7b 14-356-3-15-156-4
+always \x52d2\x75d5 14-356-3-1235-136-2
+always \x52d5\x8108 145-12346-5-134-2456-5
+always \x52dd\x4efb 24-1356-3-1245-136-5
+always \x52dd\x6578 24-1356-3-24-34-4
+always \x52de\x8ecd 14-146-5-13-256-3
+always \x52f8\x964d 245-45-5-15-46-2
+always \x52fa\x5b50 24-146-2-125-156-1
+always \x52fb\x7a31 256-2-12-136-5
+always \x52fe\x7576 13-12356-3-145-1346-5
+always \x5305\x5b50 135-146-3-125-156-1
+always \x5305\x85cf 135-146-3-245-1346-2
+always \x5315\x898b 135-16-4-15-2345-5
+always \x5316\x5b50 1235-35-3-125-156-1
+always \x5317\x4f10 135-356-4-12345-345-3
+always \x5323\x5b50 15-23456-2-125-156-1
+always \x5339\x592b 1234-16-4-12345-34-3
+always \x5339\x5a66 1234-16-4-12345-34-5
+always \x5339\x6575 1234-16-4-145-16-2
+always \x5339\x914d 1234-16-4-1234-356-5
+always \x5340\x9577 245-1256-3-1-1346-4
+always \x5341\x884c 24-156-2-1235-1346-2
+always \x5343\x4e58 245-2345-3-24-1356-5
+always \x5348\x89ba 34-4-13-246-5
+always \x534a\x8f09 135-1236-5-125-2456-4
+always \x5352\x5b50 125-34-2-125-156-1
+always \x5353\x8457 1-25-2-1-34-5
+always \x5354\x8abf 15-346-2-124-246-2
+always \x5357\x7121 1345-1236-2-134-126-2
+always \x5360\x535c 1-1236-3-135-34-4
+always \x5360\x661f 1-1236-3-15-13456-3
+always \x5371\x96e3 1246-2-1345-1236-5
+always \x5377\x5b50 13-45-5-125-156-1
+always \x5377\x5b97 13-45-5-125-12346-3
+always \x537f\x76f8 245-13456-3-15-46-5
+always \x539f\x8457 45-2-1-34-5
+always \x53ad\x60e1 2345-5-34-5
+always \x53bb\x8108 245-1256-5-134-2456-5
+always \x53c3\x5546 24-136-3-24-1346-3
+always \x53c3\x5c07 245-1236-3-13-46-5
+always \x53c3\x5dee 245-136-3-245-156-3
+always \x53c3\x8207 245-1236-3-1256-5
+always \x53c9\x5b50 12-345-3-125-156-1
+always \x53cd\x61c9 12345-1236-4-13456-5
+always \x53cd\x76f8 12345-1236-4-15-46-5
+always \x53cd\x7701 12345-1236-4-15-13456-4
+always \x53cd\x9593 12345-1236-4-13-2345-5
+always \x53d7\x964d 24-12356-5-15-46-2
+always \x53d7\x96e3 24-12356-5-1345-1236-5
+always \x53e3\x4f9b 123-12356-4-13-12346-5
+always \x53e3\x5403 123-12356-4-13-16-2
+always \x53e3\x5b50 123-12356-4-125-156-1
+always \x53e4\x73a9 13-34-4-12456-5
+always \x53e5\x5b50 13-1256-5-125-156-1
+always \x53e5\x8e10 13-12356-3-13-2345-5
+always \x53ef\x60e1 123-2346-4-34-5
+always \x53ef\x6578 123-2346-4-24-34-4
+always \x53ef\x6c57 123-2346-5-1235-1236-2
+always \x53f0\x5b50 124-2456-2-125-156-1
+always \x53f8\x9577 15-156-3-1-1346-4
+always \x5404\x884c 13-2346-5-1235-1346-2
+always \x5406\x559d 246-3-1235-2346-5
+always \x540a\x5b50 145-246-5-125-156-1
+always \x540d\x5206 134-13456-2-12345-136-5
+always \x540d\x5c07 134-13456-2-13-46-5
+always \x540d\x8457 134-13456-2-1-34-5
+always \x5410\x8543 124-34-4-12345-1236-3
+always \x541e\x6c92 124-123456-3-134-126-5
+always \x5426\x6975 1234-16-4-13-16-2
+always \x542b\x6df7 1235-1236-2-1235-123456-4
+always \x5446\x5b50 145-2456-3-125-156-1
+always \x544a\x5047 13-146-5-13-23456-5
+always \x5462\x5462 1345-16-2-1345-16-2
+always \x5462\x5583 1345-16-2-1345-1236-2
+always \x5462\x7d68 1345-16-2-1245-12346-2
+always \x547c\x61c9 1235-34-3-13456-5
+always \x547d\x8108 134-13456-5-134-2456-5
+always \x5486\x54ee 1234-146-2-15-246-3
+always \x548b\x820c 125-2346-2-24-2346-2
+always \x54b6\x566a 13-35-3-125-146-5
+always \x54bd\x5589 2345-3-1235-12356-2
+always \x54c0\x865f 2456-3-1235-146-2
+always \x54c1\x884c 1234-1456-4-15-13456-5
+always \x54c4\x9a19 1235-12346-4-1234-2345-5
+always \x54c6\x55e6 145-25-3-15-25-3
+always \x54c8\x5587 123-345-3-14-345-1
+always \x54e8\x5b50 24-146-5-125-156-1
+always \x54e9\x5695 14-16-3-14-34-3
+always \x54ed\x865f 123-34-3-1235-146-2
+always \x54ee\x5598 15-246-3-12-12456-4
+always \x54fd\x54bd 13-1356-4-346-5
+always \x5531\x548c 12-1346-5-1235-2346-5
+always \x5546\x884c 24-1346-3-1235-1346-2
+always \x5546\x8cc8 24-1346-3-13-34-4
+always \x554f\x5377 123456-5-13-45-5
+always \x555e\x5427 23456-4-135-345-3
+always \x555e\x555e 23456-3-23456-3
+always \x5580\x4ec0 123-345-5-24-156-2
+always \x5580\x5427 123-345-3-135-345-3
+always \x5581\x5581 1256-2-1256-2
+always \x559c\x597d 15-16-4-1235-146-5
+always \x559d\x91c7 1235-2346-5-245-2456-4
+always \x55ae\x4e8e 12-1236-2-1256-2
+always \x55ae\x5b50 145-1236-3-125-156-1
+always \x55ce\x5561 134-345-4-12345-356-3
+always \x55d3\x5b50 15-1346-4-125-156-1
+always \x55da\x54bd 34-3-346-5
+always \x55dc\x597d 24-156-5-1235-146-5
+always \x5600\x5495 145-16-2-13-34-3
+always \x5614\x5410 12356-4-124-34-5
+always \x5614\x6c23 12356-5-245-16-5
+always \x5629\x5566 1235-35-3-14-345-3
+always \x5630\x54e9 13-16-3-14-16-3
+always \x5641\x5fc3 2346-4-15-1456-3
+always \x5668\x6a02 245-16-5-236-5
+always \x5687\x963b 1235-2346-5-125-34-4
+always \x56db\x884c 15-156-5-1235-1346-2
+always \x56de\x61c9 1235-1246-2-13456-5
+always \x56e0\x61c9 1456-3-13456-5
+always \x56e0\x70ba 1456-3-1246-5
+always \x56fa\x8457 13-34-5-1-25-2
+always \x5708\x5b50 245-45-3-125-156-1
+always \x570b\x6a02 13-25-2-236-5
+always \x570b\x90fd 13-25-2-145-34-3
+always \x570b\x96e3 13-25-2-1345-1236-5
+always \x5718\x9577 124-12456-2-1-1346-4
+always \x571f\x8457 124-34-4-1-34-5
+always \x571f\x9577 124-34-4-1-1346-4
+always \x5728\x884c 125-2456-5-1235-1346-2
+always \x5730\x92ea 145-16-5-1234-34-5
+always \x574e\x5777 123-1236-4-123-2346-4
+always \x5750\x9a0e 125-25-5-13-16-5
+always \x5766\x7387 124-1236-4-24-2356-5
+always \x57cb\x6c92 134-2456-2-134-126-5
+always \x57f7\x8457 1-156-2-1-25-2
+always \x5831\x61c9 135-146-5-13456-5
+always \x5834\x5408 12-1346-2-1235-2346-2
+always \x5834\x9762 12-1346-2-134-2345-5
+always \x585e\x4f4f 15-2456-3-1-34-5
+always \x585e\x5b50 15-2456-3-125-156-1
+always \x585e\x6eff 15-2456-3-134-1236-4
+always \x585e\x7259 15-2456-3-23456-2
+always \x588a\x5b50 145-2345-5-125-156-1
+always \x589c\x5b50 1-1246-5-125-156-1
+always \x589e\x9577 125-1356-3-1-1346-4
+always \x58a8\x7fdf 134-126-5-145-16-2
+always \x58c5\x585e 235-4-15-2346-5
+always \x58e9\x5b50 135-345-5-125-156-1
+always \x5916\x76f8 2356-5-15-46-5
+always \x5916\x884c 2356-5-1235-1346-2
+always \x5916\x9577 2356-5-1-1346-4
+always \x591a\x91cd 145-25-3-12-12346-2
+always \x5922\x9b58 134-1356-5-346-5
+always \x5927\x5b9b 145-345-5-45-3
+always \x5927\x5c07 145-345-5-13-46-5
+always \x5927\x7387 145-345-5-24-2356-5
+always \x5927\x96e3 145-345-5-1345-1236-5
+always \x5929\x5206 124-2345-3-12345-136-5
+always \x5929\x6daf 124-2345-3-26-2
+always \x5929\x76f8 124-2345-3-15-46-5
+always \x592a\x76e3 124-2456-5-13-2345-5
+always \x592a\x884c 124-2456-5-1235-1346-2
+always \x592b\x5dee 12345-34-3-12-2456-3
+always \x592d\x6298 246-4-1-2346-2
+always \x5931\x7576 24-156-3-145-1346-5
+always \x5931\x8abf 24-156-3-124-246-2
+always \x593e\x5b50 13-23456-2-125-156-1
+always \x593e\x7e2b 13-23456-2-12345-1356-5
+always \x5947\x6578 13-16-3-24-34-5
+always \x5949\x9084 12345-1356-5-1235-12456-2
+always \x5949\x990a 12345-1356-5-46-5
+always \x594f\x6a02 125-12356-5-236-5
+always \x596e\x81c2 12345-136-5-135-16-5
+always \x5973\x5c07 1345-1256-4-13-46-5
+always \x597d\x52d5 1235-146-5-145-12346-5
+always \x597d\x52dd 1235-146-5-24-1356-5
+always \x597d\x554f 1235-146-5-123456-5
+always \x597d\x5947 1235-146-5-245-16-2
+always \x597d\x60e1 1235-146-5-34-5
+always \x597d\x6230 1235-146-5-1-1236-5
+always \x597d\x8005 1235-146-5-1-2346-4
+always \x597d\x9b25 1235-146-5-145-12356-5
+always \x598a\x5a20 1245-136-5-24-136-3
+always \x59a5\x7576 124-25-4-145-1346-5
+always \x59ae\x5b50 1345-16-2-125-156-1
+always \x59d4\x66f2 1246-4-245-1256-3
+always \x59e8\x5b50 16-2-125-156-1
+always \x59ea\x5b50 1-156-2-125-156-1
+always \x5a01\x5687 1246-3-1235-2346-5
+always \x5a03\x5a03 35-2-35-3
+always \x5a1c\x5a1c 1345-25-4-1345-25-4
+always \x5a40\x5a1c 2346-3-1345-25-4
+always \x5a46\x5b50 1234-126-2-125-156-1
+always \x5ac2\x5b50 15-146-4-125-156-1
+always \x5acb\x5a1c 1345-246-4-1345-25-2
+always \x5acc\x60e1 15-2345-2-34-5
+always \x5ae1\x9577 145-16-2-1-1346-4
+always \x5b0c\x5a03 13-246-3-35-3
+always \x5b50\x5f48 125-156-4-145-1236-5
+always \x5b57\x5e16 125-156-5-124-346-5
+always \x5b5d\x990a 15-246-5-46-5
+always \x5b69\x5b50 1235-2456-2-125-156-1
+always \x5b6b\x5b50 15-123456-3-125-156-1
+always \x5b78\x9577 15-236-2-1-1346-4
+always \x5b85\x5b50 1-2456-2-125-156-1
+always \x5b88\x5206 24-12356-4-12345-136-5
+always \x5b88\x5c07 24-12356-4-13-46-5
+always \x5b89\x5206 1236-3-12345-136-5
+always \x5b8f\x90fd 1235-12346-2-145-34-3
+always \x5b98\x9577 13-12456-3-1-1346-4
+always \x5b9a\x7701 145-13456-5-15-13456-4
+always \x5b9a\x90fd 145-13456-5-145-34-3
+always \x5ba3\x52de 15-45-3-14-146-5
+always \x5ba3\x5c0e 15-45-3-145-146-5
+always \x5bb0\x76f8 125-2456-4-15-46-5
+always \x5bb3\x81ca 1235-2456-5-15-146-5
+always \x5bb6\x5b50 13-23456-3-125-156-1
+always \x5bb6\x7576 13-23456-3-145-1346-5
+always \x5bb6\x7d2f 13-23456-3-14-356-4
+always \x5bb6\x9577 13-23456-3-1-1346-4
+always \x5bd2\x5047 1235-1236-2-13-23456-5
+always \x5be9\x5ea6 24-136-4-145-25-5
+always \x5c07\x4ee4 13-46-5-14-13456-5
+always \x5c07\x4f50 13-46-5-125-25-4
+always \x5c07\x58eb 13-46-5-24-156-5
+always \x5c07\x5b98 13-46-5-13-12456-3
+always \x5c07\x5e25 13-46-5-24-2356-5
+always \x5c07\x6750 13-46-5-245-2456-2
+always \x5c07\x6821 13-46-5-15-246-5
+always \x5c07\x76f8 13-46-5-15-46-5
+always \x5c07\x9580 13-46-5-134-136-2
+always \x5c07\x9818 13-46-5-14-13456-4
+always \x5c08\x6a6b 1-12456-3-1235-1356-5
+always \x5c08\x8457 1-12456-3-1-34-5
+always \x5c0a\x9577 125-123456-3-1-1346-4
+always \x5c0d\x61c9 145-1246-5-13456-5
+always \x5c0d\x7a31 145-1246-5-12-136-5
+always \x5c0e\x5f48 145-146-4-145-1236-5
+always \x5c0e\x64ad 145-146-4-135-126-3
+always \x5c0f\x50b3 15-246-4-1-12456-5
+always \x5c11\x58ef 24-146-5-1-456-5
+always \x5c11\x5973 24-146-5-1345-1256-4
+always \x5c11\x5a66 24-146-5-12345-34-5
+always \x5c11\x5b89 24-146-3-1236-3
+always \x5c11\x5c07 24-146-5-13-46-5
+always \x5c11\x5e74 24-146-5-1345-2345-2
+always \x5c11\x5eb7 24-146-5-123-1346-3
+always \x5c11\x6797 24-146-5-14-1456-2
+always \x5c11\x723a 24-146-5-346-2
+always \x5c31\x5f97 13-234-5-145-356-4
+always \x5c3e\x5df4 16-4-135-345-3
+always \x5c40\x9577 13-1256-2-1-1346-4
+always \x5c4b\x5b50 34-3-125-156-1
+always \x5c4f\x606f 135-13456-4-15-16-2
+always \x5c4f\x9000 135-13456-4-124-1246-5
+always \x5c91\x53c3 245-136-2-24-136-3
+always \x5c94\x5b50 12-345-5-125-156-1
+always \x5de1\x66f4 15-256-2-13-1356-3
+always \x5de6\x50b3 125-25-4-1-12456-5
+always \x5de8\x8457 13-1256-5-1-34-5
+always \x5dee\x4e0d 12-345-5-135-34-5
+always \x5dee\x4e8b 12-2456-3-24-156-5
+always \x5dee\x4f7f 12-2456-3-24-156-4
+always \x5dee\x5f79 12-2456-3-16-5
+always \x5dee\x9063 12-2456-3-245-2345-4
+always \x5dee\x9ede 12-345-5-145-2345-4
+always \x5df4\x7b54 135-345-3-145-345-3
+always \x5df7\x5b50 15-46-5-125-156-1
+always \x5e02\x9577 24-156-5-1-1346-4
+always \x5e03\x5339 135-34-5-1234-16-4
+always \x5e16\x5b50 124-346-4-125-156-1
+always \x5e2b\x9577 24-156-3-1-1346-4
+always \x5e3d\x5b50 134-146-5-125-156-1
+always \x5e4c\x5b50 1235-456-4-125-156-1
+always \x5e6b\x5b50 135-1346-3-125-156-1
+always \x5e72\x5c07 13-1236-3-13-46-5
+always \x5e74\x5047 1345-2345-2-13-23456-5
+always \x5e74\x5c11 1345-2345-2-24-146-5
+always \x5e74\x9577 1345-2345-2-1-1346-4
+always \x5e79\x561b 13-1236-5-134-345-2
+always \x5e79\x9ebc 13-1236-5-134-345-2
+always \x5e7e\x4e4e 13-16-3-1235-34-3
+always \x5e8a\x92ea 12-456-2-1234-34-5
+always \x5e94\x7528 13456-5-235-5
+always \x5e95\x5b50 145-16-4-125-156-1
+always \x5e97\x92ea 145-2345-5-1234-34-5
+always \x5ea6\x5047 145-34-5-13-23456-5
+always \x5ead\x9577 124-13456-2-1-1346-4
+always \x5eda\x5b50 12-34-2-125-156-1
+always \x5ee0\x9577 12-1346-4-1-1346-4
+always \x5ef3\x9577 124-13456-3-1-1346-4
+always \x5efa\x90fd 13-2345-5-145-34-3
+always \x5f26\x6a02 15-2345-2-236-5
+always \x5f37\x5236 245-46-4-1-156-5
+always \x5f37\x5360 245-46-4-1-1236-5
+always \x5f37\x5c07 245-46-2-13-46-5
+always \x5f37\x5e79 245-46-4-13-1236-5
+always \x5f37\x6a6b 245-46-2-1235-1356-5
+always \x5f37\x6c42 245-46-4-245-234-2
+always \x5f37\x8a18 245-46-4-13-16-5
+always \x5f48\x4e38 145-1236-5-12456-2
+always \x5f48\x5b50 145-1236-5-125-156-1
+always \x5f48\x5f13 145-1236-5-13-12346-3
+always \x5f48\x7121 145-1236-5-34-2
+always \x5f48\x73e0 145-1236-5-1-34-3
+always \x5f48\x75d5 145-1236-5-1235-136-2
+always \x5f48\x76e1 145-1236-5-13-1456-5
+always \x5f48\x85e5 145-1236-5-246-5
+always \x5f48\x9053 145-1236-5-145-146-5
+always \x5f48\x92cf 145-1236-5-13-23456-2
+always \x5f48\x96e8 145-1236-5-1256-4
+always \x5f48\x982d 145-1236-5-124-12356-2
+always \x5f4c\x6492 134-16-2-15-345-3
+always \x5f4e\x66f2 12456-3-245-1256-3
+always \x5f71\x5b50 13456-4-125-156-1
+always \x5f77\x5fa8 1234-1346-2-1235-456-2
+always \x5f80\x9084 456-4-1235-12456-2
+always \x5f81\x4f10 1-1356-3-12345-345-3
+always \x5f98\x5f8a 1234-2456-2-1235-2356-2
+always \x5fb7\x884c 145-2346-2-15-13456-5
+always \x5fc5\x5f97 135-16-5-145-356-4
+always \x5fc5\x61c9 135-16-5-13456-5
+always \x5fd6\x5ea6 245-123456-4-145-25-5
+always \x5fe0\x544a 1-12346-3-13-34-5
+always \x600e\x4e48 125-136-4-134-2346-1
+always \x6012\x865f 1345-34-5-1235-146-2
+always \x601d\x6c57 15-156-3-1235-1236-2
+always \x601d\x91cf 15-156-3-14-46-2
+always \x6025\x96e3 13-16-2-1345-1236-5
+always \x6027\x5b50 15-13456-5-125-156-1
+always \x602f\x5834 245-236-5-12-1346-4
+always \x602f\x61e6 245-236-5-1345-25-5
+always \x6050\x5687 123-12346-4-1235-2346-5
+always \x606b\x5687 145-12346-5-1235-2346-5
+always \x6070\x7576 245-23456-5-145-1346-5
+always \x60a3\x96e3 1235-12456-5-1345-1236-5
+always \x60b6\x60b6 134-136-5-134-136-5
+always \x60c5\x5206 245-13456-2-12345-136-5
+always \x60e1\x52de 34-5-14-146-2
+always \x60e1\x5c11 2346-5-24-146-5
+always \x611b\x597d 2456-5-1235-146-5
+always \x611f\x61c9 13-1236-4-13456-5
+always \x6170\x52de 1246-5-14-146-5
+always \x618e\x60e1 125-1356-3-34-5
+always \x61c9\x4ed8 13456-5-12345-34-5
+always \x61c9\x5141 13456-5-256-4
+always \x61c9\x547d 13456-5-134-13456-5
+always \x61c9\x548c 13456-5-1235-2346-2
+always \x61c9\x5c0d 13456-5-145-1246-5
+always \x61c9\x5fb5 13456-5-1-1356-3
+always \x61c9\x63a5 13456-5-13-346-3
+always \x61c9\x6642 13456-5-24-156-2
+always \x61c9\x666f 13456-5-13-13456-4
+always \x61c9\x6c42 13456-5-245-234-2
+always \x61c9\x7528 13456-5-235-5
+always \x61c9\x8003 13456-5-123-146-4
+always \x61c9\x8072 13456-5-24-1356-3
+always \x61c9\x8a31 13456-5-15-1256-4
+always \x61c9\x8a66 13456-5-24-156-5
+always \x61c9\x8b8a 13456-5-135-2345-5
+always \x61c9\x904b 13456-5-256-5
+always \x61c9\x9080 13456-5-246-3
+always \x61c9\x916c 13456-5-12-12356-2
+always \x61c9\x9a57 13456-5-2345-5
+always \x61ca\x55aa 146-5-15-1346-5
+always \x61ca\x6094 146-5-1235-1246-4
+always \x61ca\x60f1 146-5-1345-146-4
+always \x61f2\x8655 12-1356-2-12-34-4
+always \x61f5\x61c2 134-1356-4-145-12346-4
+always \x61f6\x6563 14-1236-4-15-1236-4
+always \x6210\x5206 12-1356-2-12345-136-5
+always \x6210\x90fd 12-1356-2-145-34-3
+always \x6210\x9577 12-1356-2-1-1346-4
+always \x6230\x5c07 1-1236-5-13-46-5
+always \x6232\x5b50 15-16-5-125-156-1
+always \x6232\x8b14 15-16-5-1345-236-5
+always \x6236\x9577 1235-34-5-1-1346-4
+always \x623f\x5b50 12345-1346-2-125-156-1
+always \x6240\x8457 15-25-4-1-34-5
+always \x6240\x9577 15-25-4-1-1346-4
+always \x6241\x64d4 135-2345-4-145-1236-5
+always \x6241\x821f 1234-2345-3-1-12356-3
+always \x6241\x947d 135-2345-4-125-12456-5
+always \x6247\x5b50 24-1236-5-125-156-1
+always \x624b\x76f8 24-12356-4-15-46-5
+always \x624e\x5be6 1-345-3-24-156-2
+always \x624e\x624b 1-345-3-24-12356-4
+always \x624e\x6839 1-345-3-13-136-3
+always \x624e\x773c 1-345-3-2345-4
+always \x624e\x91dd 1-345-3-1-136-3
+always \x6253\x76f9 145-345-4-145-123456-4
+always \x6263\x5b50 123-12356-5-125-156-1
+always \x626d\x66f2 1345-234-4-245-1256-3
+always \x626e\x76f8 135-1236-5-15-46-5
+always \x627e\x8457 1-146-4-1-146-2
+always \x6284\x6c92 12-146-3-134-126-5
+always \x6295\x964d 124-12356-2-15-46-2
+always \x62b9\x715e 134-126-4-24-345-3
+always \x62bd\x7a7a 12-12356-3-123-12346-5
+always \x62cd\x5b50 1234-2456-3-125-156-1
+always \x62d4\x90fd 135-345-2-145-34-3
+always \x62d7\x53e3 246-5-123-12356-4
+always \x62d8\x6ce5 13-1256-3-1345-16-5
+always \x62d9\x8457 1-25-2-1-34-5
+always \x6307\x6458 1-156-4-1-2346-2
+always \x6311\x5254 124-246-3-124-16-5
+always \x6311\x5f04 124-246-4-1345-12346-5
+always \x6311\x6230 124-246-4-1-1236-5
+always \x6311\x64a5 124-246-4-135-126-3
+always \x6311\x64d4 124-246-3-145-1236-5
+always \x6311\x71c8 124-246-4-145-1356-3
+always \x6311\x9017 124-246-4-145-12356-5
+always \x6311\x91c1 124-246-4-15-1456-5
+always \x632f\x81c2 1-136-5-135-16-5
+always \x6383\x5e1a 15-146-5-1-12356-4
+always \x6392\x6bd4 1234-2456-2-135-16-5
+always \x6392\x884c 1234-2456-2-1235-1346-2
+always \x6392\x9577 1234-2456-2-1-1346-4
+always \x6399\x9322 1-1356-5-245-2345-2
+always \x63a2\x5b50 124-1236-5-125-156-1
+always \x63a5\x61c9 13-346-3-13456-5
+always \x63a5\x7e2b 13-346-3-12345-1356-5
+always \x63a8\x78e8 124-1246-3-134-126-5
+always \x63a9\x6c92 2345-4-134-126-5
+always \x63db\x884c 1235-12456-5-1235-1346-2
+always \x63e3\x5ea6 12-2356-4-145-25-5
+always \x63e9\x6cb9 123-2456-3-234-2
+always \x63ed\x6aeb 13-346-2-1-34-3
+always \x6416\x6643 246-2-1235-456-5
+always \x642a\x585e 124-1346-2-15-2346-5
+always \x645f\x9322 14-12356-3-245-2345-2
+always \x6487\x5b50 1234-346-4-125-156-1
+always \x6492\x4f46 15-345-3-145-1236-5
+always \x6492\x5b0c 15-345-3-13-246-3
+always \x6492\x5c3f 15-345-3-1345-246-5
+always \x6492\x624b 15-345-3-24-12356-4
+always \x6492\x817f 15-345-3-124-1246-4
+always \x6492\x8b0a 15-345-3-1235-456-4
+always \x6492\x8cf4 15-345-3-14-2456-5
+always \x6492\x91ce 15-345-3-346-4
+always \x6492\x958b 15-345-3-123-2456-3
+always \x64ad\x6620 135-126-3-13456-5
+always \x64ad\x97f3 135-126-3-1456-3
+always \x64cd\x884c 245-146-3-15-13456-5
+always \x64d4\x5b50 145-1236-5-125-156-1
+always \x64f2\x9084 1-156-2-1235-12456-2
+always \x6518\x5937 1245-1346-2-16-2
+always \x6518\x596a 1245-1346-2-145-25-2
+always \x6524\x5b50 124-1236-3-125-156-1
+always \x6524\x9084 124-1236-3-1235-12456-2
+always \x652a\x548c 13-246-4-1235-25-5
+always \x6536\x85cf 24-12356-3-245-1346-2
+always \x6539\x884c 13-2456-4-1235-1346-2
+always \x653e\x5047 12345-1346-5-13-23456-5
+always \x6548\x61c9 15-246-5-13456-5
+always \x6551\x96e3 13-234-5-1345-1236-5
+always \x6557\x8208 135-2456-5-15-13456-5
+always \x6563\x5149 15-1236-4-13-456-3
+always \x6563\x5175 15-1236-4-135-13456-3
+always \x6563\x6587 15-1236-4-123456-2
+always \x6563\x66f2 15-1236-4-245-1256-4
+always \x6563\x6c99 15-1236-4-24-345-3
+always \x6578\x4e00 24-34-4-16-3
+always \x6578\x4e0d 24-34-4-135-34-5
+always \x6578\x4e8c 24-34-4-156-5
+always \x6578\x5178 24-34-4-145-2345-4
+always \x6578\x6578 24-34-4-24-34-5
+always \x6578\x843d 24-34-4-14-25-5
+always \x6578\x8aaa 24-34-4-24-25-3
+always \x6578\x9322 24-34-4-245-2345-2
+always \x6587\x904e 123456-5-13-25-5
+always \x6587\x98fe 123456-5-24-156-5
+always \x6597\x91cf 145-12356-4-14-46-2
+always \x6599\x4e2d 14-246-5-1-12346-5
+always \x6599\x5b50 14-246-5-125-156-1
+always \x65a7\x5b50 12345-34-4-125-156-1
+always \x65c5\x9577 14-1256-4-1-1346-4
+always \x65cb\x98a8 15-45-5-12345-1356-3
+always \x65cf\x9577 125-34-2-1-1346-4
+always \x65d7\x5b50 245-16-2-125-156-1
+always \x65e5\x5b50 1245-156-5-125-156-1
+always \x65e5\x6688 1245-156-5-256-5
+always \x65e5\x6c92 1245-156-5-134-126-5
+always \x6613\x50b3 16-5-1-12456-5
+always \x661f\x5bbf 15-13456-3-15-234-5
+always \x661f\x76f8 15-13456-3-15-46-5
+always \x6625\x5047 12-123456-3-13-23456-5
+always \x662d\x8457 1-146-3-1-34-5
+always \x6641\x932f 12-146-2-245-25-5
+always \x6643\x8166 1235-456-5-1345-146-4
+always \x6643\x8569 1235-456-5-145-1346-5
+always \x6687\x7d66 15-23456-2-13-16-4
+always \x6691\x5047 24-34-4-13-23456-5
+always \x6696\x548c 1345-12456-4-1235-25-1
+always \x66b4\x9732 1234-34-5-14-34-5
+always \x66f2\x5b50 245-1256-4-125-156-1
+always \x66f2\x5c3a 245-1256-3-12-156-4
+always \x66f2\x5ea6 245-1256-3-145-34-5
+always \x66f2\x6298 245-1256-3-1-2346-2
+always \x66f2\x66f2 245-1256-3-245-1256-3
+always \x66f2\x6c83 245-1256-3-25-5
+always \x66f2\x76f4 245-1256-3-1-156-2
+always \x66f2\x7dda 245-1256-3-15-2345-5
+always \x66f2\x89e3 245-1256-3-13-346-4
+always \x66f2\x961c 245-1256-3-12345-34-5
+always \x66f4\x4e8b 13-1356-3-24-156-5
+always \x66f4\x52d5 13-1356-3-145-12346-5
+always \x66f4\x540d 13-1356-3-134-13456-2
+always \x66f4\x5f35 13-1356-3-1-1346-3
+always \x66f4\x5f97 13-1356-5-145-356-4
+always \x66f4\x63db 13-1356-3-1235-12456-5
+always \x66f4\x6539 13-1356-3-13-2456-4
+always \x66f4\x65b0 13-1356-3-15-1456-3
+always \x66f4\x6613 13-1356-3-16-5
+always \x66f4\x66ff 13-1356-3-124-16-5
+always \x66f4\x6b63 13-1356-3-1-1356-5
+always \x66f4\x751f 13-1356-3-24-1356-3
+always \x66f4\x865f 13-1356-3-1235-146-5
+always \x66f4\x8863 13-1356-3-16-3
+always \x66f4\x8fed 13-1356-3-145-346-2
+always \x66f8\x5377 24-34-3-13-45-5
+always \x66f9\x53c3 245-146-2-24-136-3
+always \x66fe\x53c3 125-1356-3-24-136-3
+always \x66fe\x5b50 125-1356-3-125-156-4
+always \x66fe\x5b6b 125-1356-3-15-123456-3
+always \x66fe\x6c0f 125-1356-3-24-156-5
+always \x66fe\x7956 125-1356-3-125-34-4
+always \x66fe\x978f 125-1356-3-13-12346-4
+always \x6703\x5152 1235-1246-4-156-3
+always \x6703\x7a3d 13-1246-5-13-16-3
+always \x6703\x8a08 123-2356-5-13-16-5
+always \x6703\x9577 1235-1246-5-1-1346-4
+always \x6708\x5b50 236-5-125-156-1
+always \x6708\x6688 236-5-256-5
+always \x6708\x7d2f 236-5-14-356-4
+always \x6709\x5206 234-4-12345-136-5
+always \x6709\x671d 234-4-1-146-3
+always \x670d\x5e16 12345-34-2-124-346-3
+always \x671d\x4e09 1-146-3-15-1236-3
+always \x671d\x4e0d 1-146-3-135-34-5
+always \x671d\x4ee4 1-146-3-14-13456-5
+always \x671d\x5915 1-146-3-15-16-5
+always \x671d\x66e6 1-146-3-15-16-3
+always \x671d\x6703 1-146-3-1235-1246-5
+always \x671d\x671d 1-146-3-1-146-3
+always \x671d\x6c23 1-146-3-245-16-5
+always \x671d\x767c 1-146-3-12345-345-3
+always \x671d\x79e6 1-146-3-245-1456-2
+always \x671d\x967d 1-146-3-46-2
+always \x671d\x9732 1-146-3-14-34-5
+always \x671f\x5e74 13-16-3-1345-2345-2
+always \x671f\x6708 13-16-3-236-5
+always \x671f\x670d 13-16-3-12345-34-2
+always \x6728\x585e 134-34-5-15-2456-3
+always \x672a\x4e86 1246-5-14-246-4
+always \x672b\x4e86 134-126-5-14-246-4
+always \x672c\x5206 135-136-4-12345-136-5
+always \x672c\x5b50 135-136-4-125-156-1
+always \x672c\x884c 135-136-4-1235-1346-2
+always \x674e\x5b50 14-16-4-125-156-1
+always \x6751\x5b50 245-123456-3-125-156-1
+always \x6751\x9577 245-123456-3-1-1346-4
+always \x676f\x5b50 135-356-3-125-156-1
+always \x677e\x6fe4 15-12346-3-124-146-3
+always \x679c\x5b50 13-25-4-125-156-1
+always \x67af\x840e 123-34-3-1246-3
+always \x67b6\x5b50 13-23456-5-125-156-1
+always \x67da\x5b50 234-5-125-156-1
+always \x67e5\x52d8 12-345-2-123-1236-5
+always \x67f1\x5b50 1-34-5-125-156-1
+always \x67fa\x5b50 13-2356-4-125-156-1
+always \x67ff\x5b50 24-156-5-125-156-1
+always \x6813\x585e 24-12456-3-15-2456-3
+always \x6813\x5b50 24-12456-3-125-156-1
+always \x6821\x52d8 13-246-5-123-1236-3
+always \x6821\x5c0d 13-246-5-145-1246-5
+always \x6821\x6b63 13-246-5-1-1356-5
+always \x6821\x6e96 13-246-5-1-123456-4
+always \x6821\x8a02 13-246-5-145-13456-5
+always \x6821\x9577 15-246-5-1-1346-4
+always \x6821\x95b1 13-246-5-236-5
+always \x683c\x5b50 13-2346-2-125-156-1
+always \x683d\x7a2e 125-2456-3-1-12346-5
+always \x6843\x5b50 124-146-2-125-156-1
+always \x6846\x5b50 123-456-3-125-156-1
+always \x6848\x5377 1236-5-13-45-5
+always \x6848\x5b50 1236-5-125-156-1
+always \x684c\x5b50 1-25-3-125-156-1
+always \x6876\x5b50 124-12346-4-125-156-1
+always \x687f\x5b50 13-1236-4-125-156-1
+always \x6885\x5b50 134-356-2-125-156-1
+always \x6886\x5b50 135-1346-3-125-156-1
+always \x6897\x585e 13-1356-4-15-2346-5
+always \x689d\x5b50 124-246-2-125-156-1
+always \x68af\x5b50 124-16-3-125-156-1
+always \x68b3\x5b50 24-34-3-125-156-1
+always \x68cd\x5b50 13-123456-5-125-156-1
+always \x68d2\x559d 135-1346-5-1235-2346-5
+always \x68d2\x5b50 135-1346-5-125-156-1
+always \x68da\x5b50 1234-1356-2-125-156-1
+always \x6905\x5b50 16-4-125-156-1
+always \x6930\x5b50 346-2-125-156-1
+always \x6954\x5b50 15-346-5-125-156-1
+always \x69b4\x5f48 14-234-2-145-1236-5
+always \x69d3\x5b50 13-1346-5-125-156-1
+always \x6a02\x5287 236-5-13-1256-5
+always \x6a02\x5668 236-5-245-16-5
+always \x6a02\x5718 236-5-124-12456-2
+always \x6a02\x58c7 236-5-124-1236-2
+always \x6a02\x5b98 236-5-13-12456-3
+always \x6a02\x5e2b 236-5-24-156-3
+always \x6a02\x5e9c 236-5-12345-34-4
+always \x6a02\x624b 236-5-24-12356-4
+always \x6a02\x66f2 236-5-245-1256-4
+always \x6a02\x6bb5 236-5-145-12456-5
+always \x6a02\x6c34 246-5-24-1246-4
+always \x6a02\x6d3e 236-5-1234-2456-5
+always \x6a02\x7406 236-5-14-16-4
+always \x6a02\x7ae0 236-5-1-1346-3
+always \x6a02\x7c4d 236-5-13-16-2
+always \x6a02\x8b5c 236-5-1234-34-4
+always \x6a02\x8ff7 236-5-134-16-2
+always \x6a02\x968a 236-5-145-1246-5
+always \x6a02\x97f3 236-5-1456-3
+always \x6a02\x98a8 236-5-12345-1356-3
+always \x6a13\x5b50 14-12356-2-125-156-1
+always \x6a21\x5b50 134-126-2-125-156-1
+always \x6a21\x6a23 134-34-2-46-5
+always \x6a23\x5b50 46-5-125-156-1
+always \x6a58\x5b50 13-1256-2-125-156-1
+always \x6a6b\x66b4 1235-1356-5-135-146-5
+always \x6a6b\x6b7b 1235-1356-5-15-156-4
+always \x6a6b\x798d 1235-1356-5-1235-25-5
+always \x6a6b\x8089 1235-1356-5-1245-12356-5
+always \x6a6b\x884c 1235-1356-5-15-13456-2
+always \x6a6b\x8ca1 1235-1356-5-245-2456-2
+always \x6ac3\x5b50 13-1246-5-125-156-1
+always \x6adb\x6bd4 13-346-2-135-16-5
+always \x6b21\x9577 245-156-5-1-1346-4
+always \x6b23\x7fa1 15-1456-3-15-2345-5
+always \x6b38\x4e43 2456-4-1345-2456-4
+always \x6b3d\x5dee 245-1456-3-12-2456-3
+always \x6b3e\x5b50 123-12456-4-125-156-1
+always \x6b63\x4e2d 1-1356-5-1-12346-5
+always \x6b65\x5b50 135-34-5-125-156-1
+always \x6b66\x5c07 34-4-13-46-5
+always \x6b6a\x66f2 2356-3-245-1256-3
+always \x6b78\x9084 13-1246-3-1235-12456-2
+always \x6b78\x964d 13-1246-3-15-46-2
+always \x6b7b\x7576 15-156-4-145-1346-5
+always \x6b7b\x96e3 15-156-4-1345-1236-5
+always \x6b89\x96e3 15-256-5-1345-1236-5
+always \x6b9e\x6c92 256-4-134-126-5
+always \x6bba\x4f10 24-345-3-12345-345-3
+always \x6bbc\x5b50 123-2346-2-125-156-1
+always \x6bcf\x884c 134-356-4-1235-1346-2
+always \x6bd4\x53ca 135-16-5-13-16-2
+always \x6bd4\x6bd4 135-16-5-135-16-5
+always \x6bd4\x80a9 135-16-5-13-2345-3
+always \x6bd4\x9130 135-16-5-14-1456-2
+always \x6bef\x5b50 124-1236-4-125-156-1
+always \x6bfd\x5b50 13-2345-5-125-156-1
+always \x6c08\x5b50 1-1236-3-125-156-1
+always \x6c2b\x5f48 245-13456-3-145-1236-5
+always \x6c34\x5206 24-1246-4-12345-136-5
+always \x6c57\x4f4d 1235-1236-2-1246-5
+always \x6c57\x570b 1235-1236-2-13-25-2
+always \x6c57\x738b 1235-1236-2-456-2
+always \x6c5f\x90fd 13-46-3-145-34-3
+always \x6c60\x5b50 12-156-2-125-156-1
+always \x6c88\x62ec 24-136-4-13-35-3
+always \x6c88\x6c92 12-136-2-134-126-5
+always \x6c88\x8457 12-136-2-1-25-2
+always \x6c8f\x8336 245-16-5-12-345-2
+always \x6c92\x4e16 134-126-5-24-156-5
+always \x6c92\x5165 134-126-5-1245-34-5
+always \x6c92\x6536 134-126-5-24-12356-3
+always \x6c92\x6c92 134-126-5-134-126-5
+always \x6c92\x843d 134-126-5-14-25-5
+always \x6c92\x85e5 134-126-5-246-5
+always \x6c92\x9802 134-126-5-145-13456-4
+always \x6c92\x98f2 134-126-5-1456-4
+always \x6c92\x9f52 134-126-5-12-156-4
+always \x6c99\x5b50 24-345-3-125-156-1
+always \x6cd5\x570b 12345-345-5-13-25-2
+always \x6cd5\x5b50 12345-345-2-125-156-1
+always \x6cd5\x76f8 12345-345-4-15-46-5
+always \x6cd5\x862d 12345-345-5-14-1236-2
+always \x6cd5\x8a9e 12345-345-5-1256-4
+always \x6cef\x6c92 134-1456-4-134-126-5
+always \x6d0b\x76f8 46-2-15-46-5
+always \x6d0b\x884c 46-2-1235-1346-2
+always \x6d3b\x585e 1235-25-2-15-2456-3
+always \x6d77\x53c3 1235-2456-4-24-136-3
+always \x6d77\x96e3 1235-2456-4-1345-1236-5
+always \x6d88\x9577 15-246-3-1-1346-4
+always \x6dd6\x7d04 12-25-5-236-3
+always \x6de4\x585e 1256-3-15-2346-5
+always \x6df1\x60e1 24-136-3-34-5
+always \x6df1\x66f4 24-136-3-13-13456-3
+always \x6df1\x7701 24-136-3-15-13456-4
+always \x6df7\x4e82 1235-123456-4-14-12456-5
+always \x6df7\x6c34 1235-123456-2-24-1246-4
+always \x6df7\x6dc6 1235-123456-4-246-2
+always \x6df7\x6fc1 1235-123456-2-1-25-2
+always \x6df9\x6c92 2345-3-134-126-5
+always \x6e21\x5047 145-34-5-13-23456-5
+always \x6e23\x5b50 1-345-3-125-156-1
+always \x6e2c\x5ea6 245-2346-5-145-25-5
+always \x6e2c\x91cf 245-2346-5-14-46-2
+always \x6e38\x8aaa 234-2-24-1246-5
+always \x6e6e\x6c92 2345-3-134-126-5
+always \x6e6e\x6ec5 1456-3-134-346-5
+always \x6e6f\x6e6f 24-1346-3-24-1346-3
+always \x6ecb\x9577 125-156-3-1-1346-4
+always \x6ed1\x7a3d 13-34-4-13-16-3
+always \x6ef4\x7b54 145-16-3-145-345-3
+always \x6f02\x4eae 1234-246-5-14-46-5
+always \x6f02\x767d 1234-246-4-135-2456-2
+always \x6f0f\x5b50 14-12356-5-125-156-1
+always \x6f15\x904b 245-146-2-256-5
+always \x6f2b\x5929 134-1236-2-124-2345-3
+always \x6f8e\x6e43 1234-1356-3-1234-2456-5
+always \x6fc0\x5c07 13-16-3-13-46-5
+always \x6fdf\x5357 13-16-4-1345-1236-2
+always \x707d\x96e3 125-2456-3-1345-1236-5
+always \x70ae\x5f48 1234-146-5-145-1236-5
+always \x70ae\x88fd 1234-146-2-1-156-5
+always \x70b8\x5f48 1-345-5-145-1236-5
+always \x70b8\x91ac 1-345-2-13-46-5
+always \x70ba\x4e86 1246-5-14-2346-1
+always \x70ba\x4ec0 1246-5-24-2346-2
+always \x70ba\x4ed6 1246-5-124-345-3
+always \x70ba\x4f55 1246-5-1235-2346-2
+always \x70ba\x4f60 1246-5-1345-16-4
+always \x70ba\x570b 1246-5-13-25-2
+always \x70ba\x5979 1246-5-124-345-3
+always \x70ba\x59b3 1246-5-1345-16-4
+always \x70ba\x60a8 1246-5-1345-1456-2
+always \x70ba\x6c11 1246-5-134-1456-2
+always \x70ba\x864e 1246-5-1235-34-4
+always \x70d9\x5370 14-146-5-1456-5
+always \x70d9\x9435 14-146-5-124-346-4
+always \x70d9\x9905 14-146-5-135-13456-4
+always \x70f9\x8abf 1234-1356-3-124-246-2
+always \x710a\x63a5 1235-1236-5-13-346-3
+always \x710a\x689d 1235-1236-5-124-246-2
+always \x7121\x7684 34-2-145-16-5
+always \x7121\x7e2b 34-2-12345-1356-5
+always \x7126\x6fdf 13-246-3-1-156-4
+always \x715e\x4f4f 24-345-3-1-34-5
+always \x715e\x8eca 24-345-3-12-2346-3
+always \x7167\x61c9 1-146-5-13456-5
+always \x7167\x76f8 1-146-5-15-46-5
+always \x71ce\x539f 14-246-5-45-2
+always \x71d5\x4eac 2345-3-13-13456-3
+always \x71d5\x5b50 2345-5-125-156-1
+always \x71df\x9577 13456-2-1-1346-4
+always \x7210\x5b50 14-34-2-125-156-1
+always \x722a\x5b50 1-35-4-125-156-1
+always \x722a\x7259 1-146-4-23456-2
+always \x7247\x5b50 1234-2345-5-125-156-1
+always \x724c\x5b50 1234-2456-2-125-156-1
+always \x725b\x4ed4 1345-234-2-125-2456-4
+always \x7292\x52de 123-146-5-14-146-5
+always \x729b\x725b 134-146-2-1345-234-2
+always \x72af\x96e3 12345-1236-5-1345-1236-5
+always \x72c0\x5b50 1-456-5-125-156-1
+always \x72d7\x4ed4 13-12356-4-125-2456-4
+always \x72e9\x7375 24-12356-5-14-346-5
+always \x72fc\x85c9 14-1346-2-13-16-2
+always \x72fc\x865f 14-1346-2-1235-146-2
+always \x731b\x5c07 134-1356-4-13-46-5
+always \x731c\x5ea6 245-2456-3-145-25-5
+always \x7334\x5b50 1235-12356-2-125-156-1
+always \x7343\x5b50 145-2456-3-125-156-1
+always \x7345\x5b50 24-156-3-125-156-1
+always \x7368\x8655 145-34-2-12-34-4
+always \x7387\x5148 24-2356-5-15-2345-3
+always \x7387\x5175 24-2356-5-135-13456-3
+always \x7387\x540c 24-2356-5-124-12346-2
+always \x7387\x5718 24-2356-5-124-12456-2
+always \x7387\x5e2b 24-2356-5-24-156-3
+always \x7387\x6027 24-2356-5-15-13456-5
+always \x7387\x610f 24-2356-5-16-5
+always \x7387\x7136 24-2356-5-1245-1236-2
+always \x7387\x76f4 24-2356-5-1-156-2
+always \x7387\x771f 24-2356-5-1-136-3
+always \x7387\x773e 24-2356-5-1-12346-5
+always \x7387\x8ecd 24-2356-5-13-256-3
+always \x7387\x9818 24-2356-5-14-13456-4
+always \x738b\x51a0 456-2-13-12456-3
+always \x738b\x90fd 456-2-145-34-3
+always \x73a9\x5473 12456-5-1246-5
+always \x73a9\x5ffd 12456-5-1235-34-3
+always \x73a9\x6cd5 12456-5-12345-345-4
+always \x73e0\x5b50 1-34-3-125-156-1
+always \x73ed\x5b50 135-1236-3-125-156-1
+always \x73ed\x9577 135-1236-3-1-1346-4
+always \x7405\x90aa 14-1346-2-346-2
+always \x743a\x746f 12345-345-5-14-1236-2
+always \x745c\x4f3d 1256-2-13-23456-3
+always \x745f\x7e2e 15-2346-5-15-34-5
+always \x74a7\x9084 135-16-5-1235-12456-2
+always \x74f6\x585e 1234-13456-2-15-2456-3
+always \x74f6\x5b50 1234-13456-2-125-156-1
+always \x751a\x9ebc 24-2346-2-134-2346-1
+always \x751f\x9084 24-1356-3-1235-12456-2
+always \x751f\x9577 24-1356-3-1-1346-4
+always \x752f\x621a 1345-13456-2-245-16-3
+always \x755c\x7267 15-1256-5-134-34-5
+always \x755c\x7522 15-1256-5-12-1236-4
+always \x755c\x7a4d 15-1256-5-13-16-3
+always \x755c\x8b00 15-1256-5-134-12356-2
+always \x755c\x990a 15-1256-5-46-4
+always \x7576\x5dee 145-1346-3-12-2456-3
+always \x7576\x6389 145-1346-5-145-246-5
+always \x7576\x6a5f 145-1346-5-13-16-3
+always \x7576\x7576 145-1346-5-145-1346-5
+always \x7576\x7968 145-1346-5-1234-246-5
+always \x7576\x8eca 145-1346-3-13-1256-3
+always \x7576\x92ea 145-1346-5-1234-34-5
+always \x7599\x7629 13-2346-3-145-345-1
+always \x75b9\x5b50 1-136-4-125-156-1
+always \x75c0\x50c2 13-1256-3-14-12356-2
+always \x75c5\x5047 135-13456-5-13-23456-5
+always \x75db\x60e1 124-12346-5-34-5
+always \x75f1\x5b50 12345-356-5-125-156-1
+always \x760b\x5b50 12345-1356-3-125-156-1
+always \x7626\x524a 24-12356-5-15-236-3
+always \x7626\x5b50 24-12356-5-125-156-1
+always \x7638\x5b50 245-236-2-125-156-1
+always \x7656\x597d 1234-16-4-1235-146-5
+always \x7669\x5b50 14-2456-5-125-156-1
+always \x767c\x9084 12345-345-3-1235-12456-2
+always \x767c\x96e3 12345-345-3-1345-1236-5
+always \x767d\x5377 135-2456-2-13-45-5
+always \x767e\x4e58 135-2456-4-24-1356-5
+always \x767e\x4e86 135-2456-4-14-246-4
+always \x7687\x51a0 1235-456-2-13-12456-3
+always \x768b\x9676 13-146-3-246-2
+always \x76ae\x76f8 1234-16-2-15-46-5
+always \x76c6\x5b50 1234-136-2-125-156-1
+always \x76d2\x5b50 1235-2346-2-125-156-1
+always \x76e4\x5b50 1234-1236-2-125-156-1
+always \x76ee\x7684 134-34-5-145-16-5
+always \x76f4\x7387 1-156-2-24-2356-5
+always \x76f8\x4f4d 15-46-5-1246-5
+always \x76f8\x5055 15-46-3-13-346-3
+always \x76f8\x570b 15-46-5-13-25-2
+always \x76f8\x592b 15-46-5-12345-34-3
+always \x76f8\x61c9 15-46-3-13456-5
+always \x76f8\x6a5f 15-46-5-13-16-3
+always \x76f8\x7247 15-46-5-1234-2345-5
+always \x76f8\x7387 15-46-3-24-2356-5
+always \x76f8\x7a31 15-46-3-12-136-5
+always \x76f8\x7c3f 15-46-5-135-34-5
+always \x76f8\x8072 15-46-5-24-1356-3
+always \x76f8\x8655 15-46-3-12-34-4
+always \x76f8\x8853 15-46-5-24-34-5
+always \x76f8\x8c8c 15-46-5-134-146-5
+always \x76f8\x9762 15-46-5-134-2345-5
+always \x7701\x5206 24-1356-4-12345-136-5
+always \x7701\x5bdf 15-13456-4-12-345-2
+always \x7701\x601d 15-13456-4-15-156-3
+always \x7701\x609f 15-13456-4-34-5
+always \x7701\x89aa 15-13456-4-245-1456-3
+always \x7701\x9577 24-1356-4-1-1346-4
+always \x770b\x4e2d 123-1236-5-1-12346-5
+always \x770b\x5b88 123-1236-3-24-12356-4
+always \x770b\x5bb6 123-1236-3-13-23456-3
+always \x770b\x76f8 123-1236-5-15-46-5
+always \x770b\x7ba1 123-1236-3-13-12456-4
+always \x770b\x8b77 123-1236-3-1235-34-5
+always \x770b\x9580 123-1236-3-134-136-2
+always \x771f\x7387 1-136-3-24-2356-5
+always \x771f\x76f8 1-136-3-15-46-5
+always \x7738\x5b50 134-12356-2-125-156-1
+always \x773c\x6688 2345-4-256-5
+always \x773c\x7736 2345-4-123-456-3
+always \x7761\x8457 24-1246-5-1-146-2
+always \x7761\x89ba 24-1246-5-13-246-5
+always \x7763\x7387 145-34-3-24-2356-5
+always \x778e\x5b50 15-23456-3-125-156-1
+always \x77ad\x671b 14-246-5-456-5
+always \x77e5\x4e86 1-156-3-14-246-4
+always \x77ee\x5b50 2456-4-125-156-1
+always \x77f3\x5b50 24-156-2-125-156-1
+always \x77f3\x8108 24-156-2-134-2456-5
+always \x7802\x5b50 24-345-3-125-156-1
+always \x780d\x4f10 123-1236-4-12345-345-3
+always \x7832\x5f48 1234-146-5-145-1236-5
+always \x7834\x76f8 1234-126-5-15-46-5
+always \x7891\x5e16 135-356-3-124-346-5
+always \x789f\x5b50 145-346-2-125-156-1
+always \x78bc\x5b50 134-345-4-125-156-1
+always \x78c5\x7921 1234-1346-3-135-126-2
+always \x78e8\x96e3 134-126-2-1345-1236-5
+always \x7926\x8108 123-456-5-134-2456-5
+always \x793e\x9577 24-2346-5-1-1346-4
+always \x7957\x6709 1-156-4-234-4
+always \x7957\x80fd 1-156-4-1345-1356-2
+always \x7957\x8981 1-156-4-246-5
+always \x795e\x7947 24-136-2-245-16-2
+always \x7968\x5b50 1234-246-5-125-156-1
+always \x7981\x4e0d 13-1456-3-135-34-5
+always \x798f\x76f8 12345-34-2-15-46-5
+always \x79aa\x8b93 24-1236-5-1245-1346-5
+always \x79ae\x6a02 14-16-4-236-5
+always \x79bf\x5b50 124-34-3-125-156-1
+always \x79d1\x9577 123-2346-3-1-1346-4
+always \x7a2e\x690d 1-12346-5-1-156-2
+always \x7a2e\x6a39 1-12346-5-24-34-5
+always \x7a31\x5fc3 12-136-5-15-1456-3
+always \x7a31\x610f 12-136-5-16-5
+always \x7a3b\x5b50 145-146-5-125-156-1
+always \x7a3f\x5b50 13-146-4-125-156-1
+always \x7a40\x5b50 13-34-4-125-156-1
+always \x7a4d\x7d2f 13-16-3-14-356-4
+always \x7a69\x7576 123456-4-145-1346-5
+always \x7a7a\x5730 123-12346-5-145-16-5
+always \x7a7a\x683c 123-12346-5-13-2346-2
+always \x7a7a\x9592 123-12346-5-15-2345-2
+always \x7a7a\x9699 123-12346-5-15-16-5
+always \x7a7a\x96e3 123-12346-3-1345-1236-5
+always \x7a7a\x984d 123-12346-5-2346-2
+always \x7a7f\x8457 12-12456-3-1-25-2
+always \x7a97\x5b50 12-456-3-125-156-1
+always \x7aae\x76f8 245-235-2-15-46-5
+always \x7aaf\x5b50 246-2-125-156-1
+always \x7ad9\x9577 1-1236-5-1-1346-4
+always \x7b1b\x5b50 145-16-2-125-156-1
+always \x7b26\x61c9 12345-34-2-13456-5
+always \x7b46\x4f10 135-16-4-12345-345-3
+always \x7b49\x5206 145-1356-4-12345-136-5
+always \x7b54\x61c9 145-345-3-13456-5
+always \x7b54\x7406 145-345-3-14-16-4
+always \x7b54\x7b54 145-345-3-145-345-3
+always \x7b56\x61c9 245-2346-5-13456-5
+always \x7b77\x5b50 123-2356-5-125-156-1
+always \x7ba1\x5b50 13-12456-4-125-156-1
+always \x7ba1\x6a02 13-12456-4-236-5
+always \x7bad\x93c3 13-2345-5-245-34-5
+always \x7bb1\x5b50 15-46-3-125-156-1
+always \x7be9\x5b50 24-2456-3-125-156-1
+always \x7c1e\x98df 145-1236-3-15-156-5
+always \x7c2a\x5b50 125-1236-3-125-156-1
+always \x7c3d\x7f72 245-2345-3-24-34-5
+always \x7c3e\x5b50 14-2345-2-125-156-1
+always \x7c3f\x5b50 135-34-5-125-156-1
+always \x7c43\x5b50 14-1236-2-125-156-1
+always \x7c4d\x6c92 13-16-2-134-126-5
+always \x7c60\x5b50 14-12346-2-125-156-1
+always \x7c73\x884c 134-16-4-1235-1346-2
+always \x7c97\x7377 245-34-3-123-456-5
+always \x7c97\x7387 245-34-3-24-2356-5
+always \x7c98\x8cbc 1-1236-3-124-346-3
+always \x7cbd\x5b50 125-12346-5-125-156-1
+always \x7cd9\x7c73 245-146-5-134-16-4
+always \x7cf0\x5b50 124-12456-2-125-156-1
+always \x7d00\x50b3 13-16-5-1-12456-5
+always \x7d13\x96e3 24-34-3-1345-1236-5
+always \x7d20\x884c 15-34-5-15-13456-5
+always \x7d2f\x4e16 14-356-4-24-156-5
+always \x7d2f\x52a0 14-356-4-13-23456-3
+always \x7d2f\x5375 14-356-4-14-12456-4
+always \x7d2f\x5b98 14-356-4-13-12456-3
+always \x7d2f\x65e5 14-356-4-1245-156-5
+always \x7d2f\x6708 14-356-4-236-5
+always \x7d2f\x6b21 14-356-4-245-156-5
+always \x7d2f\x72af 14-356-4-12345-1236-5
+always \x7d2f\x7a4d 14-356-4-13-16-3
+always \x7d2f\x7d2f 14-356-4-14-356-4
+always \x7d2f\x8d05 14-356-4-1-1246-5
+always \x7d2f\x9032 14-356-4-13-1456-5
+always \x7d42\x4e86 1-12346-3-14-246-4
+always \x7d44\x9577 125-34-4-1-1346-4
+always \x7d50\x5be6 13-346-3-24-156-2
+always \x7d50\x5df4 13-346-3-135-345-3
+always \x7d66\x4ed8 13-16-4-12345-34-5
+always \x7d68\x5462 1245-12346-2-1345-16-2
+always \x7d71\x7387 124-12346-4-24-2356-5
+always \x7d93\x50b3 13-13456-3-1-12456-5
+always \x7d93\x8108 13-13456-3-134-2456-5
+always \x7db2\x5b50 456-4-125-156-1
+always \x7db8\x5dfe 13-12456-3-13-1456-3
+always \x7de3\x5206 45-2-12345-136-5
+always \x7de8\x8457 135-2345-3-1-34-5
+always \x7e23\x5206 15-2345-5-12345-136-5
+always \x7e23\x9577 15-2345-5-1-1346-4
+always \x7e2b\x9699 12345-1356-5-15-16-5
+always \x7e31\x6a6b 125-12346-3-1235-1356-2
+always \x7e31\x8cab 125-12346-3-13-12456-5
+always \x7e3d\x5f97 125-12346-4-145-356-4
+always \x7e3d\x884c 125-12346-4-1235-1346-2
+always \x7e3d\x9577 125-12346-4-1-1346-4
+always \x7e43\x5b50 135-1356-3-125-156-1
+always \x7e69\x5b50 24-1356-2-125-156-1
+always \x7e8c\x5047 15-1256-5-13-23456-5
+always \x7f3a\x7a7a 245-236-3-123-12346-5
+always \x7f48\x5b50 124-1236-2-125-156-1
+always \x7f50\x5b50 13-12456-5-125-156-1
+always \x7f69\x5b50 1-146-5-125-156-1
+always \x7f72\x540d 24-34-5-134-13456-2
+always \x7f79\x96e3 14-16-2-1345-1236-5
+always \x7f9e\x602f 15-234-3-245-236-5
+always \x7f9e\x60e1 15-234-3-34-5
+always \x7fa9\x884c 16-5-15-13456-5
+always \x7ff9\x695a 245-246-2-12-34-4
+always \x7ff9\x9996 245-246-2-24-12356-4
+always \x8001\x5c07 14-146-4-13-46-5
+always \x8001\x5c11 14-146-4-24-146-5
+always \x8003\x5377 123-146-4-13-45-5
+always \x8003\x91cf 123-146-4-14-46-2
+always \x8015\x7a2e 13-1356-3-1-12346-5
+always \x8017\x5b50 1235-146-5-125-156-1
+always \x805e\x9054 123456-5-145-345-2
+always \x8072\x6a02 24-1356-3-236-5
+always \x8077\x5206 1-156-2-12345-136-5
+always \x807d\x5929 124-13456-5-124-2345-3
+always \x807d\x5dee 124-13456-3-12-2456-3
+always \x8086\x61c9 15-156-5-13456-5
+always \x8098\x5b50 1-12356-4-125-156-1
+always \x809a\x5b50 145-34-5-125-156-1
+always \x80a1\x5206 13-34-4-12345-136-5
+always \x80d6\x5b50 1234-1346-5-125-156-1
+always \x80da\x5b50 1234-356-3-125-156-1
+always \x80f0\x5b50 16-2-125-156-1
+always \x8108\x5bec 134-2456-5-123-12456-3
+always \x8108\x5e45 134-2456-5-12345-34-2
+always \x8108\x640f 134-2456-5-135-126-2
+always \x8108\x7406 134-2456-5-14-16-4
+always \x8108\x78bc 134-2456-5-134-345-4
+always \x8108\x7d61 134-2456-5-14-25-5
+always \x8108\x983b 134-2456-5-1234-1456-2
+always \x8116\x5b50 135-126-2-125-156-1
+always \x8166\x5b50 1345-146-4-125-156-1
+always \x8178\x5b50 12-1346-2-125-156-1
+always \x817f\x5b50 124-1246-4-125-156-1
+always \x8180\x5b50 135-1346-4-125-156-1
+always \x8180\x80f1 1234-1346-2-13-456-3
+always \x8180\x81c2 135-1346-4-135-16-5
+always \x819c\x62dc 134-126-2-135-2456-5
+always \x81bd\x5b50 145-1236-4-125-156-1
+always \x81bd\x602f 145-1236-4-245-236-5
+always \x81c6\x5ea6 16-5-145-25-5
+always \x81e5\x92ea 25-5-1234-34-5
+always \x81e7\x5426 125-1346-3-1234-16-4
+always \x81e8\x6d2e 14-1456-2-246-2
+always \x81e8\x96e3 14-1456-2-1345-1236-5
+always \x81ea\x50b3 125-156-5-1-12456-5
+always \x81ea\x7701 125-156-5-15-13456-4
+always \x81ea\x7d66 125-156-5-13-16-4
+always \x8205\x5b50 13-234-5-125-156-1
+always \x8208\x5473 15-13456-5-1246-5
+always \x8208\x7dfb 15-13456-5-1-156-5
+always \x8208\x8208 15-13456-5-15-13456-5
+always \x8208\x8da3 15-13456-5-245-1256-5
+always \x820a\x90fd 13-234-5-145-34-3
+always \x820c\x82d4 24-2346-2-124-2456-3
+always \x820d\x68c4 24-2346-4-245-16-5
+always \x8216\x5f35 1234-34-3-1-1346-3
+always \x8216\x6392 1234-34-3-1234-2456-2
+always \x822c\x82e5 135-126-3-1245-2346-4
+always \x8239\x9577 12-12456-2-1-1346-4
+always \x8239\x96e3 12-12456-2-1345-1236-5
+always \x8266\x9577 13-2345-5-1-1346-4
+always \x826f\x5c07 14-46-2-13-46-5
+always \x8272\x76f8 15-2346-5-15-46-5
+always \x82b1\x51a0 1235-35-3-13-12456-3
+always \x82e5\x5e79 1245-25-5-13-1236-3
+always \x82e6\x96e3 123-34-4-1345-1236-5
+always \x82f1\x6cd5 13456-3-12345-345-5
+always \x8304\x5b50 245-346-2-125-156-1
+always \x8305\x585e 134-146-2-15-2346-5
+always \x8349\x7387 245-146-4-24-2356-5
+always \x8378\x85ba 135-16-2-245-16-2
+always \x83f2\x8584 12345-356-4-135-126-2
+always \x840e\x7e2e 1246-3-15-25-3
+always \x842c\x4e58 12456-5-24-1356-5
+always \x842c\x5377 12456-5-13-45-5
+always \x843d\x96e3 14-25-5-1345-1236-5
+always \x843d\x9b44 14-25-5-124-25-5
+always \x8449\x5b50 346-5-125-156-1
+always \x8449\x8108 346-5-134-2456-5
+always \x8457\x4f5c 1-34-5-125-25-5
+always \x8457\x529b 1-25-2-14-16-5
+always \x8457\x540d 1-34-5-134-13456-2
+always \x8457\x5be6 1-25-2-24-156-2
+always \x8457\x5e8a 1-25-2-12-456-2
+always \x8457\x6025 1-146-3-13-16-2
+always \x8457\x60f3 1-146-2-15-46-4
+always \x8457\x614c 1-146-2-1235-456-3
+always \x8457\x624b 1-25-2-24-12356-4
+always \x8457\x66f8 1-34-5-24-34-3
+always \x8457\x6709 1-34-5-234-4
+always \x8457\x68cb 1-25-2-245-16-2
+always \x8457\x6dbc 1-146-3-14-46-2
+always \x8457\x706b 1-146-2-1235-25-4
+always \x8457\x7a31 1-34-5-12-1356-3
+always \x8457\x8005 1-34-5-1-2346-4
+always \x8457\x8272 1-25-2-15-2346-5
+always \x8457\x843d 1-146-2-14-25-5
+always \x8457\x8457 1-25-2-1-2346-1
+always \x8457\x8863 1-25-2-16-3
+always \x8457\x8ff0 1-34-5-24-34-5
+always \x8457\x91cd 1-25-2-1-12346-5
+always \x8457\x9678 1-25-2-14-34-5
+always \x8499\x96e3 134-1356-2-1345-1236-5
+always \x84c6\x5b50 15-16-2-125-156-1
+always \x84cb\x5b50 13-2456-5-125-156-1
+always \x84fc\x83aa 14-34-5-2346-2
+always \x8584\x8377 135-126-5-1235-2346-2
+always \x8584\x884c 135-126-2-15-13456-5
+always \x85c9\x85c9 13-16-2-13-16-2
+always \x85e4\x5b50 124-1356-2-125-156-1
+always \x85e5\x884c 246-5-1235-1346-2
+always \x85e5\x92ea 246-5-1234-34-5
+always \x860a\x85cf 256-5-245-1346-2
+always \x8655\x4e8b 12-34-4-24-156-5
+always \x8655\x4e8e 12-34-4-1256-2
+always \x8655\x5206 12-34-4-12345-136-5
+always \x8655\x5883 12-34-4-13-13456-5
+always \x8655\x65bc 12-34-4-1256-2
+always \x8655\x7406 12-34-4-14-16-4
+always \x8655\x7f70 12-34-4-12345-345-2
+always \x8655\x9577 12-34-5-1-1346-4
+always \x865f\x54ed 1235-146-2-123-34-3
+always \x868a\x5b50 123456-2-125-156-1
+always \x86e4\x868c 13-2346-4-135-1346-5
+always \x86e4\x86a7 13-2346-4-13-346-5
+always \x86e4\x870a 13-2346-4-14-16-5
+always \x86fb\x5316 124-1246-5-1235-35-5
+always \x8766\x87c6 1235-345-2-134-345-1
+always \x8768\x5b50 24-156-3-125-156-1
+always \x87ec\x86fb 12-1236-2-124-1246-5
+always \x87f2\x5b50 12-12346-2-125-156-1
+always \x883b\x6a6b 134-1236-2-1235-1356-5
+always \x8840\x6688 15-346-4-256-5
+always \x8840\x9084 15-346-4-1235-12456-2
+always \x884c\x4e1a 1235-1346-2-346-5
+always \x884c\x4f0d 1235-1346-2-34-4
+always \x884c\x5217 1235-1346-2-14-346-5
+always \x884c\x54e1 1235-1346-2-45-2
+always \x884c\x5bb6 1235-1346-2-13-23456-3
+always \x884c\x5eab 1235-1346-2-123-34-5
+always \x884c\x60c5 1235-1346-2-245-13456-2
+always \x884c\x6578 1235-1346-2-24-34-5
+always \x884c\x6703 1235-1346-2-1235-1246-5
+always \x884c\x696d 1235-1346-2-346-5
+always \x884c\x6b3e 1235-1346-2-123-12456-4
+always \x884c\x72c0 15-13456-5-1-456-5
+always \x884c\x865f 1235-1346-2-1235-146-5
+always \x884c\x884c 1235-1346-2-15-13456-2
+always \x884c\x898f 1235-1346-2-13-1246-3
+always \x884c\x8a71 1235-1346-2-1235-35-5
+always \x884c\x9593 1235-1346-2-13-2345-3
+always \x885d\x51a0 12-12346-3-13-12456-3
+always \x8861\x91cf 1235-1356-2-14-46-2
+always \x8863\x51a0 16-3-13-12456-3
+always \x8863\x8457 16-3-1-25-2
+always \x8863\x88f3 16-3-24-1346-1
+always \x8868\x7387 135-246-4-24-2356-5
+always \x8868\x76f8 135-246-4-15-46-5
+always \x888b\x5b50 145-2456-5-125-156-1
+always \x8896\x5b50 15-234-5-125-156-1
+always \x88ab\x5b50 135-356-5-125-156-1
+always \x88c1\x5ea6 245-2456-2-145-25-5
+always \x88c1\x91cf 245-2456-2-14-46-2
+always \x88c2\x7e2b 14-346-5-12345-1356-5
+always \x88d9\x5b50 245-256-2-125-156-1
+always \x88dc\x5047 135-34-4-13-23456-5
+always \x88dc\x7d66 135-34-4-13-16-4
+always \x88dc\x9084 135-34-4-1235-12456-2
+always \x88dc\x95d5 135-34-4-245-236-3
+always \x88e1\x5b50 14-16-4-125-156-1
+always \x8902\x5b50 13-35-5-125-156-1
+always \x8932\x5b50 123-34-5-125-156-1
+always \x893b\x73a9 15-346-5-12456-5
+always \x896a\x5b50 35-5-125-156-1
+always \x897f\x6a02 15-16-3-236-5
+always \x8981\x633e 246-3-15-346-2
+always \x8981\x6c42 246-3-245-234-2
+always \x8981\x8105 246-3-15-346-2
+always \x8986\x6821 12345-34-5-13-246-5
+always \x8986\x6c92 12345-34-5-134-126-5
+always \x89aa\x5bb6 245-13456-5-13-23456-3
+always \x8a0e\x4f10 124-146-4-12345-345-3
+always \x8a3a\x8108 1-136-4-134-2456-5
+always \x8a50\x964d 1-345-5-15-46-2
+always \x8a55\x50b3 1234-13456-2-1-12456-5
+always \x8a55\x91cf 1234-13456-2-14-46-2
+always \x8a66\x5377 24-156-5-13-45-5
+always \x8a72\x884c 13-2456-3-1235-1346-2
+always \x8a86\x9a19 123-456-3-1234-2345-5
+always \x8aaa\x5ba2 24-1246-5-123-2346-5
+always \x8aaa\x670d 24-1246-5-12345-34-2
+always \x8abf\x505c 124-246-2-124-13456-2
+always \x8abf\x5408 124-246-2-1235-2346-2
+always \x8abf\x5b50 145-246-5-125-156-1
+always \x8abf\x6559 124-246-2-13-246-5
+always \x8abf\x6574 124-246-2-1-1356-4
+always \x8abf\x7bc0 124-246-2-13-346-2
+always \x8abf\x89e3 124-246-2-13-346-4
+always \x8abf\x9577 124-246-2-1-1346-4
+always \x8abf\x990a 124-246-2-46-4
+always \x8acb\x5047 245-13456-4-13-23456-5
+always \x8ad6\x8457 14-123456-5-1-34-5
+always \x8ad6\x8a9e 14-123456-2-1256-4
+always \x8b14\x7a31 1345-236-5-12-1356-3
+always \x8b1d\x6713 15-346-5-124-246-5
+always \x8b3e\x7f75 134-1236-5-134-345-5
+always \x8b58\x76f8 24-156-5-15-46-5
+always \x8b5c\x5b50 1234-34-4-125-156-1
+always \x8b70\x8655 16-5-12-34-4
+always \x8b70\x9577 16-5-1-1346-4
+always \x8b8a\x66f4 135-2345-5-13-1356-3
+always \x8b8a\x76f8 135-2345-5-15-46-5
+always \x8c46\x5b50 145-12356-5-125-156-1
+always \x8c46\x8c49 145-12356-5-12-156-4
+always \x8c6c\x4ed4 1-34-3-125-2456-4
+always \x8c6c\x5708 1-34-3-13-45-5
+always \x8c79\x5b50 135-146-5-125-156-1
+always \x8c8c\x76f8 134-146-5-15-46-5
+always \x8ca0\x7d2f 12345-34-5-14-356-4
+always \x8ca0\x8377 12345-34-5-1235-2346-5
+always \x8ca1\x76f8 245-2456-2-15-46-5
+always \x8ca1\x9577 245-2456-2-1-1346-4
+always \x8ca9\x5b50 12345-1236-5-125-156-1
+always \x8cde\x73a9 24-1346-4-12456-5
+always \x8ce2\x76f8 15-2345-2-15-46-5
+always \x8d74\x96e3 12345-34-5-1345-1236-5
+always \x8d77\x5b50 245-16-4-125-156-1
+always \x8ddb\x5b50 135-126-4-125-156-1
+always \x8def\x5b50 14-34-5-125-156-1
+always \x8df3\x884c 124-246-5-1235-1346-2
+always \x8e09\x8e4c 14-46-5-245-46-5
+always \x8e44\x5b50 124-16-2-125-156-1
+always \x8e4a\x8e7a 15-16-3-245-246-5
+always \x8eab\x5206 24-136-3-12345-136-5
+always \x8eab\x5b50 24-136-3-125-156-1
+always \x8eca\x5b50 12-2346-3-125-156-1
+always \x8eca\x884c 12-2346-3-1235-1346-2
+always \x8eca\x9577 12-2346-3-1-1346-4
+always \x8ecb\x6232 13-345-3-15-16-5
+always \x8ecd\x6a02 13-256-3-236-5
+always \x8ecd\x9577 13-256-3-1-1346-4
+always \x8f15\x7387 245-13456-3-24-2356-5
+always \x8f29\x5206 135-356-5-12345-136-5
+always \x8f29\x5b50 135-356-5-125-156-1
+always \x8f2a\x5b50 14-123456-2-125-156-1
+always \x8fae\x5b50 135-2345-5-125-156-1
+always \x8fb1\x6c92 1245-34-5-134-126-5
+always \x8fd4\x9084 12345-1236-4-1235-12456-2
+always \x9000\x9084 124-1246-5-1235-12456-2
+always \x9002\x5408 24-156-5-1235-2346-2
+always \x9003\x96e3 124-146-2-1345-1236-5
+always \x9023\x9577 14-2345-2-1-1346-4
+always \x903e\x5206 1256-2-12345-136-5
+always \x9047\x96e3 1256-5-1345-1236-5
+always \x904a\x8aaa 234-2-24-1246-5
+always \x904e\x5206 13-25-5-12345-136-5
+always \x904e\x7576 13-25-5-145-1346-5
+always \x9053\x89c0 145-146-5-13-12456-5
+always \x905b\x9054 14-234-3-145-345-3
+always \x9063\x5c07 245-2345-4-13-46-5
+always \x9069\x61c9 24-156-5-13456-5
+always \x9069\x7576 24-156-5-145-1346-5
+always \x906d\x96e3 125-146-3-1345-1236-5
+always \x9077\x90fd 245-2345-3-145-34-3
+always \x907f\x96e3 135-16-5-1345-1236-5
+always \x9084\x4fd7 1235-12456-2-15-34-2
+always \x9084\x50f9 1235-12456-2-13-23456-5
+always \x9084\x539f 1235-12456-2-45-2
+always \x9084\x624b 1235-12456-2-24-12356-4
+always \x9084\x672c 1235-12456-2-135-136-4
+always \x9084\x7259 1235-12456-2-23456-2
+always \x9084\x773c 1235-12456-2-2345-4
+always \x9084\x79ae 1235-12456-2-14-16-4
+always \x9084\x81f3 1235-12456-2-1-156-5
+always \x9084\x9109 1235-12456-2-15-46-3
+always \x9084\x9858 1235-12456-2-45-5
+always \x9084\x9b42 1235-12456-2-1235-123456-2
+always \x908a\x5fbc 135-2345-3-13-246-5
+always \x90a3\x4e48 1345-345-5-134-2346-1
+always \x90a3\x500b 1345-345-4-13-2346-5
+always \x90a3\x582a 1345-345-4-123-1236-3
+always \x90a3\x6709 1345-345-4-234-4
+always \x90a3\x80fd 1345-345-4-1345-1356-2
+always \x90aa\x884c 15-346-2-15-13456-5
+always \x90e1\x9577 13-256-5-1-1346-4
+always \x90e2\x90fd 13456-4-145-34-3
+always \x90e8\x5206 135-34-5-12345-136-5
+always \x90e8\x5c07 135-34-5-13-46-5
+always \x90e8\x9577 135-34-5-1-1346-4
+always \x90f5\x5dee 234-2-12-2456-3
+always \x90fd\x5175 145-34-3-135-13456-3
+always \x90fd\x53f8 145-34-3-15-156-3
+always \x90fd\x57ce 145-34-3-12-1356-2
+always \x90fd\x5bdf 145-34-3-12-345-2
+always \x90fd\x5c09 145-34-3-1246-5
+always \x90fd\x5e02 145-34-3-24-156-5
+always \x90fd\x5ec1 145-34-3-245-2346-5
+always \x90fd\x723e 145-34-3-156-4
+always \x90fd\x7763 145-34-3-145-34-3
+always \x90fd\x7d71 145-34-3-124-12346-4
+always \x90fd\x8ecd 145-34-3-13-256-3
+always \x90fd\x9091 145-34-3-16-5
+always \x9109\x5c0e 15-46-5-145-146-4
+always \x9109\x9577 15-46-3-1-1346-4
+always \x914b\x9577 245-234-2-1-1346-4
+always \x914d\x6a02 1234-356-5-236-5
+always \x914d\x7d66 1234-356-5-13-16-4
+always \x916c\x61c9 12-12356-2-13456-5
+always \x91cb\x5377 24-156-5-13-45-5
+always \x91cc\x9577 14-16-4-1-1346-4
+always \x91cd\x4e5d 12-12346-2-13-234-4
+always \x91cd\x4f30 12-12346-2-13-34-3
+always \x91cd\x4f86 12-12346-2-14-2456-2
+always \x91cd\x4fee 12-12346-2-15-234-3
+always \x91cd\x5144 12-12346-2-15-235-3
+always \x91cd\x5149 12-12346-2-13-456-3
+always \x91cd\x5165 12-12346-2-1245-34-5
+always \x91cd\x520a 12-12346-2-123-1236-3
+always \x91cd\x5370 12-12346-2-1456-5
+always \x91cd\x56de 12-12346-2-1235-1246-2
+always \x91cd\x570d 12-12346-2-1246-2
+always \x91cd\x594f 12-12346-2-125-12356-5
+always \x91cd\x5a5a 12-12346-2-1235-123456-3
+always \x91cd\x5b6b 12-12346-2-15-123456-3
+always \x91cd\x5b9a 12-12346-2-145-13456-5
+always \x91cd\x5beb 12-12346-2-15-346-4
+always \x91cd\x5efa 12-12346-2-13-2345-5
+always \x91cd\x5fa9 12-12346-2-12345-34-5
+always \x91cd\x6176 12-12346-2-245-13456-5
+always \x91cd\x6284 12-12346-2-12-146-3
+always \x91cd\x632f 12-12346-2-1-136-5
+always \x91cd\x6574 12-12346-2-1-1356-4
+always \x91cd\x65b0 12-12346-2-15-1456-3
+always \x91cd\x6d0b 12-12346-2-46-2
+always \x91cd\x6e2c 12-12346-2-245-2346-5
+always \x91cd\x6f14 12-12346-2-2345-4
+always \x91cd\x7372 12-12346-2-1235-25-5
+always \x91cd\x73fe 12-12346-2-15-2345-5
+always \x91cd\x7533 12-12346-2-24-136-3
+always \x91cd\x758a 12-12346-2-145-346-2
+always \x91cd\x7d44 12-12346-2-125-34-4
+always \x91cd\x7f6e 12-12346-2-1-156-5
+always \x91cd\x8003 12-12346-2-123-146-4
+always \x91cd\x8907 12-12346-2-12345-34-5
+always \x91cd\x8a2d 12-12346-2-24-2346-5
+always \x91cd\x8e48 12-12346-2-145-146-5
+always \x91cd\x8fd4 12-12346-2-12345-1236-4
+always \x91cd\x8ff0 12-12346-2-24-34-5
+always \x91cd\x9022 12-12346-2-12345-1356-2
+always \x91cd\x91cd 12-12346-2-12-12346-2
+always \x91cd\x967d 12-12346-2-46-2
+always \x91d1\x5b50 13-1456-3-125-156-1
+always \x91d8\x5b50 145-13456-3-125-156-1
+always \x91e6\x5b50 123-12356-5-125-156-1
+always \x9245\x8457 13-1256-5-1-34-5
+always \x9257\x5b50 245-2345-2-125-156-1
+always \x9264\x5b50 13-12356-3-125-156-1
+always \x9280\x5b50 1456-2-125-156-1
+always \x9280\x884c 1456-2-1235-1346-2
+always \x92b7\x5047 15-246-3-13-23456-5
+always \x92ea\x4f4d 1234-34-5-1246-5
+always \x92ea\x5b50 1234-34-5-125-156-1
+always \x92ea\x9762 1234-34-5-134-2345-5
+always \x92f8\x5b50 13-1256-5-125-156-1
+always \x9320\x5b50 145-13456-5-125-156-1
+always \x934a\x5b50 14-2345-5-125-156-1
+always \x934b\x5b50 13-25-3-125-156-1
+always \x9397\x5f48 245-46-3-145-1236-5
+always \x939a\x5b50 12-1246-2-125-156-1
+always \x93ac\x4eac 1235-146-5-13-13456-3
+always \x93e1\x5b50 13-13456-5-125-156-1
+always \x9435\x9a0e 124-346-4-13-16-5
+always \x9470\x5319 246-5-24-156-4
+always \x9472\x5d4c 15-46-3-245-2345-5
+always \x947d\x6212 125-12456-5-13-346-5
+always \x947d\x77f3 125-12456-5-24-156-2
+always \x947f\x5b50 125-146-2-125-156-1
+always \x9577\x4f7f 1-1346-4-24-156-4
+always \x9577\x5047 12-1346-2-13-23456-5
+always \x9577\x50cf 1-1346-4-15-46-5
+always \x9577\x5144 1-1346-4-15-235-3
+always \x9577\x5927 1-1346-4-145-345-5
+always \x9577\x5973 1-1346-4-1345-1256-4
+always \x9577\x5b50 1-1346-4-125-156-4
+always \x9577\x5b6b 1-1346-4-15-123456-3
+always \x9577\x5b98 1-1346-4-13-12456-3
+always \x9577\x5e7c 1-1346-4-234-5
+always \x9577\x623f 1-1346-4-12345-1346-2
+always \x9577\x7537 1-1346-4-1345-1236-2
+always \x9577\x8001 1-1346-4-14-146-4
+always \x9577\x8005 1-1346-4-1-2346-4
+always \x9577\x8457 1-1346-4-1-2346-1
+always \x9577\x865f 12-1346-2-1235-146-2
+always \x9577\x8f29 1-1346-4-135-356-5
+always \x9577\x9032 1-1346-4-13-1456-5
+always \x9580\x5b50 134-136-2-125-156-1
+always \x9580\x6846 134-136-2-123-456-5
+always \x9580\x6abb 134-136-2-123-1236-4
+always \x9580\x7e2b 134-136-2-12345-1356-5
+always \x9589\x585e 135-16-5-15-2346-5
+always \x958b\x8869 123-2456-3-12-345-5
+always \x9592\x6563 15-2345-2-15-1236-4
+always \x9592\x7a7a 15-2345-2-123-12346-5
+always \x9593\x63a5 13-2345-5-13-346-3
+always \x9593\x65b7 13-2345-5-145-12456-5
+always \x9593\x6b47 13-2345-5-15-346-3
+always \x9593\x8adc 13-2345-5-145-346-2
+always \x9593\x9694 13-2345-5-13-2346-2
+always \x9593\x9699 13-2345-5-15-16-5
+always \x95a3\x5b50 13-2346-2-125-156-1
+always \x95b1\x5377 236-5-13-45-5
+always \x95d5\x5931 245-236-3-24-156-3
+always \x95d5\x5982 245-236-3-1245-34-2
+always \x95d5\x6f0f 245-236-3-14-12356-5
+always \x95d5\x7591 245-236-3-16-2
+always \x963b\x5687 125-34-4-1235-2346-5
+always \x963b\x585e 125-34-4-15-2346-5
+always \x963f\x4fd7 2346-3-15-34-2
+always \x963f\x8adb 2346-3-1256-2
+always \x9644\x548c 12345-34-5-1235-2346-5
+always \x9644\x8457 12345-34-5-1-25-2
+always \x964d\x4f0f 15-46-2-12345-34-2
+always \x964d\x5c07 15-46-2-13-46-5
+always \x964d\x6575 15-46-2-145-16-2
+always \x964d\x66f8 15-46-2-24-34-3
+always \x964d\x670d 15-46-2-12345-34-2
+always \x964d\x9f8d 15-46-2-14-12346-2
+always \x9662\x5b50 45-5-125-156-1
+always \x9662\x9577 45-5-1-1346-4
+always \x9663\x5b50 1-136-5-125-156-1
+always \x968a\x9577 145-1246-5-1-1346-4
+always \x9690\x85cf 1456-4-245-1346-2
+always \x96a8\x8208 15-1246-2-15-13456-5
+always \x96b1\x6c92 1456-4-134-126-5
+always \x96b1\x85cf 1456-4-245-1346-2
+always \x96c5\x6a02 23456-4-236-5
+always \x96d9\x91cd 24-456-3-12-12346-2
+always \x96e2\x9593 14-16-2-13-2345-5
+always \x96e3\x5730 1345-1236-5-145-16-5
+always \x96e3\x6c11 1345-1236-5-134-1456-2
+always \x96e3\x80f8 1345-1236-5-15-235-3
+always \x96ea\x8304 15-236-4-13-23456-3
+always \x96fb\x710a 145-2345-5-1235-1236-5
+always \x9732\x767d 14-12356-5-135-2456-2
+always \x9732\x76f8 14-12356-5-15-46-5
+always \x9732\x81c9 14-12356-5-14-2345-4
+always \x9732\x9762 14-12356-5-134-2345-5
+always \x9756\x96e3 13-13456-5-1345-1236-5
+always \x975c\x8108 13-13456-5-134-2456-5
+always \x975e\x5206 12345-356-3-12345-136-5
+always \x975e\x96e3 12345-356-3-1345-1236-5
+always \x9762\x5b50 134-2345-5-125-156-1
+always \x9774\x5b50 15-236-3-125-156-1
+always \x978b\x5b50 15-346-2-125-156-1
+always \x978d\x5b50 1236-3-125-156-1
+always \x97ff\x61c9 15-46-4-13456-5
+always \x9806\x61c9 24-123456-5-13456-5
+always \x9818\x5b50 14-13456-4-125-156-1
+always \x982d\x5b50 124-12356-2-125-156-1
+always \x9838\x5b50 13-13456-4-125-156-1
+always \x986f\x8457 15-2345-4-1-34-5
+always \x98db\x5f48 12345-356-3-145-1236-5
+always \x98db\x6f32 12345-356-3-1-1346-5
+always \x9903\x5b50 13-246-4-125-156-1
+always \x990a\x5206 46-4-12345-136-5
+always \x9918\x8208 1256-2-15-13456-5
+always \x9928\x5b50 13-12456-4-125-156-1
+always \x9928\x9577 13-12456-4-1-1346-4
+always \x9996\x76f8 24-12356-4-15-46-5
+always \x9996\x90fd 24-12356-4-145-34-3
+always \x9996\x9577 24-12356-4-1-1346-4
+always \x99ac\x5b50 134-345-4-125-156-1
+always \x99ac\x864e 134-345-4-1235-34-3
+always \x99ae\x6cb3 1234-13456-2-1235-2346-2
+always \x9a0e\x5175 13-16-5-135-13456-3
+always \x9a19\x5b50 1234-2345-5-125-156-1
+always \x9a3e\x5b50 14-25-2-125-156-1
+always \x9a4d\x9a0e 15-246-3-13-16-5
+always \x9a55\x6a6b 13-246-3-1235-1356-5
+always \x9aa8\x5b50 13-34-4-125-156-1
+always \x9aa8\x76f8 13-34-4-15-46-5
+always \x9ad4\x80d6 124-16-4-1234-1236-2
+always \x9ad8\x66f4 13-146-3-13-1356-3
+always \x9ad8\x8208 13-146-3-15-13456-5
+always \x9ad8\x9e97 13-146-3-14-16-2
+always \x9b06\x6563 15-12346-3-15-1236-4
+always \x9b0d\x5b50 1235-34-2-125-156-1
+always \x9b1a\x5b50 15-1256-3-125-156-1
+always \x9b3c\x5b50 13-1246-4-125-156-1
+always \x9bae\x5c11 15-2345-4-24-146-4
+always \x9bae\x6065 15-2345-4-12-156-4
+always \x9d28\x5b50 23456-3-125-156-1
+always \x9d3b\x722a 1235-12346-2-1-146-4
+always \x9d3f\x5b50 13-2346-3-125-156-1
+always \x9d60\x7684 1235-34-2-145-16-5
+always \x9ea5\x5b50 134-2456-5-125-156-1
+always \x9ebb\x5b50 134-345-2-125-156-1
+always \x9ec3\x51a0 1235-456-2-13-12456-3
+always \x9ede\x5b50 145-2345-4-125-156-1
+always \x9f13\x8b5f 13-34-4-125-146-5
+always \x9f3b\x5b50 135-16-2-125-156-1
+always \x9f9c\x8332 245-234-3-245-156-2
+always \x9f9c\x88c2 13-256-3-14-346-5
+always \x97f3\x6a02 1456-3-236-5
+always \x7b56\x5212 245-2346-5-1235-35-5
+always \x4e3a\x4e86 1246-5-14-2346-1
+always \x7684\x786e 145-16-2-245-236-5
+always \x6210\x957f 12-1356-2-1-1346-4
+always \x5546\x91cf 24-1346-3-14-46-2
+always \x80c6\x5b50 145-1236-4-125-156-1
+always \x5e72\x5427 13-1236-5-135-345-1
+always \x56e0\x4e3a 1456-3-1246-5
+always \x56de\x5e94 1235-1246-2-13456-5
+always \x5904\x7406 12-34-4-14-16-4
+always \x884c\x85cf 15-13456-2-245-1346-2
+always \x4e5d\x91cd 13-234-4-12-12346-2
+always \x7ad9\x957f 1-1236-5-1-1346-4
+always \x5e97\x94fa 145-2345-5-1234-34-5
+always \x5174\x8da3 15-13456-5-245-1256-5
+always \x6267\x8457 1-156-2-1-25-2
+always \x8ba1\x5212 13-16-5-1235-35-5
diff --git a/resources/inspector/AuditsPanel.js b/resources/inspector/AuditsPanel.js
index c4b2129..de8e761 100644
--- a/resources/inspector/AuditsPanel.js
+++ b/resources/inspector/AuditsPanel.js
@@ -1,5 +1,5 @@
 WebInspector.AuditsPanel=function()
-{WebInspector.Panel.call(this,"audits");this.registerRequiredCSS("panelEnablerView.css");this.registerRequiredCSS("auditsPanel.css");this.createSidebarViewWithTree();this.splitView.mainElement.addStyleClass("vbox");this.auditsTreeElement=new WebInspector.SidebarSectionTreeElement("",{},true);this.sidebarTree.appendChild(this.auditsTreeElement);this.auditsTreeElement.listItemElement.addStyleClass("hidden");this.auditsItemTreeElement=new WebInspector.AuditsSidebarTreeElement(this);this.auditsTreeElement.appendChild(this.auditsItemTreeElement);this.auditResultsTreeElement=new WebInspector.SidebarSectionTreeElement(WebInspector.UIString("RESULTS"),{},true);this.sidebarTree.appendChild(this.auditResultsTreeElement);this.auditResultsTreeElement.expand();this.viewsContainerElement=this.splitView.mainElement;this._constructCategories();this._auditController=new WebInspector.AuditController(this);this._launcherView=new WebInspector.AuditLauncherView(this._auditController);for(var id in this.categoriesById)
+{WebInspector.Panel.call(this,"audits");this.registerRequiredCSS("panelEnablerView.css");this.registerRequiredCSS("auditsPanel.css");this.createSidebarViewWithTree();this.splitView.mainElement().classList.add("vbox");this.auditsTreeElement=new WebInspector.SidebarSectionTreeElement("",{},true);this.sidebarTree.appendChild(this.auditsTreeElement);this.auditsTreeElement.listItemElement.classList.add("hidden");this.auditsItemTreeElement=new WebInspector.AuditsSidebarTreeElement(this);this.auditsTreeElement.appendChild(this.auditsItemTreeElement);this.auditResultsTreeElement=new WebInspector.SidebarSectionTreeElement(WebInspector.UIString("RESULTS"),{},true);this.sidebarTree.appendChild(this.auditResultsTreeElement);this.auditResultsTreeElement.expand();this._constructCategories();this._auditController=new WebInspector.AuditController(this);this._launcherView=new WebInspector.AuditLauncherView(this._auditController);for(var id in this.categoriesById)
 this._launcherView.addCategory(this.categoriesById[id]);}
 WebInspector.AuditsPanel.prototype={canSearch:function()
 {return false;},get categoriesById()
@@ -17,13 +17,13 @@
 {if(this._visibleView===x)
 return;if(this._visibleView)
 this._visibleView.detach();this._visibleView=x;if(x)
-x.show(this.viewsContainerElement);},wasShown:function()
+this.splitView.setMainView(x);},wasShown:function()
 {WebInspector.Panel.prototype.wasShown.call(this);if(!this._visibleView)
 this.auditsItemTreeElement.select();},clearResults:function()
 {this.auditsItemTreeElement.revealAndSelect();this.auditResultsTreeElement.removeChildren();},__proto__:WebInspector.Panel.prototype}
-WebInspector.AuditCategory=function(displayName)
+WebInspector.AuditCategoryImpl=function(displayName)
 {this._displayName=displayName;this._rules=[];}
-WebInspector.AuditCategory.prototype={get id()
+WebInspector.AuditCategoryImpl.prototype={get id()
 {return this._id;},get displayName()
 {return this._displayName;},addRule:function(rule,severity)
 {rule.severity=severity;this._rules.push(rule);},run:function(requests,ruleResultCallback,categoryDoneCallback,progress)
@@ -80,12 +80,17 @@
 WebInspector.AuditResultSidebarTreeElement.prototype={onselect:function()
 {this._panel.showResults(this.results);},get selectable()
 {return true;},__proto__:WebInspector.SidebarTreeElement.prototype}
-WebInspector.AuditRules={};WebInspector.AuditCategories={};WebInspector.AuditCategories.PagePerformance=function(){WebInspector.AuditCategory.call(this,WebInspector.AuditCategories.PagePerformance.AuditCategoryName);}
-WebInspector.AuditCategories.PagePerformance.AuditCategoryName="Web Page Performance";WebInspector.AuditCategories.PagePerformance.prototype={initialize:function()
-{this.addRule(new WebInspector.AuditRules.UnusedCssRule(),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CssInHeadRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.StylesScriptsOrderRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.VendorPrefixedCSSProperties(),WebInspector.AuditRule.Severity.Warning);},__proto__:WebInspector.AuditCategory.prototype}
-WebInspector.AuditCategories.NetworkUtilization=function(){WebInspector.AuditCategory.call(this,WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName);}
-WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName="Network Utilization";WebInspector.AuditCategories.NetworkUtilization.prototype={initialize:function()
-{this.addRule(new WebInspector.AuditRules.GzipRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.ImageDimensionsRule(),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CookieSizeRule(400),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.StaticCookielessRule(5),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CombineJsResourcesRule(2),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.CombineCssResourcesRule(2),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.MinimizeDnsLookupsRule(4),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.ParallelizeDownloadRule(4,10,0.5),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.BrowserCacheControlRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.ProxyCacheControlRule(),WebInspector.AuditRule.Severity.Warning);},__proto__:WebInspector.AuditCategory.prototype};WebInspector.AuditController=function(auditsPanel)
+WebInspector.AuditRules={};WebInspector.AuditCategories={};WebInspector.AuditCategory=function()
+{}
+WebInspector.AuditCategory.prototype={get id()
+{},get displayName()
+{},run:function(requests,ruleResultCallback,categoryDoneCallback,progress)
+{}};WebInspector.AuditCategories.PagePerformance=function(){WebInspector.AuditCategoryImpl.call(this,WebInspector.AuditCategories.PagePerformance.AuditCategoryName);}
+WebInspector.AuditCategories.PagePerformance.AuditCategoryName=WebInspector.UIString("Web Page Performance");WebInspector.AuditCategories.PagePerformance.prototype={initialize:function()
+{this.addRule(new WebInspector.AuditRules.UnusedCssRule(),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CssInHeadRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.StylesScriptsOrderRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.VendorPrefixedCSSProperties(),WebInspector.AuditRule.Severity.Warning);},__proto__:WebInspector.AuditCategoryImpl.prototype}
+WebInspector.AuditCategories.NetworkUtilization=function(){WebInspector.AuditCategoryImpl.call(this,WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName);}
+WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName=WebInspector.UIString("Network Utilization");WebInspector.AuditCategories.NetworkUtilization.prototype={initialize:function()
+{this.addRule(new WebInspector.AuditRules.GzipRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.ImageDimensionsRule(),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CookieSizeRule(400),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.StaticCookielessRule(5),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.CombineJsResourcesRule(2),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.CombineCssResourcesRule(2),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.MinimizeDnsLookupsRule(4),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.ParallelizeDownloadRule(4,10,0.5),WebInspector.AuditRule.Severity.Warning);this.addRule(new WebInspector.AuditRules.BrowserCacheControlRule(),WebInspector.AuditRule.Severity.Severe);this.addRule(new WebInspector.AuditRules.ProxyCacheControlRule(),WebInspector.AuditRule.Severity.Warning);},__proto__:WebInspector.AuditCategoryImpl.prototype};WebInspector.AuditController=function(auditsPanel)
 {this._auditsPanel=auditsPanel;WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._didMainResourceLoad,this);}
 WebInspector.AuditController.prototype={_executeAudit:function(categories,resultCallback)
 {this._progress.setTitle(WebInspector.UIString("Running audit"));function ruleResultReadyCallback(categoryResult,ruleResult)
@@ -106,7 +111,7 @@
 if(runImmediately)
 startAuditWhenResourcesReady.call(this);else
 this._reloadResources(startAuditWhenResourcesReady.bind(this));WebInspector.userMetrics.AuditsStarted.record();},_reloadResources:function(callback)
-{this._pageReloadCallback=callback;PageAgent.reload(false);},_didMainResourceLoad:function()
+{this._pageReloadCallback=callback;WebInspector.resourceTreeModel.reloadPage();},_didMainResourceLoad:function()
 {if(this._pageReloadCallback){var callback=this._pageReloadCallback;delete this._pageReloadCallback;callback();}},clearResults:function()
 {this._auditsPanel.clearResults();}};WebInspector.AuditFormatters=function()
 {}
@@ -126,7 +131,7 @@
 return value.map(this.partiallyApply.bind(this,formatters,thisArgument));if(typeof value==="object"&&typeof formatters[value.type]==="function"&&value.arguments)
 return formatters[value.type].apply(thisArgument,value.arguments);return value;}}
 WebInspector.auditFormatters=new WebInspector.AuditFormatters();;WebInspector.AuditLauncherView=function(auditController)
-{WebInspector.View.call(this);this._auditController=auditController;this._categoryIdPrefix="audit-category-item-";this._auditRunning=false;this.element.addStyleClass("audit-launcher-view");this.element.addStyleClass("panel-enabler-view");this._contentElement=document.createElement("div");this._contentElement.className="audit-launcher-view-content";this.element.appendChild(this._contentElement);this._boundCategoryClickListener=this._categoryClicked.bind(this);this._resetResourceCount();this._sortedCategories=[];this._headerElement=document.createElement("h1");this._headerElement.className="no-audits";this._headerElement.textContent=WebInspector.UIString("No audits to run");this._contentElement.appendChild(this._headerElement);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestFinished,this);var defaultSelectedAuditCategory={};defaultSelectedAuditCategory[WebInspector.AuditLauncherView.AllCategoriesKey]=true;this._selectedCategoriesSetting=WebInspector.settings.createSetting("selectedAuditCategories",defaultSelectedAuditCategory);}
+{WebInspector.View.call(this);this._auditController=auditController;this._categoryIdPrefix="audit-category-item-";this._auditRunning=false;this.element.classList.add("audit-launcher-view");this.element.classList.add("panel-enabler-view");this._contentElement=document.createElement("div");this._contentElement.className="audit-launcher-view-content";this.element.appendChild(this._contentElement);this._boundCategoryClickListener=this._categoryClicked.bind(this);this._resetResourceCount();this._sortedCategories=[];this._headerElement=document.createElement("h1");this._headerElement.className="no-audits";this._headerElement.textContent=WebInspector.UIString("No audits to run");this._contentElement.appendChild(this._headerElement);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestFinished,this);var defaultSelectedAuditCategory={};defaultSelectedAuditCategory[WebInspector.AuditLauncherView.AllCategoriesKey]=true;this._selectedCategoriesSetting=WebInspector.settings.createSetting("selectedAuditCategories",defaultSelectedAuditCategory);}
 WebInspector.AuditLauncherView.AllCategoriesKey="__AllCategories";WebInspector.AuditLauncherView.prototype={_resetResourceCount:function()
 {this._loadedResources=0;this._totalResources=0;},_onRequestStarted:function(event)
 {var request=(event.data);if(request.type===WebInspector.resourceTypes.WebSocket)
@@ -165,24 +170,24 @@
 {var selectedCategories=userGesture?{}:this._selectedCategoriesSetting.get();var childNodes=this._categoriesElement.childNodes;for(var i=0,length=childNodes.length;i<length;++i)
 selectedCategories[childNodes[i].__displayName]=childNodes[i].firstChild.checked;selectedCategories[WebInspector.AuditLauncherView.AllCategoriesKey]=this._selectAllCheckboxElement.checked;this._selectedCategoriesSetting.set(selectedCategories);this._updateButton();},_updateButton:function()
 {this._launchButton.textContent=this._auditRunning?WebInspector.UIString("Stop"):WebInspector.UIString("Run");this._launchButton.disabled=!this._currentCategoriesCount;},__proto__:WebInspector.View.prototype};WebInspector.AuditResultView=function(categoryResults)
-{WebInspector.SidebarPaneStack.call(this);this.element.addStyleClass("audit-result-view");function categorySorter(a,b){return(a.title||"").localeCompare(b.title||"");}
+{WebInspector.SidebarPaneStack.call(this);this.element.classList.add("audit-result-view");function categorySorter(a,b){return(a.title||"").localeCompare(b.title||"");}
 categoryResults.sort(categorySorter);for(var i=0;i<categoryResults.length;++i)
 this.addPane(new WebInspector.AuditCategoryResultPane(categoryResults[i]));}
 WebInspector.AuditResultView.prototype={__proto__:WebInspector.SidebarPaneStack.prototype}
 WebInspector.AuditCategoryResultPane=function(categoryResult)
-{WebInspector.SidebarPane.call(this,categoryResult.title);var treeOutlineElement=document.createElement("ol");this.bodyElement.addStyleClass("audit-result-tree");this.bodyElement.appendChild(treeOutlineElement);this._treeOutline=new TreeOutline(treeOutlineElement);this._treeOutline.expandTreeElementsWhenArrowing=true;function ruleSorter(a,b)
+{WebInspector.SidebarPane.call(this,categoryResult.title);var treeOutlineElement=document.createElement("ol");this.bodyElement.classList.add("audit-result-tree");this.bodyElement.appendChild(treeOutlineElement);this._treeOutline=new TreeOutline(treeOutlineElement);this._treeOutline.expandTreeElementsWhenArrowing=true;function ruleSorter(a,b)
 {var result=WebInspector.AuditRule.SeverityOrder[a.severity||0]-WebInspector.AuditRule.SeverityOrder[b.severity||0];if(!result)
 result=(a.value||"").localeCompare(b.value||"");return result;}
-categoryResult.ruleResults.sort(ruleSorter);for(var i=0;i<categoryResult.ruleResults.length;++i){var ruleResult=categoryResult.ruleResults[i];var treeElement=this._appendResult(this._treeOutline,ruleResult);treeElement.listItemElement.addStyleClass("audit-result");if(ruleResult.severity){var severityElement=document.createElement("div");severityElement.className="severity-"+ruleResult.severity;treeElement.listItemElement.appendChild(severityElement);}}
+categoryResult.ruleResults.sort(ruleSorter);for(var i=0;i<categoryResult.ruleResults.length;++i){var ruleResult=categoryResult.ruleResults[i];var treeElement=this._appendResult(this._treeOutline,ruleResult);treeElement.listItemElement.classList.add("audit-result");if(ruleResult.severity){var severityElement=document.createElement("div");severityElement.className="severity-"+ruleResult.severity;treeElement.listItemElement.appendChild(severityElement);}}
 this.expand();}
 WebInspector.AuditCategoryResultPane.prototype={_appendResult:function(parentTreeElement,result)
 {var title="";if(typeof result.value==="string"){title=result.value;if(result.violationCount)
 title=String.sprintf("%s (%d)",title,result.violationCount);}
-var treeElement=new TreeElement(null,null,!!result.children);treeElement.title=title;parentTreeElement.appendChild(treeElement);if(result.className)
-treeElement.listItemElement.addStyleClass(result.className);if(typeof result.value!=="string")
+var treeElement=new TreeElement(title,null,!!result.children);parentTreeElement.appendChild(treeElement);if(result.className)
+treeElement.listItemElement.classList.add(result.className);if(typeof result.value!=="string")
 treeElement.listItemElement.appendChild(WebInspector.auditFormatters.apply(result.value));if(result.children){for(var i=0;i<result.children.length;++i)
 this._appendResult(treeElement,result.children[i]);}
-if(result.expanded){treeElement.listItemElement.removeStyleClass("parent");treeElement.listItemElement.addStyleClass("parent-expanded");treeElement.expand();}
+if(result.expanded){treeElement.listItemElement.classList.remove("parent");treeElement.listItemElement.classList.add("parent-expanded");treeElement.expand();}
 return treeElement;},__proto__:WebInspector.SidebarPane.prototype};WebInspector.AuditRules.IPAddressRegexp=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;WebInspector.AuditRules.CacheableResponseCodes={200:true,203:true,206:true,300:true,301:true,410:true,304:true}
 WebInspector.AuditRules.getDomainToResourcesMap=function(requests,types,needFullResources)
 {var domainToResourcesMap={};for(var i=0,size=requests.length;i<size;++i){var request=requests[i];if(types&&types.indexOf(request.type)===-1)
@@ -191,13 +196,13 @@
 domainResources.push(needFullResources?request:request.url);}
 return domainToResourcesMap;}
 WebInspector.AuditRules.GzipRule=function()
-{WebInspector.AuditRule.call(this,"network-gzip","Enable gzip compression");}
+{WebInspector.AuditRule.call(this,"network-gzip",WebInspector.UIString("Enable gzip compression"));}
 WebInspector.AuditRules.GzipRule.prototype={doRun:function(requests,result,callback,progress)
-{var totalSavings=0;var compressedSize=0;var candidateSize=0;var summary=result.addChild("",true);for(var i=0,length=requests.length;i<length;++i){var request=requests[i];if(request.statusCode===304)
+{var totalSavings=0;var compressedSize=0;var candidateSize=0;var summary=result.addChild("",true);for(var i=0,length=requests.length;i<length;++i){var request=requests[i];if(request.cached||request.statusCode===304)
 continue;if(this._shouldCompress(request)){var size=request.resourceSize;candidateSize+=size;if(this._isCompressed(request)){compressedSize+=size;continue;}
 var savings=2*size/3;totalSavings+=savings;summary.addFormatted("%r could save ~%s",request.url,Number.bytesToString(savings));result.violationCount++;}}
-if(!totalSavings)
-return callback(null);summary.value=String.sprintf("Compressing the following resources with gzip could reduce their transfer size by about two thirds (~%s):",Number.bytesToString(totalSavings));callback(result);},_isCompressed:function(request)
+if(!totalSavings){callback(null);return;}
+summary.value=WebInspector.UIString("Compressing the following resources with gzip could reduce their transfer size by about two thirds (~%s):",Number.bytesToString(totalSavings));callback(result);},_isCompressed:function(request)
 {var encodingHeader=request.responseHeaderValue("Content-Encoding");if(!encodingHeader)
 return false;return/\b(?:gzip|deflate)\b/.test(encodingHeader);},_shouldCompress:function(request)
 {return request.type.isTextType()&&request.parsedURL.host&&request.resourceSize!==undefined&&request.resourceSize>150;},__proto__:WebInspector.AuditRule.prototype}
@@ -205,57 +210,58 @@
 {WebInspector.AuditRule.call(this,id,name);this._type=type;this._resourceTypeName=resourceTypeName;this._allowedPerDomain=allowedPerDomain;}
 WebInspector.AuditRules.CombineExternalResourcesRule.prototype={doRun:function(requests,result,callback,progress)
 {var domainToResourcesMap=WebInspector.AuditRules.getDomainToResourcesMap(requests,[this._type],false);var penalizedResourceCount=0;var summary=result.addChild("",true);for(var domain in domainToResourcesMap){var domainResources=domainToResourcesMap[domain];var extraResourceCount=domainResources.length-this._allowedPerDomain;if(extraResourceCount<=0)
-continue;penalizedResourceCount+=extraResourceCount-1;summary.addChild(String.sprintf("%d %s resources served from %s.",domainResources.length,this._resourceTypeName,WebInspector.AuditRuleResult.resourceDomain(domain)));result.violationCount+=domainResources.length;}
-if(!penalizedResourceCount)
-return callback(null);summary.value="There are multiple resources served from same domain. Consider combining them into as few files as possible.";callback(result);},__proto__:WebInspector.AuditRule.prototype}
-WebInspector.AuditRules.CombineJsResourcesRule=function(allowedPerDomain){WebInspector.AuditRules.CombineExternalResourcesRule.call(this,"page-externaljs","Combine external JavaScript",WebInspector.resourceTypes.Script,"JavaScript",allowedPerDomain);}
+continue;penalizedResourceCount+=extraResourceCount-1;summary.addChild(WebInspector.UIString("%d %s resources served from %s.",domainResources.length,this._resourceTypeName,WebInspector.AuditRuleResult.resourceDomain(domain)));result.violationCount+=domainResources.length;}
+if(!penalizedResourceCount){callback(null);return;}
+summary.value=WebInspector.UIString("There are multiple resources served from same domain. Consider combining them into as few files as possible.");callback(result);},__proto__:WebInspector.AuditRule.prototype}
+WebInspector.AuditRules.CombineJsResourcesRule=function(allowedPerDomain){WebInspector.AuditRules.CombineExternalResourcesRule.call(this,"page-externaljs",WebInspector.UIString("Combine external JavaScript"),WebInspector.resourceTypes.Script,"JavaScript",allowedPerDomain);}
 WebInspector.AuditRules.CombineJsResourcesRule.prototype={__proto__:WebInspector.AuditRules.CombineExternalResourcesRule.prototype}
-WebInspector.AuditRules.CombineCssResourcesRule=function(allowedPerDomain){WebInspector.AuditRules.CombineExternalResourcesRule.call(this,"page-externalcss","Combine external CSS",WebInspector.resourceTypes.Stylesheet,"CSS",allowedPerDomain);}
+WebInspector.AuditRules.CombineCssResourcesRule=function(allowedPerDomain){WebInspector.AuditRules.CombineExternalResourcesRule.call(this,"page-externalcss",WebInspector.UIString("Combine external CSS"),WebInspector.resourceTypes.Stylesheet,"CSS",allowedPerDomain);}
 WebInspector.AuditRules.CombineCssResourcesRule.prototype={__proto__:WebInspector.AuditRules.CombineExternalResourcesRule.prototype}
-WebInspector.AuditRules.MinimizeDnsLookupsRule=function(hostCountThreshold){WebInspector.AuditRule.call(this,"network-minimizelookups","Minimize DNS lookups");this._hostCountThreshold=hostCountThreshold;}
+WebInspector.AuditRules.MinimizeDnsLookupsRule=function(hostCountThreshold){WebInspector.AuditRule.call(this,"network-minimizelookups",WebInspector.UIString("Minimize DNS lookups"));this._hostCountThreshold=hostCountThreshold;}
 WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype={doRun:function(requests,result,callback,progress)
 {var summary=result.addChild("");var domainToResourcesMap=WebInspector.AuditRules.getDomainToResourcesMap(requests,null,false);for(var domain in domainToResourcesMap){if(domainToResourcesMap[domain].length>1)
 continue;var parsedURL=domain.asParsedURL();if(!parsedURL)
 continue;if(!parsedURL.host.search(WebInspector.AuditRules.IPAddressRegexp))
 continue;summary.addSnippet(domain);result.violationCount++;}
-if(!summary.children||summary.children.length<=this._hostCountThreshold)
-return callback(null);summary.value="The following domains only serve one resource each. If possible, avoid the extra DNS lookups by serving these resources from existing domains.";callback(result);},__proto__:WebInspector.AuditRule.prototype}
+if(!summary.children||summary.children.length<=this._hostCountThreshold){callback(null);return;}
+summary.value=WebInspector.UIString("The following domains only serve one resource each. If possible, avoid the extra DNS lookups by serving these resources from existing domains.");callback(result);},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.ParallelizeDownloadRule=function(optimalHostnameCount,minRequestThreshold,minBalanceThreshold)
-{WebInspector.AuditRule.call(this,"network-parallelizehosts","Parallelize downloads across hostnames");this._optimalHostnameCount=optimalHostnameCount;this._minRequestThreshold=minRequestThreshold;this._minBalanceThreshold=minBalanceThreshold;}
+{WebInspector.AuditRule.call(this,"network-parallelizehosts",WebInspector.UIString("Parallelize downloads across hostnames"));this._optimalHostnameCount=optimalHostnameCount;this._minRequestThreshold=minRequestThreshold;this._minBalanceThreshold=minBalanceThreshold;}
 WebInspector.AuditRules.ParallelizeDownloadRule.prototype={doRun:function(requests,result,callback,progress)
 {function hostSorter(a,b)
 {var aCount=domainToResourcesMap[a].length;var bCount=domainToResourcesMap[b].length;return(aCount<bCount)?1:(aCount==bCount)?0:-1;}
 var domainToResourcesMap=WebInspector.AuditRules.getDomainToResourcesMap(requests,[WebInspector.resourceTypes.Stylesheet,WebInspector.resourceTypes.Image],true);var hosts=[];for(var url in domainToResourcesMap)
-hosts.push(url);if(!hosts.length)
-return callback(null);hosts.sort(hostSorter);var optimalHostnameCount=this._optimalHostnameCount;if(hosts.length>optimalHostnameCount)
-hosts.splice(optimalHostnameCount);var busiestHostResourceCount=domainToResourcesMap[hosts[0]].length;var requestCountAboveThreshold=busiestHostResourceCount-this._minRequestThreshold;if(requestCountAboveThreshold<=0)
-return callback(null);var avgResourcesPerHost=0;for(var i=0,size=hosts.length;i<size;++i)
-avgResourcesPerHost+=domainToResourcesMap[hosts[i]].length;avgResourcesPerHost/=optimalHostnameCount;avgResourcesPerHost=Math.max(avgResourcesPerHost,1);var pctAboveAvg=(requestCountAboveThreshold/avgResourcesPerHost)-1.0;var minBalanceThreshold=this._minBalanceThreshold;if(pctAboveAvg<minBalanceThreshold)
-return callback(null);var requestsOnBusiestHost=domainToResourcesMap[hosts[0]];var entry=result.addChild(String.sprintf("This page makes %d parallelizable requests to %s. Increase download parallelization by distributing the following requests across multiple hostnames.",busiestHostResourceCount,hosts[0]),true);for(var i=0;i<requestsOnBusiestHost.length;++i)
+hosts.push(url);if(!hosts.length){callback(null);return;}
+hosts.sort(hostSorter);var optimalHostnameCount=this._optimalHostnameCount;if(hosts.length>optimalHostnameCount)
+hosts.splice(optimalHostnameCount);var busiestHostResourceCount=domainToResourcesMap[hosts[0]].length;var requestCountAboveThreshold=busiestHostResourceCount-this._minRequestThreshold;if(requestCountAboveThreshold<=0){callback(null);return;}
+var avgResourcesPerHost=0;for(var i=0,size=hosts.length;i<size;++i)
+avgResourcesPerHost+=domainToResourcesMap[hosts[i]].length;avgResourcesPerHost/=optimalHostnameCount;avgResourcesPerHost=Math.max(avgResourcesPerHost,1);var pctAboveAvg=(requestCountAboveThreshold/avgResourcesPerHost)-1.0;var minBalanceThreshold=this._minBalanceThreshold;if(pctAboveAvg<minBalanceThreshold){callback(null);return;}
+var requestsOnBusiestHost=domainToResourcesMap[hosts[0]];var entry=result.addChild(WebInspector.UIString("This page makes %d parallelizable requests to %s. Increase download parallelization by distributing the following requests across multiple hostnames.",busiestHostResourceCount,hosts[0]),true);for(var i=0;i<requestsOnBusiestHost.length;++i)
 entry.addURL(requestsOnBusiestHost[i].url);result.violationCount=requestsOnBusiestHost.length;callback(result);},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.UnusedCssRule=function()
-{WebInspector.AuditRule.call(this,"page-unusedcss","Remove unused CSS rules");}
+{WebInspector.AuditRule.call(this,"page-unusedcss",WebInspector.UIString("Remove unused CSS rules"));}
 WebInspector.AuditRules.UnusedCssRule.prototype={doRun:function(requests,result,callback,progress)
 {var self=this;function evalCallback(styleSheets){if(progress.isCanceled())
 return;if(!styleSheets.length)
 return callback(null);var selectors=[];var testedSelectors={};for(var i=0;i<styleSheets.length;++i){var styleSheet=styleSheets[i];for(var curRule=0;curRule<styleSheet.rules.length;++curRule){var selectorText=styleSheet.rules[curRule].selectorText;if(testedSelectors[selectorText])
 continue;selectors.push(selectorText);testedSelectors[selectorText]=1;}}
-function selectorsCallback(callback,styleSheets,testedSelectors,foundSelectors)
+var foundSelectors={};function selectorsCallback(styleSheets)
 {if(progress.isCanceled())
 return;var inlineBlockOrdinal=0;var totalStylesheetSize=0;var totalUnusedStylesheetSize=0;var summary;for(var i=0;i<styleSheets.length;++i){var styleSheet=styleSheets[i];var unusedRules=[];for(var curRule=0;curRule<styleSheet.rules.length;++curRule){var rule=styleSheet.rules[curRule];if(!testedSelectors[rule.selectorText]||foundSelectors[rule.selectorText])
 continue;unusedRules.push(rule.selectorText);}
 totalStylesheetSize+=styleSheet.rules.length;totalUnusedStylesheetSize+=unusedRules.length;if(!unusedRules.length)
-continue;var resource=WebInspector.resourceForURL(styleSheet.sourceURL);var isInlineBlock=resource&&resource.request&&resource.request.type==WebInspector.resourceTypes.Document;var url=!isInlineBlock?WebInspector.AuditRuleResult.linkifyDisplayName(styleSheet.sourceURL):String.sprintf("Inline block #%d",++inlineBlockOrdinal);var pctUnused=Math.round(100*unusedRules.length/styleSheet.rules.length);if(!summary)
+continue;var resource=WebInspector.resourceForURL(styleSheet.sourceURL);var isInlineBlock=resource&&resource.request&&resource.request.type==WebInspector.resourceTypes.Document;var url=!isInlineBlock?WebInspector.AuditRuleResult.linkifyDisplayName(styleSheet.sourceURL):WebInspector.UIString("Inline block #%d",++inlineBlockOrdinal);var pctUnused=Math.round(100*unusedRules.length/styleSheet.rules.length);if(!summary)
 summary=result.addChild("",true);var entry=summary.addFormatted("%s: %d% is not used by the current page.",url,pctUnused);for(var j=0;j<unusedRules.length;++j)
 entry.addSnippet(unusedRules[j]);result.violationCount+=unusedRules.length;}
 if(!totalUnusedStylesheetSize)
-return callback(null);var totalUnusedPercent=Math.round(100*totalUnusedStylesheetSize/totalStylesheetSize);summary.value=String.sprintf("%s rules (%d%) of CSS not used by the current page.",totalUnusedStylesheetSize,totalUnusedPercent);callback(result);}
-var foundSelectors={};function queryCallback(boundSelectorsCallback,selector,styleSheets,testedSelectors,nodeId)
+return callback(null);var totalUnusedPercent=Math.round(100*totalUnusedStylesheetSize/totalStylesheetSize);summary.value=WebInspector.UIString("%s rules (%d%) of CSS not used by the current page.",totalUnusedStylesheetSize,totalUnusedPercent);callback(result);}
+function queryCallback(boundSelectorsCallback,selector,nodeId)
 {if(nodeId)
 foundSelectors[selector]=true;if(boundSelectorsCallback)
-boundSelectorsCallback(foundSelectors);}
-function documentLoaded(selectors,document){var pseudoSelectorRegexp=/::?(?:[\w-]+)(?:\(.*?\))?/g;for(var i=0;i<selectors.length;++i){if(progress.isCanceled())
-return;var effectiveSelector=selectors[i].replace(pseudoSelectorRegexp,"");WebInspector.domAgent.querySelector(document.id,effectiveSelector,queryCallback.bind(null,i===selectors.length-1?selectorsCallback.bind(null,callback,styleSheets,testedSelectors):null,selectors[i],styleSheets,testedSelectors));}}
+boundSelectorsCallback();}
+function documentLoaded(selectors,document){var pseudoSelectorRegexp=/::?(?:[\w-]+)(?:\(.*?\))?/g;if(!selectors.length){selectorsCallback([]);return;}
+for(var i=0;i<selectors.length;++i){if(progress.isCanceled())
+return;var effectiveSelector=selectors[i].replace(pseudoSelectorRegexp,"");WebInspector.domAgent.querySelector(document.id,effectiveSelector,queryCallback.bind(null,i===selectors.length-1?selectorsCallback.bind(null,styleSheets):null,selectors[i]));}}
 WebInspector.domAgent.requestDocument(documentLoaded.bind(null,selectors));}
 function styleSheetCallback(styleSheets,sourceURL,continuation,styleSheet)
 {if(progress.isCanceled())
@@ -293,32 +299,32 @@
 {if(this._isExplicitlyNonCacheable(request))
 return false;if(this.responseHeaderMatch(request,"Cache-Control","public"))
 return true;return request.url.indexOf("?")==-1&&!this.responseHeaderMatch(request,"Cache-Control","private");},responseHeaderMatch:function(request,header,regexp)
-{return request.responseHeaderValue(header)?request.responseHeaderValue(header).match(new RegExp(regexp,"im")):undefined;},hasExplicitExpiration:function(request)
-{return this.hasResponseHeader(request,"Date")&&(this.hasResponseHeader(request,"Expires")||this.responseHeaderMatch(request,"Cache-Control","max-age"));},_isExplicitlyNonCacheable:function(request)
-{var hasExplicitExp=this.hasExplicitExpiration(request);return this.responseHeaderMatch(request,"Cache-Control","(no-cache|no-store|must-revalidate)")||this.responseHeaderMatch(request,"Pragma","no-cache")||(hasExplicitExp&&!this.freshnessLifetimeGreaterThan(request,0))||(!hasExplicitExp&&request.url&&request.url.indexOf("?")>=0)||(!hasExplicitExp&&!this.isCacheableResource(request));},isCacheableResource:function(request)
+{return request.responseHeaderValue(header)?request.responseHeaderValue(header).match(new RegExp(regexp,"im")):null;},hasExplicitExpiration:function(request)
+{return this.hasResponseHeader(request,"Date")&&(this.hasResponseHeader(request,"Expires")||!!this.responseHeaderMatch(request,"Cache-Control","max-age"));},_isExplicitlyNonCacheable:function(request)
+{var hasExplicitExp=this.hasExplicitExpiration(request);return!!this.responseHeaderMatch(request,"Cache-Control","(no-cache|no-store|must-revalidate)")||!!this.responseHeaderMatch(request,"Pragma","no-cache")||(hasExplicitExp&&!this.freshnessLifetimeGreaterThan(request,0))||(!hasExplicitExp&&!!request.url&&request.url.indexOf("?")>=0)||(!hasExplicitExp&&!this.isCacheableResource(request));},isCacheableResource:function(request)
 {return request.statusCode!==undefined&&WebInspector.AuditRules.CacheableResponseCodes[request.statusCode];},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.BrowserCacheControlRule=function()
-{WebInspector.AuditRules.CacheControlRule.call(this,"http-browsercache","Leverage browser caching");}
+{WebInspector.AuditRules.CacheControlRule.call(this,"http-browsercache",WebInspector.UIString("Leverage browser caching"));}
 WebInspector.AuditRules.BrowserCacheControlRule.prototype={handleNonCacheableResources:function(requests,result)
-{if(requests.length){var entry=result.addChild("The following resources are explicitly non-cacheable. Consider making them cacheable if possible:",true);result.violationCount+=requests.length;for(var i=0;i<requests.length;++i)
+{if(requests.length){var entry=result.addChild(WebInspector.UIString("The following resources are explicitly non-cacheable. Consider making them cacheable if possible:"),true);result.violationCount+=requests.length;for(var i=0;i<requests.length;++i)
 entry.addURL(requests[i].url);}},runChecks:function(requests,result,callback)
-{this.execCheck("The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:",this._missingExpirationCheck,requests,result);this.execCheck("The following resources specify a \"Vary\" header that disables caching in most versions of Internet Explorer:",this._varyCheck,requests,result);this.execCheck("The following cacheable resources have a short freshness lifetime:",this._oneMonthExpirationCheck,requests,result);this.execCheck("To further improve cache hit rate, specify an expiration one year in the future for the following cacheable resources:",this._oneYearExpirationCheck,requests,result);},_missingExpirationCheck:function(request)
+{this.execCheck(WebInspector.UIString("The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:"),this._missingExpirationCheck,requests,result);this.execCheck(WebInspector.UIString("The following resources specify a \"Vary\" header that disables caching in most versions of Internet Explorer:"),this._varyCheck,requests,result);this.execCheck(WebInspector.UIString("The following cacheable resources have a short freshness lifetime:"),this._oneMonthExpirationCheck,requests,result);this.execCheck(WebInspector.UIString("To further improve cache hit rate, specify an expiration one year in the future for the following cacheable resources:"),this._oneYearExpirationCheck,requests,result);},_missingExpirationCheck:function(request)
 {return this.isCacheableResource(request)&&!this.hasResponseHeader(request,"Set-Cookie")&&!this.hasExplicitExpiration(request);},_varyCheck:function(request)
 {var varyHeader=this.responseHeader(request,"Vary");if(varyHeader){varyHeader=varyHeader.replace(/User-Agent/gi,"");varyHeader=varyHeader.replace(/Accept-Encoding/gi,"");varyHeader=varyHeader.replace(/[, ]*/g,"");}
 return varyHeader&&varyHeader.length&&this.isCacheableResource(request)&&this.freshnessLifetimeGreaterThan(request,0);},_oneMonthExpirationCheck:function(request)
 {return this.isCacheableResource(request)&&!this.hasResponseHeader(request,"Set-Cookie")&&!this.freshnessLifetimeGreaterThan(request,WebInspector.AuditRules.CacheControlRule.MillisPerMonth)&&this.freshnessLifetimeGreaterThan(request,0);},_oneYearExpirationCheck:function(request)
 {return this.isCacheableResource(request)&&!this.hasResponseHeader(request,"Set-Cookie")&&!this.freshnessLifetimeGreaterThan(request,11*WebInspector.AuditRules.CacheControlRule.MillisPerMonth)&&this.freshnessLifetimeGreaterThan(request,WebInspector.AuditRules.CacheControlRule.MillisPerMonth);},__proto__:WebInspector.AuditRules.CacheControlRule.prototype}
-WebInspector.AuditRules.ProxyCacheControlRule=function(){WebInspector.AuditRules.CacheControlRule.call(this,"http-proxycache","Leverage proxy caching");}
+WebInspector.AuditRules.ProxyCacheControlRule=function(){WebInspector.AuditRules.CacheControlRule.call(this,"http-proxycache",WebInspector.UIString("Leverage proxy caching"));}
 WebInspector.AuditRules.ProxyCacheControlRule.prototype={runChecks:function(requests,result,callback)
-{this.execCheck("Resources with a \"?\" in the URL are not cached by most proxy caching servers:",this._questionMarkCheck,requests,result);this.execCheck("Consider adding a \"Cache-Control: public\" header to the following resources:",this._publicCachingCheck,requests,result);this.execCheck("The following publicly cacheable resources contain a Set-Cookie header. This security vulnerability can cause cookies to be shared by multiple users.",this._setCookieCacheableCheck,requests,result);},_questionMarkCheck:function(request)
+{this.execCheck(WebInspector.UIString("Resources with a \"?\" in the URL are not cached by most proxy caching servers:"),this._questionMarkCheck,requests,result);this.execCheck(WebInspector.UIString("Consider adding a \"Cache-Control: public\" header to the following resources:"),this._publicCachingCheck,requests,result);this.execCheck(WebInspector.UIString("The following publicly cacheable resources contain a Set-Cookie header. This security vulnerability can cause cookies to be shared by multiple users."),this._setCookieCacheableCheck,requests,result);},_questionMarkCheck:function(request)
 {return request.url.indexOf("?")>=0&&!this.hasResponseHeader(request,"Set-Cookie")&&this.isPubliclyCacheable(request);},_publicCachingCheck:function(request)
 {return this.isCacheableResource(request)&&!this.isCompressible(request)&&!this.responseHeaderMatch(request,"Cache-Control","public")&&!this.hasResponseHeader(request,"Set-Cookie");},_setCookieCacheableCheck:function(request)
 {return this.hasResponseHeader(request,"Set-Cookie")&&this.isPubliclyCacheable(request);},__proto__:WebInspector.AuditRules.CacheControlRule.prototype}
 WebInspector.AuditRules.ImageDimensionsRule=function()
-{WebInspector.AuditRule.call(this,"page-imagedims","Specify image dimensions");}
+{WebInspector.AuditRule.call(this,"page-imagedims",WebInspector.UIString("Specify image dimensions"));}
 WebInspector.AuditRules.ImageDimensionsRule.prototype={doRun:function(requests,result,callback,progress)
 {var urlToNoDimensionCount={};function doneCallback()
-{for(var url in urlToNoDimensionCount){var entry=entry||result.addChild("A width and height should be specified for all images in order to speed up page display. The following image(s) are missing a width and/or height:",true);var format="%r";if(urlToNoDimensionCount[url]>1)
+{for(var url in urlToNoDimensionCount){var entry=entry||result.addChild(WebInspector.UIString("A width and height should be specified for all images in order to speed up page display. The following image(s) are missing a width and/or height:"),true);var format="%r";if(urlToNoDimensionCount[url]>1)
 format+=" (%d uses)";entry.addFormatted(format,url,urlToNoDimensionCount[url]);result.violationCount++;}
 callback(entry?result:null);}
 function imageStylesReady(imageId,styles,isLastStyle,computedStyle)
@@ -354,7 +360,7 @@
 if(progress.isCanceled())
 return;WebInspector.domAgent.requestDocument(onDocumentAvailable);},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.CssInHeadRule=function()
-{WebInspector.AuditRule.call(this,"page-cssinhead","Put CSS in the document head");}
+{WebInspector.AuditRule.call(this,"page-cssinhead",WebInspector.UIString("Put CSS in the document head"));}
 WebInspector.AuditRules.CssInHeadRule.prototype={doRun:function(requests,result,callback,progress)
 {function evalCallback(evalResult)
 {if(progress.isCanceled())
@@ -362,7 +368,7 @@
 return callback(null);var summary=result.addChild("");var outputMessages=[];for(var url in evalResult){var urlViolations=evalResult[url];if(urlViolations[0]){result.addFormatted("%s style block(s) in the %r body should be moved to the document head.",urlViolations[0],url);result.violationCount+=urlViolations[0];}
 for(var i=0;i<urlViolations[1].length;++i)
 result.addFormatted("Link node %r should be moved to the document head in %r",urlViolations[1][i],url);result.violationCount+=urlViolations[1].length;}
-summary.value=String.sprintf("CSS in the document body adversely impacts rendering performance.");callback(result);}
+summary.value=WebInspector.UIString("CSS in the document body adversely impacts rendering performance.");callback(result);}
 function externalStylesheetsReceived(root,inlineStyleNodeIds,nodeIds)
 {if(progress.isCanceled())
 return;if(!nodeIds)
@@ -378,13 +384,13 @@
 return;WebInspector.domAgent.querySelectorAll(root.id,"body style",inlineStylesReceived.bind(null,root));}
 WebInspector.domAgent.requestDocument(onDocumentAvailable);},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.StylesScriptsOrderRule=function()
-{WebInspector.AuditRule.call(this,"page-stylescriptorder","Optimize the order of styles and scripts");}
+{WebInspector.AuditRule.call(this,"page-stylescriptorder",WebInspector.UIString("Optimize the order of styles and scripts"));}
 WebInspector.AuditRules.StylesScriptsOrderRule.prototype={doRun:function(requests,result,callback,progress)
 {function evalCallback(resultValue)
 {if(progress.isCanceled())
 return;if(!resultValue)
-return callback(null);var lateCssUrls=resultValue[0];var cssBeforeInlineCount=resultValue[1];if(lateCssUrls.length){var entry=result.addChild("The following external CSS files were included after an external JavaScript file in the document head. To ensure CSS files are downloaded in parallel, always include external CSS before external JavaScript.",true);entry.addURLs(lateCssUrls);result.violationCount+=lateCssUrls.length;}
-if(cssBeforeInlineCount){result.addChild(String.sprintf(" %d inline script block%s found in the head between an external CSS file and another resource. To allow parallel downloading, move the inline script before the external CSS file, or after the next resource.",cssBeforeInlineCount,cssBeforeInlineCount>1?"s were":" was"));result.violationCount+=cssBeforeInlineCount;}
+return callback(null);var lateCssUrls=resultValue[0];var cssBeforeInlineCount=resultValue[1];if(lateCssUrls.length){var entry=result.addChild(WebInspector.UIString("The following external CSS files were included after an external JavaScript file in the document head. To ensure CSS files are downloaded in parallel, always include external CSS before external JavaScript."),true);entry.addURLs(lateCssUrls);result.violationCount+=lateCssUrls.length;}
+if(cssBeforeInlineCount){result.addChild(WebInspector.UIString(" %d inline script block%s found in the head between an external CSS file and another resource. To allow parallel downloading, move the inline script before the external CSS file, or after the next resource.",cssBeforeInlineCount,cssBeforeInlineCount>1?"s were":" was"));result.violationCount+=cssBeforeInlineCount;}
 callback(result);}
 function cssBeforeInlineReceived(lateStyleIds,nodeIds)
 {if(progress.isCanceled())
@@ -425,7 +431,7 @@
 {},visitProperty:function(styleSheet,property,result)
 {},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.VendorPrefixedCSSProperties=function()
-{WebInspector.AuditRules.CSSRuleBase.call(this,"page-vendorprefixedcss","Use normal CSS property names instead of vendor-prefixed ones");this._webkitPrefix="-webkit-";}
+{WebInspector.AuditRules.CSSRuleBase.call(this,"page-vendorprefixedcss",WebInspector.UIString("Use normal CSS property names instead of vendor-prefixed ones"));this._webkitPrefix="-webkit-";}
 WebInspector.AuditRules.VendorPrefixedCSSProperties.supportedProperties=["background-clip","background-origin","background-size","border-radius","border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","box-shadow","box-sizing","opacity","text-shadow"].keySet();WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype={didVisitStyleSheet:function(styleSheet)
 {delete this._styleSheetResult;},visitRule:function(rule)
 {this._mentionedProperties={};},didVisitRule:function()
@@ -433,8 +439,8 @@
 {if(!property.name.startsWith(this._webkitPrefix))
 return;var normalPropertyName=property.name.substring(this._webkitPrefix.length).toLowerCase();if(WebInspector.AuditRules.VendorPrefixedCSSProperties.supportedProperties[normalPropertyName]&&!this._mentionedProperties[normalPropertyName]){var style=property.ownerStyle;var liveProperty=style.getLiveProperty(normalPropertyName);if(liveProperty&&!liveProperty.styleBased)
 return;var rule=style.parentRule;this._mentionedProperties[normalPropertyName]=true;if(!this._styleSheetResult)
-this._styleSheetResult=result.addChild(rule.sourceURL?WebInspector.linkifyResourceAsNode(rule.sourceURL):"<unknown>");if(!this._ruleResult){var anchor=WebInspector.linkifyURLAsNode(rule.sourceURL,rule.selectorText);anchor.preferredPanel="resources";anchor.lineNumber=rule.lineNumberInSource();this._ruleResult=this._styleSheetResult.addChild(anchor);}
-++result.violationCount;this._ruleResult.addSnippet(String.sprintf("\""+this._webkitPrefix+"%s\" is used, but \"%s\" is supported.",normalPropertyName,normalPropertyName));}},__proto__:WebInspector.AuditRules.CSSRuleBase.prototype}
+this._styleSheetResult=result.addChild(rule.sourceURL?WebInspector.linkifyResourceAsNode(rule.sourceURL):WebInspector.UIString("<unknown>"));if(!this._ruleResult){var anchor=WebInspector.linkifyURLAsNode(rule.sourceURL,rule.selectorText);anchor.preferredPanel="resources";anchor.lineNumber=rule.lineNumberInSource();this._ruleResult=this._styleSheetResult.addChild(anchor);}
+++result.violationCount;this._ruleResult.addSnippet(WebInspector.UIString("\"%s%s\" is used, but \"%s\" is supported.",this._webkitPrefix,normalPropertyName,normalPropertyName));}},__proto__:WebInspector.AuditRules.CSSRuleBase.prototype}
 WebInspector.AuditRules.CookieRuleBase=function(id,name)
 {WebInspector.AuditRule.call(this,id,name);}
 WebInspector.AuditRules.CookieRuleBase.prototype={doRun:function(requests,result,callback,progress)
@@ -447,7 +453,7 @@
 return;for(var i=0;i<requests.length;++i){if(WebInspector.Cookies.cookieMatchesResourceURL(cookie,requests[i].url))
 callback(requests[i],cookie);}},__proto__:WebInspector.AuditRule.prototype}
 WebInspector.AuditRules.CookieSizeRule=function(avgBytesThreshold)
-{WebInspector.AuditRules.CookieRuleBase.call(this,"http-cookiesize","Minimize cookie size");this._avgBytesThreshold=avgBytesThreshold;this._maxBytesThreshold=1000;}
+{WebInspector.AuditRules.CookieRuleBase.call(this,"http-cookiesize",WebInspector.UIString("Minimize cookie size"));this._avgBytesThreshold=avgBytesThreshold;this._maxBytesThreshold=1000;}
 WebInspector.AuditRules.CookieSizeRule.prototype={_average:function(cookieArray)
 {var total=0;for(var i=0;i<cookieArray.length;++i)
 total+=cookieArray[i].size();return cookieArray.length?Math.round(total/cookieArray.length):0;},_max:function(cookieArray)
@@ -466,14 +472,14 @@
 hugeCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(sortedCookieSizes[i].domain)+": "+Number.bytesToString(maxCookieSize));}
 var bigAvgCookieDomains=[];sortedCookieSizes.sort(avgSizeSorter);for(var i=0,len=sortedCookieSizes.length;i<len;++i){var domain=sortedCookieSizes[i].domain;var avgCookieSize=sortedCookieSizes[i].avgCookieSize;if(avgCookieSize>this._avgBytesThreshold&&avgCookieSize<this._maxBytesThreshold)
 bigAvgCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(domain)+": "+Number.bytesToString(avgCookieSize));}
-result.addChild(String.sprintf("The average cookie size for all requests on this page is %s",Number.bytesToString(avgAllCookiesSize)));var message;if(hugeCookieDomains.length){var entry=result.addChild("The following domains have a cookie size in excess of 1KB. This is harmful because requests with cookies larger than 1KB typically cannot fit into a single network packet.",true);entry.addURLs(hugeCookieDomains);result.violationCount+=hugeCookieDomains.length;}
-if(bigAvgCookieDomains.length){var entry=result.addChild(String.sprintf("The following domains have an average cookie size in excess of %d bytes. Reducing the size of cookies for these domains can reduce the time it takes to send requests.",this._avgBytesThreshold),true);entry.addURLs(bigAvgCookieDomains);result.violationCount+=bigAvgCookieDomains.length;}},__proto__:WebInspector.AuditRules.CookieRuleBase.prototype}
+result.addChild(WebInspector.UIString("The average cookie size for all requests on this page is %s",Number.bytesToString(avgAllCookiesSize)));var message;if(hugeCookieDomains.length){var entry=result.addChild(WebInspector.UIString("The following domains have a cookie size in excess of 1KB. This is harmful because requests with cookies larger than 1KB typically cannot fit into a single network packet."),true);entry.addURLs(hugeCookieDomains);result.violationCount+=hugeCookieDomains.length;}
+if(bigAvgCookieDomains.length){var entry=result.addChild(WebInspector.UIString("The following domains have an average cookie size in excess of %d bytes. Reducing the size of cookies for these domains can reduce the time it takes to send requests.",this._avgBytesThreshold),true);entry.addURLs(bigAvgCookieDomains);result.violationCount+=bigAvgCookieDomains.length;}},__proto__:WebInspector.AuditRules.CookieRuleBase.prototype}
 WebInspector.AuditRules.StaticCookielessRule=function(minResources)
-{WebInspector.AuditRules.CookieRuleBase.call(this,"http-staticcookieless","Serve static content from a cookieless domain");this._minResources=minResources;}
+{WebInspector.AuditRules.CookieRuleBase.call(this,"http-staticcookieless",WebInspector.UIString("Serve static content from a cookieless domain"));this._minResources=minResources;}
 WebInspector.AuditRules.StaticCookielessRule.prototype={processCookies:function(allCookies,requests,result)
 {var domainToResourcesMap=WebInspector.AuditRules.getDomainToResourcesMap(requests,[WebInspector.resourceTypes.Stylesheet,WebInspector.resourceTypes.Image],true);var totalStaticResources=0;for(var domain in domainToResourcesMap)
 totalStaticResources+=domainToResourcesMap[domain].length;if(totalStaticResources<this._minResources)
 return;var matchingResourceData={};this.mapResourceCookies(domainToResourcesMap,allCookies,this._collectorCallback.bind(this,matchingResourceData));var badUrls=[];var cookieBytes=0;for(var url in matchingResourceData){badUrls.push(url);cookieBytes+=matchingResourceData[url]}
 if(badUrls.length<this._minResources)
-return;var entry=result.addChild(String.sprintf("%s of cookies were sent with the following static resources. Serve these static resources from a domain that does not set cookies:",Number.bytesToString(cookieBytes)),true);entry.addURLs(badUrls);result.violationCount=badUrls.length;},_collectorCallback:function(matchingResourceData,request,cookie)
+return;var entry=result.addChild(WebInspector.UIString("%s of cookies were sent with the following static resources. Serve these static resources from a domain that does not set cookies:",Number.bytesToString(cookieBytes)),true);entry.addURLs(badUrls);result.violationCount=badUrls.length;},_collectorCallback:function(matchingResourceData,request,cookie)
 {matchingResourceData[request.url]=(matchingResourceData[request.url]||0)+cookie.size();},__proto__:WebInspector.AuditRules.CookieRuleBase.prototype};
\ No newline at end of file
diff --git a/resources/inspector/CodeMirrorTextEditor.js b/resources/inspector/CodeMirrorTextEditor.js
index 635dc67..85eb6ae 100644
--- a/resources/inspector/CodeMirrorTextEditor.js
+++ b/resources/inspector/CodeMirrorTextEditor.js
@@ -1,4 +1,4 @@
-window.CodeMirror=(function(){"use strict";var gecko=/gecko\/\d/i.test(navigator.userAgent);var ie=/MSIE \d/.test(navigator.userAgent);var ie_lt8=ie&&(document.documentMode==null||document.documentMode<8);var ie_lt9=ie&&(document.documentMode==null||document.documentMode<9);var webkit=/WebKit\//.test(navigator.userAgent);var qtwebkit=webkit&&/Qt\/\d+\.\d+/.test(navigator.userAgent);var chrome=/Chrome\//.test(navigator.userAgent);var opera=/Opera\//.test(navigator.userAgent);var safari=/Apple Computer/.test(navigator.vendor);var khtml=/KHTML\//.test(navigator.userAgent);var mac_geLion=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent);var mac_geMountainLion=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent);var phantom=/PhantomJS/.test(navigator.userAgent);var ios=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent);var mobile=ios||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);var mac=ios||/Mac/.test(navigator.platform);var windows=/win/i.test(navigator.platform);var opera_version=opera&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);if(opera_version)opera_version=Number(opera_version[1]);if(opera_version&&opera_version>=15){opera=false;webkit=true;}
+window.CodeMirror=(function(){"use strict";var gecko=/gecko\/\d/i.test(navigator.userAgent);var ie=/MSIE \d/.test(navigator.userAgent);var ie_lt8=ie&&(document.documentMode==null||document.documentMode<8);var ie_lt9=ie&&(document.documentMode==null||document.documentMode<9);var ie_gt10=/Trident\/([7-9]|\d{2,})\./.test(navigator.userAgent);var webkit=/WebKit\//.test(navigator.userAgent);var qtwebkit=webkit&&/Qt\/\d+\.\d+/.test(navigator.userAgent);var chrome=/Chrome\//.test(navigator.userAgent);var opera=/Opera\//.test(navigator.userAgent);var safari=/Apple Computer/.test(navigator.vendor);var khtml=/KHTML\//.test(navigator.userAgent);var mac_geLion=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent);var mac_geMountainLion=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent);var phantom=/PhantomJS/.test(navigator.userAgent);var ios=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent);var mobile=ios||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);var mac=ios||/Mac/.test(navigator.platform);var windows=/win/i.test(navigator.platform);var opera_version=opera&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);if(opera_version)opera_version=Number(opera_version[1]);if(opera_version&&opera_version>=15){opera=false;webkit=true;}
 var flipCtrlCmd=mac&&(qtwebkit||opera&&(opera_version==null||opera_version<12.11));var captureMiddleClick=gecko||(ie&&!ie_lt9);var sawReadOnlySpans=false,sawCollapsedSpans=false;function CodeMirror(place,options){if(!(this instanceof CodeMirror))return new CodeMirror(place,options);this.options=options=options||{};for(var opt in defaults)if(!options.hasOwnProperty(opt)&&defaults.hasOwnProperty(opt))
 options[opt]=defaults[opt];setGuttersForLineNumbers(options);var docStart=typeof options.value=="string"?0:options.value.first;var display=this.display=makeDisplay(place,docStart);display.wrapper.CodeMirror=this;updateGutters(this);if(options.autofocus&&!mobile)focusInput(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:false,focused:false,suppressEdits:false,pasteIncoming:false,draggingText:false,highlight:new Delayed()};themeChanged(this);if(options.lineWrapping)
 this.display.wrapper.className+=" CodeMirror-wrap";var doc=options.value;if(typeof doc=="string")doc=new Doc(options.value,options.mode);operation(this,attachDoc)(this,doc);if(ie)setTimeout(bind(resetInput,this,true),20);registerEventHandlers(this);var hasFocus;try{hasFocus=(document.activeElement==display.input);}catch(e){}
@@ -27,11 +27,10 @@
 cur=line;while(merged=collapsedSpanAtEnd(cur)){var found=merged.find();len-=cur.text.length-found.from.ch;cur=getLine(doc,found.to.line);len+=cur.text.length-found.to.ch;}
 return len;}
 function computeMaxLength(cm){var d=cm.display,doc=cm.doc;d.maxLine=getLine(doc,doc.first);d.maxLineLength=lineLength(doc,d.maxLine);d.maxLineChanged=true;doc.iter(function(line){var len=lineLength(doc,line);if(len>d.maxLineLength){d.maxLineLength=len;d.maxLine=line;}});}
-function setGuttersForLineNumbers(options){var found=indexOf(options.gutters,"CodeMirror-linenumbers");if(found==-1&&options.lineNumbers){options.gutters=options.gutters.concat(["CodeMirror-linenumbers"]);}else if(found>-1&&!options.lineNumbers){options.gutters=options.gutters.slice(0);options.gutters.splice(i,1);}}
+function setGuttersForLineNumbers(options){var found=indexOf(options.gutters,"CodeMirror-linenumbers");if(found==-1&&options.lineNumbers){options.gutters=options.gutters.concat(["CodeMirror-linenumbers"]);}else if(found>-1&&!options.lineNumbers){options.gutters=options.gutters.slice(0);options.gutters.splice(found,1);}}
 function updateScrollbars(cm){var d=cm.display,docHeight=cm.doc.height;var totalHeight=docHeight+paddingVert(d);d.sizer.style.minHeight=d.heightForcer.style.top=totalHeight+"px";d.gutters.style.height=Math.max(totalHeight,d.scroller.clientHeight-scrollerCutOff)+"px";var scrollHeight=Math.max(totalHeight,d.scroller.scrollHeight);var needsH=d.scroller.scrollWidth>(d.scroller.clientWidth+1);var needsV=scrollHeight>(d.scroller.clientHeight+1);if(needsV){d.scrollbarV.style.display="block";d.scrollbarV.style.bottom=needsH?scrollbarWidth(d.measure)+"px":"0";d.scrollbarV.firstChild.style.height=(scrollHeight-d.scroller.clientHeight+d.scrollbarV.clientHeight)+"px";}else{d.scrollbarV.style.display="";d.scrollbarV.firstChild.style.height="0";}
 if(needsH){d.scrollbarH.style.display="block";d.scrollbarH.style.right=needsV?scrollbarWidth(d.measure)+"px":"0";d.scrollbarH.firstChild.style.width=(d.scroller.scrollWidth-d.scroller.clientWidth+d.scrollbarH.clientWidth)+"px";}else{d.scrollbarH.style.display="";d.scrollbarH.firstChild.style.width="0";}
-if(needsH&&needsV){d.scrollbarFiller.style.display="block";d.scrollbarFiller.style.height=d.scrollbarFiller.style.width=scrollbarWidth(d.measure)+"px";}else d.scrollbarFiller.style.display="";if(needsH&&cm.options.coverGutterNextToScrollbar&&cm.options.fixedGutter){d.gutterFiller.style.display="block";d.gutterFiller.style.height=scrollbarWidth(d.measure)+"px";d.gutterFiller.style.width=d.gutters.offsetWidth+"px";}else d.gutterFiller.style.display="";if(mac_geLion&&scrollbarWidth(d.measure)===0)
-d.scrollbarV.style.minWidth=d.scrollbarH.style.minHeight=mac_geMountainLion?"18px":"12px";}
+if(needsH&&needsV){d.scrollbarFiller.style.display="block";d.scrollbarFiller.style.height=d.scrollbarFiller.style.width=scrollbarWidth(d.measure)+"px";}else d.scrollbarFiller.style.display="";if(needsH&&cm.options.coverGutterNextToScrollbar&&cm.options.fixedGutter){d.gutterFiller.style.display="block";d.gutterFiller.style.height=scrollbarWidth(d.measure)+"px";d.gutterFiller.style.width=d.gutters.offsetWidth+"px";}else d.gutterFiller.style.display="";if(mac_geLion&&scrollbarWidth(d.measure)===0){d.scrollbarV.style.minWidth=d.scrollbarH.style.minHeight=mac_geMountainLion?"18px":"12px";d.scrollbarV.style.pointerEvents=d.scrollbarH.style.pointerEvents="none";}}
 function visibleLines(display,doc,viewPort){var top=display.scroller.scrollTop,height=display.wrapper.clientHeight;if(typeof viewPort=="number")top=viewPort;else if(viewPort){top=viewPort.top;height=viewPort.bottom-viewPort.top;}
 top=Math.floor(top-paddingTop(display));var bottom=Math.ceil(top+height);return{from:lineAtHeight(doc,top),to:lineAtHeight(doc,bottom)};}
 function alignHorizontally(cm){var display=cm.display;if(!display.alignWidgets&&(!display.gutters.firstChild||!cm.options.fixedGutter))return;var comp=compensateForHScroll(display)-display.scroller.scrollLeft+cm.doc.scrollLeft;var gutterW=display.gutters.offsetWidth,l=comp+"px";for(var n=display.lineDiv.firstChild;n;n=n.nextSibling)if(n.alignable){for(var i=0,a=n.alignable;i<a.length;++i)a[i].style.left=l;}
@@ -41,7 +40,7 @@
 return false;}
 function lineNumberFor(options,i){return String(options.lineNumberFormatter(i+options.firstLineNumber));}
 function compensateForHScroll(display){return getRect(display.scroller).left-getRect(display.sizer).left;}
-function updateDisplay(cm,changes,viewPort,forced){var oldFrom=cm.display.showingFrom,oldTo=cm.display.showingTo,updated;var visible=visibleLines(cm.display,cm.doc,viewPort);for(;;){var oldWidth=cm.display.scroller.clientWidth;if(!updateDisplayInner(cm,changes,visible,forced))break;updated=true;changes=[];updateSelection(cm);updateScrollbars(cm);if(cm.options.lineWrapping&&oldWidth!=cm.display.scroller.clientWidth){forced=true;continue;}
+function updateDisplay(cm,changes,viewPort,forced){var oldFrom=cm.display.showingFrom,oldTo=cm.display.showingTo,updated;var visible=visibleLines(cm.display,cm.doc,viewPort);for(var first=true;;first=false){var oldWidth=cm.display.scroller.clientWidth;if(!updateDisplayInner(cm,changes,visible,forced))break;updated=true;changes=[];updateSelection(cm);updateScrollbars(cm);if(first&&cm.options.lineWrapping&&oldWidth!=cm.display.scroller.clientWidth){forced=true;continue;}
 forced=false;if(viewPort)
 viewPort=Math.min(cm.display.scroller.scrollHeight-cm.display.scroller.clientHeight,typeof viewPort=="number"?viewPort:viewPort.top);visible=visibleLines(cm.display,cm.doc,viewPort);if(visible.from>=cm.display.showingFrom&&visible.to<=cm.display.showingTo)
 break;}
@@ -125,24 +124,24 @@
 display.blinker=setInterval(function(){display.cursor.style.visibility=display.otherCursor.style.visibility=(on=!on)?"":"hidden";},cm.options.cursorBlinkRate);}
 function startWorker(cm,time){if(cm.doc.mode.startState&&cm.doc.frontier<cm.display.showingTo)
 cm.state.highlight.set(time,bind(highlightWorker,cm));}
-function highlightWorker(cm){var doc=cm.doc;if(doc.frontier<doc.first)doc.frontier=doc.first;if(doc.frontier>=cm.display.showingTo)return;var end=+new Date+cm.options.workTime;var state=copyState(doc.mode,getStateBefore(cm,doc.frontier));var changed=[],prevChange;doc.iter(doc.frontier,Math.min(doc.first+doc.size,cm.display.showingTo+500),function(line){if(doc.frontier>=cm.display.showingFrom){var oldStyles=line.styles;line.styles=highlightLine(cm,line,state);var ischange=!oldStyles||oldStyles.length!=line.styles.length;for(var i=0;!ischange&&i<oldStyles.length;++i)ischange=oldStyles[i]!=line.styles[i];if(ischange){if(prevChange&&prevChange.end==doc.frontier)prevChange.end++;else changed.push(prevChange={start:doc.frontier,end:doc.frontier+1});}
-line.stateAfter=copyState(doc.mode,state);}else{processLine(cm,line,state);line.stateAfter=doc.frontier%5==0?copyState(doc.mode,state):null;}
+function highlightWorker(cm){var doc=cm.doc;if(doc.frontier<doc.first)doc.frontier=doc.first;if(doc.frontier>=cm.display.showingTo)return;var end=+new Date+cm.options.workTime;var state=copyState(doc.mode,getStateBefore(cm,doc.frontier));var changed=[],prevChange;doc.iter(doc.frontier,Math.min(doc.first+doc.size,cm.display.showingTo+500),function(line){if(doc.frontier>=cm.display.showingFrom){var oldStyles=line.styles;line.styles=highlightLine(cm,line,state,true);var ischange=!oldStyles||oldStyles.length!=line.styles.length;for(var i=0;!ischange&&i<oldStyles.length;++i)ischange=oldStyles[i]!=line.styles[i];if(ischange){if(prevChange&&prevChange.end==doc.frontier)prevChange.end++;else changed.push(prevChange={start:doc.frontier,end:doc.frontier+1});}
+line.stateAfter=copyState(doc.mode,state);}else{processLine(cm,line.text,state);line.stateAfter=doc.frontier%5==0?copyState(doc.mode,state):null;}
 ++doc.frontier;if(+new Date>end){startWorker(cm,cm.options.workDelay);return true;}});if(changed.length)
 operation(cm,function(){for(var i=0;i<changed.length;++i)
 regChange(this,changed[i].start,changed[i].end);})();}
-function findStartLine(cm,n,precise){var minindent,minline,doc=cm.doc,maxScan=cm.doc.mode.innerMode?1000:100;for(var search=n,lim=n-maxScan;search>lim;--search){if(search<=doc.first)return doc.first;var line=getLine(doc,search-1);if(line.stateAfter&&(!precise||search<=doc.frontier))return search;var indented=countColumn(line.text,null,cm.options.tabSize);if(minline==null||minindent>indented){minline=search-1;minindent=indented;}}
+function findStartLine(cm,n,precise){var minindent,minline,doc=cm.doc;var lim=precise?-1:n-(cm.doc.mode.innerMode?1000:100);for(var search=n;search>lim;--search){if(search<=doc.first)return doc.first;var line=getLine(doc,search-1);if(line.stateAfter&&(!precise||search<=doc.frontier))return search;var indented=countColumn(line.text,null,cm.options.tabSize);if(minline==null||minindent>indented){minline=search-1;minindent=indented;}}
 return minline;}
-function getStateBefore(cm,n,precise){var doc=cm.doc,display=cm.display;if(!doc.mode.startState)return true;var pos=findStartLine(cm,n,precise),state=pos>doc.first&&getLine(doc,pos-1).stateAfter;if(!state)state=startState(doc.mode);else state=copyState(doc.mode,state);doc.iter(pos,n,function(line){processLine(cm,line,state);var save=pos==n-1||pos%5==0||pos>=display.showingFrom&&pos<display.showingTo;line.stateAfter=save?copyState(doc.mode,state):null;++pos;});return state;}
+function getStateBefore(cm,n,precise){var doc=cm.doc,display=cm.display;if(!doc.mode.startState)return true;var pos=findStartLine(cm,n,precise),state=pos>doc.first&&getLine(doc,pos-1).stateAfter;if(!state)state=startState(doc.mode);else state=copyState(doc.mode,state);doc.iter(pos,n,function(line){processLine(cm,line.text,state);var save=pos==n-1||pos%5==0||pos>=display.showingFrom&&pos<display.showingTo;line.stateAfter=save?copyState(doc.mode,state):null;++pos;});if(precise)doc.frontier=pos;return state;}
 function paddingTop(display){return display.lineSpace.offsetTop;}
 function paddingVert(display){return display.mover.offsetHeight-display.lineSpace.offsetHeight;}
 function paddingLeft(display){var e=removeChildrenAndAdd(display.measure,elt("pre",null,null,"text-align: left")).appendChild(elt("span","x"));return e.offsetLeft;}
 function measureChar(cm,line,ch,data,bias){var dir=-1;data=data||measureLine(cm,line);if(data.crude){var left=data.left+ch*data.width;return{left:left,right:left+data.width,top:data.top,bottom:data.bottom};}
 for(var pos=ch;;pos+=dir){var r=data[pos];if(r)break;if(dir<0&&pos==0)dir=1;}
 bias=pos>ch?"left":pos<ch?"right":bias;if(bias=="left"&&r.leftSide)r=r.leftSide;else if(bias=="right"&&r.rightSide)r=r.rightSide;return{left:pos<ch?r.right:r.left,right:pos>ch?r.left:r.right,top:r.top,bottom:r.bottom};}
-function findCachedMeasurement(cm,line){var cache=cm.display.measureLineCache;for(var i=0;i<cache.length;++i){var memo=cache[i];if(memo.text==line.text&&memo.markedSpans==line.markedSpans&&cm.display.scroller.clientWidth==memo.width&&memo.classes==line.textClass+"|"+line.bgClass+"|"+line.wrapClass)
+function findCachedMeasurement(cm,line){var cache=cm.display.measureLineCache;for(var i=0;i<cache.length;++i){var memo=cache[i];if(memo.text==line.text&&memo.markedSpans==line.markedSpans&&cm.display.scroller.clientWidth==memo.width&&memo.classes==line.textClass+"|"+line.wrapClass)
 return memo;}}
 function clearCachedMeasurement(cm,line){var exists=findCachedMeasurement(cm,line);if(exists)exists.text=exists.measure=exists.markedSpans=null;}
-function measureLine(cm,line){var cached=findCachedMeasurement(cm,line);if(cached)return cached.measure;var measure=measureLineInner(cm,line);var cache=cm.display.measureLineCache;var memo={text:line.text,width:cm.display.scroller.clientWidth,markedSpans:line.markedSpans,measure:measure,classes:line.textClass+"|"+line.bgClass+"|"+line.wrapClass};if(cache.length==16)cache[++cm.display.measureLineCachePos%16]=memo;else cache.push(memo);return measure;}
+function measureLine(cm,line){var cached=findCachedMeasurement(cm,line);if(cached)return cached.measure;var measure=measureLineInner(cm,line);var cache=cm.display.measureLineCache;var memo={text:line.text,width:cm.display.scroller.clientWidth,markedSpans:line.markedSpans,measure:measure,classes:line.textClass+"|"+line.wrapClass};if(cache.length==16)cache[++cm.display.measureLineCachePos%16]=memo;else cache.push(memo);return measure;}
 function measureLineInner(cm,line){if(!cm.options.lineWrapping&&line.text.length>=cm.options.crudeMeasuringFrom)
 return crudelyMeasureLine(cm,line);var display=cm.display,measure=emptyArray(line.text.length);var pre=buildLineContent(cm,line,measure,true).pre;if(ie&&!ie_lt8&&!cm.options.lineWrapping&&pre.childNodes.length>100){var fragment=document.createDocumentFragment();var chunk=10,n=pre.childNodes.length;for(var i=0,chunks=Math.ceil(n/chunk);i<chunks;++i){var wrap=elt("div",null,null,"display: inline-block");for(var j=0;j<chunk&&n;++j){wrap.appendChild(pre.firstChild);--n;}
 fragment.appendChild(wrap);}
@@ -192,8 +191,8 @@
 setScrollLeft(cm,Math.min(display.scroller.scrollLeft,maxScrollLeft),true);}
 var newScrollPos,updated;if(op.updateScrollPos){newScrollPos=op.updateScrollPos;}else if(op.selectionChanged&&display.scroller.clientHeight){var coords=cursorCoords(cm,doc.sel.head);newScrollPos=calculateScrollPos(cm,coords.left,coords.top,coords.left,coords.bottom);}
 if(op.changes.length||op.forceUpdate||newScrollPos&&newScrollPos.scrollTop!=null){updated=updateDisplay(cm,op.changes,newScrollPos&&newScrollPos.scrollTop,op.forceUpdate);if(cm.display.scroller.offsetHeight)cm.doc.scrollTop=cm.display.scroller.scrollTop;}
-if(!updated&&op.selectionChanged)updateSelection(cm);if(op.updateScrollPos){display.scroller.scrollTop=display.scrollbarV.scrollTop=doc.scrollTop=newScrollPos.scrollTop;display.scroller.scrollLeft=display.scrollbarH.scrollLeft=doc.scrollLeft=newScrollPos.scrollLeft;alignHorizontally(cm);if(op.scrollToPos)
-scrollPosIntoView(cm,clipPos(cm.doc,op.scrollToPos),op.scrollToPosMargin);}else if(newScrollPos){scrollCursorIntoView(cm);}
+if(!updated&&op.selectionChanged)updateSelection(cm);if(op.updateScrollPos){var top=Math.max(0,Math.min(display.scroller.scrollHeight-display.scroller.clientHeight,newScrollPos.scrollTop));var left=Math.max(0,Math.min(display.scroller.scrollWidth-display.scroller.clientWidth,newScrollPos.scrollLeft));display.scroller.scrollTop=display.scrollbarV.scrollTop=doc.scrollTop=top;display.scroller.scrollLeft=display.scrollbarH.scrollLeft=doc.scrollLeft=left;alignHorizontally(cm);if(op.scrollToPos)
+scrollPosIntoView(cm,clipPos(cm.doc,op.scrollToPos.from),clipPos(cm.doc,op.scrollToPos.to),op.scrollToPos.margin);}else if(newScrollPos){scrollCursorIntoView(cm);}
 if(op.selectionChanged)restartBlink(cm);if(cm.state.focused&&op.updateInput)
 resetInput(cm,op.userSelChange);var hidden=op.maybeHiddenMarkers,unhidden=op.maybeUnhiddenMarkers;if(hidden)for(var i=0;i<hidden.length;++i)
 if(!hidden[i].lines.length)signal(hidden[i],"hide");if(unhidden)for(var i=0;i<unhidden.length;++i)
@@ -230,7 +229,7 @@
 on(d.scrollbarH,"mousedown",reFocus);on(d.scrollbarV,"mousedown",reFocus);on(d.wrapper,"scroll",function(){d.wrapper.scrollTop=d.wrapper.scrollLeft=0;});var resizeTimer;function onResize(){if(resizeTimer==null)resizeTimer=setTimeout(function(){resizeTimer=null;d.cachedCharWidth=d.cachedTextHeight=knownScrollbarWidth=null;clearCaches(cm);runInOp(cm,bind(regChange,cm));},100);}
 on(window,"resize",onResize);function unregister(){for(var p=d.wrapper.parentNode;p&&p!=document.body;p=p.parentNode){}
 if(p)setTimeout(unregister,5000);else off(window,"resize",onResize);}
-setTimeout(unregister,5000);on(d.input,"keyup",operation(cm,function(e){if(signalDOMEvent(cm,e)||cm.options.onKeyEvent&&cm.options.onKeyEvent(cm,addStop(e)))return;if(e.keyCode==16)cm.doc.sel.shift=false;}));on(d.input,"input",bind(fastPoll,cm));on(d.input,"keydown",operation(cm,onKeyDown));on(d.input,"keypress",operation(cm,onKeyPress));on(d.input,"focus",bind(onFocus,cm));on(d.input,"blur",bind(onBlur,cm));function drag_(e){if(signalDOMEvent(cm,e)||cm.options.onDragEvent&&cm.options.onDragEvent(cm,addStop(e)))return;e_stop(e);}
+setTimeout(unregister,5000);on(d.input,"keyup",operation(cm,function(e){if(signalDOMEvent(cm,e)||cm.options.onKeyEvent&&cm.options.onKeyEvent(cm,addStop(e)))return;if(e.keyCode==16)cm.doc.sel.shift=false;}));on(d.input,"input",function(){if(ie&&!ie_lt9&&cm.display.inputHasSelection)cm.display.inputHasSelection=null;fastPoll(cm);});on(d.input,"keydown",operation(cm,onKeyDown));on(d.input,"keypress",operation(cm,onKeyPress));on(d.input,"focus",bind(onFocus,cm));on(d.input,"blur",bind(onBlur,cm));function drag_(e){if(signalDOMEvent(cm,e)||cm.options.onDragEvent&&cm.options.onDragEvent(cm,addStop(e)))return;e_stop(e);}
 if(cm.options.dragDrop){on(d.scroller,"dragstart",function(e){onDragStart(cm,e);});on(d.scroller,"dragenter",drag_);on(d.scroller,"dragover",drag_);on(d.scroller,"drop",operation(cm,onDrop));}
 on(d.scroller,"paste",function(e){if(eventInWidget(d,e))return;focusInput(cm);fastPoll(cm);});on(d.input,"paste",function(){if(webkit&&!cm.state.fakedLastChar&&!(new Date-cm.state.lastMiddleDown<200)){var start=d.input.selectionStart,end=d.input.selectionEnd;d.input.value+="$";d.input.selectionStart=start;d.input.selectionEnd=end;cm.state.fakedLastChar=true;}
 cm.state.pasteIncoming=true;fastPoll(cm);});function prepareCopy(){if(d.inaccurateSelection){d.prevInput="";d.inaccurateSelection=false;d.input.value=cm.getSelection();selectInput(d.input);}}
@@ -258,7 +257,7 @@
 function clickInGutter(cm,e){return gutterEvent(cm,e,"gutterClick",true,signalLater);}
 var lastDrop=0;function onDrop(e){var cm=this;if(signalDOMEvent(cm,e)||eventInWidget(cm.display,e)||(cm.options.onDragEvent&&cm.options.onDragEvent(cm,addStop(e))))
 return;e_preventDefault(e);if(ie)lastDrop=+new Date;var pos=posFromMouse(cm,e,true),files=e.dataTransfer.files;if(!pos||isReadOnly(cm))return;if(files&&files.length&&window.FileReader&&window.File){var n=files.length,text=Array(n),read=0;var loadFile=function(file,i){var reader=new FileReader;reader.onload=function(){text[i]=reader.result;if(++read==n){pos=clipPos(cm.doc,pos);makeChange(cm.doc,{from:pos,to:pos,text:splitLines(text.join("\n")),origin:"paste"},"around");}};reader.readAsText(file);};for(var i=0;i<n;++i)loadFile(files[i],i);}else{if(cm.state.draggingText&&!(posLess(pos,cm.doc.sel.from)||posLess(cm.doc.sel.to,pos))){cm.state.draggingText(e);setTimeout(bind(focusInput,cm),20);return;}
-try{var text=e.dataTransfer.getData("Text");if(text){var curFrom=cm.doc.sel.from,curTo=cm.doc.sel.to;setSelection(cm.doc,pos,pos);if(cm.state.draggingText)replaceRange(cm.doc,"",curFrom,curTo,"paste");cm.replaceSelection(text,null,"paste");focusInput(cm);onFocus(cm);}}
+try{var text=e.dataTransfer.getData("Text");if(text){var curFrom=cm.doc.sel.from,curTo=cm.doc.sel.to;setSelection(cm.doc,pos,pos);if(cm.state.draggingText)replaceRange(cm.doc,"",curFrom,curTo,"paste");cm.replaceSelection(text,null,"paste");focusInput(cm);}}
 catch(e){}}}
 function onDragStart(cm,e){if(ie&&(!cm.state.draggingText||+new Date-lastDrop<100)){e_stop(e);return;}
 if(signalDOMEvent(cm,e)||eventInWidget(cm.display,e))return;var txt=cm.getSelection();e.dataTransfer.setData("Text",txt);if(e.dataTransfer.setDragImage&&!safari){var img=elt("img",null,null,"position: fixed; left: 0; top: 0;");img.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";if(opera){img.width=img.height=1;cm.display.wrapper.appendChild(img);img._top=img.offsetTop;}
@@ -291,7 +290,7 @@
 slowPoll(cm);restartBlink(cm);}
 function onBlur(cm){if(cm.state.focused){signal(cm,"blur",cm);cm.state.focused=false;cm.display.wrapper.className=cm.display.wrapper.className.replace(" CodeMirror-focused","");}
 clearInterval(cm.display.blinker);setTimeout(function(){if(!cm.state.focused)cm.doc.sel.shift=false;},150);}
-var detectingSelectAll;function onContextMenu(cm,e){if(signalDOMEvent(cm,e,"contextmenu"))return;var display=cm.display,sel=cm.doc.sel;if(eventInWidget(display,e)||contextMenuInGutter(cm,e))return;var pos=posFromMouse(cm,e),scrollPos=display.scroller.scrollTop;if(!pos||opera)return;if(posEq(sel.from,sel.to)||posLess(pos,sel.from)||!posLess(pos,sel.to))
+var detectingSelectAll;function onContextMenu(cm,e){if(signalDOMEvent(cm,e,"contextmenu"))return;var display=cm.display,sel=cm.doc.sel;if(eventInWidget(display,e)||contextMenuInGutter(cm,e))return;var pos=posFromMouse(cm,e),scrollPos=display.scroller.scrollTop;if(!pos||opera)return;var reset=cm.options.resetSelectionOnContextMenu;if(reset&&(posEq(sel.from,sel.to)||posLess(pos,sel.from)||!posLess(pos,sel.to)))
 operation(cm,setSelection)(cm.doc,pos,pos);var oldCSS=display.input.style.cssText;display.inputDiv.style.position="absolute";display.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(e.clientY-5)+"px; left: "+(e.clientX-5)+"px; z-index: 1000; background: white; outline: none;"+"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);";focusInput(cm);resetInput(cm,true);if(posEq(sel.from,sel.to))display.input.value=display.prevInput=" ";function prepareSelectAllHack(){if(display.input.selectionStart!=null){var extval=display.input.value="\u200b"+(posEq(sel.from,sel.to)?"":display.input.value);display.prevInput="\u200b";display.input.selectionStart=1;display.input.selectionEnd=extval.length;}}
 function rehide(){display.inputDiv.style.position="relative";display.input.style.cssText=oldCSS;if(ie_lt9)display.scrollbarV.scrollTop=display.scroller.scrollTop=scrollPos;slowPoll(cm);if(display.input.selectionStart!=null){if(!ie||ie_lt9)prepareSelectAllHack();clearTimeout(detectingSelectAll);var i=0,poll=function(){if(display.prevInput==" "&&display.input.selectionStart==0)
 operation(cm,commands.selectAll)(cm);else if(i++<10)detectingSelectAll=setTimeout(poll,500);else resetInput(cm);};detectingSelectAll=setTimeout(poll,200);}}
@@ -308,7 +307,7 @@
 var split=sawReadOnlySpans&&!ignoreReadOnly&&removeReadOnlyRanges(doc,change.from,change.to);if(split){for(var i=split.length-1;i>=1;--i)
 makeChangeNoReadonly(doc,{from:split[i].from,to:split[i].to,text:[""]});if(split.length)
 makeChangeNoReadonly(doc,{from:split[0].from,to:split[0].to,text:change.text},selUpdate);}else{makeChangeNoReadonly(doc,change,selUpdate);}}
-function makeChangeNoReadonly(doc,change,selUpdate){var selAfter=computeSelAfterChange(doc,change,selUpdate);addToHistory(doc,change,selAfter,doc.cm?doc.cm.curOp.id:NaN);makeChangeSingleDoc(doc,change,selAfter,stretchSpansOverChange(doc,change));var rebased=[];linkedDocs(doc,function(doc,sharedHist){if(!sharedHist&&indexOf(rebased,doc.history)==-1){rebaseHist(doc.history,change);rebased.push(doc.history);}
+function makeChangeNoReadonly(doc,change,selUpdate){if(change.text.length==1&&change.text[0]==""&&posEq(change.from,change.to))return;var selAfter=computeSelAfterChange(doc,change,selUpdate);addToHistory(doc,change,selAfter,doc.cm?doc.cm.curOp.id:NaN);makeChangeSingleDoc(doc,change,selAfter,stretchSpansOverChange(doc,change));var rebased=[];linkedDocs(doc,function(doc,sharedHist){if(!sharedHist&&indexOf(rebased,doc.history)==-1){rebaseHist(doc.history,change);rebased.push(doc.history);}
 makeChangeSingleDoc(doc,change,null,stretchSpansOverChange(doc,change));});}
 function makeChangeFromHistory(doc,type){if(doc.cm&&doc.cm.state.suppressEdits)return;var hist=doc.history;var event=(type=="undo"?hist.done:hist.undone).pop();if(!event)return;var anti={changes:[],anchorBefore:event.anchorAfter,headBefore:event.headAfter,anchorAfter:event.anchorBefore,headAfter:event.headBefore,generation:hist.generation};(type=="undo"?hist.undone:hist.done).push(anti);hist.generation=event.generation||++hist.maxGeneration;var filter=hasHandler(doc,"beforeChange")||doc.cm&&hasHandler(doc.cm,"beforeChange");for(var i=event.changes.length-1;i>=0;--i){var change=event.changes[i];change.origin=type;if(filter&&!filterChange(doc,change,false)){(type=="undo"?hist.done:hist.undone).length=0;return;}
 anti.changes.push(historyChangeFromChange(doc,change));var after=i?computeSelAfterChange(doc,change,null):{anchor:event.anchorBefore,head:event.headBefore};makeChangeSingleDoc(doc,change,after,mergeOldSpans(doc,change));var rebased=[];linkedDocs(doc,function(doc,sharedHist){if(!sharedHist&&indexOf(rebased,doc.history)==-1){rebaseHist(doc.history,change);rebased.push(doc.history);}
@@ -351,9 +350,9 @@
 flipped=true;newPos=pos;dir=-dir;}}
 curPos=newPos;continue search;}}}
 return curPos;}}
-function scrollCursorIntoView(cm){var coords=scrollPosIntoView(cm,cm.doc.sel.head,cm.options.cursorScrollMargin);if(!cm.state.focused)return;var display=cm.display,box=getRect(display.sizer),doScroll=null;if(coords.top+box.top<0)doScroll=true;else if(coords.bottom+box.top>(window.innerHeight||document.documentElement.clientHeight))doScroll=false;if(doScroll!=null&&!phantom){var hidden=display.cursor.style.display=="none";if(hidden){display.cursor.style.display="";display.cursor.style.left=coords.left+"px";display.cursor.style.top=(coords.top-display.viewOffset)+"px";}
+function scrollCursorIntoView(cm){var coords=scrollPosIntoView(cm,cm.doc.sel.head,null,cm.options.cursorScrollMargin);if(!cm.state.focused)return;var display=cm.display,box=getRect(display.sizer),doScroll=null;if(coords.top+box.top<0)doScroll=true;else if(coords.bottom+box.top>(window.innerHeight||document.documentElement.clientHeight))doScroll=false;if(doScroll!=null&&!phantom){var hidden=display.cursor.style.display=="none";if(hidden){display.cursor.style.display="";display.cursor.style.left=coords.left+"px";display.cursor.style.top=(coords.top-display.viewOffset)+"px";}
 display.cursor.scrollIntoView(doScroll);if(hidden)display.cursor.style.display="none";}}
-function scrollPosIntoView(cm,pos,margin){if(margin==null)margin=0;for(;;){var changed=false,coords=cursorCoords(cm,pos);var scrollPos=calculateScrollPos(cm,coords.left,coords.top-margin,coords.left,coords.bottom+margin);var startTop=cm.doc.scrollTop,startLeft=cm.doc.scrollLeft;if(scrollPos.scrollTop!=null){setScrollTop(cm,scrollPos.scrollTop);if(Math.abs(cm.doc.scrollTop-startTop)>1)changed=true;}
+function scrollPosIntoView(cm,pos,end,margin){if(margin==null)margin=0;for(;;){var changed=false,coords=cursorCoords(cm,pos);var endCoords=!end||end==pos?coords:cursorCoords(cm,end);var scrollPos=calculateScrollPos(cm,Math.min(coords.left,endCoords.left),Math.min(coords.top,endCoords.top)-margin,Math.max(coords.left,endCoords.left),Math.max(coords.bottom,endCoords.bottom)+margin);var startTop=cm.doc.scrollTop,startLeft=cm.doc.scrollLeft;if(scrollPos.scrollTop!=null){setScrollTop(cm,scrollPos.scrollTop);if(Math.abs(cm.doc.scrollTop-startTop)>1)changed=true;}
 if(scrollPos.scrollLeft!=null){setScrollLeft(cm,scrollPos.scrollLeft);if(Math.abs(cm.doc.scrollLeft-startLeft)>1)changed=true;}
 if(!changed)return coords;}}
 function scrollIntoView(cm,x1,y1,x2,y2){var scrollPos=calculateScrollPos(cm,x1,y1,x2,y2);if(scrollPos.scrollTop!=null)setScrollTop(cm,scrollPos.scrollTop);if(scrollPos.scrollLeft!=null)setScrollLeft(cm,scrollPos.scrollLeft);}
@@ -368,7 +367,8 @@
 indentation=Math.max(0,indentation);var indentString="",pos=0;if(cm.options.indentWithTabs)
 for(var i=Math.floor(indentation/tabSize);i;--i){pos+=tabSize;indentString+="\t";}
 if(pos<indentation)indentString+=spaceStr(indentation-pos);if(indentString!=curSpaceString)
-replaceRange(cm.doc,indentString,Pos(n,0),Pos(n,curSpaceString.length),"+input");line.stateAfter=null;}
+replaceRange(cm.doc,indentString,Pos(n,0),Pos(n,curSpaceString.length),"+input");else if(doc.sel.head.line==n&&doc.sel.head.ch<curSpaceString.length)
+setSelection(doc,Pos(n,curSpaceString.length),Pos(n,curSpaceString.length),1);line.stateAfter=null;}
 function changeLine(cm,handle,op){var no=handle,line=handle,doc=cm.doc;if(typeof handle=="number")line=getLine(doc,clipLine(doc,handle));else no=lineNo(handle);if(no==null)return null;if(op(line,no))regChange(cm,no,no+1);else return null;return line;}
 function findPosH(doc,pos,dir,unit,visually){var line=pos.line,ch=pos.ch,origDir=dir;var lineObj=getLine(doc,line);var possible=true;function findNextLine(){var l=line+dir;if(l<doc.first||l>=doc.first+doc.size)return(possible=false);line=l;return lineObj=getLine(doc,l);}
 function moveOnce(boundToLine){var next=(visually?moveVisually:moveLogically)(lineObj,ch,dir,true);if(next==null){if(!boundToLine&&findNextLine()){if(visually)ch=(dir<0?lineRight:lineLeft)(lineObj);else ch=dir<0?lineObj.text.length:0;}else return(possible=false);}else ch=next;return true;}
@@ -383,7 +383,7 @@
 function findWordAt(line,pos){var start=pos.ch,end=pos.ch;if(line){if((pos.xRel<0||end==line.length)&&start)--start;else++end;var startChar=line.charAt(start);var check=isWordChar(startChar)?isWordChar:/\s/.test(startChar)?function(ch){return/\s/.test(ch);}:function(ch){return!/\s/.test(ch)&&!isWordChar(ch);};while(start>0&&check(line.charAt(start-1)))--start;while(end<line.length&&check(line.charAt(end)))++end;}
 return{from:Pos(pos.line,start),to:Pos(pos.line,end)};}
 function selectLine(cm,line){extendSelection(cm.doc,Pos(line,0),clipPos(cm.doc,Pos(line+1,0)));}
-CodeMirror.prototype={constructor:CodeMirror,focus:function(){window.focus();focusInput(this);onFocus(this);fastPoll(this);},setOption:function(option,value){var options=this.options,old=options[option];if(options[option]==value&&option!="mode")return;options[option]=value;if(optionHandlers.hasOwnProperty(option))
+CodeMirror.prototype={constructor:CodeMirror,focus:function(){window.focus();focusInput(this);fastPoll(this);},setOption:function(option,value){var options=this.options,old=options[option];if(options[option]==value&&option!="mode")return;options[option]=value;if(optionHandlers.hasOwnProperty(option))
 operation(this,optionHandlers[option])(this,value,old);},getOption:function(option){return this.options[option];},getDoc:function(){return this.doc;},addKeyMap:function(map,bottom){this.state.keyMaps[bottom?"push":"unshift"](map);},removeKeyMap:function(map){var maps=this.state.keyMaps;for(var i=0;i<maps.length;++i)
 if(maps[i]==map||(typeof maps[i]!="string"&&maps[i].name==map)){maps.splice(i,1);return true;}},addOverlay:operation(null,function(spec,options){var mode=spec.token?spec:CodeMirror.getMode(this.options,spec);if(mode.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:mode,modeSpec:spec,opaque:options&&options.opaque});this.state.modeGen++;regChange(this);}),removeOverlay:operation(null,function(spec){var overlays=this.state.overlays;for(var i=0;i<overlays.length;++i){var cur=overlays[i].modeSpec;if(cur==spec||typeof spec=="string"&&cur.name==spec){overlays.splice(i,1);this.state.modeGen++;regChange(this);return;}}}),indentLine:operation(null,function(n,dir,aggressive){if(typeof dir!="string"&&typeof dir!="number"){if(dir==null)dir=this.options.smartIndent?"smart":"prev";else dir=dir?"add":"subtract";}
 if(isLine(this.doc,n))indentLine(this,n,dir,aggressive);}),indentSelection:operation(null,function(how){var sel=this.doc.sel;if(posEq(sel.from,sel.to))return indentLine(this,sel.from.line,how);var e=sel.to.line-(sel.to.ch?0:1);for(var i=sel.from.line;i<=e;++i)indentLine(this,i,how);}),getTokenAt:function(pos,precise){var doc=this.doc;pos=clipPos(doc,pos);var state=getStateBefore(this,pos.line,precise),mode=this.doc.mode;var line=getLine(doc,pos.line);var stream=new StringStream(line.text,this.options.tabSize);while(stream.pos<pos.ch&&!stream.eol()){stream.start=stream.pos;var style=mode.token(stream,state);}
@@ -406,12 +406,11 @@
 for(var i=0,cur=clipPos(this.doc,from);i<amount;++i){var coords=cursorCoords(this,cur,"div");if(x==null)x=coords.left;else coords.left=x;cur=findPosV(this,coords,dir,unit);if(cur.hitSide)break;}
 return cur;},moveV:operation(null,function(dir,unit){var sel=this.doc.sel;var pos=cursorCoords(this,sel.head,"div");if(sel.goalColumn!=null)pos.left=sel.goalColumn;var target=findPosV(this,pos,dir,unit);if(unit=="page")addToScrollPos(this,0,charCoords(this,target,"div").top-pos.top);extendSelection(this.doc,target,target,dir);sel.goalColumn=pos.left;}),toggleOverwrite:function(value){if(value!=null&&value==this.state.overwrite)return;if(this.state.overwrite=!this.state.overwrite)
 this.display.cursor.className+=" CodeMirror-overwrite";else
-this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite","");},hasFocus:function(){return this.state.focused;},scrollTo:operation(null,function(x,y){updateScrollPos(this,x,y);}),getScrollInfo:function(){var scroller=this.display.scroller,co=scrollerCutOff;return{left:scroller.scrollLeft,top:scroller.scrollTop,height:scroller.scrollHeight-co,width:scroller.scrollWidth-co,clientHeight:scroller.clientHeight-co,clientWidth:scroller.clientWidth-co};},scrollIntoView:operation(null,function(pos,margin){if(typeof pos=="number")pos=Pos(pos,0);if(!margin)margin=0;var coords=pos;if(!pos||pos.line!=null){this.curOp.scrollToPos=pos?clipPos(this.doc,pos):this.doc.sel.head;this.curOp.scrollToPosMargin=margin;coords=cursorCoords(this,this.curOp.scrollToPos);}
-var sPos=calculateScrollPos(this,coords.left,coords.top-margin,coords.right,coords.bottom+margin);updateScrollPos(this,sPos.scrollLeft,sPos.scrollTop);}),setSize:operation(null,function(width,height){function interpret(val){return typeof val=="number"||/^\d+$/.test(String(val))?val+"px":val;}
+this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite","");},hasFocus:function(){return this.state.focused;},scrollTo:operation(null,function(x,y){updateScrollPos(this,x,y);}),getScrollInfo:function(){var scroller=this.display.scroller,co=scrollerCutOff;return{left:scroller.scrollLeft,top:scroller.scrollTop,height:scroller.scrollHeight-co,width:scroller.scrollWidth-co,clientHeight:scroller.clientHeight-co,clientWidth:scroller.clientWidth-co};},scrollIntoView:operation(null,function(range,margin){if(range==null)range={from:this.doc.sel.head,to:null};else if(typeof range=="number")range={from:Pos(range,0),to:null};else if(range.from==null)range={from:range,to:null};if(!range.to)range.to=range.from;if(!margin)margin=0;var coords=range;if(range.from.line!=null){this.curOp.scrollToPos={from:range.from,to:range.to,margin:margin};coords={from:cursorCoords(this,range.from),to:cursorCoords(this,range.to)};}
+var sPos=calculateScrollPos(this,Math.min(coords.from.left,coords.to.left),Math.min(coords.from.top,coords.to.top)-margin,Math.max(coords.from.right,coords.to.right),Math.max(coords.from.bottom,coords.to.bottom)+margin);updateScrollPos(this,sPos.scrollLeft,sPos.scrollTop);}),setSize:operation(null,function(width,height){function interpret(val){return typeof val=="number"||/^\d+$/.test(String(val))?val+"px":val;}
 if(width!=null)this.display.wrapper.style.width=interpret(width);if(height!=null)this.display.wrapper.style.height=interpret(height);if(this.options.lineWrapping)
-this.display.measureLineCache.length=this.display.measureLineCachePos=0;this.curOp.forceUpdate=true;}),operation:function(f){return runInOp(this,f);},refresh:operation(null,function(){var badHeight=this.display.cachedTextHeight==null;clearCaches(this);updateScrollPos(this,this.doc.scrollLeft,this.doc.scrollTop);regChange(this);if(badHeight)estimateLineHeights(this);}),swapDoc:operation(null,function(doc){var old=this.doc;old.cm=null;attachDoc(this,doc);clearCaches(this);resetInput(this,true);updateScrollPos(this,doc.scrollLeft,doc.scrollTop);return old;}),getInputField:function(){return this.display.input;},getWrapperElement:function(){return this.display.wrapper;},getScrollerElement:function(){return this.display.scroller;},getGutterElement:function(){return this.display.gutters;}};eventMixin(CodeMirror);var optionHandlers=CodeMirror.optionHandlers={};var defaults=CodeMirror.defaults={};function option(name,deflt,handle,notOnInit){CodeMirror.defaults[name]=deflt;if(handle)optionHandlers[name]=notOnInit?function(cm,val,old){if(old!=Init)handle(cm,val,old);}:handle;}
-var Init=CodeMirror.Init={toString:function(){return"CodeMirror.Init";}};option("value","",function(cm,val){cm.setValue(val);},true);option("mode",null,function(cm,val){cm.doc.modeOption=val;loadMode(cm);},true);option("indentUnit",2,loadMode,true);option("indentWithTabs",false);option("smartIndent",true);option("tabSize",4,function(cm){loadMode(cm);clearCaches(cm);regChange(cm);},true);option("electricChars",true);option("rtlMoveVisually",!windows);option("theme","default",function(cm){themeChanged(cm);guttersChanged(cm);},true);option("keyMap","default",keyMapChanged);option("extraKeys",null);option("onKeyEvent",null);option("onDragEvent",null);option("lineWrapping",false,wrappingChanged,true);option("gutters",[],function(cm){setGuttersForLineNumbers(cm.options);guttersChanged(cm);},true);option("fixedGutter",true,function(cm,val){cm.display.gutters.style.left=val?compensateForHScroll(cm.display)+"px":"0";cm.refresh();},true);option("coverGutterNextToScrollbar",false,updateScrollbars,true);option("lineNumbers",false,function(cm){setGuttersForLineNumbers(cm.options);guttersChanged(cm);},true);option("firstLineNumber",1,guttersChanged,true);option("lineNumberFormatter",function(integer){return integer;},guttersChanged,true);option("showCursorWhenSelecting",false,updateSelection,true);option("readOnly",false,function(cm,val){if(val=="nocursor"){onBlur(cm);cm.display.input.blur();}
-else if(!val)resetInput(cm,true);});option("dragDrop",true);option("cursorBlinkRate",530);option("cursorScrollMargin",0);option("cursorHeight",1);option("workTime",100);option("workDelay",100);option("flattenSpans",true);option("pollInterval",100);option("undoDepth",40,function(cm,val){cm.doc.history.undoDepth=val;});option("historyEventDelay",500);option("viewportMargin",10,function(cm){cm.refresh();},true);option("maxHighlightLength",10000,function(cm){loadMode(cm);cm.refresh();},true);option("crudeMeasuringFrom",10000);option("moveInputWithCursor",true,function(cm,val){if(!val)cm.display.inputDiv.style.top=cm.display.inputDiv.style.left=0;});option("tabindex",null,function(cm,val){cm.display.input.tabIndex=val||"";});option("autofocus",null);var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){if(!CodeMirror.defaults.mode&&name!="null")CodeMirror.defaults.mode=name;if(arguments.length>2){mode.dependencies=[];for(var i=2;i<arguments.length;++i)mode.dependencies.push(arguments[i]);}
+this.display.measureLineCache.length=this.display.measureLineCachePos=0;this.curOp.forceUpdate=true;}),operation:function(f){return runInOp(this,f);},refresh:operation(null,function(){var badHeight=this.display.cachedTextHeight==null;clearCaches(this);updateScrollPos(this,this.doc.scrollLeft,this.doc.scrollTop);regChange(this);if(badHeight)estimateLineHeights(this);}),swapDoc:operation(null,function(doc){var old=this.doc;old.cm=null;attachDoc(this,doc);clearCaches(this);resetInput(this,true);updateScrollPos(this,doc.scrollLeft,doc.scrollTop);signalLater(this,"swapDoc",this,old);return old;}),getInputField:function(){return this.display.input;},getWrapperElement:function(){return this.display.wrapper;},getScrollerElement:function(){return this.display.scroller;},getGutterElement:function(){return this.display.gutters;}};eventMixin(CodeMirror);var optionHandlers=CodeMirror.optionHandlers={};var defaults=CodeMirror.defaults={};function option(name,deflt,handle,notOnInit){CodeMirror.defaults[name]=deflt;if(handle)optionHandlers[name]=notOnInit?function(cm,val,old){if(old!=Init)handle(cm,val,old);}:handle;}
+var Init=CodeMirror.Init={toString:function(){return"CodeMirror.Init";}};option("value","",function(cm,val){cm.setValue(val);},true);option("mode",null,function(cm,val){cm.doc.modeOption=val;loadMode(cm);},true);option("indentUnit",2,loadMode,true);option("indentWithTabs",false);option("smartIndent",true);option("tabSize",4,function(cm){loadMode(cm);clearCaches(cm);regChange(cm);},true);option("specialChars",/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\ufeff]/g,function(cm,val){cm.options.specialChars=new RegExp(val.source+(val.test("\t")?"":"|\t"),"g");cm.refresh();},true);option("specialCharPlaceholder",defaultSpecialCharPlaceholder,function(cm){cm.refresh();},true);option("electricChars",true);option("rtlMoveVisually",!windows);option("wholeLineUpdateBefore",true);option("theme","default",function(cm){themeChanged(cm);guttersChanged(cm);},true);option("keyMap","default",keyMapChanged);option("extraKeys",null);option("onKeyEvent",null);option("onDragEvent",null);option("lineWrapping",false,wrappingChanged,true);option("gutters",[],function(cm){setGuttersForLineNumbers(cm.options);guttersChanged(cm);},true);option("fixedGutter",true,function(cm,val){cm.display.gutters.style.left=val?compensateForHScroll(cm.display)+"px":"0";cm.refresh();},true);option("coverGutterNextToScrollbar",false,updateScrollbars,true);option("lineNumbers",false,function(cm){setGuttersForLineNumbers(cm.options);guttersChanged(cm);},true);option("firstLineNumber",1,guttersChanged,true);option("lineNumberFormatter",function(integer){return integer;},guttersChanged,true);option("showCursorWhenSelecting",false,updateSelection,true);option("resetSelectionOnContextMenu",true);option("readOnly",false,function(cm,val){if(val=="nocursor"){onBlur(cm);cm.display.input.blur();cm.display.disabled=true;}else{cm.display.disabled=false;if(!val)resetInput(cm,true);}});option("dragDrop",true);option("cursorBlinkRate",530);option("cursorScrollMargin",0);option("cursorHeight",1);option("workTime",100);option("workDelay",100);option("flattenSpans",true);option("pollInterval",100);option("undoDepth",40,function(cm,val){cm.doc.history.undoDepth=val;});option("historyEventDelay",500);option("viewportMargin",10,function(cm){cm.refresh();},true);option("maxHighlightLength",10000,function(cm){loadMode(cm);cm.refresh();},true);option("crudeMeasuringFrom",10000);option("moveInputWithCursor",true,function(cm,val){if(!val)cm.display.inputDiv.style.top=cm.display.inputDiv.style.left=0;});option("tabindex",null,function(cm,val){cm.display.input.tabIndex=val||"";});option("autofocus",null);var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){if(!CodeMirror.defaults.mode&&name!="null")CodeMirror.defaults.mode=name;if(arguments.length>2){mode.dependencies=[];for(var i=2;i<arguments.length;++i)mode.dependencies.push(arguments[i]);}
 modes[name]=mode;};CodeMirror.defineMIME=function(mime,spec){mimeModes[mime]=spec;};CodeMirror.resolveMode=function(spec){if(typeof spec=="string"&&mimeModes.hasOwnProperty(spec)){spec=mimeModes[spec];}else if(spec&&typeof spec.name=="string"&&mimeModes.hasOwnProperty(spec.name)){var found=mimeModes[spec.name];spec=createObj(found,spec);spec.name=found.name;}else if(typeof spec=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(spec)){return CodeMirror.resolveMode("application/xml");}
 if(typeof spec=="string")return{name:spec};else return spec||{name:"null"};};CodeMirror.getMode=function(options,spec){var spec=CodeMirror.resolveMode(spec);var mfactory=modes[spec.name];if(!mfactory)return CodeMirror.getMode(options,"text/plain");var modeObj=mfactory(options,spec);if(modeExtensions.hasOwnProperty(spec.name)){var exts=modeExtensions[spec.name];for(var prop in exts){if(!exts.hasOwnProperty(prop))continue;if(modeObj.hasOwnProperty(prop))modeObj["_"+prop]=modeObj[prop];modeObj[prop]=exts[prop];}}
 modeObj.name=spec.name;return modeObj;};CodeMirror.defineMode("null",function(){return{token:function(stream){stream.skipToEnd();}};});CodeMirror.defineMIME("text/plain","null");var modeExtensions=CodeMirror.modeExtensions={};CodeMirror.extendMode=function(mode,properties){var exts=modeExtensions.hasOwnProperty(mode)?modeExtensions[mode]:(modeExtensions[mode]={});copyObj(properties,exts);};CodeMirror.defineExtension=function(name,func){CodeMirror.prototype[name]=func;};CodeMirror.defineDocExtension=function(name,func){Doc.prototype[name]=func;};CodeMirror.defineOption=option;var initHooks=[];CodeMirror.defineInitHook=function(f){initHooks.push(f);};var helpers=CodeMirror.helpers={};CodeMirror.registerHelper=function(type,name,value){if(!helpers.hasOwnProperty(type))helpers[type]=CodeMirror[type]={};helpers[type][name]=value;};CodeMirror.isWordChar=isWordChar;function copyState(mode,state){if(state===true)return state;if(mode.copyState)return mode.copyState(state);var nstate={};for(var n in state){var val=state[n];if(val instanceof Array)val=val.concat([]);nstate[n]=val;}
@@ -420,7 +419,7 @@
 CodeMirror.startState=startState;CodeMirror.innerMode=function(mode,state){while(mode.innerMode){var info=mode.innerMode(state);if(!info||info.mode==mode)break;state=info.state;mode=info.mode;}
 return info||{mode:mode,state:state};};var commands=CodeMirror.commands={selectAll:function(cm){cm.setSelection(Pos(cm.firstLine(),0),Pos(cm.lastLine()));},killLine:function(cm){var from=cm.getCursor(true),to=cm.getCursor(false),sel=!posEq(from,to);if(!sel&&cm.getLine(from.line).length==from.ch)
 cm.replaceRange("",from,Pos(from.line+1,0),"+delete");else cm.replaceRange("",from,sel?to:Pos(from.line),"+delete");},deleteLine:function(cm){var l=cm.getCursor().line;cm.replaceRange("",Pos(l,0),Pos(l),"+delete");},delLineLeft:function(cm){var cur=cm.getCursor();cm.replaceRange("",Pos(cur.line,0),cur,"+delete");},undo:function(cm){cm.undo();},redo:function(cm){cm.redo();},goDocStart:function(cm){cm.extendSelection(Pos(cm.firstLine(),0));},goDocEnd:function(cm){cm.extendSelection(Pos(cm.lastLine()));},goLineStart:function(cm){cm.extendSelection(lineStart(cm,cm.getCursor().line));},goLineStartSmart:function(cm){var cur=cm.getCursor(),start=lineStart(cm,cur.line);var line=cm.getLineHandle(start.line);var order=getOrder(line);if(!order||order[0].level==0){var firstNonWS=Math.max(0,line.text.search(/\S/));var inWS=cur.line==start.line&&cur.ch<=firstNonWS&&cur.ch;cm.extendSelection(Pos(start.line,inWS?0:firstNonWS));}else cm.extendSelection(start);},goLineEnd:function(cm){cm.extendSelection(lineEnd(cm,cm.getCursor().line));},goLineRight:function(cm){var top=cm.charCoords(cm.getCursor(),"div").top+5;cm.extendSelection(cm.coordsChar({left:cm.display.lineDiv.offsetWidth+100,top:top},"div"));},goLineLeft:function(cm){var top=cm.charCoords(cm.getCursor(),"div").top+5;cm.extendSelection(cm.coordsChar({left:0,top:top},"div"));},goLineUp:function(cm){cm.moveV(-1,"line");},goLineDown:function(cm){cm.moveV(1,"line");},goPageUp:function(cm){cm.moveV(-1,"page");},goPageDown:function(cm){cm.moveV(1,"page");},goCharLeft:function(cm){cm.moveH(-1,"char");},goCharRight:function(cm){cm.moveH(1,"char");},goColumnLeft:function(cm){cm.moveH(-1,"column");},goColumnRight:function(cm){cm.moveH(1,"column");},goWordLeft:function(cm){cm.moveH(-1,"word");},goGroupRight:function(cm){cm.moveH(1,"group");},goGroupLeft:function(cm){cm.moveH(-1,"group");},goWordRight:function(cm){cm.moveH(1,"word");},delCharBefore:function(cm){cm.deleteH(-1,"char");},delCharAfter:function(cm){cm.deleteH(1,"char");},delWordBefore:function(cm){cm.deleteH(-1,"word");},delWordAfter:function(cm){cm.deleteH(1,"word");},delGroupBefore:function(cm){cm.deleteH(-1,"group");},delGroupAfter:function(cm){cm.deleteH(1,"group");},indentAuto:function(cm){cm.indentSelection("smart");},indentMore:function(cm){cm.indentSelection("add");},indentLess:function(cm){cm.indentSelection("subtract");},insertTab:function(cm){cm.replaceSelection("\t","end","+input");},defaultTab:function(cm){if(cm.somethingSelected())cm.indentSelection("add");else cm.replaceSelection("\t","end","+input");},transposeChars:function(cm){var cur=cm.getCursor(),line=cm.getLine(cur.line);if(cur.ch>0&&cur.ch<line.length-1)
-cm.replaceRange(line.charAt(cur.ch)+line.charAt(cur.ch-1),Pos(cur.line,cur.ch-1),Pos(cur.line,cur.ch+1));},newlineAndIndent:function(cm){operation(cm,function(){cm.replaceSelection("\n","end","+input");cm.indentLine(cm.getCursor().line,null,true);})();},toggleOverwrite:function(cm){cm.toggleOverwrite();}};var keyMap=CodeMirror.keyMap={};keyMap.basic={"Left":"goCharLeft","Right":"goCharRight","Up":"goLineUp","Down":"goLineDown","End":"goLineEnd","Home":"goLineStartSmart","PageUp":"goPageUp","PageDown":"goPageDown","Delete":"delCharAfter","Backspace":"delCharBefore","Tab":"defaultTab","Shift-Tab":"indentAuto","Enter":"newlineAndIndent","Insert":"toggleOverwrite"};keyMap.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore",fallthrough:"basic"};keyMap.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delLineLeft",fallthrough:["basic","emacsy"]};keyMap["default"]=mac?keyMap.macDefault:keyMap.pcDefault;keyMap.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};function getKeyMap(val){if(typeof val=="string")return keyMap[val];else return val;}
+cm.replaceRange(line.charAt(cur.ch)+line.charAt(cur.ch-1),Pos(cur.line,cur.ch-1),Pos(cur.line,cur.ch+1));},newlineAndIndent:function(cm){operation(cm,function(){cm.replaceSelection("\n","end","+input");cm.indentLine(cm.getCursor().line,null,true);})();},toggleOverwrite:function(cm){cm.toggleOverwrite();}};var keyMap=CodeMirror.keyMap={};keyMap.basic={"Left":"goCharLeft","Right":"goCharRight","Up":"goLineUp","Down":"goLineDown","End":"goLineEnd","Home":"goLineStartSmart","PageUp":"goPageUp","PageDown":"goPageDown","Delete":"delCharAfter","Backspace":"delCharBefore","Shift-Backspace":"delCharBefore","Tab":"defaultTab","Shift-Tab":"indentAuto","Enter":"newlineAndIndent","Insert":"toggleOverwrite"};keyMap.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore",fallthrough:"basic"};keyMap.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delLineLeft",fallthrough:["basic","emacsy"]};keyMap["default"]=mac?keyMap.macDefault:keyMap.pcDefault;keyMap.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};function getKeyMap(val){if(typeof val=="string")return keyMap[val];else return val;}
 function lookupKey(name,maps,handle){function lookup(map){map=getKeyMap(map);var found=map[name];if(found===false)return"stop";if(found!=null&&handle(found))return true;if(map.nofallthrough)return"stop";var fallthrough=map.fallthrough;if(fallthrough==null)return false;if(Object.prototype.toString.call(fallthrough)!="[object Array]")
 return lookup(fallthrough);for(var i=0,e=fallthrough.length;i<e;++i){var done=lookup(fallthrough[i]);if(done)return done;}
 return false;}
@@ -449,7 +448,8 @@
 if(this.type=="bookmark")return from;return from&&{from:from,to:to};};TextMarker.prototype.changed=function(){var pos=this.find(),cm=this.doc.cm;if(!pos||!cm)return;if(this.type!="bookmark")pos=pos.from;var line=getLine(this.doc,pos.line);clearCachedMeasurement(cm,line);if(pos.line>=cm.display.showingFrom&&pos.line<cm.display.showingTo){for(var node=cm.display.lineDiv.firstChild;node;node=node.nextSibling)if(node.lineObj==line){if(node.offsetHeight!=line.height)updateLineHeight(line,node.offsetHeight);break;}
 runInOp(cm,function(){cm.curOp.selectionChanged=cm.curOp.forceUpdate=cm.curOp.updateMaxLine=true;});}};TextMarker.prototype.attachLine=function(line){if(!this.lines.length&&this.doc.cm){var op=this.doc.cm.curOp;if(!op.maybeHiddenMarkers||indexOf(op.maybeHiddenMarkers,this)==-1)
 (op.maybeUnhiddenMarkers||(op.maybeUnhiddenMarkers=[])).push(this);}
-this.lines.push(line);};TextMarker.prototype.detachLine=function(line){this.lines.splice(indexOf(this.lines,line),1);if(!this.lines.length&&this.doc.cm){var op=this.doc.cm.curOp;(op.maybeHiddenMarkers||(op.maybeHiddenMarkers=[])).push(this);}};function markText(doc,from,to,options,type){if(options&&options.shared)return markTextShared(doc,from,to,options,type);if(doc.cm&&!doc.cm.curOp)return operation(doc.cm,markText)(doc,from,to,options,type);var marker=new TextMarker(doc,type);if(type=="range"&&!posLess(from,to))return marker;if(options)copyObj(options,marker);if(marker.replacedWith){marker.collapsed=true;marker.replacedWith=elt("span",[marker.replacedWith],"CodeMirror-widget");if(!options.handleMouseEvents)marker.replacedWith.ignoreEvents=true;}
+this.lines.push(line);};TextMarker.prototype.detachLine=function(line){this.lines.splice(indexOf(this.lines,line),1);if(!this.lines.length&&this.doc.cm){var op=this.doc.cm.curOp;(op.maybeHiddenMarkers||(op.maybeHiddenMarkers=[])).push(this);}};function markText(doc,from,to,options,type){if(options&&options.shared)return markTextShared(doc,from,to,options,type);if(doc.cm&&!doc.cm.curOp)return operation(doc.cm,markText)(doc,from,to,options,type);var marker=new TextMarker(doc,type);if(posLess(to,from)||posEq(from,to)&&type=="range"&&!(options.inclusiveLeft&&options.inclusiveRight))
+return marker;if(options)copyObj(options,marker);if(marker.replacedWith){marker.collapsed=true;marker.replacedWith=elt("span",[marker.replacedWith],"CodeMirror-widget");if(!options.handleMouseEvents)marker.replacedWith.ignoreEvents=true;}
 if(marker.collapsed)sawCollapsedSpans=true;if(marker.addToHistory)
 addToHistory(doc,{from:from,to:to,origin:"markText"},{head:doc.sel.head,anchor:doc.sel.anchor},NaN);var curLine=from.line,size=0,collapsedAtStart,collapsedAtEnd,cm=doc.cm,updateMaxLine;doc.iter(curLine,to.line+1,function(line){if(cm&&marker.collapsed&&!cm.options.lineWrapping&&visualLine(doc,line)==cm.display.maxLine)
 updateMaxLine=true;var span={from:null,to:null,marker:marker};size+=line.text.length;if(curLine==from.line){span.from=from.ch;size-=from.ch;}
@@ -470,7 +470,7 @@
 function removeMarkedSpan(spans,span){for(var r,i=0;i<spans.length;++i)
 if(spans[i]!=span)(r||(r=[])).push(spans[i]);return r;}
 function addMarkedSpan(line,span){line.markedSpans=line.markedSpans?line.markedSpans.concat([span]):[span];span.marker.attachLine(line);}
-function markedSpansBefore(old,startCh,isInsert){if(old)for(var i=0,nw;i<old.length;++i){var span=old[i],marker=span.marker;var startsBefore=span.from==null||(marker.inclusiveLeft?span.from<=startCh:span.from<startCh);if(startsBefore||marker.type=="bookmark"&&span.from==startCh&&(!isInsert||!span.marker.insertLeft)){var endsAfter=span.to==null||(marker.inclusiveRight?span.to>=startCh:span.to>startCh);(nw||(nw=[])).push({from:span.from,to:endsAfter?null:span.to,marker:marker});}}
+function markedSpansBefore(old,startCh,isInsert){if(old)for(var i=0,nw;i<old.length;++i){var span=old[i],marker=span.marker;var startsBefore=span.from==null||(marker.inclusiveLeft?span.from<=startCh:span.from<startCh);if(startsBefore||(marker.inclusiveLeft&&marker.inclusiveRight||marker.type=="bookmark")&&span.from==startCh&&(!isInsert||!span.marker.insertLeft)){var endsAfter=span.to==null||(marker.inclusiveRight?span.to>=startCh:span.to>startCh);(nw||(nw=[])).push({from:span.from,to:endsAfter?null:span.to,marker:marker});}}
 return nw;}
 function markedSpansAfter(old,endCh,isInsert){if(old)for(var i=0,nw;i<old.length;++i){var span=old[i],marker=span.marker;var endsAfter=span.to==null||(marker.inclusiveRight?span.to>=endCh:span.to>endCh);if(endsAfter||marker.type=="bookmark"&&span.from==endCh&&(!isInsert||span.marker.insertLeft)){var startsBefore=span.from==null||(marker.inclusiveLeft?span.from<=endCh:span.from<endCh);(nw||(nw=[])).push({from:startsBefore?null:span.from-endCh,to:span.to==null?null:span.to-endCh,marker:marker});}}
 return nw;}
@@ -517,19 +517,19 @@
 removeChildrenAndAdd(widget.cm.display.measure,elt("div",[widget.node],null,"position: relative"));return widget.height=widget.node.offsetHeight;}
 function addLineWidget(cm,handle,node,options){var widget=new LineWidget(cm,node,options);if(widget.noHScroll)cm.display.alignWidgets=true;changeLine(cm,handle,function(line){var widgets=line.widgets||(line.widgets=[]);if(widget.insertAt==null)widgets.push(widget);else widgets.splice(Math.min(widgets.length-1,Math.max(0,widget.insertAt)),0,widget);widget.line=line;if(!lineIsHidden(cm.doc,line)||widget.showIfHidden){var aboveVisible=heightAtLine(cm,line)<cm.doc.scrollTop;updateLineHeight(line,line.height+widgetHeight(widget));if(aboveVisible)addToScrollPos(cm,0,widget.height);}
 return true;});return widget;}
-var Line=CodeMirror.Line=function(text,markedSpans,estimateHeight){this.text=text;attachMarkedSpans(this,markedSpans);this.height=estimateHeight?estimateHeight(this):1;};eventMixin(Line);function updateLine(line,text,markedSpans,estimateHeight){line.text=text;if(line.stateAfter)line.stateAfter=null;if(line.styles)line.styles=null;if(line.order!=null)line.order=null;detachMarkedSpans(line);attachMarkedSpans(line,markedSpans);var estHeight=estimateHeight?estimateHeight(line):1;if(estHeight!=line.height)updateLineHeight(line,estHeight);}
+var Line=CodeMirror.Line=function(text,markedSpans,estimateHeight){this.text=text;attachMarkedSpans(this,markedSpans);this.height=estimateHeight?estimateHeight(this):1;};eventMixin(Line);Line.prototype.lineNo=function(){return lineNo(this);};function updateLine(line,text,markedSpans,estimateHeight){line.text=text;if(line.stateAfter)line.stateAfter=null;if(line.styles)line.styles=null;if(line.order!=null)line.order=null;detachMarkedSpans(line);attachMarkedSpans(line,markedSpans);var estHeight=estimateHeight?estimateHeight(line):1;if(estHeight!=line.height)updateLineHeight(line,estHeight);}
 function cleanUpLine(line){line.parent=null;detachMarkedSpans(line);}
-function runMode(cm,text,mode,state,f){var flattenSpans=mode.flattenSpans;if(flattenSpans==null)flattenSpans=cm.options.flattenSpans;var curStart=0,curStyle=null;var stream=new StringStream(text,cm.options.tabSize),style;if(text==""&&mode.blankLine)mode.blankLine(state);while(!stream.eol()){if(stream.pos>cm.options.maxHighlightLength){flattenSpans=false;stream.pos=text.length;style=null;}else{style=mode.token(stream,state);}
+function runMode(cm,text,mode,state,f,forceToEnd){var flattenSpans=mode.flattenSpans;if(flattenSpans==null)flattenSpans=cm.options.flattenSpans;var curStart=0,curStyle=null;var stream=new StringStream(text,cm.options.tabSize),style;if(text==""&&mode.blankLine)mode.blankLine(state);while(!stream.eol()){if(stream.pos>cm.options.maxHighlightLength){flattenSpans=false;if(forceToEnd)processLine(cm,text,state,stream.pos);stream.pos=text.length;style=null;}else{style=mode.token(stream,state);}
 if(!flattenSpans||curStyle!=style){if(curStart<stream.start)f(stream.start,curStyle);curStart=stream.start;curStyle=style;}
 stream.start=stream.pos;}
 while(curStart<stream.pos){var pos=Math.min(stream.pos,curStart+50000);f(pos,curStyle);curStart=pos;}}
-function highlightLine(cm,line,state){var st=[cm.state.modeGen];runMode(cm,line.text,cm.doc.mode,state,function(end,style){st.push(end,style);});for(var o=0;o<cm.state.overlays.length;++o){var overlay=cm.state.overlays[o],i=1,at=0;runMode(cm,line.text,overlay.mode,true,function(end,style){var start=i;while(at<end){var i_end=st[i];if(i_end>end)
+function highlightLine(cm,line,state,forceToEnd){var st=[cm.state.modeGen];runMode(cm,line.text,cm.doc.mode,state,function(end,style){st.push(end,style);},forceToEnd);for(var o=0;o<cm.state.overlays.length;++o){var overlay=cm.state.overlays[o],i=1,at=0;runMode(cm,line.text,overlay.mode,true,function(end,style){var start=i;while(at<end){var i_end=st[i];if(i_end>end)
 st.splice(i,1,end,st[i+1],i_end);i+=2;at=Math.min(end,i_end);}
 if(!style)return;if(overlay.opaque){st.splice(start,i-start,end,style);i=start+2;}else{for(;start<i;start+=2){var cur=st[start+1];st[start+1]=cur?cur+" "+style:style;}}});}
 return st;}
 function getLineStyles(cm,line){if(!line.styles||line.styles[0]!=cm.state.modeGen)
 line.styles=highlightLine(cm,line,line.stateAfter=getStateBefore(cm,lineNo(line)));return line.styles;}
-function processLine(cm,line,state){var mode=cm.doc.mode;var stream=new StringStream(line.text,cm.options.tabSize);if(line.text==""&&mode.blankLine)mode.blankLine(state);while(!stream.eol()&&stream.pos<=cm.options.maxHighlightLength){mode.token(stream,state);stream.start=stream.pos;}}
+function processLine(cm,text,state,startAt){var mode=cm.doc.mode;var stream=new StringStream(text,cm.options.tabSize);stream.start=stream.pos=startAt||0;if(text==""&&mode.blankLine)mode.blankLine(state);while(!stream.eol()&&stream.pos<=cm.options.maxHighlightLength){mode.token(stream,state);stream.start=stream.pos;}}
 var styleToClassCache={};function interpretTokenStyle(style,builder){if(!style)return null;for(;;){var lineClass=style.match(/(?:^|\s)line-(background-)?(\S+)/);if(!lineClass)break;style=style.slice(0,lineClass.index)+style.slice(lineClass.index+lineClass[0].length);var prop=lineClass[1]?"bgClass":"textClass";if(builder[prop]==null)
 builder[prop]=lineClass[2];else if(!(new RegExp("(?:^|\s)"+lineClass[2]+"(?:$|\s)")).test(builder[prop]))
 builder[prop]+=" "+lineClass[2];}
@@ -539,10 +539,11 @@
 builder.addToken=buildTokenSplitSpaces(builder.addToken);var next=insertLineContent(line,builder,getLineStyles(cm,line));if(measure&&line==realLine&&!builder.measuredSomething){measure[0]=builder.pre.appendChild(zeroWidthElement(cm.display.measure));builder.measuredSomething=true;}
 if(next)line=getLine(cm.doc,next.to.line);}while(next);if(measure&&!builder.measuredSomething&&!measure[0])
 measure[0]=builder.pre.appendChild(empty?elt("span","\u00a0"):zeroWidthElement(cm.display.measure));if(!builder.pre.firstChild&&!lineIsHidden(cm.doc,realLine))
-builder.pre.appendChild(document.createTextNode("\u00a0"));var order;if(measure&&ie&&(order=getOrder(line))){var l=order.length-1;if(order[l].from==order[l].to)--l;var last=order[l],prev=order[l-1];if(last.from+1==last.to&&prev&&last.level<prev.level){var span=measure[builder.pos-1];if(span)span.parentNode.insertBefore(span.measureRight=zeroWidthElement(cm.display.measure),span.nextSibling);}}
+builder.pre.appendChild(document.createTextNode("\u00a0"));var order;if(measure&&(ie||ie_gt10)&&(order=getOrder(line))){var l=order.length-1;if(order[l].from==order[l].to)--l;var last=order[l],prev=order[l-1];if(last.from+1==last.to&&prev&&last.level<prev.level){var span=measure[builder.pos-1];if(span)span.parentNode.insertBefore(span.measureRight=zeroWidthElement(cm.display.measure),span.nextSibling);}}
 var textClass=builder.textClass?builder.textClass+" "+(realLine.textClass||""):realLine.textClass;if(textClass)builder.pre.className=textClass;signal(cm,"renderLine",cm,realLine,builder.pre);return builder;}
-var tokenSpecialChars=/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;function buildToken(builder,text,style,startStyle,endStyle,title){if(!text)return;if(!tokenSpecialChars.test(text)){builder.col+=text.length;var content=document.createTextNode(text);}else{var content=document.createDocumentFragment(),pos=0;while(true){tokenSpecialChars.lastIndex=pos;var m=tokenSpecialChars.exec(text);var skipped=m?m.index-pos:text.length-pos;if(skipped){content.appendChild(document.createTextNode(text.slice(pos,pos+skipped)));builder.col+=skipped;}
-if(!m)break;pos+=skipped+1;if(m[0]=="\t"){var tabSize=builder.cm.options.tabSize,tabWidth=tabSize-builder.col%tabSize;content.appendChild(elt("span",spaceStr(tabWidth),"cm-tab"));builder.col+=tabWidth;}else{var token=elt("span","\u2022","cm-invalidchar");token.title="\\u"+m[0].charCodeAt(0).toString(16);content.appendChild(token);builder.col+=1;}}}
+function defaultSpecialCharPlaceholder(ch){var token=elt("span","\u2022","cm-invalidchar");token.title="\\u"+ch.charCodeAt(0).toString(16);return token;}
+function buildToken(builder,text,style,startStyle,endStyle,title){if(!text)return;var special=builder.cm.options.specialChars;if(!special.test(text)){builder.col+=text.length;var content=document.createTextNode(text);}else{var content=document.createDocumentFragment(),pos=0;while(true){special.lastIndex=pos;var m=special.exec(text);var skipped=m?m.index-pos:text.length-pos;if(skipped){content.appendChild(document.createTextNode(text.slice(pos,pos+skipped)));builder.col+=skipped;}
+if(!m)break;pos+=skipped+1;if(m[0]=="\t"){var tabSize=builder.cm.options.tabSize,tabWidth=tabSize-builder.col%tabSize;content.appendChild(elt("span",spaceStr(tabWidth),"cm-tab"));builder.col+=tabWidth;}else{var token=builder.cm.options.specialCharPlaceholder(m[0]);content.appendChild(token);builder.col+=1;}}}
 if(style||startStyle||endStyle||builder.measure){var fullStyle=style||"";if(startStyle)fullStyle+=startStyle;if(endStyle)fullStyle+=endStyle;var token=elt("span",[content],fullStyle);if(title)token.title=title;return builder.pre.appendChild(token);}
 builder.pre.appendChild(content);}
 function buildTokenMeasure(builder,text,style,startStyle,endStyle){var wrapping=builder.cm.options.lineWrapping;for(var i=0;i<text.length;++i){var ch=text.charAt(i),start=i==0;if(ch>="\ud800"&&ch<"\udbff"&&i<text.length-1){ch=text.slice(i,i+2);++i;}else if(i&&wrapping&&spanAffectsWrapping(text,i)){builder.pre.appendChild(elt("wbr"));}
@@ -550,7 +551,7 @@
 span.style.whiteSpace="normal";builder.pos+=ch.length;}
 if(text.length)builder.measuredSomething=true;}
 function buildTokenSplitSpaces(inner){function split(old){var out=" ";for(var i=0;i<old.length-2;++i)out+=i%2?" ":"\u00a0";out+=" ";return out;}
-return function(builder,text,style,startStyle,endStyle,title){return inner(builder,text.replace(/ {3,}/,split),style,startStyle,endStyle,title);};}
+return function(builder,text,style,startStyle,endStyle,title){return inner(builder,text.replace(/ {3,}/g,split),style,startStyle,endStyle,title);};}
 function buildCollapsedSpan(builder,size,marker,ignoreWidget){var widget=!ignoreWidget&&marker.replacedWith;if(widget){if(builder.copyWidgets)widget=widget.cloneNode(true);builder.pre.appendChild(widget);if(builder.measure){if(size){builder.measure[builder.pos]=widget;}else{var elt=zeroWidthElement(builder.cm.display.measure);if(marker.type=="bookmark"&&!marker.insertLeft)
 builder.measure[builder.pos]=builder.pre.appendChild(elt);else if(builder.measure[builder.pos])
 return;else
@@ -572,7 +573,7 @@
 text=allText.slice(at,at=styles[i++]);style=interpretTokenStyle(styles[i++],builder);}}}
 function updateDoc(doc,change,markedSpans,selAfter,estimateHeight){function spansFor(n){return markedSpans?markedSpans[n]:null;}
 function update(line,text,spans){updateLine(line,text,spans,estimateHeight);signalLater(line,"change",line,change);}
-var from=change.from,to=change.to,text=change.text;var firstLine=getLine(doc,from.line),lastLine=getLine(doc,to.line);var lastText=lst(text),lastSpans=spansFor(text.length-1),nlines=to.line-from.line;if(from.ch==0&&to.ch==0&&lastText==""){for(var i=0,e=text.length-1,added=[];i<e;++i)
+var from=change.from,to=change.to,text=change.text;var firstLine=getLine(doc,from.line),lastLine=getLine(doc,to.line);var lastText=lst(text),lastSpans=spansFor(text.length-1),nlines=to.line-from.line;if(from.ch==0&&to.ch==0&&lastText==""&&(!doc.cm||doc.cm.options.wholeLineUpdateBefore)){for(var i=0,e=text.length-1,added=[];i<e;++i)
 added.push(new Line(text[i],spansFor(i),estimateHeight));update(lastLine,lastLine.text,lastSpans);if(nlines)doc.remove(from.line,nlines);if(added.length)doc.insert(from.line,added);}else if(firstLine==lastLine){if(text.length==1){update(firstLine,firstLine.text.slice(0,from.ch)+lastText+firstLine.text.slice(to.ch),lastSpans);}else{for(var added=[],i=1,e=text.length-1;i<e;++i)
 added.push(new Line(text[i],spansFor(i),estimateHeight));added.push(new Line(lastText+firstLine.text.slice(to.ch),lastSpans,estimateHeight));update(firstLine,firstLine.text.slice(0,from.ch)+text[0],spansFor(0));doc.insert(from.line+1,added);}}else if(text.length==1){update(firstLine,firstLine.text.slice(0,from.ch)+text[0]+lastLine.text.slice(to.ch),spansFor(0));doc.remove(from.line+1,nlines);}else{update(firstLine,firstLine.text.slice(0,from.ch)+text[0],spansFor(0));update(lastLine,lastText+lastLine.text.slice(to.ch),lastSpans);for(var i=1,e=text.length-1,added=[];i<e;++i)
 added.push(new Line(text[i],spansFor(i),estimateHeight));if(nlines>1)doc.remove(from.line+1,nlines-1);doc.insert(from.line+1,added);}
@@ -679,7 +680,7 @@
 function bind(f){var args=Array.prototype.slice.call(arguments,1);return function(){return f.apply(null,args);};}
 var nonASCIISingleCaseWordChar=/[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function isWordChar(ch){return/\w/.test(ch)||ch>"\x80"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch));}
 function isEmpty(obj){for(var n in obj)if(obj.hasOwnProperty(n)&&obj[n])return false;return true;}
-var isExtendingChar=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;function elt(tag,content,className,style){var e=document.createElement(tag);if(className)e.className=className;if(style)e.style.cssText=style;if(typeof content=="string")setTextContent(e,content);else if(content)for(var i=0;i<content.length;++i)e.appendChild(content[i]);return e;}
+var isExtendingChar=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\u1DC0–\u1DFF\u20D0–\u20FF\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff\uFE20–\uFE2F]/;function elt(tag,content,className,style){var e=document.createElement(tag);if(className)e.className=className;if(style)e.style.cssText=style;if(typeof content=="string")setTextContent(e,content);else if(content)for(var i=0;i<content.length;++i)e.appendChild(content[i]);return e;}
 function removeChildren(e){for(var count=e.childNodes.length;count>0;--count)
 e.removeChild(e.firstChild);return e;}
 function removeChildrenAndAdd(parent,e){return removeChildren(parent).appendChild(e);}
@@ -691,7 +692,7 @@
 spanAffectsWrapping=function(str,i){return/\-[^ \-?]|\?[^ !\'\"\),.\-\/:;\?\]\}]/.test(str.slice(i-1,i+1));};else if(webkit&&/Chrome\/(?:29|[3-9]\d|\d\d\d)\./.test(navigator.userAgent))
 spanAffectsWrapping=function(str,i){var code=str.charCodeAt(i-1);return code>=8208&&code<=8212;};else if(webkit)
 spanAffectsWrapping=function(str,i){if(i>1&&str.charCodeAt(i-1)==45){if(/\w/.test(str.charAt(i-2))&&/[^\-?\.]/.test(str.charAt(i)))return true;if(i>2&&/[\d\.,]/.test(str.charAt(i-2))&&/[\d\.,]/.test(str.charAt(i)))return false;}
-return/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|…[\w~`@#$%\^&*(_=+{[><]/.test(str.slice(i-1,i+1));};var knownScrollbarWidth;function scrollbarWidth(measure){if(knownScrollbarWidth!=null)return knownScrollbarWidth;var test=elt("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");removeChildrenAndAdd(measure,test);if(test.offsetWidth)
+return/[~!#%&*)=+}\]\\|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|…[\w~`@#$%\^&*(_=+{[><]/.test(str.slice(i-1,i+1));};var knownScrollbarWidth;function scrollbarWidth(measure){if(knownScrollbarWidth!=null)return knownScrollbarWidth;var test=elt("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");removeChildrenAndAdd(measure,test);if(test.offsetWidth)
 knownScrollbarWidth=test.offsetHeight-test.clientHeight;return knownScrollbarWidth||0;}
 var zwspSupported;function zeroWidthElement(measure){if(zwspSupported==null){var test=elt("span","\u200b");removeChildrenAndAdd(measure,elt("span",[test,document.createTextNode("x")]));if(measure.firstChild.offsetHeight!=0)
 zwspSupported=test.offsetWidth<=1&&test.offsetHeight>2&&!ie_lt8;}
@@ -736,13 +737,13 @@
 if(order[0].level==1&&(m=str.match(/^\s+/))){order[0].from=m[0].length;order.unshift({from:0,to:m[0].length,level:0});}
 if(lst(order).level==1&&(m=str.match(/\s+$/))){lst(order).to-=m[0].length;order.push({from:len-m[0].length,to:len,level:0});}
 if(order[0].level!=lst(order).level)
-order.push({from:len,to:len,level:order[0].level});return order;};})();CodeMirror.version="3.16.1";return CodeMirror;})();;CodeMirror.defineMode("css",function(config){return CodeMirror.getMode(config,"text/css");});CodeMirror.defineMode("css-base",function(config,parserConfig){"use strict";var indentUnit=config.indentUnit,hooks=parserConfig.hooks||{},atMediaTypes=parserConfig.atMediaTypes||{},atMediaFeatures=parserConfig.atMediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},allowNested=!!parserConfig.allowNested,type=null;function ret(style,tp){type=tp;return style;}
+order.push({from:len,to:len,level:order[0].level});return order;};})();CodeMirror.version="3.20.0";return CodeMirror;})();;CodeMirror.defineMode("css",function(config,parserConfig){"use strict";if(!parserConfig.propertyKeywords)parserConfig=CodeMirror.resolveMode("text/css");var indentUnit=config.indentUnit||config.tabSize||2,hooks=parserConfig.hooks||{},atMediaTypes=parserConfig.atMediaTypes||{},atMediaFeatures=parserConfig.atMediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},allowNested=!!parserConfig.allowNested,type=null;function ret(style,tp){type=tp;return style;}
 function tokenBase(stream,state){var ch=stream.next();if(hooks[ch]){var result=hooks[ch](stream,state);if(result!==false)return result;}
 if(ch=="@"){stream.eatWhile(/[\w\\\-]/);return ret("def",stream.current());}
 else if(ch=="=")ret(null,"compare");else if((ch=="~"||ch=="|")&&stream.eat("="))return ret(null,"compare");else if(ch=="\""||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}
 else if(ch=="#"){stream.eatWhile(/[\w\\\-]/);return ret("atom","hash");}
 else if(ch=="!"){stream.match(/^\s*\w*/);return ret("keyword","important");}
-else if(/\d/.test(ch)){stream.eatWhile(/[\w.%]/);return ret("number","unit");}
+else if(/\d/.test(ch)||ch=="."&&stream.eat(/\d/)){stream.eatWhile(/[\w.%]/);return ret("number","unit");}
 else if(ch==="-"){if(/\d/.test(stream.peek())){stream.eatWhile(/[\w.%]/);return ret("number","unit");}else if(stream.match(/^[^-]+-/)){return ret("meta","meta");}}
 else if(/[,+>*\/]/.test(ch)){return ret(null,"select-op");}
 else if(ch=="."&&stream.match(/^-?[_a-z][_a-z0-9-]*/i)){return ret("qualifier","qualifier");}
@@ -758,47 +759,48 @@
 state.tokenize=tokenString(")",true);else
 state.tokenize=tokenBase;return ret(null,"(");}
 return{startState:function(base){return{tokenize:tokenBase,baseIndent:base||0,stack:[],lastToken:null};},token:function(stream,state){state.tokenize=state.tokenize||tokenBase;if(state.tokenize==tokenBase&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(style&&typeof style!="string")style=ret(style[0],style[1]);var context=state.stack[state.stack.length-1];if(style=="variable"){if(type=="variable-definition")state.stack.push("propertyValue");return state.lastToken="variable-2";}else if(style=="property"){var word=stream.current().toLowerCase();if(context=="propertyValue"){if(valueKeywords.hasOwnProperty(word)){style="string-2";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else{style="variable-2";}}else if(context=="rule"){if(!propertyKeywords.hasOwnProperty(word)){style+=" error";}}else if(context=="block"){if(propertyKeywords.hasOwnProperty(word)){style="property";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else if(valueKeywords.hasOwnProperty(word)){style="string-2";}else{style="tag";}}else if(!context||context=="@media{"){style="tag";}else if(context=="@media"){if(atMediaTypes[stream.current()]){style="attribute";}else if(/^(only|not)$/.test(word)){style="keyword";}else if(word=="and"){style="error";}else if(atMediaFeatures.hasOwnProperty(word)){style="error";}else{style="attribute error";}}else if(context=="@mediaType"){if(atMediaTypes.hasOwnProperty(word)){style="attribute";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style="error";}}else if(context=="@mediaType("){if(propertyKeywords.hasOwnProperty(word)){}else if(atMediaTypes.hasOwnProperty(word)){style="error";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style+=" error";}}else if(context=="@import"){style="tag";}else{style="error";}}else if(style=="atom"){if(!context||context=="@media{"||context=="block"){style="builtin";}else if(context=="propertyValue"){if(!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())){style+=" error";}}else{style="error";}}else if(context=="@media"&&type=="{"){style="error";}
-if(type=="{"){if(context=="@media"||context=="@mediaType"){state.stack.pop();state.stack[state.stack.length-1]="@media{";}
+if(type=="{"){if(context=="@media"||context=="@mediaType"){state.stack[state.stack.length-1]="@media{";}
 else{var newContext=allowNested?"block":"rule";state.stack.push(newContext);}}
-else if(type=="}"){var lastState=state.stack[state.stack.length-1];if(lastState=="interpolation")style="operator";state.stack.pop();if(context=="propertyValue")state.stack.pop();}
+else if(type=="}"){if(context=="interpolation")style="operator";while(state.stack.length){var removed=state.stack.pop();if(removed.indexOf("{")>-1||removed=="block"||removed=="rule"){break;}}}
 else if(type=="interpolation")state.stack.push("interpolation");else if(type=="@media")state.stack.push("@media");else if(type=="@import")state.stack.push("@import");else if(context=="@media"&&/\b(keyword|attribute)\b/.test(style))
-state.stack.push("@mediaType");else if(context=="@mediaType"&&stream.current()==",")state.stack.pop();else if(context=="@mediaType"&&type=="(")state.stack.push("@mediaType(");else if(context=="@mediaType("&&type==")")state.stack.pop();else if(type==":"&&state.lastToken=="property")state.stack.push("propertyValue");else if(context=="propertyValue"&&type==";")state.stack.pop();else if(context=="@import"&&type==";")state.stack.pop();return state.lastToken=style;},indent:function(state,textAfter){var n=state.stack.length;if(/^\}/.test(textAfter))
-n-=state.stack[state.stack.length-1]=="propertyValue"?2:1;return state.baseIndent+n*indentUnit;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/"};});(function(){function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;}
+state.stack[state.stack.length-1]="@mediaType";else if(context=="@mediaType"&&stream.current()==",")
+state.stack[state.stack.length-1]="@media";else if(type=="("){if(context=="@media"||context=="@mediaType"){state.stack[state.stack.length-1]="@mediaType";state.stack.push("@mediaType(");}
+else state.stack.push("(");}
+else if(type==")"){while(state.stack.length){var removed=state.stack.pop();if(removed.indexOf("(")>-1){break;}}}
+else if(type==":"&&state.lastToken=="property")state.stack.push("propertyValue");else if(context=="propertyValue"&&type==";")state.stack.pop();else if(context=="@import"&&type==";")state.stack.pop();return state.lastToken=style;},indent:function(state,textAfter){var n=state.stack.length;if(/^\}/.test(textAfter))
+n-=state.stack[n-1]=="propertyValue"?2:1;return state.baseIndent+n*indentUnit;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"};});(function(){function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;}
 return keys;}
-var atMediaTypes=keySet(["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"]);var atMediaFeatures=keySet(["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"]);var propertyKeywords=keySet(["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid-cell","grid-column","grid-column-align","grid-column-sizing","grid-column-span","grid-columns","grid-flow","grid-row","grid-row-align","grid-row-sizing","grid-row-span","grid-rows","grid-template","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-shadow","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-profile","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","writing-mode"]);var colorKeywords=keySet(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);var valueKeywords=keySet(["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","overlay","overline","padding","padding-box","painted","paused","persian","plus-darker","plus-lighter","pointer","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"]);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;}
+var atMediaTypes=keySet(["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"]);var atMediaFeatures=keySet(["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"]);var propertyKeywords=keySet(["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid-cell","grid-column","grid-column-align","grid-column-sizing","grid-column-span","grid-columns","grid-flow","grid-row","grid-row-align","grid-row-sizing","grid-row-span","grid-rows","grid-template","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-inside","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","zoom","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-profile","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","writing-mode"]);var colorKeywords=keySet(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);var valueKeywords=keySet(["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","keep-all","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"]);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;}
 maybeEnd=(ch=="*");}
 return["comment","comment"];}
 CodeMirror.defineMIME("text/css",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,hooks:{"<":function(stream,state){function tokenSGMLComment(stream,state){var dashes=0,ch;while((ch=stream.next())!=null){if(dashes>=2&&ch==">"){state.tokenize=null;break;}
 dashes=(ch=="-")?dashes+1:0;}
 return["comment","comment"];}
 if(stream.eat("!")){state.tokenize=tokenSGMLComment;return tokenSGMLComment(stream,state);}},"/":function(stream,state){if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}
-return false;}},name:"css-base"});CodeMirror.defineMIME("text/x-scss",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,allowNested:true,hooks:{"$":function(stream){stream.match(/^[\w-]+/);if(stream.peek()==":"){return["variable","variable-definition"];}
-return["variable","variable"];},"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"#":function(stream){if(stream.eat("{")){return["operator","interpolation"];}else{stream.eatWhile(/[\w\\\-]/);return["atom","hash"];}}},name:"css-base"});})();;CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var jsonMode=parserConfig.json;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};}
-var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this")};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"class":kw("class"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"super":kw("super"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}}
-return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;function chain(stream,state,f){state.tokenize=f;return f(stream,state);}
-function nextUntilUnescaped(stream,end){var escaped=false,next;while((next=stream.next())!=null){if(next==end&&!escaped)
+return false;}},name:"css"});CodeMirror.defineMIME("text/x-scss",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,allowNested:true,hooks:{":":function(stream){if(stream.match(/\s*{/)){return[null,"{"];}
+return false;},"$":function(stream){stream.match(/^[\w-]+/);if(stream.peek()==":"){return["variable","variable-definition"];}
+return["variable","variable"];},",":function(stream,state){if(state.stack[state.stack.length-1]=="propertyValue"&&stream.match(/^ *\$/,false)){return["operator",";"];}},"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"#":function(stream){if(stream.eat("{")){return["operator","interpolation"];}else{stream.eatWhile(/[\w\\\-]/);return["atom","hash"];}}},name:"css"});})();;CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var statementIndent=parserConfig.statementIndent;var jsonMode=parserConfig.json;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};}
+var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this"),"module":kw("module"),"class":kw("class"),"super":kw("atom"),"yield":C,"export":kw("export"),"import":kw("import"),"extends":C};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}}
+return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;function nextUntilUnescaped(stream,end){var escaped=false,next;while((next=stream.next())!=null){if(next==end&&!escaped)
 return false;escaped=!escaped&&next=="\\";}
 return escaped;}
 var type,content;function ret(tp,style,cont){type=tp;content=cont;return style;}
-function jsTokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'")
-return chain(stream,state,jsTokenString(ch));else if(/[\[\]{}\(\),;\:\.]/.test(ch))
-return ret(ch);else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");}
-else if(/\d/.test(ch)||ch=="-"&&stream.eat(/\d/)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");}
-else if(ch=="/"){if(stream.eat("*")){return chain(stream,state,jsTokenComment);}
-else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");}
-else if(state.lastType=="operator"||state.lastType=="keyword c"||/^[\[{}\(,;:]$/.test(state.lastType)){nextUntilUnescaped(stream,"/");stream.eatWhile(/[gimy]/);return ret("regexp","string-2");}
-else{stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}}
-else if(ch=="#"){stream.skipToEnd();return ret("error","error");}
-else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}
-else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}}
-function jsTokenString(quote){return function(stream,state){if(!nextUntilUnescaped(stream,quote))
-state.tokenize=jsTokenBase;return ret("string","string");};}
-function jsTokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=jsTokenBase;break;}
+function tokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}else if(ch=="."&&stream.match(/^\d+(?:[eE][+\-]?\d+)?/)){return ret("number","number");}else if(ch=="."&&stream.match("..")){return ret("spread","meta");}else if(/[\[\]{}\(\),;\:\.]/.test(ch)){return ret(ch);}else if(ch=="="&&stream.eat(">")){return ret("=>");}else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");}else if(/\d/.test(ch)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");}else if(ch=="/"){if(stream.eat("*")){state.tokenize=tokenComment;return tokenComment(stream,state);}else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");}else if(state.lastType=="operator"||state.lastType=="keyword c"||state.lastType=="sof"||/^[\[{}\(,;:]$/.test(state.lastType)){nextUntilUnescaped(stream,"/");stream.eatWhile(/[gimy]/);return ret("regexp","string-2");}else{stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}}else if(ch=="`"){state.tokenize=tokenQuasi;return tokenQuasi(stream,state);}else if(ch=="#"){stream.skipToEnd();return ret("error","error");}else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}}
+function tokenString(quote){return function(stream,state){if(!nextUntilUnescaped(stream,quote))
+state.tokenize=tokenBase;return ret("string","string");};}
+function tokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=tokenBase;break;}
 maybeEnd=(ch=="*");}
 return ret("comment","comment");}
+function tokenQuasi(stream,state){var escaped=false,next;while((next=stream.next())!=null){if(!escaped&&(next=="`"||next=="$"&&stream.eat("{"))){state.tokenize=tokenBase;break;}
+escaped=!escaped&&next=="\\";}
+return ret("quasi","string-2",stream.current());}
+var brackets="([{}])";function findFatArrow(stream,state){if(state.fatArrowAt)state.fatArrowAt=null;var arrow=stream.string.indexOf("=>",stream.start);if(arrow<0)return;var depth=0,sawSomething=false;for(var pos=arrow-1;pos>=0;--pos){var ch=stream.string.charAt(pos);var bracket=brackets.indexOf(ch);if(bracket>=0&&bracket<3){if(!depth){++pos;break;}
+if(--depth==0)break;}else if(bracket>=3&&bracket<6){++depth;}else if(/[$\w]/.test(ch)){sawSomething=true;}else if(sawSomething&&!depth){++pos;break;}}
+if(sawSomething&&!depth)state.fatArrowAt=pos;}
 var atomicTypes={"atom":true,"number":true,"variable":true,"string":true,"regexp":true,"this":true};function JSLexical(indented,column,type,align,prev,info){this.indented=indented;this.column=column;this.type=type;this.prev=prev;this.info=info;if(align!=null)this.align=align;}
 function inScope(state,varname){for(var v=state.localVars;v;v=v.next)
-if(v.name==varname)return true;}
+if(v.name==varname)return true;for(var cx=state.context;cx;cx=cx.prev){for(var v=cx.vars;v;v=v.next)
+if(v.name==varname)return true;}}
 function parseJS(state,style,type,content,stream){var cc=state.cc;cx.state=state;cx.stream=stream;cx.marked=null,cx.cc=cc;if(!state.lexical.hasOwnProperty("align"))
 state.lexical.align=true;while(true){var combinator=cc.length?cc.pop():jsonMode?expression:statement;if(combinator(type,content)){while(cc.length&&cc[cc.length-1].lex)
 cc.pop()();if(cx.marked)return cx.marked;if(type=="variable"&&inScope(state,content))return"variable-2";return style;}}}
@@ -806,54 +808,82 @@
 function cont(){pass.apply(null,arguments);return true;}
 function register(varname){function inList(list){for(var v=list;v;v=v.next)
 if(v.name==varname)return true;return false;}
-var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;state.globalVars={name:varname,next:state.globalVars};}}
+var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;if(parserConfig.globalVars)
+state.globalVars={name:varname,next:state.globalVars};}}
 var defaultVars={name:"this",next:{name:"arguments"}};function pushcontext(){cx.state.context={prev:cx.state.context,vars:cx.state.localVars};cx.state.localVars=defaultVars;}
 function popcontext(){cx.state.localVars=cx.state.context.vars;cx.state.context=cx.state.context.prev;}
-function pushlex(type,info){var result=function(){var state=cx.state;state.lexical=new JSLexical(state.indented,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;}
+function pushlex(type,info){var result=function(){var state=cx.state,indent=state.indented;if(state.lexical.type=="stat")indent=state.lexical.indented;state.lexical=new JSLexical(indent,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;}
 function poplex(){var state=cx.state;if(state.lexical.prev){if(state.lexical.type==")")
 state.indented=state.lexical.indented;state.lexical=state.lexical.prev;}}
 poplex.lex=true;function expect(wanted){return function(type){if(type==wanted)return cont();else if(wanted==";")return pass();else return cont(arguments.callee);};}
-function statement(type){if(type=="var")return cont(pushlex("vardef"),vardef1,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if")return cont(pushlex("form"),expression,statement,poplex,maybeelse(cx.state.indented));if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),expect("("),pushlex(")"),forspec1,expect(")"),poplex,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);return pass(pushlex("stat"),expression,expect(";"),poplex);}
-function expression(type){return expressionInner(type,maybeoperatorComma);}
-function expressionNoComma(type){return expressionInner(type,maybeoperatorNoComma);}
-function expressionInner(type,maybeop){if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef);if(type=="keyword c")return cont(maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,expect(")"),poplex,maybeop);if(type=="operator")return cont(expression);if(type=="[")return cont(pushlex("]"),commasep(expressionNoComma,"]"),poplex,maybeop);if(type=="{")return cont(pushlex("}"),commasep(objprop,"}"),poplex,maybeop);return cont();}
+function statement(type,value){if(type=="var")return cont(pushlex("vardef",value.length),vardef,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if")return cont(pushlex("form"),expression,statement,poplex,maybeelse);if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),forspec,poplex,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);if(type=="module")return cont(pushlex("form"),pushcontext,afterModule,popcontext,poplex);if(type=="class")return cont(pushlex("form"),className,objlit,poplex);if(type=="export")return cont(pushlex("form"),afterExport,poplex);if(type=="import")return cont(pushlex("form"),afterImport,poplex);return pass(pushlex("stat"),expression,expect(";"),poplex);}
+function expression(type){return expressionInner(type,false);}
+function expressionNoComma(type){return expressionInner(type,true);}
+function expressionInner(type,noComma){if(cx.state.fatArrowAt==cx.stream.start){var body=noComma?arrowBodyNoComma:arrowBody;if(type=="(")return cont(pushcontext,commasep(pattern,")"),expect("=>"),body,popcontext);else if(type=="variable")return pass(pushcontext,pattern,expect("=>"),body,popcontext);}
+var maybeop=noComma?maybeoperatorNoComma:maybeoperatorComma;if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef);if(type=="keyword c")return cont(noComma?maybeexpressionNoComma:maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,comprehension,expect(")"),poplex,maybeop);if(type=="operator"||type=="spread")return cont(noComma?expressionNoComma:expression);if(type=="[")return cont(pushlex("]"),expressionNoComma,maybeArrayComprehension,poplex,maybeop);if(type=="{")return cont(commasep(objprop,"}"),maybeop);return cont();}
 function maybeexpression(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expression);}
-function maybeoperatorComma(type,value){if(type==",")return pass();return maybeoperatorNoComma(type,value,maybeoperatorComma);}
-function maybeoperatorNoComma(type,value,me){if(!me)me=maybeoperatorNoComma;if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expression);return cont(expression);}
-if(type==";")return;if(type=="(")return cont(pushlex(")","call"),commasep(expressionNoComma,")"),poplex,me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),expression,expect("]"),poplex,me);}
+function maybeexpressionNoComma(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expressionNoComma);}
+function maybeoperatorComma(type,value){if(type==",")return cont(expression);return maybeoperatorNoComma(type,value,false);}
+function maybeoperatorNoComma(type,value,noComma){var me=noComma==false?maybeoperatorComma:maybeoperatorNoComma;var expr=noComma==false?expression:expressionNoComma;if(value=="=>")return cont(pushcontext,noComma?arrowBodyNoComma:arrowBody,popcontext);if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expr);return cont(expr);}
+if(type=="quasi"){cx.cc.push(me);return quasi(value);}
+if(type==";")return;if(type=="(")return cont(commasep(expressionNoComma,")","call"),me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),maybeexpression,expect("]"),poplex,me);}
+function quasi(value){if(!value)debugger;if(value.slice(value.length-2)!="${")return cont();return cont(expression,continueQuasi);}
+function continueQuasi(type){if(type=="}"){cx.marked="string-2";cx.state.tokenize=tokenQuasi;return cont();}}
+function arrowBody(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expression);}
+function arrowBodyNoComma(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expressionNoComma);}
 function maybelabel(type){if(type==":")return cont(poplex,statement);return pass(maybeoperatorComma,expect(";"),poplex);}
 function property(type){if(type=="variable"){cx.marked="property";return cont();}}
-function objprop(type,value){if(type=="variable"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);}else if(type=="number"||type=="string"){cx.marked=type+" property";}
-if(atomicTypes.hasOwnProperty(type))return cont(expect(":"),expressionNoComma);}
-function getterSetter(type){if(type==":")return cont(expression);if(type!="variable")return cont(expect(":"),expression);cx.marked="property";return cont(functiondef);}
-function commasep(what,end){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);}
+function objprop(type,value){if(type=="variable"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);}else if(type=="number"||type=="string"){cx.marked=type+" property";}else if(type=="["){return cont(expression,expect("]"),afterprop);}
+if(atomicTypes.hasOwnProperty(type))return cont(afterprop);}
+function getterSetter(type){if(type!="variable")return pass(afterprop);cx.marked="property";return cont(functiondef);}
+function afterprop(type){if(type==":")return cont(expressionNoComma);if(type=="(")return pass(functiondef);}
+function commasep(what,end,info){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);}
 if(type==end)return cont();return cont(expect(end));}
-return function(type){if(type==end)return cont();else return pass(what,proceed);};}
+return function(type){if(type==end)return cont();if(info===false)return pass(what,proceed);return pass(pushlex(end,info),what,proceed,poplex);};}
 function block(type){if(type=="}")return cont();return pass(statement,block);}
-function maybetype(type){if(type==":")return cont(typedef);return pass();}
-function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();}
-return pass();}
-function vardef1(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype,vardef2):cont(vardef2);}
-return pass();}
-function vardef2(type,value){if(value=="=")return cont(expressionNoComma,vardef2);if(type==",")return cont(vardef1);}
-function maybeelse(indent){return function(type,value){if(type=="keyword b"&&value=="else"){cx.state.lexical=new JSLexical(indent,0,"form",null,cx.state.lexical);return cont(statement,poplex);}
-return pass();};}
-function forspec1(type){if(type=="var")return cont(vardef1,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybein);return pass(expression,expect(";"),forspec2);}
-function formaybein(_type,value){if(value=="in")return cont(expression);return cont(maybeoperatorComma,forspec2);}
-function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in")return cont(expression);return pass(expression,expect(";"),forspec3);}
+function maybetype(type){if(isTS&&type==":")return cont(typedef);}
+function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();}}
+function vardef(){return pass(pattern,maybetype,maybeAssign,vardefCont);}
+function pattern(type,value){if(type=="variable"){register(value);return cont();}
+if(type=="[")return cont(commasep(pattern,"]"));if(type=="{")return cont(commasep(proppattern,"}"));}
+function proppattern(type,value){if(type=="variable"&&!cx.stream.match(/^\s*:/,false)){register(value);return cont(maybeAssign);}
+if(type=="variable")cx.marked="property";return cont(expect(":"),pattern,maybeAssign);}
+function maybeAssign(_type,value){if(value=="=")return cont(expressionNoComma);}
+function vardefCont(type){if(type==",")return cont(vardef);}
+function maybeelse(type,value){if(type=="keyword b"&&value=="else")return cont(pushlex("form"),statement,poplex);}
+function forspec(type){if(type=="(")return cont(pushlex(")"),forspec1,expect(")"));}
+function forspec1(type){if(type=="var")return cont(vardef,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybeinof);return pass(expression,expect(";"),forspec2);}
+function formaybeinof(_type,value){if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
+return cont(maybeoperatorComma,forspec2);}
+function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
+return pass(expression,expect(";"),forspec3);}
 function forspec3(type){if(type!=")")cont(expression);}
-function functiondef(type,value){if(type=="variable"){register(value);return cont(functiondef);}
-if(type=="(")return cont(pushlex(")"),pushcontext,commasep(funarg,")"),poplex,statement,popcontext);}
-function funarg(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype):cont();}}
-return{startState:function(basecolumn){return{tokenize:jsTokenBase,lastType:null,cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,globalVars:parserConfig.globalVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align"))
-state.lexical.align=false;state.indented=stream.indentation();}
-if(state.tokenize!=jsTokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==jsTokenComment)return CodeMirror.Pass;if(state.tokenize!=jsTokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(parserConfig.statementIndent!=null){if(type==")"&&lexical.prev&&lexical.prev.type=="stat")lexical=lexical.prev;if(lexical.type=="stat")return lexical.indented+parserConfig.statementIndent;}
-if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?4:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat")
-return lexical.indented+(state.lastType=="operator"||state.lastType==","?indentUnit:0);else if(lexical.info=="switch"&&!closing)
-return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",jsonMode:jsonMode};});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});;CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag||true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var alignCDATA=parserConfig.alignCDATA;var tagName,type;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);}
-var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{var isClose=stream.eat("/");tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/)))tagName+=c;if(!tagName)return"error";type=isClose?"closeTag":"openTag";state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");}
+function functiondef(type,value){if(value=="*"){cx.marked="keyword";return cont(functiondef);}
+if(type=="variable"){register(value);return cont(functiondef);}
+if(type=="(")return cont(pushcontext,commasep(funarg,")"),statement,popcontext);}
+function funarg(type){if(type=="spread")return cont(funarg);return pass(pattern,maybetype);}
+function className(type,value){if(type=="variable"){register(value);return cont(classNameAfter);}}
+function classNameAfter(_type,value){if(value=="extends")return cont(expression);}
+function objlit(type){if(type=="{")return cont(commasep(objprop,"}"));}
+function afterModule(type,value){if(type=="string")return cont(statement);if(type=="variable"){register(value);return cont(maybeFrom);}}
+function afterExport(_type,value){if(value=="*"){cx.marked="keyword";return cont(maybeFrom,expect(";"));}
+if(value=="default"){cx.marked="keyword";return cont(expression,expect(";"));}
+return pass(statement);}
+function afterImport(type){if(type=="string")return cont();return pass(importSpec,maybeFrom);}
+function importSpec(type,value){if(type=="{")return cont(commasep(importSpec,"}"));if(type=="variable")register(value);return cont();}
+function maybeFrom(_type,value){if(value=="from"){cx.marked="keyword";return cont(expression);}}
+function maybeArrayComprehension(type){if(type=="for")return pass(comprehension);if(type==",")return cont(commasep(expressionNoComma,"]",false));return pass(commasep(expressionNoComma,"]",false));}
+function comprehension(type){if(type=="for")return cont(forspec,comprehension);if(type=="if")return cont(expression,comprehension);}
+return{startState:function(basecolumn){var state={tokenize:tokenBase,lastType:"sof",cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};if(parserConfig.globalVars)state.globalVars=parserConfig.globalVars;return state;},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align"))
+state.lexical.align=false;state.indented=stream.indentation();findFatArrow(stream,state);}
+if(state.tokenize!=tokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==tokenComment)return CodeMirror.Pass;if(state.tokenize!=tokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;for(var i=state.cc.length-1;i>=0;--i){var c=state.cc[i];if(c==poplex)lexical=lexical.prev;else if(c!=maybeelse)break;}
+if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;if(statementIndent&&lexical.type==")"&&lexical.prev.type=="stat")
+lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?lexical.info+1:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat")
+return lexical.indented+(state.lastType=="operator"||state.lastType==","?statementIndent||indentUnit:0);else if(lexical.info=="switch"&&!closing&&parserConfig.doubleIndentSwitch!=false)
+return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",fold:"brace",helperType:jsonMode?"json":"javascript",jsonMode:jsonMode};});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});;CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag||true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var alignCDATA=parserConfig.alignCDATA;var tagName,type;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);}
+var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{var isClose=stream.eat("/");tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/)))tagName+=c;if(!tagName)return"tag error";type=isClose?"closeTag":"openTag";state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");}
 return ok?"atom":"error";}else{stream.eatWhile(/[^&<]/);return null;}}
-function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){return"error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\']/);return"word";}}
+function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){state.tokenize=inText;var next=state.tokenize(stream,state);return next?next+" error":"error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\']/);return"word";}}
 function inAttribute(quote){var closure=function(stream,state){while(!stream.eol()){if(stream.next()==quote){state.tokenize=inTag;break;}}
 return"string";};closure.isInAttribute=true;return closure;}
 function inBlock(style,terminator){return function(stream,state){while(!stream.eol()){if(stream.match(terminator)){state.tokenize=inText;break;}
@@ -886,7 +916,8 @@
 function attvaluemaybe(type){if(type=="string")return cont(attvaluemaybe);else return pass();}
 return{startState:function(){return{tokenize:inText,cc:[],indented:0,startOfLine:true,tagName:null,tagStart:null,context:null};},token:function(stream,state){if(!state.tagName&&stream.sol()){state.startOfLine=true;state.indented=stream.indentation();}
 if(stream.eatSpace())return null;setStyle=type=tagName=null;var style=state.tokenize(stream,state);state.type=type;if((style||type)&&style!="comment"){curState=state;curStream=stream;while(true){var comb=state.cc.pop()||element;if(comb(type||style))break;}}
-state.startOfLine=false;return setStyle||style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){return state.stringStartCol+1;}
+state.startOfLine=false;if(setStyle)
+style=setStyle=="error"?style+" error":setStyle;return style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){return state.stringStartCol+1;}
 if((state.tokenize!=inTag&&state.tokenize!=inText)||context&&context.noIndent)
 return fullLine?fullLine.match(/^(\s*)/)[0].length:0;if(state.tagName){if(multilineTagIndentPastTag)
 return state.tagStart+state.tagName.length+2;else
@@ -898,7 +929,7 @@
 scriptTypes.push({matches:/./,mode:CodeMirror.getMode(config,"text/plain")});function html(stream,state){var tagName=state.htmlState.tagName;var style=htmlMode.token(stream,state.htmlState);if(tagName=="script"&&/\btag\b/.test(style)&&stream.current()==">"){var scriptType=stream.string.slice(Math.max(0,stream.pos-100),stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);scriptType=scriptType?scriptType[1]:"";if(scriptType&&/[\"\']/.test(scriptType.charAt(0)))scriptType=scriptType.slice(1,scriptType.length-1);for(var i=0;i<scriptTypes.length;++i){var tp=scriptTypes[i];if(typeof tp.matches=="string"?scriptType==tp.matches:tp.matches.test(scriptType)){if(tp.mode){state.token=script;state.localMode=tp.mode;state.localState=tp.mode.startState&&tp.mode.startState(htmlMode.indent(state.htmlState,""));}
 break;}}}else if(tagName=="style"&&/\btag\b/.test(style)&&stream.current()==">"){state.token=css;state.localMode=cssMode;state.localState=cssMode.startState(htmlMode.indent(state.htmlState,""));}
 return style;}
-function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur[0]);}
+function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur);}
 return style;}
 function script(stream,state){if(stream.match(/^<\/\s*script\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
 return maybeBackup(stream,/<\/\s*script\s*>/,state.localMode.token(stream,state.localState));}
@@ -908,8 +939,8 @@
 var local=CodeMirror.copyState(state.localMode,state.localState);return{token:state.token,localMode:state.localMode,localState:local,htmlState:CodeMirror.copyState(htmlMode,state.htmlState)};},token:function(stream,state){return state.token(stream,state);},indent:function(state,textAfter){if(!state.localMode||/^\s*<\//.test(textAfter))
 return htmlMode.indent(state.htmlState,textAfter);else if(state.localMode.indent)
 return state.localMode.indent(state.localState,textAfter);else
-return CodeMirror.Pass;},electricChars:"/{}:",innerMode:function(state){return{state:state.localState||state.htmlState,mode:state.localMode||htmlMode};}};},"xml","javascript","css");CodeMirror.defineMIME("text/html","htmlmixed");;(function(){var ie_lt8=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8);var Pos=CodeMirror.Pos;var matching={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function findMatchingBracket(cm,where,strict){var state=cm.state.matchBrackets;var maxScanLen=(state&&state.maxScanLineLength)||10000;var cur=where||cm.getCursor(),line=cm.getLineHandle(cur.line),pos=cur.ch-1;var match=(pos>=0&&matching[line.text.charAt(pos)])||matching[line.text.charAt(++pos)];if(!match)return null;var forward=match.charAt(1)==">",d=forward?1:-1;if(strict&&forward!=(pos==cur.ch))return null;var style=cm.getTokenTypeAt(Pos(cur.line,pos+1));var stack=[line.text.charAt(pos)],re=/[(){}[\]]/;function scan(line,lineNo,start){if(!line.text)return;var pos=forward?0:line.text.length-1,end=forward?line.text.length:-1;if(line.text.length>maxScanLen)return null;if(start!=null)pos=start+d;for(;pos!=end;pos+=d){var ch=line.text.charAt(pos);if(re.test(ch)&&cm.getTokenTypeAt(Pos(lineNo,pos+1))==style){var match=matching[ch];if(match.charAt(1)==">"==forward)stack.push(ch);else if(stack.pop()!=match.charAt(0))return{pos:pos,match:false};else if(!stack.length)return{pos:pos,match:true};}}}
-for(var i=cur.line,found,e=forward?Math.min(i+100,cm.lineCount()):Math.max(-1,i-100);i!=e;i+=d){if(i==cur.line)found=scan(line,i,pos);else found=scan(cm.getLineHandle(i),i);if(found)break;}
+return CodeMirror.Pass;},electricChars:"/{}:",innerMode:function(state){return{state:state.localState||state.htmlState,mode:state.localMode||htmlMode};}};},"xml","javascript","css");CodeMirror.defineMIME("text/html","htmlmixed");;(function(){var ie_lt8=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8);var Pos=CodeMirror.Pos;var matching={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function findMatchingBracket(cm,where,strict){var state=cm.state.matchBrackets;var maxScanLen=(state&&state.maxScanLineLength)||10000;var maxScanLines=(state&&state.maxScanLines)||100;var cur=where||cm.getCursor(),line=cm.getLineHandle(cur.line),pos=cur.ch-1;var match=(pos>=0&&matching[line.text.charAt(pos)])||matching[line.text.charAt(++pos)];if(!match)return null;var forward=match.charAt(1)==">",d=forward?1:-1;if(strict&&forward!=(pos==cur.ch))return null;var style=cm.getTokenTypeAt(Pos(cur.line,pos+1));var stack=[line.text.charAt(pos)],re=/[(){}[\]]/;function scan(line,lineNo,start){if(!line.text)return;var pos=forward?0:line.text.length-1,end=forward?line.text.length:-1;if(line.text.length>maxScanLen)return null;if(start!=null)pos=start+d;for(;pos!=end;pos+=d){var ch=line.text.charAt(pos);if(re.test(ch)&&cm.getTokenTypeAt(Pos(lineNo,pos+1))==style){var match=matching[ch];if(match.charAt(1)==">"==forward)stack.push(ch);else if(stack.pop()!=match.charAt(0))return{pos:pos,match:false};else if(!stack.length)return{pos:pos,match:true};}}}
+for(var i=cur.line,found,e=forward?Math.min(i+maxScanLines,cm.lineCount()):Math.max(-1,i-maxScanLines);i!=e;i+=d){if(i==cur.line)found=scan(line,i,pos);else found=scan(cm.getLineHandle(i),i);if(found)break;}
 return{from:Pos(cur.line,pos),to:found&&Pos(i,found.pos),match:found&&found.match,forward:forward};}
 function matchBrackets(cm,autoclear){var maxHighlightLen=cm.state.matchBrackets.maxHighlightLineLength||1000;var found=findMatchingBracket(cm);if(!found||cm.getLine(found.from.line).length>maxHighlightLen||found.to&&cm.getLine(found.to.line).length>maxHighlightLen)
 return;var style=found.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";var one=cm.markText(found.from,Pos(found.from.line,found.from.ch+1),{className:style});var two=found.to&&cm.markText(found.to,Pos(found.to.line,found.to.ch+1),{className:style});if(ie_lt8&&cm.state.focused)cm.display.input.focus();var clear=function(){cm.operation(function(){one.clear();two&&two.clear();});};if(autoclear)setTimeout(clear,800);else return clear;}
@@ -940,15 +971,15 @@
 if(cmp(from,coverStart.from)<0){if(coverStart.to.line-from.line<CHUNK_SIZE){array.shift().clear();coverRange(cm,from,coverStart.to,0);}else{coverRange(cm,from,coverStart.from,0);}}
 while(cmp(to,coverEnd.to)<0){array.pop().clear();coverEnd=array[array.length-1].find();}
 if(cmp(to,coverEnd.to)>0){if(to.line-coverEnd.from.line<CHUNK_SIZE){array.pop().clear();coverRange(cm,coverEnd.from,to);}else{coverRange(cm,coverEnd.to,to);}}}})();;(function(){"use strict";var noOptions={};var nonWS=/[^\s\u00a0]/;var Pos=CodeMirror.Pos;function firstNonWS(str){var found=str.search(nonWS);return found==-1?0:found;}
-CodeMirror.commands.toggleComment=function(cm){var from=cm.getCursor("start"),to=cm.getCursor("end");cm.uncomment(from,to)||cm.lineComment(from,to);};CodeMirror.defineExtension("lineComment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=CodeMirror.innerMode(self.getMode(),self.getTokenAt(from).state).mode;var commentString=options.lineComment||mode.lineComment;if(!commentString){if(options.blockCommentStart||mode.blockCommentStart){options.fullLines=true;self.blockComment(from,to,options);}
+CodeMirror.commands.toggleComment=function(cm){var from=cm.getCursor("start"),to=cm.getCursor("end");cm.uncomment(from,to)||cm.lineComment(from,to);};CodeMirror.defineExtension("lineComment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=self.getModeAt(from);var commentString=options.lineComment||mode.lineComment;if(!commentString){if(options.blockCommentStart||mode.blockCommentStart){options.fullLines=true;self.blockComment(from,to,options);}
 return;}
-var firstLine=self.getLine(from.line);if(firstLine==null)return;var end=Math.min(to.ch!=0||to.line==from.line?to.line+1:to.line,self.lastLine()+1);var pad=options.padding==null?" ":options.padding;var blankLines=options.commentBlankLines;self.operation(function(){if(options.indent){var baseString=firstLine.slice(0,firstNonWS(firstLine));for(var i=from.line;i<end;++i){var line=self.getLine(i),cut=baseString.length;if(!blankLines&&!nonWS.test(line))continue;if(line.slice(0,cut)!=baseString)cut=firstNonWS(line);self.replaceRange(baseString+commentString+pad,Pos(i,0),Pos(i,cut));}}else{for(var i=from.line;i<end;++i){if(blankLines||nonWS.test(self.getLine(i)))
-self.replaceRange(commentString+pad,Pos(i,0));}}});});CodeMirror.defineExtension("blockComment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=CodeMirror.innerMode(self.getMode(),self.getTokenAt(from).state).mode;var startString=options.blockCommentStart||mode.blockCommentStart;var endString=options.blockCommentEnd||mode.blockCommentEnd;if(!startString||!endString){if((options.lineComment||mode.lineComment)&&options.fullLines!=false)
+var firstLine=self.getLine(from.line);if(firstLine==null)return;var end=Math.min(to.ch!=0||to.line==from.line?to.line+1:to.line,self.lastLine()+1);var pad=options.padding==null?" ":options.padding;var blankLines=options.commentBlankLines||from.line==to.line;self.operation(function(){if(options.indent){var baseString=firstLine.slice(0,firstNonWS(firstLine));for(var i=from.line;i<end;++i){var line=self.getLine(i),cut=baseString.length;if(!blankLines&&!nonWS.test(line))continue;if(line.slice(0,cut)!=baseString)cut=firstNonWS(line);self.replaceRange(baseString+commentString+pad,Pos(i,0),Pos(i,cut));}}else{for(var i=from.line;i<end;++i){if(blankLines||nonWS.test(self.getLine(i)))
+self.replaceRange(commentString+pad,Pos(i,0));}}});});CodeMirror.defineExtension("blockComment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=self.getModeAt(from);var startString=options.blockCommentStart||mode.blockCommentStart;var endString=options.blockCommentEnd||mode.blockCommentEnd;if(!startString||!endString){if((options.lineComment||mode.lineComment)&&options.fullLines!=false)
 self.lineComment(from,to,options);return;}
 var end=Math.min(to.line,self.lastLine());if(end!=from.line&&to.ch==0&&nonWS.test(self.getLine(end)))--end;var pad=options.padding==null?" ":options.padding;if(from.line>end)return;self.operation(function(){if(options.fullLines!=false){var lastLineHasText=nonWS.test(self.getLine(end));self.replaceRange(pad+endString,Pos(end));self.replaceRange(startString+pad,Pos(from.line,0));var lead=options.blockCommentLead||mode.blockCommentLead;if(lead!=null)for(var i=from.line+1;i<=end;++i)
 if(i!=end||lastLineHasText)
-self.replaceRange(lead+pad,Pos(i,0));}else{self.replaceRange(endString,to);self.replaceRange(startString,from);}});});CodeMirror.defineExtension("uncomment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=CodeMirror.innerMode(self.getMode(),self.getTokenAt(from).state).mode;var end=Math.min(to.line,self.lastLine()),start=Math.min(from.line,end);var lineString=options.lineComment||mode.lineComment,lines=[];var pad=options.padding==null?" ":options.padding;lineComment:for(;;){if(!lineString)break;for(var i=start;i<=end;++i){var line=self.getLine(i);var found=line.indexOf(lineString);if(found==-1&&(i!=end||i==start)&&nonWS.test(line))break lineComment;if(i!=start&&found>-1&&nonWS.test(line.slice(0,found)))break lineComment;lines.push(line);}
-self.operation(function(){for(var i=start;i<=end;++i){var line=lines[i-start];var pos=line.indexOf(lineString),endPos=pos+lineString.length;if(pos<0)continue;if(line.slice(endPos,endPos+pad.length)==pad)endPos+=pad.length;self.replaceRange("",Pos(i,pos),Pos(i,endPos));}});return true;}
+self.replaceRange(lead+pad,Pos(i,0));}else{self.replaceRange(endString,to);self.replaceRange(startString,from);}});});CodeMirror.defineExtension("uncomment",function(from,to,options){if(!options)options=noOptions;var self=this,mode=self.getModeAt(from);var end=Math.min(to.line,self.lastLine()),start=Math.min(from.line,end);var lineString=options.lineComment||mode.lineComment,lines=[];var pad=options.padding==null?" ":options.padding,didSomething;lineComment:{if(!lineString)break lineComment;for(var i=start;i<=end;++i){var line=self.getLine(i);var found=line.indexOf(lineString);if(found==-1&&(i!=end||i==start)&&nonWS.test(line))break lineComment;if(i!=start&&found>-1&&nonWS.test(line.slice(0,found)))break lineComment;lines.push(line);}
+self.operation(function(){for(var i=start;i<=end;++i){var line=lines[i-start];var pos=line.indexOf(lineString),endPos=pos+lineString.length;if(pos<0)continue;if(line.slice(endPos,endPos+pad.length)==pad)endPos+=pad.length;didSomething=true;self.replaceRange("",Pos(i,pos),Pos(i,endPos));}});if(didSomething)return true;}
 var startString=options.blockCommentStart||mode.blockCommentStart;var endString=options.blockCommentEnd||mode.blockCommentEnd;if(!startString||!endString)return false;var lead=options.blockCommentLead||mode.blockCommentLead;var startLine=self.getLine(start),endLine=end==start?startLine:self.getLine(end);var open=startLine.indexOf(startString),close=endLine.lastIndexOf(endString);if(close==-1&&start!=end){endLine=self.getLine(--end);close=endLine.lastIndexOf(endString);}
 if(open==-1||close==-1)return false;self.operation(function(){self.replaceRange("",Pos(end,close-(pad&&endLine.slice(close-pad.length,close)==pad?pad.length:0)),Pos(end,close+endString.length));var openEnd=open+startString.length;if(pad&&startLine.slice(openEnd,openEnd+pad.length)==pad)openEnd+=pad.length;self.replaceRange("",Pos(start,open),Pos(start,openEnd));if(lead)for(var i=start+1;i<=end;++i){var line=self.getLine(i),found=line.indexOf(lead);if(found==-1||nonWS.test(line.slice(0,found)))continue;var foundEnd=found+lead.length;if(pad&&line.slice(foundEnd,foundEnd+pad.length)==pad)foundEnd+=pad.length;self.replaceRange("",Pos(i,found),Pos(i,foundEnd));}});return true;});})();;CodeMirror.overlayMode=CodeMirror.overlayParser=function(base,overlay,combine){return{startState:function(){return{base:CodeMirror.startState(base),overlay:CodeMirror.startState(overlay),basePos:0,baseCur:null,overlayPos:0,overlayCur:null};},copyState:function(state){return{base:CodeMirror.copyState(base,state.base),overlay:CodeMirror.copyState(overlay,state.overlay),basePos:state.basePos,baseCur:null,overlayPos:state.overlayPos,overlayCur:null};},token:function(stream,state){if(stream.start==state.basePos){state.baseCur=base.token(stream,state.base);state.basePos=stream.pos;}
 if(stream.start==state.overlayPos){stream.pos=stream.start;state.overlayCur=overlay.token(stream,state.overlay);state.overlayPos=stream.pos;}
@@ -985,66 +1016,69 @@
 return{startState:function(basecolumn){return{tokenize:null,context:new Context((basecolumn||0)-indentUnit,0,"top",false),indented:0,startOfLine:true};},token:function(stream,state){var ctx=state.context;if(stream.sol()){if(ctx.align==null)ctx.align=false;state.indented=stream.indentation();state.startOfLine=true;}
 if(stream.eatSpace())return null;curPunc=null;var style=(state.tokenize||tokenBase)(stream,state);if(style=="comment"||style=="meta")return style;if(ctx.align==null)ctx.align=true;if((curPunc==";"||curPunc==":"||curPunc==",")&&ctx.type=="statement")popContext(state);else if(curPunc=="{")pushContext(state,stream.column(),"}");else if(curPunc=="[")pushContext(state,stream.column(),"]");else if(curPunc=="(")pushContext(state,stream.column(),")");else if(curPunc=="}"){while(ctx.type=="statement")ctx=popContext(state);if(ctx.type=="}")ctx=popContext(state);while(ctx.type=="statement")ctx=popContext(state);}
 else if(curPunc==ctx.type)popContext(state);else if(((ctx.type=="}"||ctx.type=="top")&&curPunc!=';')||(ctx.type=="statement"&&curPunc=="newstatement"))
-pushContext(state,stream.column(),"statement");state.startOfLine=false;return style;},indent:function(state,textAfter){if(state.tokenize!=tokenBase&&state.tokenize!=null)return CodeMirror.Pass;var ctx=state.context,firstChar=textAfter&&textAfter.charAt(0);if(ctx.type=="statement"&&firstChar=="}")ctx=ctx.prev;var closing=firstChar==ctx.type;if(ctx.type=="statement")return ctx.indented+(firstChar=="{"?0:statementIndentUnit);else if(ctx.align&&(!dontAlignCalls||ctx.type!=")"))return ctx.column+(closing?0:1);else if(ctx.type==")"&&!closing)return ctx.indented+statementIndentUnit;else return ctx.indented+(closing?0:indentUnit);},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"};});(function(){function words(str){var obj={},words=str.split(" ");for(var i=0;i<words.length;++i)obj[words[i]]=true;return obj;}
+pushContext(state,stream.column(),"statement");state.startOfLine=false;return style;},indent:function(state,textAfter){if(state.tokenize!=tokenBase&&state.tokenize!=null)return CodeMirror.Pass;var ctx=state.context,firstChar=textAfter&&textAfter.charAt(0);if(ctx.type=="statement"&&firstChar=="}")ctx=ctx.prev;var closing=firstChar==ctx.type;if(ctx.type=="statement")return ctx.indented+(firstChar=="{"?0:statementIndentUnit);else if(ctx.align&&(!dontAlignCalls||ctx.type!=")"))return ctx.column+(closing?0:1);else if(ctx.type==")"&&!closing)return ctx.indented+statementIndentUnit;else return ctx.indented+(closing?0:indentUnit);},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"};});(function(){function words(str){var obj={},words=str.split(" ");for(var i=0;i<words.length;++i)obj[words[i]]=true;return obj;}
 var cKeywords="auto if break int case long char register continue return default short do sizeof "+"double static else struct entry switch extern typedef float union for unsigned "+"goto while enum void const signed volatile";function cppHook(stream,state){if(!state.startOfLine)return false;for(;;){if(stream.skipTo("\\")){stream.next();if(stream.eol()){state.tokenize=cppHook;break;}}else{stream.skipToEnd();state.tokenize=null;break;}}
 return"meta";}
 function tokenAtString(stream,state){var next;while((next=stream.next())!=null){if(next=='"'&&!stream.eat('"')){state.tokenize=null;break;}}
 return"string";}
 function mimes(ms,mode){for(var i=0;i<ms.length;++i)CodeMirror.defineMIME(ms[i],mode);}
 mimes(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:words(cKeywords),blockKeywords:words("case do else for if switch while struct"),atoms:words("null"),hooks:{"#":cppHook}});mimes(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:words(cKeywords+" asm dynamic_cast namespace reinterpret_cast try bool explicit new "+"static_cast typeid catch operator template typename class friend private "+"this using const_cast inline public throw virtual delete mutable protected "+"wchar_t"),blockKeywords:words("catch class do else finally for if struct switch try while"),atoms:words("true false null"),hooks:{"#":cppHook}});CodeMirror.defineMIME("text/x-java",{name:"clike",keywords:words("abstract assert boolean break byte case catch char class const continue default "+"do double else enum extends final finally float for goto if implements import "+"instanceof int interface long native new package private protected public "+"return short static strictfp super switch synchronized this throw throws transient "+"try void volatile while"),blockKeywords:words("catch class do else finally for if switch try while"),atoms:words("true false null"),hooks:{"@":function(stream){stream.eatWhile(/[\w\$_]/);return"meta";}}});CodeMirror.defineMIME("text/x-csharp",{name:"clike",keywords:words("abstract as base break case catch checked class const continue"+" default delegate do else enum event explicit extern finally fixed for"+" foreach goto if implicit in interface internal is lock namespace new"+" operator out override params private protected public readonly ref return sealed"+" sizeof stackalloc static struct switch this throw try typeof unchecked"+" unsafe using virtual void volatile while add alias ascending descending dynamic from get"+" global group into join let orderby partial remove select set value var yield"),blockKeywords:words("catch class do else finally for foreach if struct switch try while"),builtin:words("Boolean Byte Char DateTime DateTimeOffset Decimal Double"+" Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32"+" UInt64 bool byte char decimal double short int long object"+" sbyte float string ushort uint ulong"),atoms:words("true false null"),hooks:{"@":function(stream,state){if(stream.eat('"')){state.tokenize=tokenAtString;return tokenAtString(stream,state);}
-stream.eatWhile(/[\w\$_]/);return"meta";}}});CodeMirror.defineMIME("text/x-scala",{name:"clike",keywords:words("abstract case catch class def do else extends false final finally for forSome if "+"implicit import lazy match new null object override package private protected return "+"sealed super this throw trait try trye type val var while with yield _ : = => <- <: "+"<% >: # @ "+"assert assume require print println printf readLine readBoolean readByte readShort "+"readChar readInt readLong readFloat readDouble "+"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either "+"Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable "+"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering "+"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder "+"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: "+"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable "+"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process "+"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String "+"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),blockKeywords:words("catch class do else finally for forSome if match switch try while"),atoms:words("true false null"),hooks:{"@":function(stream){stream.eatWhile(/[\w\$_]/);return"meta";}}});mimes(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:words("float int bool void "+"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 "+"mat2 mat3 mat4 "+"sampler1D sampler2D sampler3D samplerCube "+"sampler1DShadow sampler2DShadow"+"const attribute uniform varying "+"break continue discard return "+"for while do if else struct "+"in out inout"),blockKeywords:words("for while do if else struct"),builtin:words("radians degrees sin cos tan asin acos atan "+"pow exp log exp2 sqrt inversesqrt "+"abs sign floor ceil fract mod min max clamp mix step smootstep "+"length distance dot cross normalize ftransform faceforward "+"reflect refract matrixCompMult "+"lessThan lessThanEqual greaterThan greaterThanEqual "+"equal notEqual any all not "+"texture1D texture1DProj texture1DLod texture1DProjLod "+"texture2D texture2DProj texture2DLod texture2DProjLod "+"texture3D texture3DProj texture3DLod texture3DProjLod "+"textureCube textureCubeLod "+"shadow1D shadow2D shadow1DProj shadow2DProj "+"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod "+"dFdx dFdy fwidth "+"noise1 noise2 noise3 noise4"),atoms:words("true false "+"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex "+"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 "+"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 "+"gl_FogCoord "+"gl_Position gl_PointSize gl_ClipVertex "+"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor "+"gl_TexCoord gl_FogFragCoord "+"gl_FragCoord gl_FrontFacing "+"gl_FragColor gl_FragData gl_FragDepth "+"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix "+"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse "+"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse "+"gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose "+"gl_ProjectionMatrixInverseTranspose "+"gl_ModelViewProjectionMatrixInverseTranspose "+"gl_TextureMatrixInverseTranspose "+"gl_NormalScale gl_DepthRange gl_ClipPlane "+"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel "+"gl_FrontLightModelProduct gl_BackLightModelProduct "+"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ "+"gl_FogParameters "+"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords "+"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats "+"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits "+"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits "+"gl_MaxDrawBuffers"),hooks:{"#":cppHook}});}());;CodeMirror.defineMode('coffeescript',function(conf){var ERRORCLASS='error';function wordRegexp(words){return new RegExp("^(("+words.join(")|(")+"))\\b");}
-var singleOperators=new RegExp("^[\\+\\-\\*/%&|\\^~<>!\?]");var singleDelimiters=new RegExp('^[\\(\\)\\[\\]\\{\\},:`=;\\.]');var doubleOperators=new RegExp("^((\->)|(\=>)|(\\+\\+)|(\\+\\=)|(\\-\\-)|(\\-\\=)|(\\*\\*)|(\\*\\=)|(\\/\\/)|(\\/\\=)|(==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//))");var doubleDelimiters=new RegExp("^((\\.\\.)|(\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");var tripleDelimiters=new RegExp("^((\\.\\.\\.)|(//=)|(>>=)|(<<=)|(\\*\\*=))");var identifiers=new RegExp("^[_A-Za-z$][_A-Za-z$0-9]*");var properties=new RegExp("^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*");var wordOperators=wordRegexp(['and','or','not','is','isnt','in','instanceof','typeof']);var indentKeywords=['for','while','loop','if','unless','else','switch','try','catch','finally','class'];var commonKeywords=['break','by','continue','debugger','delete','do','in','of','new','return','then','this','throw','when','until'];var keywords=wordRegexp(indentKeywords.concat(commonKeywords));indentKeywords=wordRegexp(indentKeywords);var stringPrefixes=new RegExp("^('{3}|\"{3}|['\"])");var regexPrefixes=new RegExp("^(/{3}|/)");var commonConstants=['Infinity','NaN','undefined','null','true','false','on','off','yes','no'];var constants=wordRegexp(commonConstants);function tokenBase(stream,state){if(stream.sol()){var scopeOffset=state.scopes[0].offset;if(stream.eatSpace()){var lineOffset=stream.indentation();if(lineOffset>scopeOffset){return'indent';}else if(lineOffset<scopeOffset){return'dedent';}
+stream.eatWhile(/[\w\$_]/);return"meta";}}});CodeMirror.defineMIME("text/x-scala",{name:"clike",keywords:words("abstract case catch class def do else extends false final finally for forSome if "+"implicit import lazy match new null object override package private protected return "+"sealed super this throw trait try trye type val var while with yield _ : = => <- <: "+"<% >: # @ "+"assert assume require print println printf readLine readBoolean readByte readShort "+"readChar readInt readLong readFloat readDouble "+"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either "+"Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable "+"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering "+"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder "+"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: "+"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable "+"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process "+"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String "+"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),blockKeywords:words("catch class do else finally for forSome if match switch try while"),atoms:words("true false null"),hooks:{"@":function(stream){stream.eatWhile(/[\w\$_]/);return"meta";}}});mimes(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:words("float int bool void "+"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 "+"mat2 mat3 mat4 "+"sampler1D sampler2D sampler3D samplerCube "+"sampler1DShadow sampler2DShadow"+"const attribute uniform varying "+"break continue discard return "+"for while do if else struct "+"in out inout"),blockKeywords:words("for while do if else struct"),builtin:words("radians degrees sin cos tan asin acos atan "+"pow exp log exp2 sqrt inversesqrt "+"abs sign floor ceil fract mod min max clamp mix step smootstep "+"length distance dot cross normalize ftransform faceforward "+"reflect refract matrixCompMult "+"lessThan lessThanEqual greaterThan greaterThanEqual "+"equal notEqual any all not "+"texture1D texture1DProj texture1DLod texture1DProjLod "+"texture2D texture2DProj texture2DLod texture2DProjLod "+"texture3D texture3DProj texture3DLod texture3DProjLod "+"textureCube textureCubeLod "+"shadow1D shadow2D shadow1DProj shadow2DProj "+"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod "+"dFdx dFdy fwidth "+"noise1 noise2 noise3 noise4"),atoms:words("true false "+"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex "+"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 "+"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 "+"gl_FogCoord "+"gl_Position gl_PointSize gl_ClipVertex "+"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor "+"gl_TexCoord gl_FogFragCoord "+"gl_FragCoord gl_FrontFacing "+"gl_FragColor gl_FragData gl_FragDepth "+"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix "+"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse "+"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse "+"gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose "+"gl_ProjectionMatrixInverseTranspose "+"gl_ModelViewProjectionMatrixInverseTranspose "+"gl_TextureMatrixInverseTranspose "+"gl_NormalScale gl_DepthRange gl_ClipPlane "+"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel "+"gl_FrontLightModelProduct gl_BackLightModelProduct "+"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ "+"gl_FogParameters "+"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords "+"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats "+"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits "+"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits "+"gl_MaxDrawBuffers"),hooks:{"#":cppHook}});}());;CodeMirror.defineMode("coffeescript",function(conf){var ERRORCLASS="error";function wordRegexp(words){return new RegExp("^(("+words.join(")|(")+"))\\b");}
+var operators=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?)/;var delimiters=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/;var identifiers=/^[_A-Za-z$][_A-Za-z$0-9]*/;var properties=/^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*/;var wordOperators=wordRegexp(["and","or","not","is","isnt","in","instanceof","typeof"]);var indentKeywords=["for","while","loop","if","unless","else","switch","try","catch","finally","class"];var commonKeywords=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","throw","when","until"];var keywords=wordRegexp(indentKeywords.concat(commonKeywords));indentKeywords=wordRegexp(indentKeywords);var stringPrefixes=/^('{3}|\"{3}|['\"])/;var regexPrefixes=/^(\/{3}|\/)/;var commonConstants=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"];var constants=wordRegexp(commonConstants);function tokenBase(stream,state){if(stream.sol()){if(state.scope.align===null)state.scope.align=false;var scopeOffset=state.scope.offset;if(stream.eatSpace()){var lineOffset=stream.indentation();if(lineOffset>scopeOffset&&state.scope.type=="coffee"){return"indent";}else if(lineOffset<scopeOffset){return"dedent";}
 return null;}else{if(scopeOffset>0){dedent(stream,state);}}}
 if(stream.eatSpace()){return null;}
-var ch=stream.peek();if(stream.match("####")){stream.skipToEnd();return'comment';}
+var ch=stream.peek();if(stream.match("####")){stream.skipToEnd();return"comment";}
 if(stream.match("###")){state.tokenize=longComment;return state.tokenize(stream,state);}
-if(ch==='#'){stream.skipToEnd();return'comment';}
+if(ch==="#"){stream.skipToEnd();return"comment";}
 if(stream.match(/^-?[0-9\.]/,false)){var floatLiteral=false;if(stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)){floatLiteral=true;}
 if(stream.match(/^-?\d+\.\d*/)){floatLiteral=true;}
 if(stream.match(/^-?\.\d+/)){floatLiteral=true;}
 if(floatLiteral){if(stream.peek()=="."){stream.backUp(1);}
-return'number';}
+return"number";}
 var intLiteral=false;if(stream.match(/^-?0x[0-9a-f]+/i)){intLiteral=true;}
 if(stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)){intLiteral=true;}
 if(stream.match(/^-?0(?![\dx])/i)){intLiteral=true;}
-if(intLiteral){return'number';}}
-if(stream.match(stringPrefixes)){state.tokenize=tokenFactory(stream.current(),'string');return state.tokenize(stream,state);}
-if(stream.match(regexPrefixes)){if(stream.current()!='/'||stream.match(/^.*\//,false)){state.tokenize=tokenFactory(stream.current(),'string-2');return state.tokenize(stream,state);}else{stream.backUp(1);}}
-if(stream.match(tripleDelimiters)||stream.match(doubleDelimiters)){return'punctuation';}
-if(stream.match(doubleOperators)||stream.match(singleOperators)||stream.match(wordOperators)){return'operator';}
-if(stream.match(singleDelimiters)){return'punctuation';}
-if(stream.match(constants)){return'atom';}
-if(stream.match(keywords)){return'keyword';}
-if(stream.match(identifiers)){return'variable';}
-if(stream.match(properties)){return'property';}
+if(intLiteral){return"number";}}
+if(stream.match(stringPrefixes)){state.tokenize=tokenFactory(stream.current(),"string");return state.tokenize(stream,state);}
+if(stream.match(regexPrefixes)){if(stream.current()!="/"||stream.match(/^.*\//,false)){state.tokenize=tokenFactory(stream.current(),"string-2");return state.tokenize(stream,state);}else{stream.backUp(1);}}
+if(stream.match(operators)||stream.match(wordOperators)){return"operator";}
+if(stream.match(delimiters)){return"punctuation";}
+if(stream.match(constants)){return"atom";}
+if(stream.match(keywords)){return"keyword";}
+if(stream.match(identifiers)){return"variable";}
+if(stream.match(properties)){return"property";}
 stream.next();return ERRORCLASS;}
-function tokenFactory(delimiter,outclass){var singleline=delimiter.length==1;return function(stream,state){while(!stream.eol()){stream.eatWhile(/[^'"\/\\]/);if(stream.eat('\\')){stream.next();if(singleline&&stream.eol()){return outclass;}}else if(stream.match(delimiter)){state.tokenize=tokenBase;return outclass;}else{stream.eat(/['"\/]/);}}
+function tokenFactory(delimiter,outclass){var singleline=delimiter.length==1;return function(stream,state){while(!stream.eol()){stream.eatWhile(/[^'"\/\\]/);if(stream.eat("\\")){stream.next();if(singleline&&stream.eol()){return outclass;}}else if(stream.match(delimiter)){state.tokenize=tokenBase;return outclass;}else{stream.eat(/['"\/]/);}}
 if(singleline){if(conf.mode.singleLineStringErrors){outclass=ERRORCLASS;}else{state.tokenize=tokenBase;}}
 return outclass;};}
 function longComment(stream,state){while(!stream.eol()){stream.eatWhile(/[^#]/);if(stream.match("###")){state.tokenize=tokenBase;break;}
 stream.eatWhile("#");}
 return"comment";}
-function indent(stream,state,type){type=type||'coffee';var indentUnit=0;if(type==='coffee'){for(var i=0;i<state.scopes.length;i++){if(state.scopes[i].type==='coffee'){indentUnit=state.scopes[i].offset+conf.indentUnit;break;}}}else{indentUnit=stream.column()+stream.current().length;}
-state.scopes.unshift({offset:indentUnit,type:type});}
-function dedent(stream,state){if(state.scopes.length==1)return;if(state.scopes[0].type==='coffee'){var _indent=stream.indentation();var _indent_index=-1;for(var i=0;i<state.scopes.length;++i){if(_indent===state.scopes[i].offset){_indent_index=i;break;}}
-if(_indent_index===-1){return true;}
-while(state.scopes[0].offset!==_indent){state.scopes.shift();}
-return false;}else{state.scopes.shift();return false;}}
-function tokenLexer(stream,state){var style=state.tokenize(stream,state);var current=stream.current();if(current==='.'){style=state.tokenize(stream,state);current=stream.current();if(style==='variable'){return'variable';}else{return ERRORCLASS;}}
-if(current==='return'){state.dedent+=1;}
-if(((current==='->'||current==='=>')&&!state.lambda&&state.scopes[0].type=='coffee'&&stream.peek()==='')||style==='indent'){indent(stream,state);}
-var delimiter_index='[({'.indexOf(current);if(delimiter_index!==-1){indent(stream,state,'])}'.slice(delimiter_index,delimiter_index+1));}
+function indent(stream,state,type){type=type||"coffee";var offset=0,align=false,alignOffset=null;for(var scope=state.scope;scope;scope=scope.prev){if(scope.type==="coffee"){offset=scope.offset+conf.indentUnit;break;}}
+if(type!=="coffee"){align=null;alignOffset=stream.column()+stream.current().length;}else if(state.scope.align){state.scope.align=false;}
+state.scope={offset:offset,type:type,prev:state.scope,align:align,alignOffset:alignOffset};}
+function dedent(stream,state){if(!state.scope.prev)return;if(state.scope.type==="coffee"){var _indent=stream.indentation();var matched=false;for(var scope=state.scope;scope;scope=scope.prev){if(_indent===scope.offset){matched=true;break;}}
+if(!matched){return true;}
+while(state.scope.prev&&state.scope.offset!==_indent){state.scope=state.scope.prev;}
+return false;}else{state.scope=state.scope.prev;return false;}}
+function tokenLexer(stream,state){var style=state.tokenize(stream,state);var current=stream.current();if(current==="."){style=state.tokenize(stream,state);current=stream.current();if(/^\.[\w$]+$/.test(current)){return"variable";}else{return ERRORCLASS;}}
+if(current==="return"){state.dedent+=1;}
+if(((current==="->"||current==="=>")&&!state.lambda&&!stream.peek())||style==="indent"){indent(stream,state);}
+var delimiter_index="[({".indexOf(current);if(delimiter_index!==-1){indent(stream,state,"])}".slice(delimiter_index,delimiter_index+1));}
 if(indentKeywords.exec(current)){indent(stream,state);}
-if(current=='then'){dedent(stream,state);}
-if(style==='dedent'){if(dedent(stream,state)){return ERRORCLASS;}}
-delimiter_index='])}'.indexOf(current);if(delimiter_index!==-1){if(dedent(stream,state)){return ERRORCLASS;}}
-if(state.dedent>0&&stream.eol()&&state.scopes[0].type=='coffee'){if(state.scopes.length>1)state.scopes.shift();state.dedent-=1;}
+if(current=="then"){dedent(stream,state);}
+if(style==="dedent"){if(dedent(stream,state)){return ERRORCLASS;}}
+delimiter_index="])}".indexOf(current);if(delimiter_index!==-1){while(state.scope.type=="coffee"&&state.scope.prev)
+state.scope=state.scope.prev;if(state.scope.type==current)
+state.scope=state.scope.prev;}
+if(state.dedent>0&&stream.eol()&&state.scope.type=="coffee"){if(state.scope.prev)state.scope=state.scope.prev;state.dedent-=1;}
 return style;}
-var external={startState:function(basecolumn){return{tokenize:tokenBase,scopes:[{offset:basecolumn||0,type:'coffee'}],lastToken:null,lambda:false,dedent:0};},token:function(stream,state){var style=tokenLexer(stream,state);state.lastToken={style:style,content:stream.current()};if(stream.eol()&&stream.lambda){state.lambda=false;}
-return style;},indent:function(state){if(state.tokenize!=tokenBase){return 0;}
-return state.scopes[0].offset;},lineComment:"#"};return external;});CodeMirror.defineMIME('text/x-coffeescript','coffeescript');;(function(){function keywords(str){var obj={},words=str.split(" ");for(var i=0;i<words.length;++i)obj[words[i]]=true;return obj;}
+var external={startState:function(basecolumn){return{tokenize:tokenBase,scope:{offset:basecolumn||0,type:"coffee",prev:null,align:false},lastToken:null,lambda:false,dedent:0};},token:function(stream,state){var fillAlign=state.scope.align===null&&state.scope;if(fillAlign&&stream.sol())fillAlign.align=false;var style=tokenLexer(stream,state);if(fillAlign&&style&&style!="comment")fillAlign.align=true;state.lastToken={style:style,content:stream.current()};if(stream.eol()&&stream.lambda){state.lambda=false;}
+return style;},indent:function(state,text){if(state.tokenize!=tokenBase)return 0;var scope=state.scope;var closer=text&&"])}".indexOf(text.charAt(0))>-1;if(closer)while(scope.type=="coffee"&&scope.prev)scope=scope.prev;var closes=closer&&scope.type===text.charAt(0);if(scope.align)
+return scope.alignOffset-(closes?1:0);else
+return(closes?scope.prev:scope).offset;},lineComment:"#",fold:"indent"};return external;});CodeMirror.defineMIME("text/x-coffeescript","coffeescript");;(function(){function keywords(str){var obj={},words=str.split(" ");for(var i=0;i<words.length;++i)obj[words[i]]=true;return obj;}
 function heredoc(delim){return function(stream,state){if(stream.match(delim))state.tokenize=null;else stream.skipToEnd();return"string";};}
-var phpConfig={name:"clike",keywords:keywords("abstract and array as break case catch class clone const continue declare default "+"do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final "+"for foreach function global goto if implements interface instanceof namespace "+"new or private protected public static switch throw trait try use var while xor "+"die echo empty exit eval include include_once isset list require require_once return "+"print unset __halt_compiler self static parent"),blockKeywords:keywords("catch do else elseif for foreach if switch try while"),atoms:keywords("true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__"),builtin:keywords("func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport echo print global static exit array empty eval isset unset die include require include_once require_once"),multiLineStrings:true,hooks:{"$":function(stream){stream.eatWhile(/[\w\$_]/);return"variable-2";},"<":function(stream,state){if(stream.match(/<</)){stream.eatWhile(/[\w\.]/);state.tokenize=heredoc(stream.current().slice(3));return state.tokenize(stream,state);}
+var phpConfig={name:"clike",keywords:keywords("abstract and array as break case catch class clone const continue declare default "+"do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final "+"for foreach function global goto if implements interface instanceof namespace "+"new or private protected public static switch throw trait try use var while xor "+"die echo empty exit eval include include_once isset list require require_once return "+"print unset __halt_compiler self static parent yield insteadof finally"),blockKeywords:keywords("catch do else elseif for foreach if switch try while finally"),atoms:keywords("true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__"),builtin:keywords("func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once"),multiLineStrings:true,hooks:{"$":function(stream){stream.eatWhile(/[\w\$_]/);return"variable-2";},"<":function(stream,state){if(stream.match(/<</)){stream.eatWhile(/[\w\.]/);state.tokenize=heredoc(stream.current().slice(3));return state.tokenize(stream,state);}
 return false;},"#":function(stream){while(!stream.eol()&&!stream.match("?>",false))stream.next();return"comment";},"/":function(stream){if(stream.eat("/")){while(!stream.eol()&&!stream.match("?>",false))stream.next();return"comment";}
 return false;}}};CodeMirror.defineMode("php",function(config,parserConfig){var htmlMode=CodeMirror.getMode(config,"text/html");var phpMode=CodeMirror.getMode(config,phpConfig);function dispatch(stream,state){var isPHP=state.curMode==phpMode;if(stream.sol()&&state.pending!='"')state.pending=null;if(!isPHP){if(stream.match(/^<\?\w*/)){state.curMode=phpMode;state.curState=state.php;return"meta";}
 if(state.pending=='"'){while(!stream.eol()&&stream.next()!='"'){}
@@ -1053,7 +1087,9 @@
 return style;}else if(isPHP&&state.php.tokenize==null&&stream.match("?>")){state.curMode=htmlMode;state.curState=state.html;return"meta";}else{return phpMode.token(stream,state.curState);}}
 return{startState:function(){var html=CodeMirror.startState(htmlMode),php=CodeMirror.startState(phpMode);return{html:html,php:php,curMode:parserConfig.startOpen?phpMode:htmlMode,curState:parserConfig.startOpen?php:html,pending:null};},copyState:function(state){var html=state.html,htmlNew=CodeMirror.copyState(htmlMode,html),php=state.php,phpNew=CodeMirror.copyState(phpMode,php),cur;if(state.curMode==htmlMode)cur=htmlNew;else cur=phpNew;return{html:htmlNew,php:phpNew,curMode:state.curMode,curState:cur,pending:state.pending};},token:dispatch,indent:function(state,textAfter){if((state.curMode!=phpMode&&/^\s*<\//.test(textAfter))||(state.curMode==phpMode&&/^\?>/.test(textAfter)))
 return htmlMode.indent(state.html,textAfter);return state.curMode.indent(state.curState,textAfter);},electricChars:"/{}:",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(state){return{state:state.curState,mode:state.curMode};}};},"htmlmixed","clike");CodeMirror.defineMIME("application/x-httpd-php","php");CodeMirror.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:true});CodeMirror.defineMIME("text/x-php",phpConfig);})();;CodeMirror.defineMode("python",function(conf,parserConf){var ERRORCLASS='error';function wordRegexp(words){return new RegExp("^(("+words.join(")|(")+"))\\b");}
-var singleOperators=parserConf.singleOperators||new RegExp("^[\\+\\-\\*/%&|\\^~<>!]");var singleDelimiters=parserConf.singleDelimiters||new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]');var doubleOperators=parserConf.doubleOperators||new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");var doubleDelimiters=parserConf.doubleDelimiters||new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");var tripleDelimiters=parserConf.tripleDelimiters||new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");var identifiers=parserConf.identifiers||new RegExp("^[_A-Za-z][_A-Za-z0-9]*");var wordOperators=wordRegexp(['and','or','not','is','in']);var commonkeywords=['as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','lambda','pass','raise','return','try','while','with','yield'];var commonBuiltins=['abs','all','any','bin','bool','bytearray','callable','chr','classmethod','compile','complex','delattr','dict','dir','divmod','enumerate','eval','filter','float','format','frozenset','getattr','globals','hasattr','hash','help','hex','id','input','int','isinstance','issubclass','iter','len','list','locals','map','max','memoryview','min','next','object','oct','open','ord','pow','property','range','repr','reversed','round','set','setattr','slice','sorted','staticmethod','str','sum','super','tuple','type','vars','zip','__import__','NotImplemented','Ellipsis','__debug__'];var py2={'builtins':['apply','basestring','buffer','cmp','coerce','execfile','file','intern','long','raw_input','reduce','reload','unichr','unicode','xrange','False','True','None'],'keywords':['exec','print']};var py3={'builtins':['ascii','bytes','exec','print'],'keywords':['nonlocal','False','True','None']};if(!!parserConf.version&&parseInt(parserConf.version,10)===3){commonkeywords=commonkeywords.concat(py3.keywords);commonBuiltins=commonBuiltins.concat(py3.builtins);var stringPrefixes=new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))","i");}else{commonkeywords=commonkeywords.concat(py2.keywords);commonBuiltins=commonBuiltins.concat(py2.builtins);var stringPrefixes=new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))","i");}
+var singleOperators=parserConf.singleOperators||new RegExp("^[\\+\\-\\*/%&|\\^~<>!]");var singleDelimiters=parserConf.singleDelimiters||new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]');var doubleOperators=parserConf.doubleOperators||new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");var doubleDelimiters=parserConf.doubleDelimiters||new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");var tripleDelimiters=parserConf.tripleDelimiters||new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");var identifiers=parserConf.identifiers||new RegExp("^[_A-Za-z][_A-Za-z0-9]*");var wordOperators=wordRegexp(['and','or','not','is','in']);var commonkeywords=['as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','lambda','pass','raise','return','try','while','with','yield'];var commonBuiltins=['abs','all','any','bin','bool','bytearray','callable','chr','classmethod','compile','complex','delattr','dict','dir','divmod','enumerate','eval','filter','float','format','frozenset','getattr','globals','hasattr','hash','help','hex','id','input','int','isinstance','issubclass','iter','len','list','locals','map','max','memoryview','min','next','object','oct','open','ord','pow','property','range','repr','reversed','round','set','setattr','slice','sorted','staticmethod','str','sum','super','tuple','type','vars','zip','__import__','NotImplemented','Ellipsis','__debug__'];var py2={'builtins':['apply','basestring','buffer','cmp','coerce','execfile','file','intern','long','raw_input','reduce','reload','unichr','unicode','xrange','False','True','None'],'keywords':['exec','print']};var py3={'builtins':['ascii','bytes','exec','print'],'keywords':['nonlocal','False','True','None']};if(parserConf.extra_keywords!=undefined){commonkeywords=commonkeywords.concat(parserConf.extra_keywords);}
+if(parserConf.extra_builtins!=undefined){commonBuiltins=commonBuiltins.concat(parserConf.extra_builtins);}
+if(!!parserConf.version&&parseInt(parserConf.version,10)===3){commonkeywords=commonkeywords.concat(py3.keywords);commonBuiltins=commonBuiltins.concat(py3.builtins);var stringPrefixes=new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))","i");}else{commonkeywords=commonkeywords.concat(py2.keywords);commonBuiltins=commonBuiltins.concat(py2.builtins);var stringPrefixes=new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))","i");}
 var keywords=wordRegexp(commonkeywords);var builtins=wordRegexp(commonBuiltins);var indentInfo=null;function tokenBase(stream,state){if(stream.sol()){var scopeOffset=state.scopes[0].offset;if(stream.eatSpace()){var lineOffset=stream.indentation();if(lineOffset>scopeOffset){indentInfo='indent';}else if(lineOffset<scopeOffset){indentInfo='dedent';}
 return null;}else{if(scopeOffset>0){dedent(stream,state);}}}
 if(stream.eatSpace()){return null;}
@@ -1074,7 +1110,8 @@
 if(stream.match(singleDelimiters)){return null;}
 if(stream.match(keywords)){return'keyword';}
 if(stream.match(builtins)){return'builtin';}
-if(stream.match(identifiers)){return'variable';}
+if(stream.match(identifiers)){if(state.lastToken=='def'||state.lastToken=='class'){return'def';}
+return'variable';}
 stream.next();return ERRORCLASS;}
 function tokenStringFactory(delimiter){while('rub'.indexOf(delimiter.charAt(0).toLowerCase())>=0){delimiter=delimiter.substr(1);}
 var singleline=delimiter.length==1;var OUTCLASS='string';function tokenString(stream,state){while(!stream.eol()){stream.eatWhile(/[^'"\\]/);if(stream.eat('\\')){stream.next();if(singleline&&stream.eol()){return OUTCLASS;}}else if(stream.match(delimiter)){state.tokenize=tokenBase;return OUTCLASS;}else{stream.eat(/['"]/);}}
@@ -1089,10 +1126,10 @@
 while(state.scopes[0].offset!==_indent){state.scopes.shift();}
 return false;}else{if(type==='py'){state.scopes[0].offset=stream.indentation();return false;}else{if(state.scopes[0].type!=type){return true;}
 state.scopes.shift();return false;}}}
-function tokenLexer(stream,state){indentInfo=null;var style=state.tokenize(stream,state);var current=stream.current();if(current==='.'){style=stream.match(identifiers,false)?null:ERRORCLASS;if(style===null&&state.lastToken==='meta'){style='meta';}
+function tokenLexer(stream,state){indentInfo=null;var style=state.tokenize(stream,state);var current=stream.current();if(current==='.'){style=stream.match(identifiers,false)?null:ERRORCLASS;if(style===null&&state.lastStyle==='meta'){style='meta';}
 return style;}
 if(current==='@'){return stream.match(identifiers,false)?'meta':ERRORCLASS;}
-if((style==='variable'||style==='builtin')&&state.lastToken==='meta'){style='meta';}
+if((style==='variable'||style==='builtin')&&state.lastStyle==='meta'){style='meta';}
 if(current==='pass'||current==='return'){state.dedent+=1;}
 if(current==='lambda')state.lambda=true;if((current===':'&&!state.lambda&&state.scopes[0].type=='py')||indentInfo==='indent'){indent(stream,state);}
 var delimiter_index='[({'.indexOf(current);if(delimiter_index!==-1){indent(stream,state,'])}'.slice(delimiter_index,delimiter_index+1));}
@@ -1100,9 +1137,10 @@
 delimiter_index='])}'.indexOf(current);if(delimiter_index!==-1){if(dedent(stream,state,current)){return ERRORCLASS;}}
 if(state.dedent>0&&stream.eol()&&state.scopes[0].type=='py'){if(state.scopes.length>1)state.scopes.shift();state.dedent-=1;}
 return style;}
-var external={startState:function(basecolumn){return{tokenize:tokenBase,scopes:[{offset:basecolumn||0,type:'py'}],lastToken:null,lambda:false,dedent:0};},token:function(stream,state){var style=tokenLexer(stream,state);state.lastToken=style;if(stream.eol()&&stream.lambda){state.lambda=false;}
+var external={startState:function(basecolumn){return{tokenize:tokenBase,scopes:[{offset:basecolumn||0,type:'py'}],lastStyle:null,lastToken:null,lambda:false,dedent:0};},token:function(stream,state){var style=tokenLexer(stream,state);state.lastStyle=style;var current=stream.current();if(current&&style){state.lastToken=current;}
+if(stream.eol()&&state.lambda){state.lambda=false;}
 return style;},indent:function(state){if(state.tokenize!=tokenBase){return state.tokenize.isString?CodeMirror.Pass:0;}
-return state.scopes[0].offset;},lineComment:"#"};return external;});CodeMirror.defineMIME("text/x-python","python");;CodeMirror.defineMode('shell',function(){var words={};function define(style,string){var split=string.split(' ');for(var i=0;i<split.length;i++){words[split[i]]=style;}};define('atom','true false');define('keyword','if then do else elif while until for in esac fi fin '+'fil done exit set unset export function');define('builtin','ab awk bash beep cat cc cd chown chmod chroot clear cp '+'curl cut diff echo find gawk gcc get git grep kill killall ln ls make '+'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh '+'shopt shred source sort sleep ssh start stop su sudo tee telnet top '+'touch vi vim wall wc wget who write yes zsh');function tokenBase(stream,state){var sol=stream.sol();var ch=stream.next();if(ch==='\''||ch==='"'||ch==='`'){state.tokens.unshift(tokenString(ch));return tokenize(stream,state);}
+return state.scopes[0].offset;},lineComment:"#",fold:"indent"};return external;});CodeMirror.defineMIME("text/x-python","python");(function(){"use strict";var words=function(str){return str.split(' ');};CodeMirror.defineMIME("text/x-cython",{name:"python",extra_keywords:words("by cdef cimport cpdef ctypedef enum except"+"extern gil include nogil property public"+"readonly struct union DEF IF ELIF ELSE")});})();;CodeMirror.defineMode('shell',function(){var words={};function define(style,string){var split=string.split(' ');for(var i=0;i<split.length;i++){words[split[i]]=style;}};define('atom','true false');define('keyword','if then do else elif while until for in esac fi fin '+'fil done exit set unset export function');define('builtin','ab awk bash beep cat cc cd chown chmod chroot clear cp '+'curl cut diff echo find gawk gcc get git grep kill killall ln ls make '+'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh '+'shopt shred source sort sleep ssh start stop su sudo tee telnet top '+'touch vi vim wall wc wget who write yes zsh');function tokenBase(stream,state){var sol=stream.sol();var ch=stream.next();if(ch==='\''||ch==='"'||ch==='`'){state.tokens.unshift(tokenString(ch));return tokenize(stream,state);}
 if(ch==='#'){if(sol&&stream.eat('!')){stream.skipToEnd();return'meta';}
 stream.skipToEnd();return'comment';}
 if(ch==='$'){state.tokens.unshift(tokenDollar);return tokenize(stream,state);}
@@ -1128,12 +1166,14 @@
 {var oldModeName=modeName+"-old";if(CodeMirror.modes[oldModeName])
 return;CodeMirror.defineMode(oldModeName,CodeMirror.modes[modeName]);CodeMirror.defineMode(modeName,modeConstructor);function modeConstructor(config,parserConfig)
 {var innerConfig={};for(var i in parserConfig)
-innerConfig[i]=parserConfig[i];innerConfig.name=oldModeName;var codeMirrorMode=CodeMirror.getMode(config,innerConfig);codeMirrorMode.name=modeName;codeMirrorMode.token=tokenOverride.bind(this,codeMirrorMode.token);return codeMirrorMode;}
+innerConfig[i]=parserConfig[i];innerConfig.name=oldModeName;var codeMirrorMode=CodeMirror.getMode(config,innerConfig);codeMirrorMode.name=modeName;codeMirrorMode.token=tokenOverride.bind(null,codeMirrorMode.token);return codeMirrorMode;}
 function tokenOverride(superToken,stream,state)
 {var token=superToken(stream,state);return token?tokenPrefix+token:token;}}}
-WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("css-base","css-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("javascript","js-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("xml","xml-");;WebInspector.CodeMirrorTextEditor=function(url,delegate)
-{WebInspector.View.call(this);this._delegate=delegate;this._url=url;this.registerRequiredCSS("cm/codemirror.css");this.registerRequiredCSS("cm/cmdevtools.css");this._codeMirror=window.CodeMirror(this.element,{lineNumbers:true,gutters:["CodeMirror-linenumbers"],matchBrackets:true,smartIndent:false,styleSelectedText:true,electricChars:false,});this._codeMirror._codeMirrorTextEditor=this;CodeMirror.keyMap["devtools-common"]={"Left":"goCharLeft","Right":"goCharRight","Up":"goLineUp","Down":"goLineDown","End":"goLineEnd","Home":"goLineStartSmart","PageUp":"goPageUp","PageDown":"goPageDown","Delete":"delCharAfter","Backspace":"delCharBefore","Tab":"defaultTab","Shift-Tab":"indentLess","Enter":"smartNewlineAndIndent","Ctrl-Space":"autocomplete"};CodeMirror.keyMap["devtools-pc"]={"Ctrl-A":"selectAll","Ctrl-Z":"undoAndReveal","Shift-Ctrl-Z":"redoAndReveal","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-/":"toggleComment",fallthrough:"devtools-common"};CodeMirror.keyMap["devtools-mac"]={"Cmd-A":"selectAll","Cmd-Z":"undoAndReveal","Shift-Cmd-Z":"redoAndReveal","Cmd-Up":"goDocStart","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStartSmart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Alt-Delete":"delGroupAfter","Cmd-/":"toggleComment",fallthrough:"devtools-common"};WebInspector.settings.textEditorIndent.addChangeListener(this._updateEditorIndentation,this);this._updateEditorIndentation();WebInspector.settings.showWhitespacesInEditor.addChangeListener(this._updateCodeMirrorMode,this);WebInspector.settings.textEditorBracketMatching.addChangeListener(this._enableBracketMatchingIfNeeded,this);this._enableBracketMatchingIfNeeded();this._codeMirror.setOption("keyMap",WebInspector.isMac()?"devtools-mac":"devtools-pc");this._codeMirror.setOption("flattenSpans",false);this._codeMirror.setOption("maxHighlightLength",WebInspector.CodeMirrorTextEditor.maxHighlightLength);this._codeMirror.setOption("mode",null);this._codeMirror.setOption("crudeMeasuringFrom",1000);this._shouldClearHistory=true;this._lineSeparator="\n";this._tokenHighlighter=new WebInspector.CodeMirrorTextEditor.TokenHighlighter(this._codeMirror);this._blockIndentController=new WebInspector.CodeMirrorTextEditor.BlockIndentController(this._codeMirror);this._fixWordMovement=new WebInspector.CodeMirrorTextEditor.FixWordMovement(this._codeMirror);this._autocompleteController=new WebInspector.CodeMirrorTextEditor.AutocompleteController(this,this._codeMirror);this._codeMirror.on("change",this._change.bind(this));this._codeMirror.on("beforeChange",this._beforeChange.bind(this));this._codeMirror.on("gutterClick",this._gutterClick.bind(this));this._codeMirror.on("cursorActivity",this._cursorActivity.bind(this));this._codeMirror.on("scroll",this._scroll.bind(this));this._codeMirror.on("focus",this._focus.bind(this));this._codeMirror.on("blur",this._blur.bind(this));this.element.addEventListener("contextmenu",this._contextMenu.bind(this),false);this.element.addStyleClass("fill");this.element.style.overflow="hidden";this.element.firstChild.addStyleClass("source-code");this.element.firstChild.addStyleClass("fill");this._elementToWidget=new Map();this._nestedUpdatesCounter=0;this.element.addEventListener("focus",this._handleElementFocus.bind(this),false);this.element.addEventListener("keydown",this._handleKeyDown.bind(this),true);this.element.tabIndex=0;this._setupSelectionColor();this._setupWhitespaceHighlight();}
-WebInspector.CodeMirrorTextEditor.maxHighlightLength=1000;WebInspector.CodeMirrorTextEditor.autocompleteCommand=function(codeMirror)
+WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("css","css-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("javascript","js-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("xml","xml-");;WebInspector.CodeMirrorTextEditor=function(url,delegate)
+{WebInspector.View.call(this);this._delegate=delegate;this._url=url;this.registerRequiredCSS("cm/codemirror.css");this.registerRequiredCSS("cm/cmdevtools.css");this._codeMirror=window.CodeMirror(this.element,{lineNumbers:true,gutters:["CodeMirror-linenumbers"],matchBrackets:true,smartIndent:false,styleSelectedText:true,electricChars:false,});this._codeMirror._codeMirrorTextEditor=this;CodeMirror.keyMap["devtools-common"]={"Left":"goCharLeft","Right":"goCharRight","Up":"goLineUp","Down":"goLineDown","End":"goLineEnd","Home":"goLineStartSmart","PageUp":"goPageUp","PageDown":"goPageDown","Delete":"delCharAfter","Backspace":"delCharBefore","Tab":"defaultTab","Shift-Tab":"indentLess","Enter":"smartNewlineAndIndent","Ctrl-Space":"autocomplete"};CodeMirror.keyMap["devtools-pc"]={"Ctrl-A":"selectAll","Ctrl-Z":"undoAndReveal","Shift-Ctrl-Z":"redoAndReveal","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-/":"toggleComment",fallthrough:"devtools-common"};CodeMirror.keyMap["devtools-mac"]={"Cmd-A":"selectAll","Cmd-Z":"undoAndReveal","Shift-Cmd-Z":"redoAndReveal","Cmd-Up":"goDocStart","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStartSmart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Alt-Delete":"delGroupAfter","Cmd-/":"toggleComment",fallthrough:"devtools-common"};WebInspector.settings.textEditorIndent.addChangeListener(this._updateEditorIndentation,this);this._updateEditorIndentation();WebInspector.settings.showWhitespacesInEditor.addChangeListener(this._updateCodeMirrorMode,this);WebInspector.settings.textEditorBracketMatching.addChangeListener(this._enableBracketMatchingIfNeeded,this);this._enableBracketMatchingIfNeeded();this._codeMirror.setOption("keyMap",WebInspector.isMac()?"devtools-mac":"devtools-pc");this._codeMirror.setOption("flattenSpans",false);this._codeMirror.setOption("maxHighlightLength",WebInspector.CodeMirrorTextEditor.maxHighlightLength);this._codeMirror.setOption("mode",null);this._codeMirror.setOption("crudeMeasuringFrom",1000);this._shouldClearHistory=true;this._lineSeparator="\n";this._tokenHighlighter=new WebInspector.CodeMirrorTextEditor.TokenHighlighter(this._codeMirror);this._blockIndentController=new WebInspector.CodeMirrorTextEditor.BlockIndentController(this._codeMirror);this._fixWordMovement=new WebInspector.CodeMirrorTextEditor.FixWordMovement(this._codeMirror);this._autocompleteController=new WebInspector.CodeMirrorTextEditor.AutocompleteController(this,this._codeMirror);this._codeMirror.on("change",this._change.bind(this));this._codeMirror.on("beforeChange",this._beforeChange.bind(this));this._codeMirror.on("gutterClick",this._gutterClick.bind(this));this._codeMirror.on("cursorActivity",this._cursorActivity.bind(this));this._codeMirror.on("beforeSelectionChange",this._beforeSelectionChange.bind(this));this._codeMirror.on("scroll",this._scroll.bind(this));this._codeMirror.on("focus",this._focus.bind(this));this._codeMirror.on("blur",this._blur.bind(this));this.element.addEventListener("contextmenu",this._contextMenu.bind(this),false);function updateAnticipateJumpFlag(value)
+{this._isHandlingMouseDownEvent=value;}
+this.element.addEventListener("mousedown",updateAnticipateJumpFlag.bind(this,true),true);this.element.addEventListener("mousedown",updateAnticipateJumpFlag.bind(this,false),false);this.element.classList.add("fill");this.element.style.overflow="hidden";this.element.firstChild.classList.add("source-code");this.element.firstChild.classList.add("fill");this._elementToWidget=new Map();this._nestedUpdatesCounter=0;this.element.addEventListener("focus",this._handleElementFocus.bind(this),false);this.element.addEventListener("keydown",this._handleKeyDown.bind(this),true);this.element.addEventListener("keydown",this._handlePostKeyDown.bind(this),false);this.element.tabIndex=0;this._setupSelectionColor();this._setupWhitespaceHighlight();}
+WebInspector.CodeMirrorTextEditor.BeforeChangeObject;WebInspector.CodeMirrorTextEditor.ChangeObject;WebInspector.CodeMirrorTextEditor.maxHighlightLength=1000;WebInspector.CodeMirrorTextEditor.autocompleteCommand=function(codeMirror)
 {codeMirror._codeMirrorTextEditor._autocompleteController.autocomplete();}
 CodeMirror.commands.autocomplete=WebInspector.CodeMirrorTextEditor.autocompleteCommand;CodeMirror.commands.smartNewlineAndIndent=function(codeMirror)
 {codeMirror.operation(innerSmartNewlineAndIndent.bind(this,codeMirror));function countIndent(line)
@@ -1173,8 +1213,9 @@
 this.setSelection(range);else
 this.setSelection(WebInspector.TextRange.createFromLocation(range.startLine,range.startColumn));}else{this.setSelection(this.selection().collapseToEnd());}
 this._tokenHighlighter.highlightSearchResults(regex,range);}
-this._codeMirror.operation(innerHighlightRegex.bind(this));},cancelSearchResultsHighlight:function()
-{this._codeMirror.operation(this._tokenHighlighter.highlightSelectedTokens.bind(this._tokenHighlighter));},undo:function()
+if(!this._selectionBeforeSearch)
+this._selectionBeforeSearch=this.selection();this._codeMirror.operation(innerHighlightRegex.bind(this));},cancelSearchResultsHighlight:function()
+{this._codeMirror.operation(this._tokenHighlighter.highlightSelectedTokens.bind(this._tokenHighlighter));if(this._selectionBeforeSearch){this._reportJump(this._selectionBeforeSearch,this.selection());delete this._selectionBeforeSearch;}},undo:function()
 {this._codeMirror.undo();},redo:function()
 {this._codeMirror.redo();},_setupSelectionColor:function()
 {if(WebInspector.CodeMirrorTextEditor._selectionStyleInjected)
@@ -1184,6 +1225,8 @@
 return;WebInspector.CodeMirrorTextEditor._whitespaceStyleInjected=true;const classBase=".show-whitespaces .CodeMirror .cm-whitespace-";const spaceChar="·";var spaceChars="";var rules="";for(var i=1;i<=WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan;++i){spaceChars+=spaceChar;var rule=classBase+i+"::before { content: '"+spaceChars+"';}\n";rules+=rule;}
 var style=document.createElement("style");style.textContent=rules;document.head.appendChild(style);},_handleKeyDown:function(e)
 {if(this._autocompleteController.keyDown(e))
+e.consume(true);},_handlePostKeyDown:function(e)
+{if(e.defaultPrevented)
 e.consume(true);},_shouldProcessWordForAutocompletion:function(word)
 {return word.length&&(word[0]<'0'||word[0]>'9');},_addTextToCompletionDictionary:function(text)
 {var words=WebInspector.TextUtils.textToWords(text);for(var i=0;i<words.length;++i){if(this._shouldProcessWordForAutocompletion(words[i]))
@@ -1227,7 +1270,7 @@
 this._codeMirror.setOption("readOnly",readOnly);},readOnly:function()
 {return!!this._codeMirror.getOption("readOnly");},removeHighlight:function(highlightDescriptor)
 {highlightDescriptor.clear();},highlightRange:function(range,cssClass)
-{cssClass="CodeMirror-persist-highlight "+cssClass;var pos=this._toPos(range);++pos.end.ch;return this._codeMirror.markText(pos.start,pos.end,{className:cssClass,startStyle:cssClass+"-start",endStyle:cssClass+"-end"});},highlightRegex:function(regex,cssClass){},defaultFocusedElement:function()
+{cssClass="CodeMirror-persist-highlight "+cssClass;var pos=this._toPos(range);++pos.end.ch;return this._codeMirror.markText(pos.start,pos.end,{className:cssClass,startStyle:cssClass+"-start",endStyle:cssClass+"-end"});},defaultFocusedElement:function()
 {return this.element;},focus:function()
 {this._codeMirror.focus();},_handleElementFocus:function()
 {this._codeMirror.focus();},beginUpdates:function()
@@ -1256,13 +1299,13 @@
 return;lineNumber=Math.min(lineNumber,this._codeMirror.lineCount()-1);if(typeof columnNumber!=="number"||columnNumber<0||columnNumber>this._codeMirror.getLine(lineNumber).length)
 columnNumber=0;this.clearPositionHighlight();this._highlightedLine=this._codeMirror.getLineHandle(lineNumber);if(!this._highlightedLine)
 return;this.revealLine(lineNumber);this._codeMirror.addLineClass(this._highlightedLine,null,"cm-highlight");this._clearHighlightTimeout=setTimeout(this.clearPositionHighlight.bind(this),2000);if(!this.readOnly())
-this._codeMirror.setSelection(new CodeMirror.Pos(lineNumber,columnNumber));},clearPositionHighlight:function()
+this.setSelection(WebInspector.TextRange.createFromLocation(lineNumber,columnNumber));},clearPositionHighlight:function()
 {if(this._clearHighlightTimeout)
 clearTimeout(this._clearHighlightTimeout);delete this._clearHighlightTimeout;if(this._highlightedLine)
 this._codeMirror.removeLineClass(this._highlightedLine,null,"cm-highlight");delete this._highlightedLine;},elementsToRestoreScrollPositionsFor:function()
 {return[];},inheritScrollPositions:function(textEditor)
 {},_updatePaddingBottom:function(width,height)
-{var scrollInfo=this._codeMirror.getScrollInfo();var newPaddingBottom;var linesElement=this.element.firstChild.querySelector(".CodeMirror-lines");var lineCount=this._codeMirror.lineCount();if(lineCount<=1)
+{var scrollInfo=this._codeMirror.getScrollInfo();var newPaddingBottom;var linesElement=this.element.firstElementChild.querySelector(".CodeMirror-lines");var lineCount=this._codeMirror.lineCount();if(lineCount<=1)
 newPaddingBottom=0;else
 newPaddingBottom=Math.max(scrollInfo.clientHeight-this._codeMirror.getLineHandle(this._codeMirror.lastLine()).height,0);newPaddingBottom+="px";linesElement.style.paddingBottom=newPaddingBottom;this._codeMirror.setSize(width,height);},_resizeEditor:function()
 {var parentElement=this.element.parentElement;if(!parentElement||!this.isShowing())
@@ -1291,7 +1334,11 @@
 if(singleCharInput)
 this._autocompleteController.autocomplete();},_cursorActivity:function()
 {var start=this._codeMirror.getCursor("anchor");var end=this._codeMirror.getCursor("head");this._delegate.selectionChanged(this._toRange(start,end));if(!this._tokenHighlighter.highlightedRegex())
-this._codeMirror.operation(this._tokenHighlighter.highlightSelectedTokens.bind(this._tokenHighlighter));},_scroll:function()
+this._codeMirror.operation(this._tokenHighlighter.highlightSelectedTokens.bind(this._tokenHighlighter));},_beforeSelectionChange:function(codeMirror,selection)
+{if(!this._isHandlingMouseDownEvent)
+return;this._reportJump(this.selection(),this._toRange(selection.anchor,selection.head));},_reportJump:function(from,to)
+{if(from&&to&&from.equal(to))
+return;this._delegate.onJumpToPosition(from,to);},_scroll:function()
 {if(this._scrollTimer)
 clearTimeout(this._scrollTimer);var topmostLineNumber=this._codeMirror.lineAtHeight(this._codeMirror.getScrollInfo().top,"local");this._scrollTimer=setTimeout(this._delegate.scrollChanged.bind(this._delegate,topmostLineNumber),100);},_focus:function()
 {this._delegate.editorFocused();},_blur:function()
@@ -1317,7 +1364,14 @@
 return;var handle=this._codeMirror.getLineHandle(line);if(handle&&handle.attributes)
 delete handle.attributes[name];},_toPos:function(range)
 {return{start:new CodeMirror.Pos(range.startLine,range.startColumn),end:new CodeMirror.Pos(range.endLine,range.endColumn)}},_toRange:function(start,end)
-{return new WebInspector.TextRange(start.line,start.ch,end.line,end.ch);},__proto__:WebInspector.View.prototype}
+{return new WebInspector.TextRange(start.line,start.ch,end.line,end.ch);},textEditorPositionHandle:function(lineNumber,columnNumber)
+{return new WebInspector.CodeMirrorPositionHandle(this._codeMirror,new CodeMirror.Pos(lineNumber,columnNumber));},__proto__:WebInspector.View.prototype}
+WebInspector.CodeMirrorPositionHandle=function(codeMirror,pos)
+{this._codeMirror=codeMirror;this._lineHandle=codeMirror.getLineHandle(pos.line);this._columnNumber=pos.ch;}
+WebInspector.CodeMirrorPositionHandle.prototype={resolve:function()
+{var lineNumber=this._codeMirror.getLineNumber(this._lineHandle);if(typeof lineNumber!=="number")
+return null;return{lineNumber:lineNumber,columnNumber:this._columnNumber};},equal:function(positionHandle)
+{return positionHandle._lineHandle===this._lineHandle&&positionHandle._columnNumber==this._columnNumber&&positionHandle._codeMirror===this._codeMirror;}}
 WebInspector.CodeMirrorTextEditor.TokenHighlighter=function(codeMirror)
 {this._codeMirror=codeMirror;}
 WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype={highlightSearchResults:function(regex,range)
@@ -1325,8 +1379,8 @@
 if(this._highlightDescriptor&&this._highlightDescriptor.selectionStart)
 this._codeMirror.removeLineClass(this._highlightDescriptor.selectionStart.line,"wrap","cm-line-with-selection");var selectionStart=this._highlightRange?new CodeMirror.Pos(this._highlightRange.startLine,this._highlightRange.startColumn):null;if(selectionStart)
 this._codeMirror.addLineClass(selectionStart.line,"wrap","cm-line-with-selection");if(this._highlightRegex===oldRegex){if(this._highlightDescriptor)
-this._highlightDescriptor.selectionStart=selectionStart;}else{this._removeHighlight();this._setHighlighter(this._searchHighlighter.bind(this,this._highlightRegex,this._highlightRange),selectionStart);}
-if(selectionStart){var pos=WebInspector.CodeMirrorTextEditor.prototype._toPos(this._highlightRange);this._searchResultMarker=this._codeMirror.markText(pos.start,pos.end,{className:"cm-column-with-selection"});}},highlightedRegex:function()
+this._highlightDescriptor.selectionStart=selectionStart;}else{this._removeHighlight();this._setHighlighter(this._searchHighlighter.bind(this,this._highlightRegex),selectionStart);}
+if(this._highlightRange){var pos=WebInspector.CodeMirrorTextEditor.prototype._toPos(this._highlightRange);this._searchResultMarker=this._codeMirror.markText(pos.start,pos.end,{className:"cm-column-with-selection"});}},highlightedRegex:function()
 {return this._highlightRegex;},highlightSelectedTokens:function()
 {delete this._highlightRegex;delete this._highlightRange;if(this._highlightDescriptor&&this._highlightDescriptor.selectionStart)
 this._codeMirror.removeLineClass(this._highlightDescriptor.selectionStart.line,"wrap","cm-line-with-selection");this._removeHighlight();var selectionStart=this._codeMirror.getCursor("start");var selectionEnd=this._codeMirror.getCursor("end");if(selectionStart.line!==selectionEnd.line)
@@ -1335,7 +1389,7 @@
 this._codeMirror.addLineClass(selectionStart.line,"wrap","cm-line-with-selection")
 this._setHighlighter(this._tokenHighlighter.bind(this,selectedText,selectionStart),selectionStart);}},_isWord:function(selectedText,lineNumber,startColumn,endColumn)
 {var line=this._codeMirror.getLine(lineNumber);var leftBound=startColumn===0||!WebInspector.TextUtils.isWordChar(line.charAt(startColumn-1));var rightBound=endColumn===line.length||!WebInspector.TextUtils.isWordChar(line.charAt(endColumn));return leftBound&&rightBound&&WebInspector.TextUtils.isWord(selectedText);},_removeHighlight:function()
-{if(this._highlightDescriptor){this._codeMirror.removeOverlay(this._highlightDescriptor.overlay);delete this._highlightDescriptor;}},_searchHighlighter:function(regex,range,stream)
+{if(this._highlightDescriptor){this._codeMirror.removeOverlay(this._highlightDescriptor.overlay);delete this._highlightDescriptor;}},_searchHighlighter:function(regex,stream)
 {if(stream.column()===0)
 delete this._searchMatchLength;if(this._searchMatchLength){if(this._searchMatchLength>1){for(var i=0;i<this._searchMatchLength-2;++i)
 stream.next();this._searchMatchLength=1;return"search-highlight";}else{stream.next();delete this._searchMatchLength;return"search-highlight search-highlight-end";}}
@@ -1352,9 +1406,9 @@
 return CodeMirror.Pass;var cursor=codeMirror.getCursor();if(cursor.ch===0)
 return CodeMirror.Pass;var line=codeMirror.getLine(cursor.line);if(line.substr(cursor.ch-1,2)==="{}"){codeMirror.execCommand("newlineAndIndent");codeMirror.setCursor(cursor);codeMirror.execCommand("newlineAndIndent");codeMirror.execCommand("indentMore");}else if(line.substr(cursor.ch-1,1)==="{"){codeMirror.execCommand("newlineAndIndent");codeMirror.execCommand("indentMore");}else
 return CodeMirror.Pass;},"'}'":function(codeMirror)
-{var cursor=codeMirror.getCursor();var line=codeMirror.getLine(cursor.line);for(var i=0;i<line.length;++i)
-if(!WebInspector.TextUtils.isSpaceChar(line.charAt(i)))
-return CodeMirror.Pass;codeMirror.replaceRange("}",cursor);var matchingBracket=codeMirror.findMatchingBracket();if(!matchingBracket||!matchingBracket.match)
+{var cursor=codeMirror.getCursor();var line=codeMirror.getLine(cursor.line);for(var i=0;i<line.length;++i){if(!WebInspector.TextUtils.isSpaceChar(line.charAt(i)))
+return CodeMirror.Pass;}
+codeMirror.replaceRange("}",cursor);var matchingBracket=codeMirror.findMatchingBracket();if(!matchingBracket||!matchingBracket.match)
 return;line=codeMirror.getLine(matchingBracket.to.line);var desiredIndentation=0;while(desiredIndentation<line.length&&WebInspector.TextUtils.isSpaceChar(line.charAt(desiredIndentation)))
 ++desiredIndentation;codeMirror.replaceRange(line.substr(0,desiredIndentation)+"}",new CodeMirror.Pos(cursor.line,0),new CodeMirror.Pos(cursor.line,cursor.ch+1));}}
 WebInspector.CodeMirrorTextEditor.FixWordMovement=function(codeMirror)
diff --git a/resources/inspector/ElementsPanel.js b/resources/inspector/ElementsPanel.js
index 71d94ca..51256fa 100644
--- a/resources/inspector/ElementsPanel.js
+++ b/resources/inspector/ElementsPanel.js
@@ -1,5 +1,5 @@
 WebInspector.CSSNamedFlowCollectionsView=function()
-{WebInspector.SidebarView.call(this,WebInspector.SidebarView.SidebarPosition.Start);this.registerRequiredCSS("cssNamedFlows.css");this._namedFlows={};this._contentNodes={};this._regionNodes={};this.element.addStyleClass("css-named-flow-collections-view");this.element.addStyleClass("fill");this._statusElement=document.createElement("span");this._statusElement.textContent=WebInspector.UIString("CSS Named Flows");var sidebarHeader=this.firstElement().createChild("div","tabbed-pane-header selected sidebar-header");var tab=sidebarHeader.createChild("div","tabbed-pane-header-tab");tab.createChild("span","tabbed-pane-header-tab-title").textContent=WebInspector.UIString("CSS Named Flows");this._sidebarContentElement=this.firstElement().createChild("div","sidebar-content outline-disclosure");this._flowListElement=this._sidebarContentElement.createChild("ol");this._flowTree=new TreeOutline(this._flowListElement);this._emptyElement=document.createElement("div");this._emptyElement.addStyleClass("info");this._emptyElement.textContent=WebInspector.UIString("No CSS Named Flows");this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.closeableTabs=true;this._tabbedPane.show(this.secondElement());}
+{WebInspector.SidebarView.call(this,WebInspector.SidebarView.SidebarPosition.Start);this.registerRequiredCSS("cssNamedFlows.css");this._namedFlows={};this._contentNodes={};this._regionNodes={};this.element.classList.add("css-named-flow-collections-view");this.element.classList.add("fill");this._statusElement=document.createElement("span");this._statusElement.textContent=WebInspector.UIString("CSS Named Flows");var sidebarHeader=this.firstElement().createChild("div","tabbed-pane-header selected sidebar-header");var tab=sidebarHeader.createChild("div","tabbed-pane-header-tab");tab.createChild("span","tabbed-pane-header-tab-title").textContent=WebInspector.UIString("CSS Named Flows");this._sidebarContentElement=this.firstElement().createChild("div","sidebar-content outline-disclosure");this._flowListElement=this._sidebarContentElement.createChild("ol");this._flowTree=new TreeOutline(this._flowListElement);this._emptyElement=document.createElement("div");this._emptyElement.classList.add("info");this._emptyElement.textContent=WebInspector.UIString("No CSS Named Flows");this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.closeableTabs=true;this._tabbedPane.show(this.secondElement());}
 WebInspector.CSSNamedFlowCollectionsView.prototype={showInDrawer:function()
 {WebInspector.inspectorView.showCloseableViewInDrawer("css-flows",WebInspector.UIString("CSS Flows"),this);},reset:function()
 {if(!this._document)
@@ -26,7 +26,7 @@
 this._regionNodes[flow.regions[i].nodeId]=flowHash;flowContainer.flowTreeItem.setOverset(flow.overset);if(flowContainer.flowView)
 flowContainer.flowView.flow=flow;},_resetNamedFlows:function(namedFlowCollection)
 {for(var flowHash in this._namedFlows)
-this._removeNamedFlow(flowHash);var namedFlows=namedFlowCollection.namedFlowMap;for(var flowName in namedFlows)
+this._removeNamedFlow(flowHash);var namedFlows=namedFlowCollection?namedFlowCollection.namedFlowMap:{};for(var flowName in namedFlows)
 this._appendNamedFlow(namedFlows[flowName]);if(!this._flowTree.children.length)
 this._setSidebarHasContent(false);else
 this._showNamedFlowForNode(WebInspector.panel("elements").treeOutline.selectedDOMNode());},_namedFlowCreated:function(event)
@@ -42,8 +42,9 @@
 {this._selectNamedFlowInSidebar(flowHash);this._selectNamedFlowTab(flowHash);},_selectNamedFlowInSidebar:function(flowHash)
 {this._namedFlows[flowHash].flowTreeItem.select(true);},_selectNamedFlowTab:function(flowHash)
 {var flowContainer=this._namedFlows[flowHash];if(this._tabbedPane.selectedTabId===flowHash)
-return;if(!this._tabbedPane.selectTab(flowHash)){if(!flowContainer.flowView)
-flowContainer.flowView=new WebInspector.CSSNamedFlowView(flowContainer.flow);this._tabbedPane.appendTab(flowHash,flowContainer.flow.name,flowContainer.flowView);this._tabbedPane.selectTab(flowHash);}},_selectedNodeChanged:function(event)
+return false;if(!this._tabbedPane.selectTab(flowHash)){if(!flowContainer.flowView)
+flowContainer.flowView=new WebInspector.CSSNamedFlowView(flowContainer.flow);this._tabbedPane.appendTab(flowHash,flowContainer.flow.name,flowContainer.flowView);this._tabbedPane.selectTab(flowHash);}
+return false;},_selectedNodeChanged:function(event)
 {var node=(event.data);this._showNamedFlowForNode(node);},_tabSelected:function(event)
 {this._selectNamedFlowInSidebar(event.data.tabId);},_tabClosed:function(event)
 {this._namedFlows[event.data.tabId].flowTreeItem.deselect();},_showNamedFlowForNode:function(node)
@@ -57,22 +58,22 @@
 {var container=document.createElement("div");container.createChild("div","selection");container.createChild("span","title").createChild("span").textContent=flowContainer.flow.name;TreeElement.call(this,container,flowContainer,false);this._overset=false;this.setOverset(flowContainer.flow.overset);}
 WebInspector.FlowTreeElement.prototype={setOverset:function(newOverset)
 {if(this._overset===newOverset)
-return;if(newOverset){this.title.addStyleClass("named-flow-overflow");this.tooltip=WebInspector.UIString("Overflows.");}else{this.title.removeStyleClass("named-flow-overflow");this.tooltip="";}
+return;if(newOverset){this.title.classList.add("named-flow-overflow");this.tooltip=WebInspector.UIString("Overflows.");}else{this.title.classList.remove("named-flow-overflow");this.tooltip="";}
 this._overset=newOverset;},__proto__:TreeElement.prototype};WebInspector.CSSNamedFlowView=function(flow)
-{WebInspector.View.call(this);this.element.addStyleClass("css-named-flow");this.element.addStyleClass("outline-disclosure");this._treeOutline=new TreeOutline(this.element.createChild("ol"),true);this._contentTreeItem=new TreeElement(WebInspector.UIString("content"),null,true);this._treeOutline.appendChild(this._contentTreeItem);this._regionsTreeItem=new TreeElement(WebInspector.UIString("region chain"),null,true);this._regionsTreeItem.expand();this._treeOutline.appendChild(this._regionsTreeItem);this._flow=flow;var content=flow.content;for(var i=0;i<content.length;++i)
+{WebInspector.View.call(this);this.element.classList.add("css-named-flow");this.element.classList.add("outline-disclosure");this._treeOutline=new TreeOutline(this.element.createChild("ol"),true);this._contentTreeItem=new TreeElement(WebInspector.UIString("content"),null,true);this._treeOutline.appendChild(this._contentTreeItem);this._regionsTreeItem=new TreeElement(WebInspector.UIString("region chain"),null,true);this._regionsTreeItem.expand();this._treeOutline.appendChild(this._regionsTreeItem);this._flow=flow;var content=flow.content;for(var i=0;i<content.length;++i)
 this._insertContentNode(content[i]);var regions=flow.regions;for(var i=0;i<regions.length;++i)
 this._insertRegion(regions[i]);}
 WebInspector.CSSNamedFlowView.OversetTypeMessageMap={empty:"empty",fit:"fit",overset:"overset"}
 WebInspector.CSSNamedFlowView.prototype={_createFlowTreeOutline:function(rootDOMNode)
 {if(!rootDOMNode)
-return null;var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.element.addStyleClass("named-flow-element");treeOutline.setVisible(true);treeOutline.rootDOMNode=rootDOMNode;treeOutline.wireToDomAgent();WebInspector.domAgent.removeEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,treeOutline._elementsTreeUpdater._documentUpdated,treeOutline._elementsTreeUpdater);return treeOutline;},_insertContentNode:function(contentNodeId,index)
+return null;var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.element.classList.add("named-flow-element");treeOutline.setVisible(true);treeOutline.rootDOMNode=rootDOMNode;treeOutline.wireToDomAgent();WebInspector.domAgent.removeEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,treeOutline._elementsTreeUpdater._documentUpdated,treeOutline._elementsTreeUpdater);return treeOutline;},_insertContentNode:function(contentNodeId,index)
 {var treeOutline=this._createFlowTreeOutline(WebInspector.domAgent.nodeForId(contentNodeId));var treeItem=new TreeElement(treeOutline.element,treeOutline);if(index===undefined){this._contentTreeItem.appendChild(treeItem);return;}
 this._contentTreeItem.insertChild(treeItem,index);},_insertRegion:function(region,index)
-{var treeOutline=this._createFlowTreeOutline(WebInspector.domAgent.nodeForId(region.nodeId));treeOutline.element.addStyleClass("region-"+region.regionOverset);var treeItem=new TreeElement(treeOutline.element,treeOutline);var oversetText=WebInspector.UIString(WebInspector.CSSNamedFlowView.OversetTypeMessageMap[region.regionOverset]);treeItem.tooltip=WebInspector.UIString("Region is %s.",oversetText);if(index===undefined){this._regionsTreeItem.appendChild(treeItem);return;}
+{var treeOutline=this._createFlowTreeOutline(WebInspector.domAgent.nodeForId(region.nodeId));treeOutline.element.classList.add("region-"+region.regionOverset);var treeItem=new TreeElement(treeOutline.element,treeOutline);var oversetText=WebInspector.UIString(WebInspector.CSSNamedFlowView.OversetTypeMessageMap[region.regionOverset]);treeItem.tooltip=WebInspector.UIString("Region is %s.",oversetText);if(index===undefined){this._regionsTreeItem.appendChild(treeItem);return;}
 this._regionsTreeItem.insertChild(treeItem,index);},get flow()
 {return this._flow;},set flow(newFlow)
 {this._update(newFlow);},_updateRegionOverset:function(regionTreeItem,newRegionOverset,oldRegionOverset)
-{var element=regionTreeItem.representedObject.element;element.removeStyleClass("region-"+oldRegionOverset);element.addStyleClass("region-"+newRegionOverset);var oversetText=WebInspector.UIString(WebInspector.CSSNamedFlowView.OversetTypeMessageMap[newRegionOverset]);regionTreeItem.tooltip=WebInspector.UIString("Region is %s.",oversetText);},_mergeContentNodes:function(oldContent,newContent)
+{var element=regionTreeItem.representedObject.element;element.classList.remove("region-"+oldRegionOverset);element.classList.add("region-"+newRegionOverset);var oversetText=WebInspector.UIString(WebInspector.CSSNamedFlowView.OversetTypeMessageMap[newRegionOverset]);regionTreeItem.tooltip=WebInspector.UIString("Region is %s.",oversetText);},_mergeContentNodes:function(oldContent,newContent)
 {var nodeIdSet={};for(var i=0;i<newContent.length;++i)
 nodeIdSet[newContent[i]]=true;var oldContentIndex=0;var newContentIndex=0;var contentTreeChildIndex=0;while(oldContentIndex<oldContent.length||newContentIndex<newContent.length){if(oldContentIndex===oldContent.length){this._insertContentNode(newContent[newContentIndex]);++newContentIndex;continue;}
 if(newContentIndex===newContent.length){this._contentTreeItem.removeChildAtIndex(contentTreeChildIndex);++oldContentIndex;continue;}
@@ -87,7 +88,7 @@
 if(nodeIdSet[oldRegions[oldRegionsIndex].nodeId]){this._insertRegion(newRegions[newRegionsIndex],regionsTreeChildIndex);++newRegionsIndex;++regionsTreeChildIndex;continue;}
 this._regionsTreeItem.removeChildAtIndex(regionsTreeChildIndex);++oldRegionsIndex;}},_update:function(newFlow)
 {this._mergeContentNodes(this._flow.content,newFlow.content);this._mergeRegions(this._flow.regions,newFlow.regions);this._flow=newFlow;},__proto__:WebInspector.View.prototype};WebInspector.EventListenersSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Event Listeners"));this.bodyElement.addStyleClass("events-pane");this.sections=[];this.settingsSelectElement=document.createElement("select");this.settingsSelectElement.className="select-filter";var option=document.createElement("option");option.value="all";option.label=WebInspector.UIString("All Nodes");this.settingsSelectElement.appendChild(option);option=document.createElement("option");option.value="selected";option.label=WebInspector.UIString("Selected Node Only");this.settingsSelectElement.appendChild(option);var filter=WebInspector.settings.eventListenersFilter.get();if(filter==="all")
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Event Listeners"));this.bodyElement.classList.add("events-pane");this.sections=[];this.settingsSelectElement=document.createElement("select");this.settingsSelectElement.className="select-filter";var option=document.createElement("option");option.value="all";option.label=WebInspector.UIString("All Nodes");this.settingsSelectElement.appendChild(option);option=document.createElement("option");option.value="selected";option.label=WebInspector.UIString("Selected Node Only");this.settingsSelectElement.appendChild(option);var filter=WebInspector.settings.eventListenersFilter.get();if(filter==="all")
 this.settingsSelectElement[0].selected=true;else if(filter==="selected")
 this.settingsSelectElement[1].selected=true;this.settingsSelectElement.addEventListener("click",function(event){event.consume()},false);this.settingsSelectElement.addEventListener("change",this._changeSetting.bind(this),false);this.titleElement.appendChild(this.settingsSelectElement);this._linkifier=new WebInspector.Linkifier();}
 WebInspector.EventListenersSidebarPane._objectGroupName="event-listeners-sidebar-pane";WebInspector.EventListenersSidebarPane.prototype={update:function(node)
@@ -107,7 +108,7 @@
 WebInspector.EventListenersSection.prototype={addListener:function(eventListener)
 {var eventListenerBar=new WebInspector.EventListenerBar(eventListener,this._nodeId,this._linkifier);this._eventBars.appendChild(eventListenerBar.element);},__proto__:WebInspector.PropertiesSection.prototype}
 WebInspector.EventListenerBar=function(eventListener,nodeId,linkifier)
-{WebInspector.ObjectPropertiesSection.call(this,WebInspector.RemoteObject.fromPrimitiveValue(""));this.eventListener=eventListener;this._nodeId=nodeId;this._setNodeTitle();this._setFunctionSubtitle(linkifier);this.editable=false;this.element.className="event-bar";this.headerElement.addStyleClass("source-code");this.propertiesElement.className="event-properties properties-tree source-code";}
+{WebInspector.ObjectPropertiesSection.call(this,WebInspector.RemoteObject.fromPrimitiveValue(""));this.eventListener=eventListener;this._nodeId=nodeId;this._setNodeTitle();this._setFunctionSubtitle(linkifier);this.editable=false;this.element.className="event-bar";this.headerElement.classList.add("source-code");this.propertiesElement.className="event-properties properties-tree source-code";}
 WebInspector.EventListenerBar.prototype={update:function()
 {function updateWithNodeObject(nodeObject)
 {var properties=[];if(this.eventListener.type)
@@ -122,14 +123,14 @@
 WebInspector.RemoteObject.resolveNode(this.eventListener.node,WebInspector.EventListenersSidebarPane._objectGroupName,updateWithNodeObject.bind(this));},_setNodeTitle:function()
 {var node=this.eventListener.node;if(!node)
 return;if(node.nodeType()===Node.DOCUMENT_NODE){this.titleElement.textContent="document";return;}
-if(node.id===this._nodeId){this.titleElement.textContent=node.appropriateSelectorFor();return;}
+if(node.id===this._nodeId){this.titleElement.textContent=WebInspector.DOMPresentationUtils.appropriateSelectorFor(node);return;}
 this.titleElement.removeChildren();this.titleElement.appendChild(WebInspector.DOMPresentationUtils.linkifyNodeReference(this.eventListener.node));},_setFunctionSubtitle:function(linkifier)
 {if(this.eventListener.location){this.subtitleElement.removeChildren();var urlElement;if(this.eventListener.location.scriptId)
 urlElement=linkifier.linkifyRawLocation(this.eventListener.location);if(!urlElement){var url=this.eventListener.sourceName;var lineNumber=this.eventListener.location.lineNumber;var columnNumber=0;urlElement=linkifier.linkifyLocation(url,lineNumber,columnNumber);}
 this.subtitleElement.appendChild(urlElement);}else{var match=this.eventListener.handlerBody.match(/function ([^\(]+?)\(/);if(match)
 this.subtitleElement.textContent=match[1];else
 this.subtitleElement.textContent=WebInspector.UIString("(anonymous function)");}},__proto__:WebInspector.ObjectPropertiesSection.prototype};WebInspector.MetricsSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Metrics"));WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.MediaQueryResultChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._attributesUpdated,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._attributesUpdated,this);}
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Metrics"));WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.MediaQueryResultChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._attributesUpdated,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._attributesUpdated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameResized,this._frameResized,this);}
 WebInspector.MetricsSidebarPane.prototype={update:function(node)
 {if(node)
 this.node=node;this._innerUpdate();},_innerUpdate:function()
@@ -142,7 +143,11 @@
 {if(!style||this.node!==node)
 return;this.inlineStyle=style;}
 WebInspector.cssModel.getInlineStylesAsync(node.id,inlineStyleCallback.bind(this));},_styleSheetOrMediaQueryResultChanged:function()
-{this._innerUpdate();},_attributesUpdated:function(event)
+{this._innerUpdate();},_frameResized:function()
+{function refreshContents()
+{this._innerUpdate();delete this._activeTimer;}
+if(this._activeTimer)
+clearTimeout(this._activeTimer);this._activeTimer=setTimeout(refreshContents.bind(this),100);},_attributesUpdated:function(event)
 {if(this.node!==event.data.node)
 return;this._innerUpdate();},_getPropertyValueAsPx:function(style,propertyName)
 {return Number(style.getPropertyValue(propertyName).replace(/px$/,"")||0);},_getBox:function(computedStyle,componentName)
@@ -198,8 +203,135 @@
 if(commitEditor){self.dispatchEventToListeners("metrics edited");self.update();}};var allProperties=this.inlineStyle.allProperties;for(var i=0;i<allProperties.length;++i){var property=allProperties[i];if(property.name!==context.styleProperty||property.inactive)
 continue;this.previousPropertyDataCandidate=property;property.setValue(userInput,commitEditor,true,callback);return;}
 this.inlineStyle.appendProperty(context.styleProperty,userInput,callback);},editingCommitted:function(element,userInput,previousContent,context)
-{this.editingEnded(element,context);this._applyUserInput(element,userInput,previousContent,context,true);},__proto__:WebInspector.SidebarPane.prototype};WebInspector.PlatformFontsSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Fonts"));this.element.addStyleClass("platform-fonts");WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._onNodeChange.bind(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._onNodeChange.bind(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.CharacterDataModified,this._onNodeChange.bind(this));var cssFontSection=this.element.createChild("div","stats-section monospace");var cssFontPrefix=cssFontSection.createChild("span","webkit-css-property");cssFontPrefix.textContent="font-family";cssFontSection.createTextChild(":");this._cssFontValue=cssFontSection.createChild("span","css-font-value");this._fontStatsSection=this.element.createChild("div","stats-section");}
+{this.editingEnded(element,context);this._applyUserInput(element,userInput,previousContent,context,true);},__proto__:WebInspector.SidebarPane.prototype};WebInspector.OverridesView=function()
+{WebInspector.View.call(this);this.registerRequiredCSS("overrides.css");this.registerRequiredCSS("helpScreen.css");this.element.classList.add("overrides-view","fill","vbox");this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.shrinkableTabs=false;this._tabbedPane.verticalTabLayout=true;new WebInspector.OverridesView.DeviceTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.ViewportTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.UserAgentTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.SensorsTab().appendAsTab(this._tabbedPane);this._lastSelectedTabSetting=WebInspector.settings.createSetting("lastSelectedEmulateTab","device");this._tabbedPane.selectTab(this._lastSelectedTabSetting.get());this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabbedPane.show(this.element);this._warningFooter=this.element.createChild("div","overrides-footer");this._overridesWarningUpdated();WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport.Events.OverridesWarningUpdated,this._overridesWarningUpdated,this);}
+WebInspector.OverridesView.prototype={_tabSelected:function(event)
+{this._lastSelectedTabSetting.set(this._tabbedPane.selectedTabId);},_overridesWarningUpdated:function()
+{var message=WebInspector.overridesSupport.warningMessage();this._warningFooter.enableStyleClass("hidden",!message);this._warningFooter.textContent=message;},__proto__:WebInspector.View.prototype}
+WebInspector.OverridesView.Tab=function(id,name,settings)
+{WebInspector.View.call(this);this._id=id;this._name=name;this._settings=settings;for(var i=0;i<settings.length;++i)
+settings[i].addChangeListener(this._updateActiveState,this);}
+WebInspector.OverridesView.Tab.prototype={appendAsTab:function(tabbedPane)
+{this._tabbedPane=tabbedPane;tabbedPane.appendTab(this._id,this._name,this);this._updateActiveState();},_updateActiveState:function()
+{var active=false;for(var i=0;!active&&i<this._settings.length;++i)
+active=this._settings[i].get();this._tabbedPane.element.enableStyleClass("overrides-activate-"+this._id,active);this._tabbedPane.changeTabTitle(this._id,active?this._name+" \u2713":this._name);},_createInput:function(parentElement,id,defaultText,eventListener,numeric)
+{var element=parentElement.createChild("input");element.id=id;element.type="text";element.maxLength=12;element.style.width="80px";element.value=defaultText;element.align="right";if(numeric)
+element.className="numeric";element.addEventListener("input",eventListener,false);element.addEventListener("keydown",keyDownListener,false);function keyDownListener(event)
+{if(isEnterKey(event))
+eventListener(event);}
+return element;},_createNonPersistedCheckbox:function(title,callback)
+{var labelElement=document.createElement("label");var checkboxElement=labelElement.createChild("input");checkboxElement.type="checkbox";checkboxElement.checked=false;checkboxElement.addEventListener("click",onclick,false);labelElement.appendChild(document.createTextNode(title));return labelElement;function onclick()
+{callback(checkboxElement.checked);}},_createSettingCheckbox:function(name,setting,callback)
+{var checkbox=WebInspector.SettingsTab.createCheckbox(name,setting.get.bind(setting),listener,true);function listener(value)
+{if(setting.get()===value)
+return;setting.set(value);if(callback)
+callback(value);}
+setting.addChangeListener(changeListener);function changeListener()
+{if(checkbox.firstChild.checked!==setting.get())
+checkbox.firstChild.checked=setting.get();}
+return checkbox;},__proto__:WebInspector.View.prototype}
+WebInspector.OverridesView.DeviceTab=function()
+{WebInspector.OverridesView.Tab.call(this,"device",WebInspector.UIString("Device"),[]);this.element.classList.add("overrides-device");this._emulatedDeviceSetting=WebInspector.settings.createSetting("emulatedDevice","Google Nexus 4");this._emulateDeviceViewportSetting=WebInspector.settings.overrideDeviceMetrics;this._emulateDeviceUserAgentSetting=WebInspector.settings.overrideUserAgent;this._deviceSelectElement=this.element.createChild("select");var devices=WebInspector.OverridesView.DeviceTab._phones.concat(WebInspector.OverridesView.DeviceTab._tablets);devices.sort();var selectionRestored=false;for(var i=0;i<devices.length;++i){var device=devices[i];var option=new Option(device[0],device[0]);option._userAgent=device[1];option._metrics=device[2];this._deviceSelectElement.add(option);if(this._emulatedDeviceSetting.get()===device[0]){this._deviceSelectElement.selectedIndex=i;selectionRestored=true;}}
+if(!selectionRestored)
+this._deviceSelectElement.selectedIndex=devices.length-1;this._deviceSelectElement.addEventListener("change",this._deviceSelected.bind(this),false);this._deviceSelectElement.addEventListener("dblclick",this._emulateButtonClicked.bind(this),false);this._deviceSelectElement.addEventListener("keypress",this._keyPressed.bind(this),false);this._deviceSelectElement.disabled=WebInspector.isInspectingDevice();var buttonsBar=this.element.createChild("div");var emulateButton=buttonsBar.createChild("button","settings-tab-text-button");emulateButton.textContent=WebInspector.UIString("Emulate");emulateButton.addEventListener("click",this._emulateButtonClicked.bind(this),false);emulateButton.disabled=WebInspector.isInspectingDevice();this._emulateButton=emulateButton;var resetButton=buttonsBar.createChild("button","settings-tab-text-button");resetButton.textContent=WebInspector.UIString("Reset");resetButton.addEventListener("click",this._resetButtonClicked.bind(this),false);this._viewportValueLabel=this.element.createChild("div","overrides-device-value-label");this._viewportValueLabel.textContent=WebInspector.UIString("Viewport:");this._viewportValueElement=this._viewportValueLabel.createChild("span","overrides-device-value");this._userAgentLabel=this.element.createChild("div","overrides-device-value-label");this._userAgentLabel.textContent=WebInspector.UIString("User agent:");this._userAgentValueElement=this._userAgentLabel.createChild("span","overrides-device-value");this._updateValueLabels();}
+WebInspector.OverridesView.DeviceTab._phones=[["Apple iPhone 3GS","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5","320x480x1"],["Apple iPhone 4","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5","640x960x2"],["Apple iPhone 5","Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53","640x1136x2"],["BlackBerry Z10","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+","768x1280x2"],["BlackBerry Z30","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+","720x1280x2"],["Google Nexus 4","Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","768x1280x2"],["Google Nexus 5","Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","1080x1920x3"],["Google Nexus S","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x800x1.5"],["HTC Evo, Touch HD, Desire HD, Desire","Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x800x1.5"],["HTC One X, EVO LTE","Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19","720x1280x2"],["HTC Sensation, Evo 3D","Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","540x960x1.5"],["LG Optimus 2X, Optimus 3D, Optimus Black","Mozilla/5.0 (Linux; U; Android 2.2; en-us; LG-P990/V08c Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2","480x800x1.5"],["LG Optimus G","Mozilla/5.0 (Linux; Android 4.0; LG-E975 Build/IMM76L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","768x1280x2"],["LG Optimus LTE, Optimus 4X HD","Mozilla/5.0 (Linux; U; Android 2.3; en-us; LG-P930 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","720x1280x1.7"],["LG Optimus One","Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; LG-MS690 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","320x480x1.5"],["Motorola Defy, Droid, Droid X, Milestone","Mozilla/5.0 (Linux; U; Android 2.0; en-us; Milestone Build/ SHOLS_U2_01.03.1) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17","480x854x1.5"],["Motorola Droid 3, Droid 4, Droid Razr, Atrix 4G, Atrix 2","Mozilla/5.0 (Linux; U; Android 2.2; en-us; Droid Build/FRG22D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","540x960x1"],["Motorola Droid Razr HD","Mozilla/5.0 (Linux; U; Android 2.3; en-us; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","720x1280x1"],["Nokia C5, C6, C7, N97, N8, X7","NokiaN97/21.1.107 (SymbianOS/9.4; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebkit/525 (KHTML, like Gecko) BrowserNG/7.1.4","360x640x1"],["Nokia Lumia 7X0, Lumia 8XX, Lumia 900, N800, N810, N900","Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 820)","480x800x1.5"],["Samsung Galaxy Note 3","Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","1080x1920x2"],["Samsung Galaxy Note II","Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2"],["Samsung Galaxy Note","Mozilla/5.0 (Linux; U; Android 2.3; en-us; SAMSUNG-SGH-I717 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","800x1280x2"],["Samsung Galaxy S III, Galaxy Nexus","Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2"],["Samsung Galaxy S, S II, W","Mozilla/5.0 (Linux; U; Android 2.1; en-us; GT-I9000 Build/ECLAIR) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","480x800x1.5"],["Samsung Galaxy S4","Mozilla/5.0 (Linux; U; Android 2.1; en-us; GT-I9000 Build/ECLAIR) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","1080x1920x3"],["Sony Xperia S, Ion","Mozilla/5.0 (Linux; U; Android 4.0; en-us; LT28at Build/6.1.C.1.111) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2"],["Sony Xperia Sola, U","Mozilla/5.0 (Linux; U; Android 2.3; en-us; SonyEricssonST25i Build/6.0.B.1.564) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x854x1"],["Sony Xperia Z, Z1","Mozilla/5.0 (Linux; U; Android 4.2; en-us; SonyC6903 Build/14.1.G.1.518) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","1080x1920x3"],];WebInspector.OverridesView.DeviceTab._tablets=[["Amazon Amazon Kindle Fire HD 7\u2033","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire HD Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1280x800x1.5"],["Amazon Amazon Kindle Fire HD 8.9\u2033","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire HD Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1920x1200x1.5"],["Amazon Amazon Kindle Fire","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1024x600x1"],["Apple iPad 1 / 2 / iPad Mini","Mozilla/5.0 (iPad; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5","1024x768x1"],["Apple iPad 3 / 4","Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53","2048x1536x2"],["BlackBerry PlayBook","Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+","1024x600x1"],["Google Nexus 10","Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","2560x1600x2"],["Google Nexus 7 2","Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","1920x1200x2"],["Google Nexus 7","Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","1280x800x1.325"],["Motorola Xoom, Xyboard","Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","1280x800x1"],["Samsung Galaxy Tab 7.7, 8.9, 10.1","Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1280x800x1"],["Samsung Galaxy Tab","Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1024x600x1"],];WebInspector.OverridesView.DeviceTab.prototype={_keyPressed:function(e)
+{if(e.keyCode===WebInspector.KeyboardShortcut.Keys.Enter.code)
+this._emulateButtonClicked();},_emulateButtonClicked:function()
+{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];WebInspector.overridesSupport.emulateDevice(option._metrics,option._userAgent);},_resetButtonClicked:function()
+{WebInspector.overridesSupport.reset();},_deviceSelected:function()
+{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];this._emulatedDeviceSetting.set(option.value);this._updateValueLabels();},_updateValueLabels:function()
+{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];var metrics;if(option._metrics&&(metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(option._metrics)))
+this._viewportValueElement.textContent=WebInspector.UIString("%s \u00D7 %s, devicePixelRatio = %s",metrics.width,metrics.height,metrics.deviceScaleFactor);else
+this._viewportValueElement.textContent="";this._userAgentValueElement.textContent=option._userAgent||"";},__proto__:WebInspector.OverridesView.Tab.prototype}
+WebInspector.OverridesView.ViewportTab=function()
+{WebInspector.OverridesView.Tab.call(this,"viewport",WebInspector.UIString("Screen"),[WebInspector.settings.overrideDeviceMetrics,WebInspector.settings.overrideCSSMedia]);this.element.classList.add("overrides-viewport");const metricsSetting=WebInspector.settings.deviceMetrics.get();var metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);var checkbox=this._createSettingCheckbox(WebInspector.UIString("Emulate screen"),WebInspector.settings.overrideDeviceMetrics,this._onMetricsCheckboxClicked.bind(this));checkbox.firstChild.disabled=WebInspector.isInspectingDevice();WebInspector.settings.deviceMetrics.addChangeListener(this._updateDeviceMetricsElement,this);this.element.appendChild(checkbox);this.element.appendChild(this._createDeviceMetricsElement(metrics));this.element.appendChild(this._createMediaEmulationElement());var footnote=this.element.createChild("p","help-footnote");var footnoteLink=footnote.createChild("a");footnoteLink.href="https://developers.google.com/chrome-developer-tools/docs/mobile-emulation";footnoteLink.target="_blank";footnoteLink.createTextChild(WebInspector.UIString("More information about screen emulation"));this._onMetricsCheckboxClicked(WebInspector.settings.overrideDeviceMetrics.get());}
+WebInspector.OverridesView.ViewportTab.prototype={_onMetricsCheckboxClicked:function(enabled)
+{if(enabled&&!this._widthOverrideElement.value)
+this._widthOverrideElement.focus();this._applyDeviceMetricsUserInput();},_applyDeviceMetricsUserInput:function()
+{this._muteRangeListener=true;this._widthRangeInput.value=this._widthOverrideElement.value;delete this._muteRangeListener;if(this._applyDeviceMetricsTimer)
+clearTimeout(this._applyDeviceMetricsTimer);this._applyDeviceMetricsTimer=setTimeout(this._doApplyDeviceMetricsUserInput.bind(this),50);},_doApplyDeviceMetricsUserInput:function()
+{delete this._applyDeviceMetricsTimer;this._setDeviceMetricsOverride(WebInspector.OverridesSupport.DeviceMetrics.parseUserInput(this._widthOverrideElement.value.trim(),this._heightOverrideElement.value.trim(),this._deviceScaleFactorOverrideElement.value.trim(),this._textAutosizingOverrideCheckbox.checked),true);},_setDeviceMetricsOverride:function(metrics,userInputModified)
+{function setValid(condition,element)
+{if(condition)
+element.classList.remove("error-input");else
+element.classList.add("error-input");}
+setValid(metrics&&metrics.isWidthValid(),this._widthOverrideElement);setValid(metrics&&metrics.isHeightValid(),this._heightOverrideElement);setValid(metrics&&metrics.isDeviceScaleFactorValid(),this._deviceScaleFactorOverrideElement);if(!metrics)
+return;if(!userInputModified){this._widthOverrideElement.value=metrics.widthToInput();this._heightOverrideElement.value=metrics.heightToInput();this._deviceScaleFactorOverrideElement.value=metrics.deviceScaleFactorToInput();this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing;}
+if(metrics.isValid()){var value=metrics.toSetting();if(value!==WebInspector.settings.deviceMetrics.get())
+WebInspector.settings.deviceMetrics.set(value);}},_createDeviceMetricsElement:function(metrics)
+{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideDeviceMetrics);if(WebInspector.isInspectingDevice())
+fieldsetElement.disabled=true;fieldsetElement.id="metrics-override-section";function swapDimensionsClicked()
+{var widthValue=this._widthOverrideElement.value;this._widthOverrideElement.value=this._heightOverrideElement.value;this._heightOverrideElement.value=widthValue;this._applyDeviceMetricsUserInput();}
+var tableElement=fieldsetElement.createChild("table","nowrap");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Resolution:")));cellElement=rowElement.createChild("td");this._widthOverrideElement=this._createInput(cellElement,"metrics-override-width",String(metrics.width||screen.width),this._applyDeviceMetricsUserInput.bind(this),true);this._swapDimensionsElement=cellElement.createChild("button","overrides-swap");this._swapDimensionsElement.appendChild(document.createTextNode(" \u21C4 "));this._swapDimensionsElement.title=WebInspector.UIString("Swap dimensions");this._swapDimensionsElement.addEventListener("click",swapDimensionsClicked.bind(this),false);this._swapDimensionsElement.tabIndex=-1;this._heightOverrideElement=this._createInput(cellElement,"metrics-override-height",String(metrics.height||screen.height),this._applyDeviceMetricsUserInput.bind(this),true);rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.colSpan=4;this._widthRangeInput=cellElement.createChild("input");this._widthRangeInput.type="range";this._widthRangeInput.min=100;this._widthRangeInput.max=2000;this._widthRangeInput.addEventListener("change",this._rangeValueChanged.bind(this),false);this._widthRangeInput.value=this._widthOverrideElement.value;rowElement=tableElement.createChild("tr");rowElement.title=WebInspector.UIString("Ratio between a device's physical pixels and device-independent pixels.");cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Device pixel ratio:")));cellElement=rowElement.createChild("td");this._deviceScaleFactorOverrideElement=this._createInput(cellElement,"metrics-override-device-scale",String(metrics.deviceScaleFactor||1),this._applyDeviceMetricsUserInput.bind(this),true);var textAutosizingOverrideElement=this._createNonPersistedCheckbox(WebInspector.UIString("Enable text autosizing "),this._applyDeviceMetricsUserInput.bind(this));textAutosizingOverrideElement.title=WebInspector.UIString("Text autosizing is the feature that boosts font sizes on mobile devices.");this._textAutosizingOverrideCheckbox=textAutosizingOverrideElement.firstChild;this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing;fieldsetElement.appendChild(textAutosizingOverrideElement);var checkbox=this._createSettingCheckbox(WebInspector.UIString("Emulate viewport"),WebInspector.settings.emulateViewport);fieldsetElement.appendChild(checkbox);checkbox=this._createSettingCheckbox(WebInspector.UIString("Shrink to fit"),WebInspector.settings.deviceFitWindow);fieldsetElement.appendChild(checkbox);return fieldsetElement;},_updateDeviceMetricsElement:function()
+{const metricsSetting=WebInspector.settings.deviceMetrics.get();var metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);if(this._widthOverrideElement.value!==metrics.width)
+this._widthOverrideElement.value=metrics.width||screen.width;this._muteRangeListener=true;if(this._widthRangeInput.value!=metrics.width)
+this._widthRangeInput.value=metrics.width||screen.width;delete this._muteRangeListener;if(this._heightOverrideElement.value!==metrics.height)
+this._heightOverrideElement.value=metrics.height||screen.height;if(this._deviceScaleFactorOverrideElement.value!==metrics.deviceScaleFactor)
+this._deviceScaleFactorOverrideElement.value=metrics.deviceScaleFactor||1;if(this._textAutosizingOverrideCheckbox.checked!==metrics.textAutosizing)
+this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing||false;},_createMediaEmulationElement:function()
+{var checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("CSS media"),WebInspector.settings.overrideCSSMedia,true);var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideCSSMedia);if(WebInspector.isInspectingDevice())
+fieldsetElement.disabled=true;checkbox.appendChild(fieldsetElement);var mediaSelectElement=fieldsetElement.createChild("select");var mediaTypes=WebInspector.CSSStyleModel.MediaTypes;var defaultMedia=WebInspector.settings.emulatedCSSMedia.get();for(var i=0;i<mediaTypes.length;++i){var mediaType=mediaTypes[i];if(mediaType==="all"){continue;}
+var option=document.createElement("option");option.text=mediaType;option.value=mediaType;mediaSelectElement.add(option);if(mediaType===defaultMedia)
+mediaSelectElement.selectedIndex=mediaSelectElement.options.length-1;}
+mediaSelectElement.addEventListener("change",this._emulateMediaChanged.bind(this,mediaSelectElement),false);return checkbox;},_emulateMediaChanged:function(select)
+{var media=select.options[select.selectedIndex].value;WebInspector.settings.emulatedCSSMedia.set(media);},_rangeValueChanged:function()
+{if(this._muteRangeListener)
+return;this._widthOverrideElement.value=this._widthRangeInput.value;this._applyDeviceMetricsUserInput();},__proto__:WebInspector.OverridesView.Tab.prototype}
+WebInspector.OverridesView.UserAgentTab=function()
+{WebInspector.OverridesView.Tab.call(this,"user-agent",WebInspector.UIString("User Agent"),[WebInspector.settings.overrideUserAgent]);this.element.classList.add("overrides-user-agent");var checkbox=this._createSettingCheckbox(WebInspector.UIString("Spoof user agent"),WebInspector.settings.overrideUserAgent);checkbox.firstChild.disabled=WebInspector.isInspectingDevice();this.element.appendChild(checkbox);this.element.appendChild(this._createUserAgentSelectRowElement());}
+WebInspector.OverridesView.UserAgentTab._userAgents=[["Chrome 31 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36"],["Chrome 31 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"],["Opera 18 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 OPR/18.0.1284.68"],["Opera 18 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 OPR/18.0.1284.68"],["Internet Explorer 10","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"],["Internet Explorer 9","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"],["Internet Explorer 8","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)"],["Internet Explorer 7","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"],["Firefox 7 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"],["Firefox 7 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"],["Firefox 4 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"],["Firefox 4 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"],["Firefox 14 \u2014 Android Mobile","Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0"],["Firefox 14 \u2014 Android Tablet","Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0"],["Chrome \u2014 Android Mobile","Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"],["Chrome \u2014 Android Tablet","Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"],["iPhone \u2014 iOS 7","Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A4449d Safari/9537.53"],["iPhone \u2014 iOS 6","Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"],["iPad \u2014 iOS 7","Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"],["iPad \u2014 iOS 6","Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"],["Android 2.3 \u2014 Nexus S","Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"],["Android 4.0.2 \u2014 Galaxy Nexus","Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"],["BlackBerry \u2014 PlayBook 2.1","Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+"],["BlackBerry \u2014 9900","Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+"],["BlackBerry \u2014 BB10","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+"],["MeeGo \u2014 Nokia N9","Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13"],];WebInspector.OverridesView.UserAgentTab.prototype={_createUserAgentSelectRowElement:function()
+{var userAgent=WebInspector.settings.userAgent.get();var userAgents=WebInspector.OverridesView.UserAgentTab._userAgents.concat([[WebInspector.UIString("Other"),"Other"]]);var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideUserAgent);if(WebInspector.isInspectingDevice())
+fieldsetElement.disabled=true;this._selectElement=fieldsetElement.createChild("select");fieldsetElement.createChild("br");this._otherUserAgentElement=fieldsetElement.createChild("input");this._otherUserAgentElement.type="text";this._otherUserAgentElement.value=userAgent;this._otherUserAgentElement.title=userAgent;var selectionRestored=false;for(var i=0;i<userAgents.length;++i){var agent=userAgents[i];var option=new Option(agent[0],agent[1]);option._metrics=agent[2]?agent[2]:"";this._selectElement.add(option);if(userAgent===agent[1]){this._selectElement.selectedIndex=i;selectionRestored=true;}}
+if(!selectionRestored){if(!userAgent)
+this._selectElement.selectedIndex=0;else
+this._selectElement.selectedIndex=userAgents.length-1;}
+this._selectElement.addEventListener("change",this._userAgentChanged.bind(this,true),false);WebInspector.settings.userAgent.addChangeListener(this._userAgentSettingChanged,this);fieldsetElement.addEventListener("dblclick",textDoubleClicked.bind(this),false);this._otherUserAgentElement.addEventListener("blur",textChanged.bind(this),false);function textDoubleClicked()
+{this._selectElement.selectedIndex=userAgents.length-1;this._userAgentChanged();}
+function textChanged()
+{if(WebInspector.settings.userAgent.get()!==this._otherUserAgentElement.value)
+WebInspector.settings.userAgent.set(this._otherUserAgentElement.value);}
+return fieldsetElement;},_userAgentChanged:function(isUserGesture)
+{var value=this._selectElement.options[this._selectElement.selectedIndex].value;if(value!=="Other"){WebInspector.settings.userAgent.set(value);this._otherUserAgentElement.value=value;this._otherUserAgentElement.title=value;this._otherUserAgentElement.disabled=true;}else{this._otherUserAgentElement.disabled=false;this._otherUserAgentElement.focus();}},_userAgentSettingChanged:function()
+{var value=WebInspector.settings.userAgent.get();var options=this._selectElement.options;var foundMatch=false;for(var i=0;i<options.length;++i){if(options[i].value===value){if(this._selectElement.selectedIndex!==i)
+this._selectElement.selectedIndex=i;foundMatch=true;break;}}
+this._otherUserAgentElement.disabled=foundMatch;if(!foundMatch)
+this._selectElement.selectedIndex=options.length-1;if(this._otherUserAgentElement.value!==value){this._otherUserAgentElement.value=value;this._otherUserAgentElement.title=value;}},__proto__:WebInspector.OverridesView.Tab.prototype}
+WebInspector.OverridesView.SensorsTab=function()
+{WebInspector.OverridesView.Tab.call(this,"sensors",WebInspector.UIString("Sensors"),[WebInspector.settings.emulateTouchEvents,WebInspector.settings.overrideGeolocation,WebInspector.settings.overrideDeviceOrientation]);this.element.classList.add("overrides-sensors");this.registerRequiredCSS("accelerometer.css");if(!WebInspector.isInspectingDevice())
+this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Emulate touch screen"),WebInspector.settings.emulateTouchEvents));this._appendGeolocationOverrideControl();if(!WebInspector.isInspectingDevice())
+this._apendDeviceOrientationOverrideControl();}
+WebInspector.OverridesView.SensorsTab.prototype={_appendGeolocationOverrideControl:function()
+{const geolocationSetting=WebInspector.settings.geolocationOverride.get();var geolocation=WebInspector.OverridesSupport.GeolocationPosition.parseSetting(geolocationSetting);this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Emulate geolocation coordinates"),WebInspector.settings.overrideGeolocation,this._geolocationOverrideCheckboxClicked.bind(this)));this.element.appendChild(this._createGeolocationOverrideElement(geolocation));this._geolocationOverrideCheckboxClicked(WebInspector.settings.overrideGeolocation.get());},_geolocationOverrideCheckboxClicked:function(enabled)
+{if(enabled&&!this._latitudeElement.value)
+this._latitudeElement.focus();},_applyGeolocationUserInput:function()
+{this._setGeolocationPosition(WebInspector.OverridesSupport.GeolocationPosition.parseUserInput(this._latitudeElement.value.trim(),this._longitudeElement.value.trim(),this._geolocationErrorElement.checked),true);},_setGeolocationPosition:function(geolocation,userInputModified)
+{if(!geolocation)
+return;if(!userInputModified){this._latitudeElement.value=geolocation.latitude;this._longitudeElement.value=geolocation.longitude;}
+var value=geolocation.toSetting();WebInspector.settings.geolocationOverride.set(value);},_createGeolocationOverrideElement:function(geolocation)
+{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideGeolocation);fieldsetElement.id="geolocation-override-section";var tableElement=fieldsetElement.createChild("table");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td");cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Lat = ")));this._latitudeElement=this._createInput(cellElement,"geolocation-override-latitude",String(geolocation.latitude),this._applyGeolocationUserInput.bind(this),true);cellElement.appendChild(document.createTextNode(" , "));cellElement.appendChild(document.createTextNode(WebInspector.UIString("Lon = ")));this._longitudeElement=this._createInput(cellElement,"geolocation-override-longitude",String(geolocation.longitude),this._applyGeolocationUserInput.bind(this),true);rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.colSpan=2;var geolocationErrorLabelElement=document.createElement("label");var geolocationErrorCheckboxElement=geolocationErrorLabelElement.createChild("input");geolocationErrorCheckboxElement.id="geolocation-error";geolocationErrorCheckboxElement.type="checkbox";geolocationErrorCheckboxElement.checked=!geolocation||geolocation.error;geolocationErrorCheckboxElement.addEventListener("click",this._applyGeolocationUserInput.bind(this),false);geolocationErrorLabelElement.appendChild(document.createTextNode(WebInspector.UIString("Emulate position unavailable")));this._geolocationErrorElement=geolocationErrorCheckboxElement;cellElement.appendChild(geolocationErrorLabelElement);return fieldsetElement;},_apendDeviceOrientationOverrideControl:function()
+{const deviceOrientationSetting=WebInspector.settings.deviceOrientationOverride.get();var deviceOrientation=WebInspector.OverridesSupport.DeviceOrientation.parseSetting(deviceOrientationSetting);this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Accelerometer"),WebInspector.settings.overrideDeviceOrientation,this._deviceOrientationOverrideCheckboxClicked.bind(this)));this.element.appendChild(this._createDeviceOrientationOverrideElement(deviceOrientation));this._deviceOrientationOverrideCheckboxClicked(WebInspector.settings.overrideDeviceOrientation.get());},_deviceOrientationOverrideCheckboxClicked:function(enabled)
+{if(enabled&&!this._alphaElement.value)
+this._alphaElement.focus();},_applyDeviceOrientationUserInput:function()
+{this._setDeviceOrientation(WebInspector.OverridesSupport.DeviceOrientation.parseUserInput(this._alphaElement.value.trim(),this._betaElement.value.trim(),this._gammaElement.value.trim()),WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource.UserInput);},_resetDeviceOrientation:function()
+{this._setDeviceOrientation(new WebInspector.OverridesSupport.DeviceOrientation(0,0,0),WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource.ResetButton);},_setDeviceOrientation:function(deviceOrientation,modificationSource)
+{if(!deviceOrientation)
+return;if(modificationSource!=WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource.UserInput){this._alphaElement.value=deviceOrientation.alpha;this._betaElement.value=deviceOrientation.beta;this._gammaElement.value=deviceOrientation.gamma;}
+if(modificationSource!=WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource.UserDrag)
+this._setBoxOrientation(deviceOrientation);var value=deviceOrientation.toSetting();WebInspector.settings.deviceOrientationOverride.set(value);},_createAxisInput:function(parentElement,id,label,defaultText)
+{var div=parentElement.createChild("div","accelerometer-axis-input-container");div.appendChild(document.createTextNode(label));return this._createInput(div,id,defaultText,this._applyDeviceOrientationUserInput.bind(this),true);},_createDeviceOrientationOverrideElement:function(deviceOrientation)
+{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideDeviceOrientation);fieldsetElement.id="device-orientation-override-section";var tableElement=fieldsetElement.createChild("table");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td","accelerometer-inputs-cell");this._alphaElement=this._createAxisInput(cellElement,"device-orientation-override-alpha","\u03B1: ",String(deviceOrientation.alpha));this._betaElement=this._createAxisInput(cellElement,"device-orientation-override-beta","\u03B2: ",String(deviceOrientation.beta));this._gammaElement=this._createAxisInput(cellElement,"device-orientation-override-gamma","\u03B3: ",String(deviceOrientation.gamma));var resetButton=cellElement.createChild("button","settings-tab-text-button accelerometer-reset-button");resetButton.textContent=WebInspector.UIString("Reset");resetButton.addEventListener("click",this._resetDeviceOrientation.bind(this),false);this._stageElement=rowElement.createChild("td","accelerometer-stage");this._boxElement=this._stageElement.createChild("section","accelerometer-box");this._boxElement.createChild("section","front");this._boxElement.createChild("section","top");this._boxElement.createChild("section","back");this._boxElement.createChild("section","left");this._boxElement.createChild("section","right");this._boxElement.createChild("section","bottom");WebInspector.installDragHandle(this._stageElement,this._onBoxDragStart.bind(this),this._onBoxDrag.bind(this),this._onBoxDragEnd.bind(this),"move");this._setBoxOrientation(deviceOrientation);return fieldsetElement;},_setBoxOrientation:function(deviceOrientation)
+{var matrix=new WebKitCSSMatrix();this._boxMatrix=matrix.rotate(deviceOrientation.beta,deviceOrientation.gamma,deviceOrientation.alpha);this._boxElement.style.webkitTransform=this._boxMatrix.toString();},_onBoxDrag:function(event)
+{var mouseMoveVector=this._calculateRadiusVector(event.x,event.y);if(!mouseMoveVector)
+return true;event.consume(true);var axis=WebInspector.Geometry.crossProduct(this._mouseDownVector,mouseMoveVector);axis.normalize();var angle=WebInspector.Geometry.calculateAngle(this._mouseDownVector,mouseMoveVector);var matrix=new WebKitCSSMatrix();var rotationMatrix=matrix.rotateAxisAngle(axis.x,axis.y,axis.z,angle);this._currentMatrix=rotationMatrix.multiply(this._boxMatrix)
+this._boxElement.style.webkitTransform=this._currentMatrix;var eulerAngles=WebInspector.Geometry.EulerAngles.fromRotationMatrix(this._currentMatrix);var newOrientation=new WebInspector.OverridesSupport.DeviceOrientation(eulerAngles.alpha,eulerAngles.beta,eulerAngles.gamma);this._setDeviceOrientation(newOrientation,WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource.UserDrag);return false;},_onBoxDragStart:function(event)
+{if(!WebInspector.settings.overrideDeviceOrientation.get())
+return false;this._mouseDownVector=this._calculateRadiusVector(event.x,event.y);if(!this._mouseDownVector)
+return false;event.consume(true);return true;},_onBoxDragEnd:function()
+{this._boxMatrix=this._currentMatrix;},_calculateRadiusVector:function(x,y)
+{var rect=this._stageElement.getBoundingClientRect();var radius=Math.max(rect.width,rect.height)/2;var sphereX=(x-rect.left-rect.width/2)/radius;var sphereY=(y-rect.top-rect.height/2)/radius;var sqrSum=sphereX*sphereX+sphereY*sphereY;if(sqrSum>0.5)
+return new WebInspector.Geometry.Vector(sphereX,sphereY,0.5/Math.sqrt(sqrSum));return new WebInspector.Geometry.Vector(sphereX,sphereY,Math.sqrt(1-sqrSum));},__proto__:WebInspector.OverridesView.Tab.prototype}
+WebInspector.OverridesView.SensorsTab.DeviceOrientationModificationSource={UserInput:"userInput",UserDrag:"userDrag",ResetButton:"resetButton"};WebInspector.PlatformFontsSidebarPane=function()
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Fonts"));this.element.classList.add("platform-fonts");WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._onNodeChange.bind(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._onNodeChange.bind(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.CharacterDataModified,this._onNodeChange.bind(this));this._sectionTitle=document.createElementWithClass("div","sidebar-separator");this.element.insertBefore(this._sectionTitle,this.bodyElement);this._sectionTitle.textContent=WebInspector.UIString("Rendered Fonts");this._fontStatsSection=this.bodyElement.createChild("div","stats-section");}
 WebInspector.PlatformFontsSidebarPane.prototype={_onNodeChange:function()
 {if(this._innerUpdateTimeout)
 return;this._innerUpdateTimeout=setTimeout(this._innerUpdate.bind(this),100);},update:function(node)
@@ -209,7 +341,7 @@
 if(!this._node)
 return;WebInspector.cssModel.getPlatformFontsForNode(this._node.id,this._refreshUI.bind(this,this._node));},_refreshUI:function(node,cssFamilyName,platformFonts)
 {if(this._node!==node)
-return;this._cssFontValue.textContent=cssFamilyName+";";this._fontStatsSection.removeChildren();if(!platformFonts||!platformFonts.length)
+return;this._fontStatsSection.removeChildren();var isEmptySection=!platformFonts||!platformFonts.length;this._sectionTitle.enableStyleClass("hidden",isEmptySection);if(isEmptySection)
 return;platformFonts.sort(function(a,b){return b.glyphCount-a.glyphCount;});for(var i=0;i<platformFonts.length;++i){var fontStatElement=this._fontStatsSection.createChild("div","font-stats-item");var fontNameElement=fontStatElement.createChild("span","font-name");fontNameElement.textContent=platformFonts[i].familyName;var fontDelimeterElement=fontStatElement.createChild("span","delimeter");fontDelimeterElement.textContent="\u2014";var fontUsageElement=fontStatElement.createChild("span","font-usage");var usage=platformFonts[i].glyphCount;fontUsageElement.textContent=usage===1?WebInspector.UIString("%d glyph",usage):WebInspector.UIString("%d glyphs",usage);}},__proto__:WebInspector.SidebarPane.prototype};WebInspector.PropertiesSidebarPane=function()
 {WebInspector.SidebarPane.call(this,WebInspector.UIString("Properties"));}
 WebInspector.PropertiesSidebarPane._objectGroupName="properties-sidebar-pane";WebInspector.PropertiesSidebarPane.prototype={update:function(node)
@@ -227,8 +359,10 @@
 {if(!prototypes)
 return;var body=this.bodyElement;body.removeChildren();this.sections=[];for(var i=0;i<prototypes.length;++i){if(!parseInt(prototypes[i].name,10))
 continue;var prototype=prototypes[i].value;var title=prototype.description;if(title.match(/Prototype$/))
-title=title.replace(/Prototype$/,"");var section=new WebInspector.ObjectPropertiesSection(prototype,title);this.sections.push(section);body.appendChild(section.element);}}},__proto__:WebInspector.SidebarPane.prototype};WebInspector.StylesSidebarPane=function(computedStylePane,setPseudoClassCallback)
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Styles"));this.settingsSelectElement=document.createElement("select");this.settingsSelectElement.className="select-settings";var option=document.createElement("option");option.value=WebInspector.Color.Format.Original;option.label=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"As authored":"As Authored");this.settingsSelectElement.appendChild(option);option=document.createElement("option");option.value=WebInspector.Color.Format.HEX;option.label=WebInspector.UIString("Hex Colors");this.settingsSelectElement.appendChild(option);option=document.createElement("option");option.value=WebInspector.Color.Format.RGB;option.label=WebInspector.UIString("RGB Colors");this.settingsSelectElement.appendChild(option);option=document.createElement("option");option.value=WebInspector.Color.Format.HSL;option.label=WebInspector.UIString("HSL Colors");this.settingsSelectElement.appendChild(option);var muteEventListener=function(event){event.consume(true);};this.settingsSelectElement.addEventListener("click",muteEventListener,true);this.settingsSelectElement.addEventListener("change",this._changeSetting.bind(this),false);this._updateColorFormatFilter();this.titleElement.appendChild(this.settingsSelectElement);this._elementStateButton=document.createElement("button");this._elementStateButton.className="pane-title-button element-state";this._elementStateButton.title=WebInspector.UIString("Toggle Element State");this._elementStateButton.addEventListener("click",this._toggleElementStatePane.bind(this),false);this.titleElement.appendChild(this._elementStateButton);var addButton=document.createElement("button");addButton.className="pane-title-button add";addButton.id="add-style-button-test-id";addButton.title=WebInspector.UIString("New Style Rule");addButton.addEventListener("click",this._createNewRule.bind(this),false);this.titleElement.appendChild(addButton);this._computedStylePane=computedStylePane;computedStylePane._stylesSidebarPane=this;this._setPseudoClassCallback=setPseudoClassCallback;this.element.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),true);WebInspector.settings.colorFormat.addChangeListener(this._colorFormatSettingChanged.bind(this));this._createElementStatePane();this.bodyElement.appendChild(this._elementStatePane);this._sectionsContainer=document.createElement("div");this.bodyElement.appendChild(this._sectionsContainer);this._spectrumHelper=new WebInspector.SpectrumPopupHelper();this._linkifier=new WebInspector.Linkifier(new WebInspector.Linkifier.DefaultCSSFormatter());WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.MediaQueryResultChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._attributeChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._attributeChanged,this);WebInspector.settings.showUserAgentStyles.addChangeListener(this._showUserAgentStylesSettingChanged.bind(this));this.element.addStyleClass("styles-pane");this.element.enableStyleClass("show-user-styles",WebInspector.settings.showUserAgentStyles.get());this.element.addEventListener("mousemove",this._mouseMovedOverElement.bind(this),false);document.body.addEventListener("keydown",this._keyDown.bind(this),false);document.body.addEventListener("keyup",this._keyUp.bind(this),false);}
+title=title.replace(/Prototype$/,"");var section=new WebInspector.ObjectPropertiesSection(prototype,title);this.sections.push(section);body.appendChild(section.element);}}},__proto__:WebInspector.SidebarPane.prototype};WebInspector.RenderingOptionsView=function()
+{WebInspector.View.call(this);this.registerRequiredCSS("helpScreen.css");this.element.classList.add("help-indent-labels");var div=this.element.createChild("div","settings-tab help-content help-container");div.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show paint rectangles"),WebInspector.settings.showPaintRects));div.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show composited layer borders"),WebInspector.settings.showDebugBorders));div.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show FPS meter"),WebInspector.settings.showFPSCounter));div.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable continuous page repainting"),WebInspector.settings.continuousPainting));var child=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show potential scroll bottlenecks"),WebInspector.settings.showScrollBottleneckRects);child.title=WebInspector.UIString("Shows areas of the page that slow down scrolling:\nTouch and mousewheel event listeners can delay scrolling.\nSome areas need to repaint their content when scrolled.");div.appendChild(child);}
+WebInspector.RenderingOptionsView.prototype={__proto__:WebInspector.View.prototype};WebInspector.StylesSidebarPane=function(computedStylePane,setPseudoClassCallback)
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Styles"));this._elementStateButton=document.createElement("button");this._elementStateButton.className="pane-title-button element-state";this._elementStateButton.title=WebInspector.UIString("Toggle Element State");this._elementStateButton.addEventListener("click",this._toggleElementStatePane.bind(this),false);this.titleElement.appendChild(this._elementStateButton);var addButton=document.createElement("button");addButton.className="pane-title-button add";addButton.id="add-style-button-test-id";addButton.title=WebInspector.UIString("New Style Rule");addButton.addEventListener("click",this._createNewRule.bind(this),false);this.titleElement.appendChild(addButton);this._computedStylePane=computedStylePane;computedStylePane._stylesSidebarPane=this;this._setPseudoClassCallback=setPseudoClassCallback;this.element.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),true);WebInspector.settings.colorFormat.addChangeListener(this._colorFormatSettingChanged.bind(this));this._createElementStatePane();this.bodyElement.appendChild(this._elementStatePane);this._sectionsContainer=document.createElement("div");this.bodyElement.appendChild(this._sectionsContainer);this._spectrumHelper=new WebInspector.SpectrumPopupHelper();this._linkifier=new WebInspector.Linkifier(new WebInspector.Linkifier.DefaultCSSFormatter());WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.MediaQueryResultChanged,this._styleSheetOrMediaQueryResultChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._attributeChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._attributeChanged,this);WebInspector.settings.showUserAgentStyles.addChangeListener(this._showUserAgentStylesSettingChanged.bind(this));WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameResized,this._frameResized,this);this.element.classList.add("styles-pane");this.element.enableStyleClass("show-user-styles",WebInspector.settings.showUserAgentStyles.get());this.element.addEventListener("mousemove",this._mouseMovedOverElement.bind(this),false);document.body.addEventListener("keydown",this._keyDown.bind(this),false);document.body.addEventListener("keyup",this._keyUp.bind(this),false);}
 WebInspector.StylesSidebarPane.PseudoIdNames=["","first-line","first-letter","before","after","selection","","-webkit-scrollbar","-webkit-file-upload-button","-webkit-input-placeholder","-webkit-slider-thumb","-webkit-search-cancel-button","-webkit-search-decoration","-webkit-search-results-decoration","-webkit-search-results-button","-webkit-media-controls-panel","-webkit-media-controls-play-button","-webkit-media-controls-mute-button","-webkit-media-controls-timeline","-webkit-media-controls-timeline-container","-webkit-media-controls-volume-slider","-webkit-media-controls-volume-slider-container","-webkit-media-controls-current-time-display","-webkit-media-controls-time-remaining-display","-webkit-media-controls-seek-back-button","-webkit-media-controls-seek-forward-button","-webkit-media-controls-fullscreen-button","-webkit-media-controls-rewind-button","-webkit-media-controls-return-to-realtime-button","-webkit-media-controls-toggle-closed-captions-button","-webkit-media-controls-status-display","-webkit-scrollbar-thumb","-webkit-scrollbar-button","-webkit-scrollbar-track","-webkit-scrollbar-track-piece","-webkit-scrollbar-corner","-webkit-resizer","-webkit-inner-spin-button","-webkit-outer-spin-button"];WebInspector.StylesSidebarPane._colorRegex=/((?:rgb|hsl)a?\([^)]+\)|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{3}|\b\w+\b(?!-))/g;WebInspector.StylesSidebarPane.createExclamationMark=function(property)
 {var exclamationElement=document.createElement("div");exclamationElement.className="exclamation-mark"+(WebInspector.StylesSidebarPane._ignoreErrorsForProperty(property)?"":" warning-icon-small");exclamationElement.title=WebInspector.CSSMetadata.cssPropertiesMetainfo.keySet()[property.name.toLowerCase()]?WebInspector.UIString("Invalid property value."):WebInspector.UIString("Unknown property name.");return exclamationElement;}
 WebInspector.StylesSidebarPane._colorFormat=function(color)
@@ -248,10 +382,10 @@
 return true;if(hasUnknownVendorPrefix(value))
 return true;return false;}
 WebInspector.StylesSidebarPane.prototype={_contextMenuEventFired:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(event.target);contextMenu.show();},get _forcedPseudoClasses()
+{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems((event.target));contextMenu.show();},get _forcedPseudoClasses()
 {return this.node?(this.node.getUserProperty("pseudoState")||undefined):undefined;},_updateForcedPseudoStateInputs:function()
 {if(!this.node)
-return;var hasPseudoType=!!this.node.pseudoType();this._elementStateButton.enableStyleClass("hidden",hasPseudoType);this._elementStatePane.enableStyleClass("expanded",!hasPseudoType&&this._elementStateButton.hasStyleClass("toggled"));var nodePseudoState=this._forcedPseudoClasses;if(!nodePseudoState)
+return;var hasPseudoType=!!this.node.pseudoType();this._elementStateButton.enableStyleClass("hidden",hasPseudoType);this._elementStatePane.enableStyleClass("expanded",!hasPseudoType&&this._elementStateButton.classList.contains("toggled"));var nodePseudoState=this._forcedPseudoClasses;if(!nodePseudoState)
 nodePseudoState=[];var inputs=this._elementStatePane.inputs;for(var i=0;i<inputs.length;++i)
 inputs[i].checked=nodePseudoState.indexOf(inputs[i].state)>=0;},update:function(node,forceUpdate)
 {this._spectrumHelper.hide();this._discardElementUnderMouse();var refresh=false;if(forceUpdate)
@@ -288,7 +422,11 @@
 userCallback();return null;}
 return this.node;},_styleSheetOrMediaQueryResultChanged:function()
 {if(this._userOperation||this._isEditingStyle)
-return;this._rebuildUpdate();},_attributeChanged:function(event)
+return;this._rebuildUpdate();},_frameResized:function()
+{function refreshContents()
+{this._rebuildUpdate();delete this._activeTimer;}
+if(this._activeTimer)
+clearTimeout(this._activeTimer);this._activeTimer=setTimeout(refreshContents.bind(this),100);},_attributeChanged:function(event)
 {if(this._isEditingStyle||this._userOperation)
 return;if(!this._canAffectCurrentStyles(event.data.node))
 return;this._rebuildUpdate();},_canAffectCurrentStyles:function(node)
@@ -350,16 +488,13 @@
 {var properties=style.allProperties;for(var i=0;i<properties.length;++i){var property=properties[i];if(property.isLive&&WebInspector.CSSMetadata.isPropertyInherited(property.name))
 return true;}
 return false;},_colorFormatSettingChanged:function(event)
-{this._updateColorFormatFilter();for(var pseudoId in this.sections){var sections=this.sections[pseudoId];for(var i=0;i<sections.length;++i)
-sections[i].update(true);}},_updateColorFormatFilter:function()
-{var selectedIndex=0;var value=WebInspector.settings.colorFormat.get();var options=this.settingsSelectElement.options;for(var i=0;i<options.length;++i){if(options[i].value===value){selectedIndex=i;break;}}
-this.settingsSelectElement.selectedIndex=selectedIndex;},_changeSetting:function(event)
-{var options=this.settingsSelectElement.options;var selectedOption=options[this.settingsSelectElement.selectedIndex];WebInspector.settings.colorFormat.set(selectedOption.value);},_createNewRule:function(event)
+{for(var pseudoId in this.sections){var sections=this.sections[pseudoId];for(var i=0;i<sections.length;++i)
+sections[i].update(true);}},_createNewRule:function(event)
 {event.consume();this.expand();this.addBlankSection().startEditingSelector();},addBlankSection:function()
-{var blankSection=new WebInspector.BlankStylePropertiesSection(this,this.node?this.node.appropriateSelectorFor(true):"");var elementStyleSection=this.sections[0][1];this._sectionsContainer.insertBefore(blankSection.element,elementStyleSection.element.nextSibling);this.sections[0].splice(2,0,blankSection);return blankSection;},removeSection:function(section)
+{var blankSection=new WebInspector.BlankStylePropertiesSection(this,this.node?WebInspector.DOMPresentationUtils.appropriateSelectorFor(this.node,true):"");var elementStyleSection=this.sections[0][1];this._sectionsContainer.insertBefore(blankSection.element,elementStyleSection.element.nextSibling);this.sections[0].splice(2,0,blankSection);return blankSection;},removeSection:function(section)
 {for(var pseudoId in this.sections){var sections=this.sections[pseudoId];var index=sections.indexOf(section);if(index===-1)
 continue;sections.splice(index,1);section.element.remove();}},_toggleElementStatePane:function(event)
-{event.consume();var buttonToggled=!this._elementStateButton.hasStyleClass("toggled");if(buttonToggled)
+{event.consume();var buttonToggled=!this._elementStateButton.classList.contains("toggled");if(buttonToggled)
 this.expand();this._elementStateButton.enableStyleClass("toggled",buttonToggled);this._elementStatePane.enableStyleClass("expanded",buttonToggled);},_createElementStatePane:function()
 {this._elementStatePane=document.createElement("div");this._elementStatePane.className="styles-element-state-pane source-code";var table=document.createElement("table");var inputs=[];this._elementStatePane.inputs=inputs;function clickListener(event)
 {var node=this._validateNode();if(!node)
@@ -370,20 +505,15 @@
 {var showStyles=(event.data);this.element.enableStyleClass("show-user-styles",showStyles);},willHide:function()
 {this._spectrumHelper.hide();this._discardElementUnderMouse();},_discardElementUnderMouse:function()
 {if(this._elementUnderMouse)
-this._elementUnderMouse.removeStyleClass("styles-panel-hovered");delete this._elementUnderMouse;},_mouseMovedOverElement:function(e)
+this._elementUnderMouse.classList.remove("styles-panel-hovered");delete this._elementUnderMouse;},_mouseMovedOverElement:function(e)
 {if(this._elementUnderMouse&&e.target!==this._elementUnderMouse)
 this._discardElementUnderMouse();this._elementUnderMouse=e.target;if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(e))
-this._elementUnderMouse.addStyleClass("styles-panel-hovered");},_keyDown:function(e)
+this._elementUnderMouse.classList.add("styles-panel-hovered");},_keyDown:function(e)
 {if((!WebInspector.isMac()&&e.keyCode===WebInspector.KeyboardShortcut.Keys.Ctrl.code)||(WebInspector.isMac()&&e.keyCode===WebInspector.KeyboardShortcut.Keys.Meta.code)){if(this._elementUnderMouse)
-this._elementUnderMouse.addStyleClass("styles-panel-hovered");}},_keyUp:function(e)
+this._elementUnderMouse.classList.add("styles-panel-hovered");}},_keyUp:function(e)
 {if((!WebInspector.isMac()&&e.keyCode===WebInspector.KeyboardShortcut.Keys.Ctrl.code)||(WebInspector.isMac()&&e.keyCode===WebInspector.KeyboardShortcut.Keys.Meta.code)){this._discardElementUnderMouse();}},__proto__:WebInspector.SidebarPane.prototype}
 WebInspector.ComputedStyleSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Computed Style"));var showInheritedCheckbox=new WebInspector.Checkbox(WebInspector.UIString("Show inherited"),"sidebar-pane-subtitle");this.titleElement.appendChild(showInheritedCheckbox.element);if(WebInspector.settings.showInheritedComputedStyleProperties.get()){this.bodyElement.addStyleClass("show-inherited");showInheritedCheckbox.checked=true;}
-function showInheritedToggleFunction()
-{WebInspector.settings.showInheritedComputedStyleProperties.set(showInheritedCheckbox.checked);if(WebInspector.settings.showInheritedComputedStyleProperties.get())
-this.bodyElement.addStyleClass("show-inherited");else
-this.bodyElement.removeStyleClass("show-inherited");}
-showInheritedCheckbox.addEventListener(showInheritedToggleFunction.bind(this));}
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Computed Style"));}
 WebInspector.ComputedStyleSidebarPane.prototype={wasShown:function()
 {WebInspector.SidebarPane.prototype.wasShown.call(this);if(!this._hasFreshContent)
 this.prepareContent();},prepareContent:function(callback)
@@ -391,7 +521,7 @@
 callback();delete this._hasFreshContent;}
 this._stylesSidebarPane._refreshUpdate(null,true,wrappedCallback.bind(this));},__proto__:WebInspector.SidebarPane.prototype}
 WebInspector.StylePropertiesSection=function(parentPane,styleRule,editable,isInherited)
-{WebInspector.PropertiesSection.call(this,"");this._parentPane=parentPane;this.styleRule=styleRule;this.rule=this.styleRule.rule;this.editable=editable;this.isInherited=isInherited;var extraClasses=(this.rule&&(this.rule.isUser||this.rule.isUserAgent)?" user-rule":"");this.element.className="styles-section matched-styles monospace"+extraClasses;this.propertiesElement.removeStyleClass("properties-tree");if(styleRule.media){for(var i=styleRule.media.length-1;i>=0;--i){var media=styleRule.media[i];var mediaDataElement=this.titleElement.createChild("div","media");var mediaText;switch(media.source){case WebInspector.CSSMedia.Source.LINKED_SHEET:case WebInspector.CSSMedia.Source.INLINE_SHEET:mediaText="media=\""+media.text+"\"";break;case WebInspector.CSSMedia.Source.MEDIA_RULE:mediaText="@media "+media.text;break;case WebInspector.CSSMedia.Source.IMPORT_RULE:mediaText="@import "+media.text;break;}
+{WebInspector.PropertiesSection.call(this,"");this._parentPane=parentPane;this.styleRule=styleRule;this.rule=this.styleRule.rule;this.editable=editable;this.isInherited=isInherited;var extraClasses=(this.rule&&(this.rule.isUser||this.rule.isUserAgent)?" user-rule":"");this.element.className="styles-section matched-styles monospace"+extraClasses;this.propertiesElement.classList.remove("properties-tree");if(styleRule.media){for(var i=styleRule.media.length-1;i>=0;--i){var media=styleRule.media[i];var mediaDataElement=this.titleElement.createChild("div","media");var mediaText;switch(media.source){case WebInspector.CSSMedia.Source.LINKED_SHEET:case WebInspector.CSSMedia.Source.INLINE_SHEET:mediaText="media=\""+media.text+"\"";break;case WebInspector.CSSMedia.Source.MEDIA_RULE:mediaText="@media "+media.text;break;case WebInspector.CSSMedia.Source.IMPORT_RULE:mediaText="@import "+media.text;break;}
 if(media.sourceURL){var refElement=mediaDataElement.createChild("div","subtitle");var rawLocation;var mediaHeader;if(media.range){mediaHeader=media.header();if(mediaHeader){var lineNumber=media.lineNumberInSource();var columnNumber=media.columnNumberInSource();console.assert(typeof lineNumber!=="undefined"&&typeof columnNumber!=="undefined");rawLocation=new WebInspector.CSSLocation(media.sourceURL,lineNumber,columnNumber);}}
 var anchor;if(rawLocation)
 anchor=this._parentPane._linkifier.linkifyCSSLocation(mediaHeader.id,rawLocation);else{anchor=WebInspector.linkifyResourceAsNode(media.sourceURL,undefined,"subtitle",media.sourceURL);}
@@ -400,11 +530,11 @@
 var selectorContainer=document.createElement("div");this._selectorElement=document.createElement("span");this._selectorElement.textContent=styleRule.selectorText;selectorContainer.appendChild(this._selectorElement);var openBrace=document.createElement("span");openBrace.textContent=" {";selectorContainer.appendChild(openBrace);selectorContainer.addEventListener("mousedown",this._handleEmptySpaceMouseDown.bind(this),false);selectorContainer.addEventListener("click",this._handleSelectorContainerClick.bind(this),false);var closeBrace=document.createElement("div");closeBrace.textContent="}";this.element.appendChild(closeBrace);this._selectorElement.addEventListener("click",this._handleSelectorClick.bind(this),false);this.element.addEventListener("mousedown",this._handleEmptySpaceMouseDown.bind(this),false);this.element.addEventListener("click",this._handleEmptySpaceClick.bind(this),false);if(this.rule){if(this.rule.isUserAgent||this.rule.isUser)
 this.editable=false;else{if(this.rule.id)
 this.navigable=!!this.rule.resourceURL();}
-this.titleElement.addStyleClass("styles-selector");}
+this.titleElement.classList.add("styles-selector");}
 this._usedProperties=styleRule.usedProperties;this._selectorRefElement=document.createElement("div");this._selectorRefElement.className="subtitle";this._updateRuleOrigin();selectorContainer.insertBefore(this._selectorRefElement,selectorContainer.firstChild);this.titleElement.appendChild(selectorContainer);this._selectorContainer=selectorContainer;if(isInherited)
-this.element.addStyleClass("show-inherited");if(this.navigable)
-this.element.addStyleClass("navigable");if(!this.editable)
-this.element.addStyleClass("read-only");}
+this.element.classList.add("styles-show-inherited");if(this.navigable)
+this.element.classList.add("navigable");if(!this.editable)
+this.element.classList.add("read-only");}
 WebInspector.StylePropertiesSection.prototype={get pane()
 {return this._parentPane;},collapse:function()
 {},isPropertyInherited:function(propertyName)
@@ -460,9 +590,9 @@
 {if(!this.editable)
 return;if(!window.getSelection().isCollapsed)
 return;if(this._checkWillCancelEditing())
-return;if(event.target.hasStyleClass("header")||this.element.hasStyleClass("read-only")||event.target.enclosingNodeOrSelfWithClass("media")){event.consume();return;}
+return;if(event.target.classList.contains("header")||this.element.classList.contains("read-only")||event.target.enclosingNodeOrSelfWithClass("media")){event.consume();return;}
 this.expand();this.addNewBlankProperty().startEditing();},_handleSelectorClick:function(event)
-{if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&this.navigable&&event.target.hasStyleClass("simple-selector")){var index=event.target._selectorIndex;var range=this.rule.selectors[index].range;var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.rule.id.styleSheetId);var uiLocation=styleSheetHeader.rawLocationToUILocation(this.rule.lineNumberInSource(index),this.rule.columnNumberInSource(index));if(uiLocation)
+{if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&this.navigable&&event.target.classList.contains("simple-selector")){var index=event.target._selectorIndex;var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.rule.id.styleSheetId);var uiLocation=styleSheetHeader.rawLocationToUILocation(this.rule.lineNumberInSource(index),this.rule.columnNumberInSource(index));if(uiLocation)
 WebInspector.panel("sources").showUILocation(uiLocation);return;}
 this._startEditingOnMouseEvent();event.consume(true);},_startEditingOnMouseEvent:function()
 {if(!this.editable)
@@ -470,25 +600,31 @@
 if(!this.rule)
 return;this.startEditingSelector();},startEditingSelector:function()
 {var element=this._selectorElement;if(WebInspector.isBeingEdited(element))
-return;element.scrollIntoViewIfNeeded(false);element.textContent=element.textContent;var config=new WebInspector.EditingConfig(this.editingSelectorCommitted.bind(this),this.editingSelectorCancelled.bind(this));WebInspector.startEditing(this._selectorElement,config);window.getSelection().setBaseAndExtent(element,0,element,1);},_moveEditorFromSelector:function(moveDirection)
+return;element.scrollIntoViewIfNeeded(false);element.textContent=element.textContent;var config=new WebInspector.EditingConfig(this.editingSelectorCommitted.bind(this),this.editingSelectorCancelled.bind(this));WebInspector.startEditing(this._selectorElement,config);window.getSelection().setBaseAndExtent(element,0,element,1);this._parentPane._isEditingStyle=true;},_moveEditorFromSelector:function(moveDirection)
 {this._markSelectorMatches();if(!moveDirection)
 return;if(moveDirection==="forward"){this.expand();var firstChild=this.propertiesTreeOutline.children[0];while(firstChild&&firstChild.inherited)
 firstChild=firstChild.nextSibling;if(!firstChild)
 this.addNewBlankProperty().startEditing();else
 firstChild.startEditing(firstChild.nameElement);}else{var previousSection=this.previousEditableSibling();if(!previousSection)
 return;previousSection.expand();previousSection.addNewBlankProperty().startEditing();}},editingSelectorCommitted:function(element,newContent,oldContent,context,moveDirection)
-{if(newContent)
-newContent=newContent.trim();if(newContent===oldContent){this._selectorElement.textContent=newContent;return this._moveEditorFromSelector(moveDirection);}
+{this._editingSelectorEnded();if(newContent)
+newContent=newContent.trim();if(newContent===oldContent){this._selectorElement.textContent=newContent;this._moveEditorFromSelector(moveDirection);return;}
 var selectedNode=this._parentPane.node;function successCallback(newRule)
-{var doesAffectSelectedNode=newRule.matchingSelectors.length>0;if(!doesAffectSelectedNode){this.noAffect=true;this.element.addStyleClass("no-affect");}else{delete this.noAffect;this.element.removeStyleClass("no-affect");}
+{var doesAffectSelectedNode=newRule.matchingSelectors.length>0;if(!doesAffectSelectedNode){this.noAffect=true;this.element.classList.add("no-affect");}else{delete this.noAffect;this.element.classList.remove("no-affect");}
 this.rule=newRule;this.styleRule={section:this,style:newRule.style,selectorText:newRule.selectorText,media:newRule.media,sourceURL:newRule.resourceURL(),rule:newRule};this._parentPane.update(selectedNode);this._updateRuleOrigin();finishOperationAndMoveEditor.call(this,moveDirection);}
 function finishOperationAndMoveEditor(direction)
 {delete this._parentPane._userOperation;this._moveEditorFromSelector(direction);}
 this._parentPane._userOperation=true;WebInspector.cssModel.setRuleSelector(this.rule.id,selectedNode?selectedNode.id:0,newContent,successCallback.bind(this),finishOperationAndMoveEditor.bind(this,moveDirection));},_updateRuleOrigin:function()
-{this._selectorRefElement.removeChildren();this._selectorRefElement.appendChild(this._createRuleOriginNode());},editingSelectorCancelled:function()
-{this._markSelectorMatches();},__proto__:WebInspector.PropertiesSection.prototype}
+{this._selectorRefElement.removeChildren();this._selectorRefElement.appendChild(this._createRuleOriginNode());},_editingSelectorEnded:function()
+{delete this._parentPane._isEditingStyle;},editingSelectorCancelled:function()
+{this._editingSelectorEnded();this._markSelectorMatches();},__proto__:WebInspector.PropertiesSection.prototype}
 WebInspector.ComputedStylePropertiesSection=function(stylesPane,styleRule,usedProperties)
-{WebInspector.PropertiesSection.call(this,"");this.headerElement.addStyleClass("hidden");this.element.className="styles-section monospace read-only computed-style";this._stylesPane=stylesPane;this.styleRule=styleRule;this._usedProperties=usedProperties;this._alwaysShowComputedProperties={"display":true,"height":true,"width":true};this.computedStyle=true;this._propertyTreeElements={};this._expandedPropertyNames={};}
+{WebInspector.PropertiesSection.call(this,"");var showInheritedCheckbox=new WebInspector.Checkbox(WebInspector.UIString("Show inherited properties"),"sidebar-pane-subtitle");this.headerElement.appendChild(showInheritedCheckbox.element);this._hasFreshContent=false;function showInheritedToggleFunction()
+{var showInherited=showInheritedCheckbox.checked;WebInspector.settings.showInheritedComputedStyleProperties.set(showInherited);if(showInherited)
+this.element.classList.add("styles-show-inherited");else
+this.element.classList.remove("styles-show-inherited");}
+showInheritedCheckbox.addEventListener(showInheritedToggleFunction.bind(this));this.element.className="styles-section monospace read-only computed-style";if(WebInspector.settings.showInheritedComputedStyleProperties.get()){this.element.classList.add("styles-show-inherited");showInheritedCheckbox.checked=true;}
+this._stylesPane=stylesPane;this.styleRule=styleRule;this._usedProperties=usedProperties;this._alwaysShowComputedProperties={"display":true,"height":true,"width":true};this.computedStyle=true;this._propertyTreeElements={};this._expandedPropertyNames={};}
 WebInspector.ComputedStylePropertiesSection.prototype={collapse:function(dontRememberState)
 {},_isPropertyInherited:function(propertyName)
 {var canonicalName=WebInspector.CSSMetadata.canonicalPropertyName(propertyName);return!(canonicalName in this._usedProperties)&&!(canonicalName in this._alwaysShowComputedProperties);},update:function()
@@ -504,26 +640,26 @@
 continue;for(var j=0;j<section.uniqueProperties.length;++j){var property=section.uniqueProperties[j];if(property.disabled)
 continue;if(section.isInherited&&!WebInspector.CSSMetadata.isPropertyInherited(property.name))
 continue;var treeElement=this._propertyTreeElements[property.name.toLowerCase()];if(treeElement){var fragment=document.createDocumentFragment();var selector=fragment.createChild("span");selector.style.color="gray";selector.textContent=section.styleRule.selectorText;fragment.appendChild(document.createTextNode(" - "+property.value+" "));var subtitle=fragment.createChild("span");subtitle.style.float="right";subtitle.appendChild(section._createRuleOriginNode());var childElement=new TreeElement(fragment,null,false);treeElement.appendChild(childElement);if(property.inactive||section.isPropertyOverloaded(property.name))
-childElement.listItemElement.addStyleClass("overloaded");if(!property.parsedOk){childElement.listItemElement.addStyleClass("not-parsed-ok");childElement.listItemElement.insertBefore(WebInspector.StylesSidebarPane.createExclamationMark(property),childElement.listItemElement.firstChild);if(WebInspector.StylesSidebarPane._ignoreErrorsForProperty(property))
-childElement.listItemElement.addStyleClass("has-ignorable-error");}}}}
+childElement.listItemElement.classList.add("overloaded");if(!property.parsedOk){childElement.listItemElement.classList.add("not-parsed-ok");childElement.listItemElement.insertBefore(WebInspector.StylesSidebarPane.createExclamationMark(property),childElement.listItemElement.firstChild);if(WebInspector.StylesSidebarPane._ignoreErrorsForProperty(property))
+childElement.listItemElement.classList.add("has-ignorable-error");}}}}
 for(var name in this._expandedPropertyNames){if(name in this._propertyTreeElements)
 this._propertyTreeElements[name].expand();}},__proto__:WebInspector.PropertiesSection.prototype}
 WebInspector.BlankStylePropertiesSection=function(stylesPane,defaultSelectorText)
-{WebInspector.StylePropertiesSection.call(this,stylesPane,{selectorText:defaultSelectorText,rule:{isViaInspector:true}},true,false);this.element.addStyleClass("blank-section");}
+{WebInspector.StylePropertiesSection.call(this,stylesPane,{selectorText:defaultSelectorText,rule:{isViaInspector:true}},true,false);this.element.classList.add("blank-section");}
 WebInspector.BlankStylePropertiesSection.prototype={get isBlank()
 {return!this._normal;},expand:function()
 {if(!this.isBlank)
 WebInspector.StylePropertiesSection.prototype.expand.call(this);},editingSelectorCommitted:function(element,newContent,oldContent,context,moveDirection)
 {if(!this.isBlank){WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.call(this,element,newContent,oldContent,context,moveDirection);return;}
 function successCallback(newRule)
-{var doesSelectorAffectSelectedNode=newRule.matchingSelectors.length>0;var styleRule={section:this,style:newRule.style,selectorText:newRule.selectorText,sourceURL:newRule.resourceURL(),rule:newRule};this.makeNormal(styleRule);if(!doesSelectorAffectSelectedNode){this.noAffect=true;this.element.addStyleClass("no-affect");}
+{var doesSelectorAffectSelectedNode=newRule.matchingSelectors.length>0;var styleRule={section:this,style:newRule.style,selectorText:newRule.selectorText,sourceURL:newRule.resourceURL(),rule:newRule};this.makeNormal(styleRule);if(!doesSelectorAffectSelectedNode){this.noAffect=true;this.element.classList.add("no-affect");}
 this._updateRuleOrigin();this.expand();if(this.element.parentElement)
-this._moveEditorFromSelector(moveDirection);this._markSelectorMatches();delete this._parentPane._userOperation;}
+this._moveEditorFromSelector(moveDirection);delete this._parentPane._userOperation;this._editingSelectorEnded();this._markSelectorMatches();}
 if(newContent)
 newContent=newContent.trim();this._parentPane._userOperation=true;WebInspector.cssModel.addRule(this.pane.node.id,newContent,successCallback.bind(this),this.editingSelectorCancelled.bind(this));},editingSelectorCancelled:function()
 {delete this._parentPane._userOperation;if(!this.isBlank){WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled.call(this);return;}
-this.pane.removeSection(this);},makeNormal:function(styleRule)
-{this.element.removeStyleClass("blank-section");this.styleRule=styleRule;this.rule=styleRule.rule;this._normal=true;},__proto__:WebInspector.StylePropertiesSection.prototype}
+this._editingSelectorEnded();this.pane.removeSection(this);},makeNormal:function(styleRule)
+{this.element.classList.remove("blank-section");this.styleRule=styleRule;this.rule=styleRule.rule;this._normal=true;},__proto__:WebInspector.StylePropertiesSection.prototype}
 WebInspector.StylePropertyTreeElementBase=function(styleRule,style,property,inherited,overloaded,hasChildren)
 {this._styleRule=styleRule;this.style=style;this.property=property;this._inherited=inherited;this._overloaded=overloaded;TreeElement.call(this,"",null,hasChildren);this.selectable=false;}
 WebInspector.StylePropertyTreeElementBase.prototype={node:function()
@@ -549,7 +685,7 @@
 return this.property.value;return text.substring(index+1).trim();},get parsedOk()
 {return this.property.parsedOk;},onattach:function()
 {this.updateTitle();},updateTitle:function()
-{var value=this.value;this.updateState();var nameElement=document.createElement("span");nameElement.className="webkit-css-property";nameElement.textContent=this.name;nameElement.title=this.property.propertyText;this.nameElement=nameElement;this._expandElement=document.createElement("span");this._expandElement.className="expand-element";var valueElement=document.createElement("span");valueElement.className="value";this.valueElement=valueElement;var cf=WebInspector.Color.Format;if(value){var self=this;function processValue(regex,processor,nextProcessor,valueText)
+{var value=this.value;this.updateState();var nameElement=document.createElement("span");nameElement.className="webkit-css-property";nameElement.textContent=this.name;nameElement.title=this.property.propertyText;this.nameElement=nameElement;this._expandElement=document.createElement("span");this._expandElement.className="expand-element";var valueElement=document.createElement("span");valueElement.className="value";this.valueElement=valueElement;function processValue(regex,processor,nextProcessor,valueText)
 {var container=document.createDocumentFragment();var items=valueText.replace(regex,"\0$1\0").split("\0");for(var i=0;i<items.length;++i){if((i%2)===0){if(nextProcessor)
 container.appendChild(nextProcessor(items[i]));else
 container.appendChild(document.createTextNode(items[i]));}else{var processedNode=processor(items[i]);if(processedNode)
@@ -557,51 +693,52 @@
 return container;}
 function linkifyURL(url)
 {var hrefUrl=url;var match=hrefUrl.match(/['"]?([^'"]+)/);if(match)
-hrefUrl=match[1];var container=document.createDocumentFragment();container.appendChild(document.createTextNode("url("));if(self._styleRule.sourceURL)
-hrefUrl=WebInspector.ParsedURL.completeURL(self._styleRule.sourceURL,hrefUrl);else if(self.node())
-hrefUrl=self.node().resolveURL(hrefUrl);var hasResource=!!WebInspector.resourceForURL(hrefUrl);container.appendChild(WebInspector.linkifyURLAsNode(hrefUrl,url,undefined,!hasResource));container.appendChild(document.createTextNode(")"));return container;}
-function processColor(text)
+hrefUrl=match[1];var container=document.createDocumentFragment();container.appendChild(document.createTextNode("url("));if(this._styleRule.sourceURL)
+hrefUrl=WebInspector.ParsedURL.completeURL(this._styleRule.sourceURL,hrefUrl);else if(this.node())
+hrefUrl=this.node().resolveURL(hrefUrl);var hasResource=hrefUrl&&!!WebInspector.resourceForURL(hrefUrl);container.appendChild(WebInspector.linkifyURLAsNode(hrefUrl||url,url,undefined,!hasResource));container.appendChild(document.createTextNode(")"));return container;}
+if(value){var colorProcessor=processValue.bind(this,WebInspector.StylesSidebarPane._colorRegex,this._processColor.bind(this,nameElement,valueElement),null);valueElement.appendChild(processValue(/url\(\s*([^)]+)\s*\)/g,linkifyURL.bind(this),WebInspector.CSSMetadata.isColorAwareProperty(this.name)&&this.parsedOk?colorProcessor:null,value));}
+this.listItemElement.removeChildren();nameElement.normalize();valueElement.normalize();if(!this.treeOutline)
+return;if(this.disabled)
+this.listItemElement.createChild("span","styles-clipboard-only").createTextChild("/* ");this.listItemElement.appendChild(nameElement);this.listItemElement.appendChild(document.createTextNode(": "));this.listItemElement.appendChild(this._expandElement);this.listItemElement.appendChild(valueElement);this.listItemElement.appendChild(document.createTextNode(";"));if(this.disabled)
+this.listItemElement.createChild("span","styles-clipboard-only").createTextChild(" */");if(!this.parsedOk){this.hasChildren=false;this.listItemElement.classList.add("not-parsed-ok");this.listItemElement.insertBefore(WebInspector.StylesSidebarPane.createExclamationMark(this.property),this.listItemElement.firstChild);}
+if(this.property.inactive)
+this.listItemElement.classList.add("inactive");},_processColor:function(nameElement,valueElement,text)
 {var color=WebInspector.Color.parse(text);if(!color)
-return document.createTextNode(text);var format=WebInspector.StylesSidebarPane._colorFormat(color);var spectrumHelper=self.editablePane()&&self.editablePane()._spectrumHelper;var spectrum=spectrumHelper?spectrumHelper.spectrum():null;var colorSwatch=new WebInspector.ColorSwatch();colorSwatch.setColorString(text);colorSwatch.element.addEventListener("click",swatchClick,false);var scrollerElement;function spectrumChanged(e)
-{var colorString=(e.data);spectrum.displayText=colorString;colorValueElement.textContent=colorString;colorSwatch.setColorString(colorString);self.applyStyleText(nameElement.textContent+": "+valueElement.textContent,false,false,false);}
+return document.createTextNode(text);var format=WebInspector.StylesSidebarPane._colorFormat(color);var spectrumHelper=this.editablePane()&&this.editablePane()._spectrumHelper;var spectrum=spectrumHelper?spectrumHelper.spectrum():null;var isEditable=!!(this._styleRule&&this._styleRule.editable!==false);var colorSwatch=new WebInspector.ColorSwatch(!isEditable);colorSwatch.setColorString(text);colorSwatch.element.addEventListener("click",swatchClick.bind(this),false);var scrollerElement;var boundSpectrumChanged=spectrumChanged.bind(this);var boundSpectrumHidden=spectrumHidden.bind(this);function spectrumChanged(e)
+{var colorString=(e.data);spectrum.displayText=colorString;colorValueElement.textContent=colorString;colorSwatch.setColorString(colorString);this.applyStyleText(nameElement.textContent+": "+valueElement.textContent,false,false,false);}
 function spectrumHidden(event)
 {if(scrollerElement)
-scrollerElement.removeEventListener("scroll",repositionSpectrum,false);var commitEdit=event.data;var propertyText=!commitEdit&&self.originalPropertyText?self.originalPropertyText:(nameElement.textContent+": "+valueElement.textContent);self.applyStyleText(propertyText,true,true,false);spectrum.removeEventListener(WebInspector.Spectrum.Events.ColorChanged,spectrumChanged);spectrumHelper.removeEventListener(WebInspector.SpectrumPopupHelper.Events.Hidden,spectrumHidden);delete self.editablePane()._isEditingStyle;delete self.originalPropertyText;}
+scrollerElement.removeEventListener("scroll",repositionSpectrum,false);var commitEdit=event.data;var propertyText=!commitEdit&&this.originalPropertyText?this.originalPropertyText:(nameElement.textContent+": "+valueElement.textContent);this.applyStyleText(propertyText,true,true,false);spectrum.removeEventListener(WebInspector.Spectrum.Events.ColorChanged,boundSpectrumChanged);spectrumHelper.removeEventListener(WebInspector.SpectrumPopupHelper.Events.Hidden,boundSpectrumHidden);delete this.editablePane()._isEditingStyle;delete this.originalPropertyText;}
 function repositionSpectrum()
 {spectrumHelper.reposition(colorSwatch.element);}
 function swatchClick(e)
-{if(!spectrumHelper||e.shiftKey)
-changeColorDisplay(e);else{var visible=spectrumHelper.toggle(colorSwatch.element,color,format);if(visible){spectrum.displayText=color.toString(format);self.originalPropertyText=self.property.propertyText;self.editablePane()._isEditingStyle=true;spectrum.addEventListener(WebInspector.Spectrum.Events.ColorChanged,spectrumChanged);spectrumHelper.addEventListener(WebInspector.SpectrumPopupHelper.Events.Hidden,spectrumHidden);scrollerElement=colorSwatch.element.enclosingNodeOrSelfWithClass("scroll-target");if(scrollerElement)
+{e.consume(true);if(!spectrumHelper||e.shiftKey){changeColorDisplay();return;}
+if(!isEditable)
+return;var visible=spectrumHelper.toggle(colorSwatch.element,color,format);if(visible){spectrum.displayText=color.toString(format);this.originalPropertyText=this.property.propertyText;this.editablePane()._isEditingStyle=true;spectrum.addEventListener(WebInspector.Spectrum.Events.ColorChanged,boundSpectrumChanged);spectrumHelper.addEventListener(WebInspector.SpectrumPopupHelper.Events.Hidden,boundSpectrumHidden);scrollerElement=colorSwatch.element.enclosingNodeOrSelfWithClass("scroll-target");if(scrollerElement)
 scrollerElement.addEventListener("scroll",repositionSpectrum,false);else
 console.error("Unable to handle color picker scrolling");}}
-e.consume(true);}
 var colorValueElement=document.createElement("span");colorValueElement.textContent=color.toString(format);function nextFormat(curFormat)
-{switch(curFormat){case cf.Original:return!color.hasAlpha()?cf.RGB:cf.RGBA;case cf.RGB:case cf.RGBA:return!color.hasAlpha()?cf.HSL:cf.HSLA;case cf.HSL:case cf.HSLA:if(color.nickname())
+{var cf=WebInspector.Color.Format;switch(curFormat){case cf.Original:return!color.hasAlpha()?cf.RGB:cf.RGBA;case cf.RGB:case cf.RGBA:return!color.hasAlpha()?cf.HSL:cf.HSLA;case cf.HSL:case cf.HSLA:if(color.nickname())
 return cf.Nickname;if(!color.hasAlpha())
 return color.canBeShortHex()?cf.ShortHEX:cf.HEX;else
 return cf.Original;case cf.ShortHEX:return cf.HEX;case cf.HEX:return cf.Original;case cf.Nickname:if(!color.hasAlpha())
 return color.canBeShortHex()?cf.ShortHEX:cf.HEX;else
 return cf.Original;default:return cf.RGBA;}}
-function changeColorDisplay(event)
+function changeColorDisplay()
 {do{format=nextFormat(format);var currentValue=color.toString(format);}while(currentValue===colorValueElement.textContent);colorValueElement.textContent=currentValue;}
-var container=document.createElement("nobr");container.appendChild(colorSwatch.element);container.appendChild(colorValueElement);return container;}
-var colorProcessor=processValue.bind(window,WebInspector.StylesSidebarPane._colorRegex,processColor,null);valueElement.appendChild(processValue(/url\(\s*([^)]+)\s*\)/g,linkifyURL.bind(this),WebInspector.CSSMetadata.isColorAwareProperty(self.name)&&self.parsedOk?colorProcessor:null,value));}
-this.listItemElement.removeChildren();nameElement.normalize();valueElement.normalize();if(!this.treeOutline)
-return;this.listItemElement.appendChild(nameElement);this.listItemElement.appendChild(document.createTextNode(": "));this.listItemElement.appendChild(this._expandElement);this.listItemElement.appendChild(valueElement);this.listItemElement.appendChild(document.createTextNode(";"));if(!this.parsedOk){this.hasChildren=false;this.listItemElement.addStyleClass("not-parsed-ok");this.listItemElement.insertBefore(WebInspector.StylesSidebarPane.createExclamationMark(this.property),this.listItemElement.firstChild);}
-if(this.property.inactive)
-this.listItemElement.addStyleClass("inactive");},updateState:function()
+var container=document.createElement("nobr");container.appendChild(colorSwatch.element);container.appendChild(colorValueElement);return container;},updateState:function()
 {if(!this.listItemElement)
 return;if(this.style.isPropertyImplicit(this.name))
-this.listItemElement.addStyleClass("implicit");else
-this.listItemElement.removeStyleClass("implicit");if(this.hasIgnorableError())
-this.listItemElement.addStyleClass("has-ignorable-error");else
-this.listItemElement.removeStyleClass("has-ignorable-error");if(this.inherited)
-this.listItemElement.addStyleClass("inherited");else
-this.listItemElement.removeStyleClass("inherited");if(this.overloaded)
-this.listItemElement.addStyleClass("overloaded");else
-this.listItemElement.removeStyleClass("overloaded");if(this.disabled)
-this.listItemElement.addStyleClass("disabled");else
-this.listItemElement.removeStyleClass("disabled");},__proto__:TreeElement.prototype}
+this.listItemElement.classList.add("implicit");else
+this.listItemElement.classList.remove("implicit");if(this.hasIgnorableError())
+this.listItemElement.classList.add("has-ignorable-error");else
+this.listItemElement.classList.remove("has-ignorable-error");if(this.inherited)
+this.listItemElement.classList.add("inherited");else
+this.listItemElement.classList.remove("inherited");if(this.overloaded)
+this.listItemElement.classList.add("overloaded");else
+this.listItemElement.classList.remove("overloaded");if(this.disabled)
+this.listItemElement.classList.add("disabled");else
+this.listItemElement.classList.remove("disabled");},__proto__:TreeElement.prototype}
 WebInspector.ComputedStylePropertyTreeElement=function(stylesPane,styleRule,style,property,inherited)
 {WebInspector.StylePropertyTreeElementBase.call(this,styleRule,style,property,inherited,false,false);this._stylesPane=stylesPane;}
 WebInspector.ComputedStylePropertyTreeElement.prototype={node:function()
@@ -622,7 +759,7 @@
 section.pane.dispatchEventToListeners("style property toggled");this._updatePane();delete this._parentPane._userOperation;}
 this._parentPane._userOperation=true;this.property.setDisabled(disabled,callback.bind(this));event.consume();},onpopulate:function()
 {if(this.children.length||!this.isShorthand)
-return;var longhandProperties=this.style.longhandProperties(this.name);for(var i=0;i<longhandProperties.length;++i){var name=longhandProperties[i].name;var section=this.section();if(section){var inherited=section.isPropertyInherited(name);var overloaded=section.isPropertyOverloaded(name);}
+return;var longhandProperties=this.style.longhandProperties(this.name);for(var i=0;i<longhandProperties.length;++i){var name=longhandProperties[i].name;var inherited=false;var overloaded=false;var section=this.section();if(section){inherited=section.isPropertyInherited(name);overloaded=section.isPropertyOverloaded(name);}
 var liveProperty=this.style.getLiveProperty(name);if(!liveProperty)
 continue;var item=new WebInspector.StylePropertyTreeElement(this._parentPane,this._styleRule,this.style,liveProperty,false,inherited,overloaded);this.appendChild(item);}},onattach:function()
 {WebInspector.StylePropertyTreeElementBase.prototype.onattach.call(this);this.listItemElement.addEventListener("mousedown",this._mouseDown.bind(this));this.listItemElement.addEventListener("mouseup",this._resetMouseDownElement.bind(this));this.listItemElement.addEventListener("click",this._mouseClick.bind(this));},_mouseDown:function(event)
@@ -652,7 +789,7 @@
 splitFieldValue[i]=match[0];}
 return splitFieldValue.join("");}
 var context={expanded:this.expanded,hasChildren:this.hasChildren,isEditingName:isEditingName,previousContent:selectElement.textContent};this.hasChildren=false;if(selectElement.parentElement)
-selectElement.parentElement.addStyleClass("child-editing");selectElement.textContent=selectElement.textContent;function pasteHandler(context,event)
+selectElement.parentElement.classList.add("child-editing");selectElement.textContent=selectElement.textContent;function pasteHandler(context,event)
 {var data=event.clipboardData.getData("Text");if(!data)
 return;var colonIdx=data.indexOf(":");if(colonIdx<0)
 return;var name=data.substring(0,colonIdx).trim();var value=data.substring(colonIdx+1).trim();event.preventDefault();if(!("originalName"in context)){context.originalName=this.nameElement.textContent;context.originalValue=this.valueElement.textContent;}
@@ -665,7 +802,7 @@
 delete this.originalPropertyText;this._parentPane._isEditingStyle=true;if(selectElement.parentElement)
 selectElement.parentElement.scrollIntoViewIfNeeded(false);var applyItemCallback=!isEditingName?this._applyFreeFlowStyleTextEdit.bind(this,true):undefined;this._prompt=new WebInspector.StylesSidebarPane.CSSPropertyPrompt(isEditingName?WebInspector.CSSMetadata.cssPropertiesMetainfo:WebInspector.CSSMetadata.keywordsForProperty(this.nameElement.textContent),this,isEditingName);if(applyItemCallback){this._prompt.addEventListener(WebInspector.TextPrompt.Events.ItemApplied,applyItemCallback,this);this._prompt.addEventListener(WebInspector.TextPrompt.Events.ItemAccepted,applyItemCallback,this);}
 var proxyElement=this._prompt.attachAndStartEditing(selectElement,blurListener.bind(this,context));proxyElement.addEventListener("keydown",this.editingNameValueKeyDown.bind(this,context),false);if(isEditingName)
-proxyElement.addEventListener("paste",pasteHandler.bind(this,context));window.getSelection().setBaseAndExtent(selectElement,0,selectElement,1);},editingNameValueKeyDown:function(context,event)
+proxyElement.addEventListener("paste",pasteHandler.bind(this,context),false);window.getSelection().setBaseAndExtent(selectElement,0,selectElement,1);},editingNameValueKeyDown:function(context,event)
 {if(event.handled)
 return;var isEditingName=context.isEditingName;var result;function shouldCommitValueSemicolon(text,cursorPosition)
 {var openQuote="";for(var i=0;i<cursorPosition;++i){var ch=text[i];if(ch==="\\"&&openQuote!=="")
@@ -690,7 +827,7 @@
 {this._resetMouseDownElement();if(this._applyFreeFlowStyleTextEditTimer)
 clearTimeout(this._applyFreeFlowStyleTextEditTimer);this.hasChildren=context.hasChildren;if(context.expanded)
 this.expand();var editedElement=context.isEditingName?this.nameElement:this.valueElement;if(editedElement.parentElement)
-editedElement.parentElement.removeStyleClass("child-editing");delete this._parentPane._isEditingStyle;},editingCancelled:function(element,context)
+editedElement.parentElement.classList.remove("child-editing");delete this._parentPane._isEditingStyle;},editingCancelled:function(element,context)
 {this._removePrompt();this._revertStyleUponEditingCanceled(this.originalPropertyText);this.editingEnded(context);},_revertStyleUponEditingCanceled:function(originalPropertyText)
 {if(typeof originalPropertyText==="string"){delete this.originalPropertyText;this.applyStyleText(originalPropertyText,true,false,true);}else{if(this._newProperty)
 this.treeOutline.removeChild(this);else
@@ -746,12 +883,13 @@
 {return true;},isEventWithinDisclosureTriangle:function(event)
 {return event.target===this._expandElement;},__proto__:WebInspector.StylePropertyTreeElementBase.prototype}
 WebInspector.StylesSidebarPane.CSSPropertyPrompt=function(cssCompletions,sidebarPane,isEditingName)
-{WebInspector.TextPrompt.call(this,this._buildPropertyCompletions.bind(this),WebInspector.StyleValueDelimiters);this.setSuggestBoxEnabled("generic-suggest");this._cssCompletions=cssCompletions;this._sidebarPane=sidebarPane;this._isEditingName=isEditingName;}
+{WebInspector.TextPrompt.call(this,this._buildPropertyCompletions.bind(this),WebInspector.StyleValueDelimiters);this.setSuggestBoxEnabled("generic-suggest");this._cssCompletions=cssCompletions;this._sidebarPane=sidebarPane;this._isEditingName=isEditingName;if(!isEditingName)
+this.disableDefaultSuggestionForEmptyInput();}
 WebInspector.StylesSidebarPane.CSSPropertyPrompt.prototype={onKeyDown:function(event)
-{switch(event.keyIdentifier){case"Up":case"Down":case"PageUp":case"PageDown":if(this._handleNameOrValueUpDown(event)){event.preventDefault();return;}
-break;case"Enter":if(this.autoCompleteElement&&!this.autoCompleteElement.textContent.length){this.tabKeyPressed();return;}
+{switch(event.keyIdentifier){case"Up":case"Down":case"PageUp":case"PageDown":if(this._handleNameOrValueUpDown(event)){event.preventDefault();return true;}
+break;case"Enter":if(this.autoCompleteElement&&!this.autoCompleteElement.textContent.length){this.tabKeyPressed();return true;}
 break;}
-WebInspector.TextPrompt.prototype.onKeyDown.call(this,event);},onMouseWheel:function(event)
+return WebInspector.TextPrompt.prototype.onKeyDown.call(this,event);},onMouseWheel:function(event)
 {if(this._handleNameOrValueUpDown(event)){event.consume(true);return;}
 WebInspector.TextPrompt.prototype.onMouseWheel.call(this,event);},tabKeyPressed:function()
 {this.acceptAutoComplete();return false;},_handleNameOrValueUpDown:function(event)
@@ -763,28 +901,27 @@
 return false;word=word.toLowerCase();return this._cssCompletions.keySet().hasOwnProperty(word);},_buildPropertyCompletions:function(proxyElement,wordRange,force,completionsReadyCallback)
 {var prefix=wordRange.toString().toLowerCase();if(!prefix&&!force&&(this._isEditingName||proxyElement.textContent.length)){completionsReadyCallback([]);return;}
 var results=this._cssCompletions.startsWith(prefix);var selectedIndex=this._cssCompletions.mostUsedOf(results);completionsReadyCallback(results,selectedIndex);},__proto__:WebInspector.TextPrompt.prototype};WebInspector.ElementsPanel=function()
-{WebInspector.Panel.call(this,"elements");this.registerRequiredCSS("breadcrumbList.css");this.registerRequiredCSS("elementsPanel.css");this.registerRequiredCSS("textPrompt.css");this.setHideOnDetach();const initialSidebarWidth=325;const minimumContentWidthPercent=0.34;const initialSidebarHeight=325;const minimumContentHeightPercent=0.34;this.createSidebarView(this.element,WebInspector.SidebarView.SidebarPosition.End,initialSidebarWidth,initialSidebarHeight);this.splitView.sidebarElement.addStyleClass("vbox");this.splitView.setSidebarElementConstraints(Preferences.minElementsSidebarWidth,Preferences.minElementsSidebarHeight);this.splitView.setMainElementConstraints(minimumContentWidthPercent,minimumContentHeightPercent);this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this._updateTreeOutlineVisibleWidth.bind(this));var stackElement=this.splitView.mainElement;stackElement.addStyleClass("vbox");this.contentElement=stackElement.createChild("div");this.contentElement.id="elements-content";this.contentElement.addStyleClass("outline-disclosure");this.contentElement.addStyleClass("source-code");if(!WebInspector.settings.domWordWrap.get())
-this.contentElement.classList.add("nowrap");WebInspector.settings.domWordWrap.addChangeListener(this._domWordWrapSettingChanged.bind(this));this.contentElement.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),true);this.splitView.sidebarElement.addEventListener("contextmenu",this._sidebarContextMenuEventFired.bind(this),false);this.treeOutline=new WebInspector.ElementsTreeOutline(true,true,this._populateContextMenu.bind(this),this._setPseudoClassForNodeId.bind(this));this.treeOutline.wireToDomAgent();this.treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._selectedNodeChanged,this);this.treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.ElementsTreeUpdated,this._updateBreadcrumbIfNeeded,this);var crumbsContainer=stackElement.createChild("div");crumbsContainer.id="elements-crumbs";this.crumbsElement=crumbsContainer.createChild("div","crumbs");this.crumbsElement.addEventListener("mousemove",this._mouseMovedInCrumbs.bind(this),false);this.crumbsElement.addEventListener("mouseout",this._mouseMovedOutOfCrumbs.bind(this),false);this.sidebarPanes={};this.sidebarPanes.platformFonts=new WebInspector.PlatformFontsSidebarPane();this.sidebarPanes.computedStyle=new WebInspector.ComputedStyleSidebarPane();this.sidebarPanes.styles=new WebInspector.StylesSidebarPane(this.sidebarPanes.computedStyle,this._setPseudoClassForNodeId.bind(this));this.sidebarPanes.metrics=new WebInspector.MetricsSidebarPane();this.sidebarPanes.properties=new WebInspector.PropertiesSidebarPane();this.sidebarPanes.domBreakpoints=WebInspector.domBreakpointsSidebarPane.createProxy(this);this.sidebarPanes.eventListeners=new WebInspector.EventListenersSidebarPane();this.sidebarPanes.styles.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateStyles.bind(this,false));this.sidebarPanes.metrics.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateMetrics.bind(this));this.sidebarPanes.platformFonts.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updatePlatformFonts.bind(this));this.sidebarPanes.properties.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateProperties.bind(this));this.sidebarPanes.eventListeners.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateEventListeners.bind(this));this.sidebarPanes.styles.addEventListener("style edited",this._stylesPaneEdited,this);this.sidebarPanes.styles.addEventListener("style property toggled",this._stylesPaneEdited,this);this.sidebarPanes.metrics.addEventListener("metrics edited",this._metricsPaneEdited,this);this._extensionSidebarPanes=[];WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._dockSideChanged.bind(this));WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(this._dockSideChanged.bind(this));this._dockSideChanged();this._popoverHelper=new WebInspector.PopoverHelper(this.element,this._getPopoverAnchor.bind(this),this._showPopover.bind(this));this._popoverHelper.setTimeout(0);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._documentUpdatedEvent,this);WebInspector.settings.showShadowDOM.addChangeListener(this._showShadowDOMChanged.bind(this));if(WebInspector.domAgent.existingDocument())
+{WebInspector.Panel.call(this,"elements");this.registerRequiredCSS("breadcrumbList.css");this.registerRequiredCSS("elementsPanel.css");this.registerRequiredCSS("textPrompt.css");this.setHideOnDetach();const initialSidebarWidth=325;const minimumContentWidthPercent=0.34;const initialSidebarHeight=325;const minimumContentHeightPercent=0.34;this.createSidebarView(this.element,WebInspector.SidebarView.SidebarPosition.End,initialSidebarWidth,initialSidebarHeight);this.splitView.sidebarElement().classList.add("vbox");this.splitView.setSidebarElementConstraints(Preferences.minElementsSidebarWidth,Preferences.minElementsSidebarHeight);this.splitView.setMainElementConstraints(minimumContentWidthPercent,minimumContentHeightPercent);this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this._updateTreeOutlineVisibleWidth.bind(this));this._searchableView=new WebInspector.SearchableView(this);this.splitView.mainElement().classList.add("vbox");this.splitView.setMainView(this._searchableView);var stackElement=this._searchableView.element;this.contentElement=stackElement.createChild("div");this.contentElement.id="elements-content";this.contentElement.classList.add("outline-disclosure");this.contentElement.classList.add("source-code");if(!WebInspector.settings.domWordWrap.get())
+this.contentElement.classList.add("nowrap");WebInspector.settings.domWordWrap.addChangeListener(this._domWordWrapSettingChanged.bind(this));this.contentElement.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),true);this.splitView.sidebarElement().addEventListener("contextmenu",this._sidebarContextMenuEventFired.bind(this),false);this.treeOutline=new WebInspector.ElementsTreeOutline(true,true,this._populateContextMenu.bind(this),this._setPseudoClassForNodeId.bind(this));this.treeOutline.wireToDomAgent();this.treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._selectedNodeChanged,this);this.treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.ElementsTreeUpdated,this._updateBreadcrumbIfNeeded,this);var crumbsContainer=stackElement.createChild("div");crumbsContainer.id="elements-crumbs";this.crumbsElement=crumbsContainer.createChild("div","crumbs");this.crumbsElement.addEventListener("mousemove",this._mouseMovedInCrumbs.bind(this),false);this.crumbsElement.addEventListener("mouseout",this._mouseMovedOutOfCrumbs.bind(this),false);this.sidebarPanes={};this.sidebarPanes.platformFonts=new WebInspector.PlatformFontsSidebarPane();this.sidebarPanes.computedStyle=new WebInspector.ComputedStyleSidebarPane();this.sidebarPanes.styles=new WebInspector.StylesSidebarPane(this.sidebarPanes.computedStyle,this._setPseudoClassForNodeId.bind(this));this.sidebarPanes.metrics=new WebInspector.MetricsSidebarPane();this.sidebarPanes.properties=new WebInspector.PropertiesSidebarPane();this.sidebarPanes.domBreakpoints=WebInspector.domBreakpointsSidebarPane.createProxy(this);this.sidebarPanes.eventListeners=new WebInspector.EventListenersSidebarPane();this.sidebarPanes.styles.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateStyles.bind(this,false));this.sidebarPanes.metrics.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateMetrics.bind(this));this.sidebarPanes.platformFonts.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updatePlatformFonts.bind(this));this.sidebarPanes.properties.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateProperties.bind(this));this.sidebarPanes.eventListeners.addEventListener(WebInspector.SidebarPane.EventTypes.wasShown,this.updateEventListeners.bind(this));this.sidebarPanes.styles.addEventListener("style edited",this._stylesPaneEdited,this);this.sidebarPanes.styles.addEventListener("style property toggled",this._stylesPaneEdited,this);this.sidebarPanes.metrics.addEventListener("metrics edited",this._metricsPaneEdited,this);this._extensionSidebarPanes=[];WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._dockSideChanged.bind(this));WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(this._dockSideChanged.bind(this));this._dockSideChanged();this._popoverHelper=new WebInspector.PopoverHelper(this.element,this._getPopoverAnchor.bind(this),this._showPopover.bind(this));this._popoverHelper.setTimeout(0);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._documentUpdatedEvent,this);WebInspector.settings.showShadowDOM.addChangeListener(this._showShadowDOMChanged.bind(this));if(WebInspector.domAgent.existingDocument())
 this._documentUpdated(WebInspector.domAgent.existingDocument());WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.ModelWasEnabled,this._updateSidebars,this);}
 WebInspector.ElementsPanel.prototype={_updateTreeOutlineVisibleWidth:function()
 {if(!this.treeOutline)
 return;var width=this.splitView.element.offsetWidth;if(this.splitView.isVertical())
 width-=this.splitView.sidebarWidth();this.treeOutline.setVisibleWidth(width);this.updateBreadcrumbSizes();},defaultFocusedElement:function()
-{return this.treeOutline.element;},statusBarResized:function()
+{return this.treeOutline.element;},searchableView:function()
+{return this._searchableView;},statusBarResized:function()
 {this.updateBreadcrumbSizes();},wasShown:function()
 {if(this.treeOutline.element.parentElement!==this.contentElement)
 this.contentElement.appendChild(this.treeOutline.element);WebInspector.Panel.prototype.wasShown.call(this);this.updateBreadcrumb();this.treeOutline.updateSelection();this.treeOutline.setVisible(true);if(!this.treeOutline.rootDOMNode)
 WebInspector.domAgent.requestDocument();},willHide:function()
 {WebInspector.domAgent.hideDOMNodeHighlight();this.treeOutline.setVisible(false);this._popoverHelper.hidePopover();this.contentElement.removeChild(this.treeOutline.element);WebInspector.Panel.prototype.willHide.call(this);},onResize:function()
-{this.treeOutline.updateSelection();this.updateBreadcrumbSizes();},createView:function(id)
-{if(!this._overridesView)
-this._overridesView=new WebInspector.OverridesView();return this._overridesView;},_setPseudoClassForNodeId:function(nodeId,pseudoClass,enable)
+{this.treeOutline.updateSelection();this.updateBreadcrumbSizes();},_setPseudoClassForNodeId:function(nodeId,pseudoClass,enable)
 {var node=WebInspector.domAgent.nodeForId(nodeId);if(!node)
 return;var pseudoClasses=node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);if(enable){pseudoClasses=pseudoClasses||[];if(pseudoClasses.indexOf(pseudoClass)>=0)
 return;pseudoClasses.push(pseudoClass);node.setUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName,pseudoClasses);}else{if(!pseudoClasses||pseudoClasses.indexOf(pseudoClass)<0)
 return;pseudoClasses.remove(pseudoClass);if(!pseudoClasses.length)
 node.removeUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);}
-this.treeOutline.updateOpenCloseTags(node);WebInspector.cssModel.forcePseudoState(node.id,node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName));this._metricsPaneEdited();this._stylesPaneEdited();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.ForcedElementState,selector:node.appropriateSelectorFor(false),enabled:enable,state:pseudoClass});},_selectedNodeChanged:function()
+this.treeOutline.updateOpenCloseTags(node);WebInspector.cssModel.forcePseudoState(node.id,node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName));this._metricsPaneEdited();this._stylesPaneEdited();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.ForcedElementState,selector:WebInspector.DOMPresentationUtils.appropriateSelectorFor(node,false),enabled:enable,state:pseudoClass});},_selectedNodeChanged:function()
 {var selectedNode=this.selectedDOMNode();if(!selectedNode&&this._lastValidSelectedNode)
 this._selectedPathOnReset=this._lastValidSelectedNode.path();this.updateBreadcrumb(false);this._updateSidebars();if(selectedNode){ConsoleAgent.addInspectedNode(selectedNode.id);this._lastValidSelectedNode=selectedNode;}
 WebInspector.notifications.dispatchEventToListeners(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged);},_updateSidebars:function()
@@ -804,11 +941,11 @@
 var node=nodeId?WebInspector.domAgent.nodeForId(nodeId):null;selectNode.call(this,node);}
 if(this._selectedPathOnReset)
 WebInspector.domAgent.pushNodeByPathToFrontend(this._selectedPathOnReset,selectLastSelectedNode.bind(this));else
-selectNode.call(this);delete this._selectedPathOnReset;},searchCanceled:function()
-{delete this._searchQuery;this._hideSearchHighlights();WebInspector.searchController.updateSearchMatchesCount(0,this);delete this._currentSearchResultIndex;delete this._searchResults;WebInspector.domAgent.cancelSearch();},performSearch:function(query,shouldJump)
+selectNode.call(this,null);delete this._selectedPathOnReset;},searchCanceled:function()
+{delete this._searchQuery;this._hideSearchHighlights();this._searchableView.updateSearchMatchesCount(0);delete this._currentSearchResultIndex;delete this._searchResults;WebInspector.domAgent.cancelSearch();},performSearch:function(query,shouldJump)
 {this.searchCanceled();const whitespaceTrimmedQuery=query.trim();if(!whitespaceTrimmedQuery.length)
 return;this._searchQuery=query;function resultCountCallback(resultCount)
-{WebInspector.searchController.updateSearchMatchesCount(resultCount,this);if(!resultCount)
+{this._searchableView.updateSearchMatchesCount(resultCount);if(!resultCount)
 return;this._searchResults=new Array(resultCount);this._currentSearchResultIndex=-1;if(shouldJump)
 this.jumpToNextSearchResult();}
 WebInspector.domAgent.performSearch(whitespaceTrimmedQuery,resultCountCallback.bind(this));},_contextMenuEventFired:function(event)
@@ -819,11 +956,11 @@
 {if(!WebInspector.cssNamedFlowCollectionsView)
 WebInspector.cssNamedFlowCollectionsView=new WebInspector.CSSNamedFlowCollectionsView();WebInspector.cssNamedFlowCollectionsView.showInDrawer();},_domWordWrapSettingChanged:function(event)
 {if(event.data)
-this.contentElement.removeStyleClass("nowrap");else
-this.contentElement.addStyleClass("nowrap");var selectedNode=this.selectedDOMNode();if(!selectedNode)
+this.contentElement.classList.remove("nowrap");else
+this.contentElement.classList.add("nowrap");var selectedNode=this.selectedDOMNode();if(!selectedNode)
 return;var treeElement=this.treeOutline.findTreeElement(selectedNode);if(treeElement)
 treeElement.updateSelection();},switchToAndFocus:function(node)
-{WebInspector.searchController.cancelSearch();WebInspector.inspectorView.setCurrentPanel(this);this.selectDOMNode(node,true);},_populateContextMenu:function(contextMenu,node)
+{this._searchableView.cancelSearch();WebInspector.inspectorView.setCurrentPanel(this);this.selectDOMNode(node,true);},_populateContextMenu:function(contextMenu,node)
 {contextMenu.appendSeparator();var pane=WebInspector.domBreakpointsSidebarPane;pane.populateNodeContextMenu(node,contextMenu);},_getPopoverAnchor:function(element)
 {var anchor=element.enclosingNodeOrSelfWithClass("webkit-html-resource-link");if(anchor){if(!anchor.href)
 return null;var resource=WebInspector.resourceTreeModel.resourceForURL(anchor.href);if(!resource||resource.type!==WebInspector.resourceTypes.Image)
@@ -846,11 +983,11 @@
 {if(!this._searchResults)
 return;this._hideSearchHighlights();if(--this._currentSearchResultIndex<0)
 this._currentSearchResultIndex=(this._searchResults.length-1);this._highlightCurrentSearchResult();},_highlightCurrentSearchResult:function()
-{var index=this._currentSearchResultIndex;var searchResults=this._searchResults;var searchResult=searchResults[index];if(searchResult===null){WebInspector.searchController.updateCurrentMatchIndex(index,this);return;}
-if(typeof searchResult==="undefined"){function callback(node)
-{searchResults[index]=node||null;this._highlightCurrentSearchResult();}
-WebInspector.domAgent.searchResult(index,callback.bind(this));return;}
-WebInspector.searchController.updateCurrentMatchIndex(index,this);var treeElement=this.treeOutline.findTreeElement(searchResult);if(treeElement){treeElement.highlightSearchResults(this._searchQuery);treeElement.reveal();var matches=treeElement.listItemElement.getElementsByClassName("highlighted-search-result");if(matches.length)
+{var index=this._currentSearchResultIndex;var searchResults=this._searchResults;var searchResult=searchResults[index];if(searchResult===null){this._searchableView.updateCurrentMatchIndex(index);return;}
+function searchCallback(node)
+{searchResults[index]=node;this._highlightCurrentSearchResult();}
+if(typeof searchResult==="undefined"){WebInspector.domAgent.searchResult(index,searchCallback.bind(this));return;}
+this._searchableView.updateCurrentMatchIndex(index);var treeElement=this.treeOutline.findTreeElement(searchResult);if(treeElement){treeElement.highlightSearchResults(this._searchQuery);treeElement.reveal();var matches=treeElement.listItemElement.getElementsByClassName("highlighted-search-result");if(matches.length)
 matches[0].scrollIntoViewIfNeeded();}},_hideSearchHighlights:function()
 {if(!this._searchResults)
 return;var searchResult=this._searchResults[this._currentSearchResultIndex];if(!searchResult)
@@ -866,33 +1003,33 @@
 {var nodeUnderMouse=document.elementFromPoint(event.pageX,event.pageY);if(nodeUnderMouse&&nodeUnderMouse.isDescendant(this.crumbsElement))
 return;WebInspector.domAgent.hideDOMNodeHighlight();this._mouseOutOfCrumbsTimeout=setTimeout(this.updateBreadcrumbSizes.bind(this),1000);},updateBreadcrumb:function(forceUpdate)
 {if(!this.isShowing())
-return;var crumbs=this.crumbsElement;var handled=false;var crumb=crumbs.firstChild;while(crumb){if(crumb.representedObject===this.selectedDOMNode()){crumb.addStyleClass("selected");handled=true;}else{crumb.removeStyleClass("selected");}
+return;var crumbs=this.crumbsElement;var handled=false;var crumb=crumbs.firstChild;while(crumb){if(crumb.representedObject===this.selectedDOMNode()){crumb.classList.add("selected");handled=true;}else{crumb.classList.remove("selected");}
 crumb=crumb.nextSibling;}
 if(handled&&!forceUpdate){this.updateBreadcrumbSizes();return;}
 crumbs.removeChildren();var panel=this;function selectCrumbFunction(event)
-{var crumb=event.currentTarget;if(crumb.hasStyleClass("collapsed")){if(crumb===panel.crumbsElement.firstChild){var currentCrumb=crumb;while(currentCrumb){var hidden=currentCrumb.hasStyleClass("hidden");var collapsed=currentCrumb.hasStyleClass("collapsed");if(!hidden&&!collapsed)
+{var crumb=event.currentTarget;if(crumb.classList.contains("collapsed")){if(crumb===panel.crumbsElement.firstChild){var currentCrumb=crumb;while(currentCrumb){var hidden=currentCrumb.classList.contains("hidden");var collapsed=currentCrumb.classList.contains("collapsed");if(!hidden&&!collapsed)
 break;crumb=currentCrumb;currentCrumb=currentCrumb.nextSibling;}}
 panel.updateBreadcrumbSizes(crumb);}else
 panel.selectDOMNode(crumb.representedObject,true);event.preventDefault();}
 for(var current=this.selectedDOMNode();current;current=current.parentNode){if(current.nodeType()===Node.DOCUMENT_NODE)
 continue;crumb=document.createElement("span");crumb.className="crumb";crumb.representedObject=current;crumb.addEventListener("mousedown",selectCrumbFunction,false);var crumbTitle="";switch(current.nodeType()){case Node.ELEMENT_NODE:if(current.pseudoType())
 crumbTitle="::"+current.pseudoType();else
-WebInspector.DOMPresentationUtils.decorateNodeLabel(current,crumb);break;case Node.TEXT_NODE:crumbTitle=WebInspector.UIString("(text)");break;case Node.COMMENT_NODE:crumbTitle="<!-->";break;case Node.DOCUMENT_TYPE_NODE:crumbTitle="<!DOCTYPE>";break;default:crumbTitle=current.nodeNameInCorrectCase();}
+WebInspector.DOMPresentationUtils.decorateNodeLabel(current,crumb);break;case Node.TEXT_NODE:crumbTitle=WebInspector.UIString("(text)");break;case Node.COMMENT_NODE:crumbTitle="<!-->";break;case Node.DOCUMENT_TYPE_NODE:crumbTitle="<!DOCTYPE>";break;case Node.DOCUMENT_FRAGMENT_NODE:crumbTitle=current.shadowRootType()?"#shadow-root":current.nodeNameInCorrectCase();break;default:crumbTitle=current.nodeNameInCorrectCase();}
 if(!crumb.childNodes.length){var nameElement=document.createElement("span");nameElement.textContent=crumbTitle;crumb.appendChild(nameElement);crumb.title=crumbTitle;}
 if(current===this.selectedDOMNode())
-crumb.addStyleClass("selected");if(!crumbs.childNodes.length)
-crumb.addStyleClass("end");crumbs.insertBefore(crumb,crumbs.firstChild);}
+crumb.classList.add("selected");if(!crumbs.childNodes.length)
+crumb.classList.add("end");crumbs.insertBefore(crumb,crumbs.firstChild);}
 if(crumbs.hasChildNodes())
-crumbs.lastChild.addStyleClass("start");this.updateBreadcrumbSizes();},updateBreadcrumbSizes:function(focusedCrumb)
+crumbs.lastChild.classList.add("start");this.updateBreadcrumbSizes();},updateBreadcrumbSizes:function(focusedCrumb)
 {if(!this.isShowing())
 return;if(document.body.offsetWidth<=0){return;}
 var crumbs=this.crumbsElement;if(!crumbs.childNodes.length||crumbs.offsetWidth<=0)
-return;var selectedIndex=0;var focusedIndex=0;var selectedCrumb;var i=0;var crumb=crumbs.firstChild;while(crumb){if(!selectedCrumb&&crumb.hasStyleClass("selected")){selectedCrumb=crumb;selectedIndex=i;}
+return;var selectedIndex=0;var focusedIndex=0;var selectedCrumb;var i=0;var crumb=crumbs.firstChild;while(crumb){if(!selectedCrumb&&crumb.classList.contains("selected")){selectedCrumb=crumb;selectedIndex=i;}
 if(crumb===focusedCrumb)
 focusedIndex=i;if(crumb!==crumbs.lastChild)
-crumb.removeStyleClass("start");if(crumb!==crumbs.firstChild)
-crumb.removeStyleClass("end");crumb.removeStyleClass("compact");crumb.removeStyleClass("collapsed");crumb.removeStyleClass("hidden");crumb=crumb.nextSibling;++i;}
-crumbs.firstChild.addStyleClass("end");crumbs.lastChild.addStyleClass("start");var contentElement=this.contentElement;function crumbsAreSmallerThanContainer()
+crumb.classList.remove("start");if(crumb!==crumbs.firstChild)
+crumb.classList.remove("end");crumb.classList.remove("compact");crumb.classList.remove("collapsed");crumb.classList.remove("hidden");crumb=crumb.nextSibling;++i;}
+crumbs.firstChild.classList.add("end");crumbs.lastChild.classList.add("start");var contentElement=this.contentElement;function crumbsAreSmallerThanContainer()
 {const rightPadding=10;return crumbs.offsetWidth+rightPadding<contentElement.offsetWidth;}
 if(crumbsAreSmallerThanContainer())
 return;var BothSides=0;var AncestorSide=-1;var ChildSide=1;function makeCrumbsSmaller(shrinkingFunction,direction,significantCrumb)
@@ -911,19 +1048,19 @@
 return true;}}
 return false;}
 function coalesceCollapsedCrumbs()
-{var crumb=crumbs.firstChild;var collapsedRun=false;var newStartNeeded=false;var newEndNeeded=false;while(crumb){var hidden=crumb.hasStyleClass("hidden");if(!hidden){var collapsed=crumb.hasStyleClass("collapsed");if(collapsedRun&&collapsed){crumb.addStyleClass("hidden");crumb.removeStyleClass("compact");crumb.removeStyleClass("collapsed");if(crumb.hasStyleClass("start")){crumb.removeStyleClass("start");newStartNeeded=true;}
-if(crumb.hasStyleClass("end")){crumb.removeStyleClass("end");newEndNeeded=true;}
+{var crumb=crumbs.firstChild;var collapsedRun=false;var newStartNeeded=false;var newEndNeeded=false;while(crumb){var hidden=crumb.classList.contains("hidden");if(!hidden){var collapsed=crumb.classList.contains("collapsed");if(collapsedRun&&collapsed){crumb.classList.add("hidden");crumb.classList.remove("compact");crumb.classList.remove("collapsed");if(crumb.classList.contains("start")){crumb.classList.remove("start");newStartNeeded=true;}
+if(crumb.classList.contains("end")){crumb.classList.remove("end");newEndNeeded=true;}
 continue;}
-collapsedRun=collapsed;if(newEndNeeded){newEndNeeded=false;crumb.addStyleClass("end");}}else
+collapsedRun=collapsed;if(newEndNeeded){newEndNeeded=false;crumb.classList.add("end");}}else
 collapsedRun=true;crumb=crumb.nextSibling;}
-if(newStartNeeded){crumb=crumbs.lastChild;while(crumb){if(!crumb.hasStyleClass("hidden")){crumb.addStyleClass("start");break;}
+if(newStartNeeded){crumb=crumbs.lastChild;while(crumb){if(!crumb.classList.contains("hidden")){crumb.classList.add("start");break;}
 crumb=crumb.previousSibling;}}}
 function compact(crumb)
-{if(crumb.hasStyleClass("hidden"))
-return;crumb.addStyleClass("compact");}
+{if(crumb.classList.contains("hidden"))
+return;crumb.classList.add("compact");}
 function collapse(crumb,dontCoalesce)
-{if(crumb.hasStyleClass("hidden"))
-return;crumb.addStyleClass("collapsed");crumb.removeStyleClass("compact");if(!dontCoalesce)
+{if(crumb.classList.contains("hidden"))
+return;crumb.classList.add("collapsed");crumb.classList.remove("compact");if(!dontCoalesce)
 coalesceCollapsedCrumbs();}
 if(!focusedCrumb){if(makeCrumbsSmaller(compact,ChildSide))
 return;if(makeCrumbsSmaller(collapse,ChildSide))
@@ -974,14 +1111,24 @@
 {var dockSide=WebInspector.dockController.dockSide();var vertically=dockSide===WebInspector.DockController.State.DockedToRight&&WebInspector.settings.splitVerticallyWhenDockedToRight.get();this._splitVertically(vertically);},_showShadowDOMChanged:function()
 {this.treeOutline.update();},_splitVertically:function(vertically)
 {if(this.sidebarPaneView&&vertically===!this.splitView.isVertical())
-return;if(this.sidebarPaneView)
-this.sidebarPaneView.detach();this.splitView.setVertical(!vertically);var computedPane=new WebInspector.SidebarPane(WebInspector.UIString("Computed"));computedPane.element.addStyleClass("composite");computedPane.element.addStyleClass("fill");var expandComputed=computedPane.expand.bind(computedPane);computedPane.bodyElement.appendChild(this.sidebarPanes.computedStyle.titleElement);computedPane.bodyElement.addStyleClass("metrics-and-computed");this.sidebarPanes.computedStyle.show(computedPane.bodyElement);this.sidebarPanes.computedStyle.setExpandCallback(expandComputed);this.sidebarPanes.platformFonts.show(computedPane.bodyElement);if(vertically){this.sidebarPanes.metrics.show(computedPane.bodyElement,this.sidebarPanes.computedStyle.element);this.sidebarPanes.metrics.setExpandCallback(expandComputed);this.sidebarPaneView=new WebInspector.SidebarTabbedPane();var compositePane=new WebInspector.SidebarPane(this.sidebarPanes.styles.title());compositePane.element.addStyleClass("composite");compositePane.element.addStyleClass("fill");var expandComposite=compositePane.expand.bind(compositePane);var splitView=new WebInspector.SplitView(true,"StylesPaneSplitRatio",0.5);splitView.show(compositePane.bodyElement);this.sidebarPanes.styles.show(splitView.firstElement());splitView.firstElement().appendChild(this.sidebarPanes.styles.titleElement);this.sidebarPanes.styles.setExpandCallback(expandComposite);computedPane.show(splitView.secondElement());computedPane.setExpandCallback(expandComposite);this.sidebarPaneView.addPane(compositePane);this.sidebarPaneView.addPane(this.sidebarPanes.properties);this.sidebarPaneView.addPane(this.sidebarPanes.domBreakpoints);this.sidebarPaneView.addPane(this.sidebarPanes.eventListeners);this._extensionSidebarPanesContainer=this.sidebarPaneView;}else{this.sidebarPaneView=new WebInspector.SidebarTabbedPane();var stylesPane=new WebInspector.SidebarPane(this.sidebarPanes.styles.title());stylesPane.element.addStyleClass("composite");stylesPane.element.addStyleClass("fill");var expandStyles=stylesPane.expand.bind(stylesPane);stylesPane.bodyElement.addStyleClass("metrics-and-styles");this.sidebarPanes.styles.show(stylesPane.bodyElement);this.sidebarPanes.styles.setExpandCallback(expandStyles);this.sidebarPanes.metrics.setExpandCallback(expandStyles);stylesPane.bodyElement.appendChild(this.sidebarPanes.styles.titleElement);function showMetrics(pane,beforeElement)
+return;if(this.sidebarPaneView){this.sidebarPaneView.detach();this.splitView.uninstallResizer(this.sidebarPaneView.headerElement());}
+this.splitView.setVertical(!vertically);var computedPane=new WebInspector.SidebarPane(WebInspector.UIString("Computed"));computedPane.element.classList.add("composite");computedPane.element.classList.add("fill");var expandComputed=computedPane.expand.bind(computedPane);computedPane.bodyElement.appendChild(this.sidebarPanes.computedStyle.titleElement);computedPane.bodyElement.classList.add("metrics-and-computed");this.sidebarPanes.computedStyle.show(computedPane.bodyElement);this.sidebarPanes.computedStyle.setExpandCallback(expandComputed);this.sidebarPanes.platformFonts.show(computedPane.bodyElement);function showMetrics(pane,beforeElement)
 {this.sidebarPanes.metrics.show(pane.bodyElement,beforeElement);}
 function tabSelected(event)
 {var tabId=(event.data.tabId);if(tabId===computedPane.title())
 showMetrics.call(this,computedPane,this.sidebarPanes.computedStyle.element);if(tabId===stylesPane.title())
 showMetrics.call(this,stylesPane);}
-this.sidebarPaneView.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,tabSelected,this);showMetrics.call(this,stylesPane);this.sidebarPaneView.addPane(stylesPane);this.sidebarPaneView.addPane(computedPane);this.sidebarPaneView.addPane(this.sidebarPanes.eventListeners);this.sidebarPaneView.addPane(this.sidebarPanes.domBreakpoints);this.sidebarPaneView.addPane(this.sidebarPanes.properties);this._extensionSidebarPanesContainer=this.sidebarPaneView;}
-for(var i=0;i<this._extensionSidebarPanes.length;++i)
-this._extensionSidebarPanesContainer.addPane(this._extensionSidebarPanes[i]);this.sidebarPaneView.show(this.splitView.sidebarElement);this.sidebarPanes.styles.expand();},addExtensionSidebarPane:function(id,pane)
-{this._extensionSidebarPanes.push(pane);this._extensionSidebarPanesContainer.addPane(pane);},__proto__:WebInspector.Panel.prototype}
\ No newline at end of file
+this.sidebarPaneView=new WebInspector.SidebarTabbedPane();if(vertically){this.splitView.installResizer(this.sidebarPaneView.headerElement());this.sidebarPanes.metrics.show(computedPane.bodyElement,this.sidebarPanes.computedStyle.element);this.sidebarPanes.metrics.setExpandCallback(expandComputed);var compositePane=new WebInspector.SidebarPane(this.sidebarPanes.styles.title());compositePane.element.classList.add("composite");compositePane.element.classList.add("fill");var expandComposite=compositePane.expand.bind(compositePane);var splitView=new WebInspector.SplitView(true,"StylesPaneSplitRatio",0.5);splitView.show(compositePane.bodyElement);splitView.setFirstView(this.sidebarPanes.styles);splitView.firstElement().appendChild(this.sidebarPanes.styles.titleElement);this.sidebarPanes.styles.setExpandCallback(expandComposite);splitView.setSecondView(computedPane);computedPane.setExpandCallback(expandComposite);this.sidebarPaneView.addPane(compositePane);}else{var stylesPane=new WebInspector.SidebarPane(this.sidebarPanes.styles.title());stylesPane.element.classList.add("composite");stylesPane.element.classList.add("fill");var expandStyles=stylesPane.expand.bind(stylesPane);stylesPane.bodyElement.classList.add("metrics-and-styles");this.sidebarPanes.styles.show(stylesPane.bodyElement);this.sidebarPanes.styles.setExpandCallback(expandStyles);this.sidebarPanes.metrics.setExpandCallback(expandStyles);stylesPane.bodyElement.appendChild(this.sidebarPanes.styles.titleElement);this.sidebarPaneView.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,tabSelected,this);showMetrics.call(this,stylesPane);this.sidebarPaneView.addPane(stylesPane);this.sidebarPaneView.addPane(computedPane);}
+this.sidebarPaneView.addPane(this.sidebarPanes.eventListeners);this.sidebarPaneView.addPane(this.sidebarPanes.domBreakpoints);this.sidebarPaneView.addPane(this.sidebarPanes.properties);this._extensionSidebarPanesContainer=this.sidebarPaneView;for(var i=0;i<this._extensionSidebarPanes.length;++i)
+this._extensionSidebarPanesContainer.addPane(this._extensionSidebarPanes[i]);this.splitView.setSidebarView(this.sidebarPaneView);this.sidebarPanes.styles.expand();},addExtensionSidebarPane:function(id,pane)
+{this._extensionSidebarPanes.push(pane);this._extensionSidebarPanesContainer.addPane(pane);},__proto__:WebInspector.Panel.prototype}
+WebInspector.ElementsPanel.ContextMenuProvider=function()
+{}
+WebInspector.ElementsPanel.ContextMenuProvider.prototype={appendApplicableItems:function(event,contextMenu,target)
+{WebInspector.panel("elements").appendApplicableItems(event,contextMenu,target);}}
+WebInspector.ElementsPanel.OverridesViewFactory=function()
+{WebInspector.Drawer.SingletonViewFactory.call(this,WebInspector.OverridesView);}
+WebInspector.ElementsPanel.OverridesViewFactory.prototype={__proto__:WebInspector.Drawer.SingletonViewFactory.prototype}
+WebInspector.ElementsPanel.RenderingViewFactory=function()
+{WebInspector.Drawer.SingletonViewFactory.call(this,WebInspector.RenderingOptionsView);}
+WebInspector.ElementsPanel.RenderingViewFactory.prototype={__proto__:WebInspector.Drawer.SingletonViewFactory.prototype}
\ No newline at end of file
diff --git a/resources/inspector/HeapSnapshotWorker.js b/resources/inspector/HeapSnapshotWorker.js
index a07b52f..8a7428d 100644
--- a/resources/inspector/HeapSnapshotWorker.js
+++ b/resources/inspector/HeapSnapshotWorker.js
@@ -1,4 +1,4 @@
-WebInspector={};WebInspector.UIString=function(s){return s;};WebInspector.AllocationProfile=function(profile)
+WebInspector={};WebInspector.AllocationProfile=function(profile)
 {this._strings=profile.strings;this._nextNodeId=1;this._idToFunctionInfo={};this._idToNode={};this._collapsedTopNodeIdToFunctionInfo={};this._traceTops=null;this._buildAllocationFunctionInfos(profile);this._traceTree=this._buildInvertedAllocationTree(profile);}
 WebInspector.AllocationProfile.prototype={_buildAllocationFunctionInfos:function(profile)
 {var strings=this._strings;var functionInfoFields=profile.snapshot.meta.trace_function_info_fields;var functionIdOffset=functionInfoFields.indexOf("function_id");var functionNameOffset=functionInfoFields.indexOf("name");var scriptNameOffset=functionInfoFields.indexOf("script_name");var scriptIdOffset=functionInfoFields.indexOf("script_id");var lineOffset=functionInfoFields.indexOf("line");var columnOffset=functionInfoFields.indexOf("column");var functionInfoFieldCount=functionInfoFields.length;var map=this._idToFunctionInfo;map[0]=new WebInspector.FunctionAllocationInfo("(root)","<unknown>",0,-1,-1);var rawInfos=profile.trace_function_infos;var infoLength=rawInfos.length;for(var i=0;i<infoLength;i+=functionInfoFieldCount){map[rawInfos[i+functionIdOffset]]=new WebInspector.FunctionAllocationInfo(strings[rawInfos[i+functionNameOffset]],strings[rawInfos[i+scriptNameOffset]],rawInfos[i+scriptIdOffset],rawInfos[i+lineOffset],rawInfos[i+columnOffset]);}},_buildInvertedAllocationTree:function(profile)
@@ -121,11 +121,11 @@
 {this.node.nodeIndex=this.node._nextNodeIndex();}}
 WebInspector.HeapSnapshotProgress=function(dispatcher)
 {this._dispatcher=dispatcher;}
-WebInspector.HeapSnapshotProgress.Event={Update:"ProgressUpdate"};WebInspector.HeapSnapshotProgress.prototype={updateStatus:function(status)
+WebInspector.HeapSnapshotProgress.prototype={updateStatus:function(status)
 {this._sendUpdateEvent(WebInspector.UIString(status));},updateProgress:function(title,value,total)
 {var percentValue=((total?(value/total):0)*100).toFixed(0);this._sendUpdateEvent(WebInspector.UIString(title,percentValue));},_sendUpdateEvent:function(text)
 {if(this._dispatcher)
-this._dispatcher.sendEvent(WebInspector.HeapSnapshotProgress.Event.Update,text);}}
+this._dispatcher.sendEvent(WebInspector.HeapSnapshotProgressEvent.Update,text);}}
 WebInspector.HeapSnapshot=function(profile,progress)
 {this.uid=profile.snapshot.uid;this._nodes=profile.nodes;this._containmentEdges=profile.edges;this._metaNode=profile.snapshot.meta;this._strings=profile.strings;this._progress=progress;this._noDistance=-5;this._rootNodeIndex=0;if(profile.snapshot.root_index)
 this._rootNodeIndex=profile.snapshot.root_index;this._snapshotDiffs={};this._aggregatesForDiff=null;this._init();if(WebInspector.HeapSnapshot.enableAllocationProfiler){this._progress.updateStatus("Buiding allocation statistics\u2026");this._allocationProfile=new WebInspector.AllocationProfile(profile);this._progress.updateStatus("Done");}}
@@ -236,7 +236,10 @@
 return it.node;}
 return null;},nodeClassName:function(snapshotObjectId)
 {var node=this._nodeForSnapshotObjectId(snapshotObjectId);if(node)
-return node.className();return null;},dominatorIdsForNode:function(snapshotObjectId)
+return node.className();return null;},idsOfObjectsWithName:function(name)
+{var ids=[];for(var it=this._allNodes();it.hasNext();it.next()){if(it.item().name()===name)
+ids.push(it.item().id());}
+return ids;},dominatorIdsForNode:function(snapshotObjectId)
 {var node=this._nodeForSnapshotObjectId(snapshotObjectId);if(!node)
 return null;var result=[];while(!node.isRoot()){result.push(node.id());node.nodeIndex=node.dominatorIndex();}
 return result;},_parseFilter:function(filter)
@@ -284,8 +287,6 @@
 {this._createIterationOrder();if(this._sortedPrefixLength+this._sortedSuffixLength>=this._iterationOrder.length)
 return;this.sort(this._currentComparator,this._sortedPrefixLength,this._iterationOrder.length-1-this._sortedSuffixLength,this._sortedPrefixLength,this._iterationOrder.length-1-this._sortedSuffixLength);this._sortedPrefixLength=this._iterationOrder.length;this._sortedSuffixLength=0;},sortAndRewind:function(comparator)
 {this._currentComparator=comparator;this._sortedPrefixLength=0;this._sortedSuffixLength=0;this.rewind();}}
-WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator=function(fieldNames)
-{return{fieldName1:fieldNames[0],ascending1:fieldNames[1],fieldName2:fieldNames[2],ascending2:fieldNames[3]};}
 WebInspector.HeapSnapshotEdgesProvider=function(snapshot,filter,edgesIter)
 {this.snapshot=snapshot;WebInspector.HeapSnapshotFilteredOrderedIterator.call(this,edgesIter,filter);}
 WebInspector.HeapSnapshotEdgesProvider.prototype={sort:function(comparator,leftBound,rightBound,windowLeft,windowRight)
@@ -318,7 +319,17 @@
 function sortByComparator(indexA,indexB){nodeA.nodeIndex=indexA;nodeB.nodeIndex=indexB;var result=sortByNodeField(fieldName1,ascending1);if(result===0)
 result=sortByNodeField(fieldName2,ascending2);if(result===0)
 return indexA-indexB;return result;}
-this._iterationOrder.sortRange(sortByComparator,leftBound,rightBound,windowLeft,windowRight);},__proto__:WebInspector.HeapSnapshotFilteredOrderedIterator.prototype};WebInspector.HeapSnapshotLoader=function(dispatcher)
+this._iterationOrder.sortRange(sortByComparator,leftBound,rightBound,windowLeft,windowRight);},__proto__:WebInspector.HeapSnapshotFilteredOrderedIterator.prototype};WebInspector.HeapSnapshotProgressEvent={Update:"ProgressUpdate"};WebInspector.HeapSnapshotCommon={}
+WebInspector.HeapSnapshotCommon.AllocationNodeCallers=function()
+{this.nodesWithSingleCaller;this.branchingCallers;}
+WebInspector.HeapSnapshotCommon.Aggregate=function()
+{this.count;this.distance;this.self;this.maxRet;this.type;this.name;this.idxs;}
+WebInspector.HeapSnapshotCommon.DiffForClass=function()
+{this.addedCount;this.removedCount;this.addedSize;this.removedSize;this.deletedIndexes;this.addedIndexes;this.countDelta;this.sizeDelta;}
+WebInspector.HeapSnapshotCommon.ComparatorConfig=function()
+{this.fieldName1;this.ascending1;this.fieldName2;this.ascending2;}
+WebInspector.HeapSnapshotCommon.WorkerCommand=function()
+{this.callId;this.disposition;this.objectId;this.newObjectId;this.methodName;this.methodArguments;this.source;};WebInspector.HeapSnapshotLoader=function(dispatcher)
 {this._reset();this._progress=new WebInspector.HeapSnapshotProgress(dispatcher);}
 WebInspector.HeapSnapshotLoader.prototype={dispose:function()
 {this._reset();},_reset:function()
@@ -338,7 +349,7 @@
 throw new Error("Incomplete JSON");this._json=this._json.slice(0,closingBracketIndex+1);this._snapshot.strings=JSON.parse(this._json);},write:function(chunk)
 {this._json+=chunk;while(true){switch(this._state){case"find-snapshot-info":{var snapshotToken="\"snapshot\"";var snapshotTokenIndex=this._json.indexOf(snapshotToken);if(snapshotTokenIndex===-1)
 throw new Error("Snapshot token not found");this._json=this._json.slice(snapshotTokenIndex+snapshotToken.length+1);this._state="parse-snapshot-info";this._progress.updateStatus("Loading snapshot info\u2026");break;}
-case"parse-snapshot-info":{var closingBracketIndex=WebInspector.findBalancedCurlyBrackets(this._json);if(closingBracketIndex===-1)
+case"parse-snapshot-info":{var closingBracketIndex=WebInspector.TextUtils.findBalancedCurlyBrackets(this._json);if(closingBracketIndex===-1)
 return;this._snapshot.snapshot=(JSON.parse(this._json.slice(0,closingBracketIndex)));this._json=this._json.slice(closingBracketIndex);this._state="find-nodes";break;}
 case"find-nodes":{var nodesToken="\"nodes\"";var nodesTokenIndex=this._json.indexOf(nodesToken);if(nodesTokenIndex===-1)
 return;var bracketIndex=this._json.indexOf("[",nodesTokenIndex);if(bracketIndex===-1)
@@ -371,12 +382,15 @@
 {var path=name.split(".");var result=this._global;for(var i=0;i<path.length;++i)
 result=result[path[i]];return result;},sendEvent:function(name,data)
 {this._postMessage({eventName:name,data:data});},dispatchMessage:function(event)
-{var data=event.data;var response={callId:data.callId};try{switch(data.disposition){case"create":{var constructorFunction=this._findFunction(data.methodName);this._objects[data.objectId]=new constructorFunction(this);break;}
+{var data=(event.data);var response={callId:data.callId};try{switch(data.disposition){case"create":{var constructorFunction=this._findFunction(data.methodName);this._objects[data.objectId]=new constructorFunction(this);break;}
 case"dispose":{delete this._objects[data.objectId];break;}
 case"getter":{var object=this._objects[data.objectId];var result=object[data.methodName];response.result=result;break;}
 case"factory":{var object=this._objects[data.objectId];var result=object[data.methodName].apply(object,data.methodArguments);if(result)
 this._objects[data.newObjectId]=result;response.result=!!result;break;}
-case"method":{var object=this._objects[data.objectId];response.result=object[data.methodName].apply(object,data.methodArguments);break;}}}catch(e){response.error=e.toString();response.errorCallStack=e.stack;if(data.methodName)
+case"method":{var object=this._objects[data.objectId];response.result=object[data.methodName].apply(object,data.methodArguments);break;}
+case"evaluateForTest":{try{response.result=eval(data.source)}catch(e){response.result=e.toString();}
+break;}
+case"enableAllocationProfiler":{WebInspector.HeapSnapshot.enableAllocationProfiler=true;return;}}}catch(e){response.error=e.toString();response.errorCallStack=e.stack;if(data.methodName)
 response.errorMethodName=data.methodName;}
 this._postMessage(response);}};;WebInspector.JSHeapSnapshot=function(profile,progress)
 {this._nodeFlags={canBeQueried:1,detachedDOMTreeNode:2,pageObject:4,visitedMarkerMask:0x0ffff,visitedMarker:0x10000};this._lazyStringCache={};WebInspector.HeapSnapshot.call(this,profile,progress);}
@@ -492,66 +506,28 @@
 {return this._edge().isInternal();},isInvisible:function()
 {return this._edge().isInvisible();},isShortcut:function()
 {return this._edge().isShortcut();},isWeak:function()
-{return this._edge().isWeak();},__proto__:WebInspector.HeapSnapshotRetainerEdge.prototype};WebInspector.OutputStreamDelegate=function()
-{}
-WebInspector.OutputStreamDelegate.prototype={onTransferStarted:function(){},onTransferFinished:function(){},onChunkTransferred:function(reader){},onError:function(reader,event){},}
-WebInspector.OutputStream=function()
-{}
-WebInspector.OutputStream.prototype={write:function(data,callback){},close:function(){}}
-WebInspector.ChunkedReader=function()
-{}
-WebInspector.ChunkedReader.prototype={fileSize:function(){},loadedSize:function(){},fileName:function(){},cancel:function(){}}
-WebInspector.ChunkedFileReader=function(file,chunkSize,delegate)
-{this._file=file;this._fileSize=file.size;this._loadedSize=0;this._chunkSize=chunkSize;this._delegate=delegate;this._isCanceled=false;}
-WebInspector.ChunkedFileReader.prototype={start:function(output)
-{this._output=output;this._reader=new FileReader();this._reader.onload=this._onChunkLoaded.bind(this);this._reader.onerror=this._delegate.onError.bind(this._delegate,this);this._delegate.onTransferStarted();this._loadChunk();},cancel:function()
-{this._isCanceled=true;},loadedSize:function()
-{return this._loadedSize;},fileSize:function()
-{return this._fileSize;},fileName:function()
-{return this._file.name;},_onChunkLoaded:function(event)
-{if(this._isCanceled)
-return;if(event.target.readyState!==FileReader.DONE)
-return;var data=event.target.result;this._loadedSize+=data.length;this._output.write(data);if(this._isCanceled)
-return;this._delegate.onChunkTransferred(this);if(this._loadedSize===this._fileSize){this._file=null;this._reader=null;this._output.close();this._delegate.onTransferFinished();return;}
-this._loadChunk();},_loadChunk:function()
-{var chunkStart=this._loadedSize;var chunkEnd=Math.min(this._fileSize,chunkStart+this._chunkSize)
-var nextPart=this._file.slice(chunkStart,chunkEnd);this._reader.readAsText(nextPart);}}
-WebInspector.ChunkedXHRReader=function(url,delegate)
-{this._url=url;this._delegate=delegate;this._fileSize=0;this._loadedSize=0;this._isCanceled=false;}
-WebInspector.ChunkedXHRReader.prototype={start:function(output)
-{this._output=output;this._xhr=new XMLHttpRequest();this._xhr.open("GET",this._url,true);this._xhr.onload=this._onLoad.bind(this);this._xhr.onprogress=this._onProgress.bind(this);this._xhr.onerror=this._delegate.onError.bind(this._delegate,this);this._xhr.send(null);this._delegate.onTransferStarted();},cancel:function()
-{this._isCanceled=true;this._xhr.abort();},loadedSize:function()
-{return this._loadedSize;},fileSize:function()
-{return this._fileSize;},fileName:function()
-{return this._url;},_onProgress:function(event)
-{if(this._isCanceled)
-return;if(event.lengthComputable)
-this._fileSize=event.total;var data=this._xhr.responseText.substring(this._loadedSize);if(!data.length)
-return;this._loadedSize+=data.length;this._output.write(data);if(this._isCanceled)
-return;this._delegate.onChunkTransferred(this);},_onLoad:function(event)
-{this._onProgress(event);if(this._isCanceled)
-return;this._output.close();this._delegate.onTransferFinished();}}
-WebInspector.createFileSelectorElement=function(callback){var fileSelectorElement=document.createElement("input");fileSelectorElement.type="file";fileSelectorElement.style.display="none";fileSelectorElement.setAttribute("tabindex",-1);fileSelectorElement.onchange=onChange;function onChange(event)
-{callback(fileSelectorElement.files[0]);};return fileSelectorElement;}
-WebInspector.findBalancedCurlyBrackets=function(source,startIndex,lastIndex){lastIndex=lastIndex||source.length;startIndex=startIndex||0;var counter=0;var inString=false;for(var index=startIndex;index<lastIndex;++index){var character=source[index];if(inString){if(character==="\\")
+{return this._edge().isWeak();},__proto__:WebInspector.HeapSnapshotRetainerEdge.prototype};WebInspector.TextUtils={isStopChar:function(char)
+{return(char>" "&&char<"0")||(char>"9"&&char<"A")||(char>"Z"&&char<"_")||(char>"_"&&char<"a")||(char>"z"&&char<="~");},isWordChar:function(char)
+{return!WebInspector.TextUtils.isStopChar(char)&&!WebInspector.TextUtils.isSpaceChar(char);},isSpaceChar:function(char)
+{return WebInspector.TextUtils._SpaceCharRegex.test(char);},isWord:function(word)
+{for(var i=0;i<word.length;++i){if(!WebInspector.TextUtils.isWordChar(word.charAt(i)))
+return false;}
+return true;},isOpeningBraceChar:function(char)
+{return char==="("||char==="{";},isClosingBraceChar:function(char)
+{return char===")"||char==="}";},isBraceChar:function(char)
+{return WebInspector.TextUtils.isOpeningBraceChar(char)||WebInspector.TextUtils.isClosingBraceChar(char);},textToWords:function(text)
+{var words=[];var startWord=-1;for(var i=0;i<text.length;++i){if(!WebInspector.TextUtils.isWordChar(text.charAt(i))){if(startWord!==-1)
+words.push(text.substring(startWord,i));startWord=-1;}else if(startWord===-1)
+startWord=i;}
+if(startWord!==-1)
+words.push(text.substring(startWord));return words;},findBalancedCurlyBrackets:function(source,startIndex,lastIndex){lastIndex=lastIndex||source.length;startIndex=startIndex||0;var counter=0;var inString=false;for(var index=startIndex;index<lastIndex;++index){var character=source[index];if(inString){if(character==="\\")
 ++index;else if(character==="\"")
 inString=false;}else{if(character==="\"")
 inString=true;else if(character==="{")
 ++counter;else if(character==="}"){if(--counter===0)
 return index+1;}}}
-return-1;}
-WebInspector.FileOutputStream=function()
-{}
-WebInspector.FileOutputStream.prototype={open:function(fileName,callback)
-{this._closed=false;this._writeCallbacks=[];this._fileName=fileName;function callbackWrapper()
-{WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.SavedURL,callbackWrapper,this);WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);callback(this);}
-WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.SavedURL,callbackWrapper,this);WebInspector.fileManager.save(this._fileName,"",true);},write:function(data,callback)
-{this._writeCallbacks.push(callback);WebInspector.fileManager.append(this._fileName,data);},close:function()
-{this._closed=true;if(this._writeCallbacks.length)
-return;WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);WebInspector.fileManager.close(this._fileName);},_onAppendDone:function(event)
-{if(event.data!==this._fileName)
-return;var callback=this._writeCallbacks.shift();if(callback)
-callback(this);if(!this._writeCallbacks.length){if(this._closed){WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);WebInspector.fileManager.close(this._fileName);}}}};WebInspector.UIString=function(string,vararg)
+return-1;}}
+WebInspector.TextUtils._SpaceCharRegex=/\s/;WebInspector.TextUtils.Indent={TwoSpaces:"  ",FourSpaces:"    ",EightSpaces:"        ",TabCharacter:"\t"};WebInspector.UIString=function(string,vararg)
 {return String.vsprintf(string,Array.prototype.slice.call(arguments,1));};Object.isEmpty=function(obj)
 {for(var i in obj)
 return false;return true;}
@@ -602,6 +578,9 @@
 {return!this.lastIndexOf(substring,0);}
 String.prototype.endsWith=function(substring)
 {return this.indexOf(substring,this.length-substring.length)!==-1;}
+String.prototype.hashCode=function()
+{var result=0;for(var i=0;i<this.length;++i)
+result=result*3+this.charCodeAt(i);return result;}
 String.naturalOrderComparator=function(a,b)
 {var chunk=/^\d+|^\D+/;var chunka,chunkb,anum,bnum;while(1){if(a){if(!b)
 return 1;}else{if(b)
@@ -655,7 +634,15 @@
 if(leftBound===0&&rightBound===(this.length-1)&&sortWindowLeft===0&&sortWindowRight>=rightBound)
 this.sort(comparator);else
 quickSortRange(this,comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight);return this;}}
-Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
+Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"stableSort",{value:function(comparator)
+{function defaultComparator(a,b)
+{return a<b?-1:(a>b?1:0);}
+comparator=comparator||defaultComparator;var indices=new Array(this.length);for(var i=0;i<this.length;++i)
+indices[i]=i;var self=this;function indexComparator(a,b)
+{var result=comparator(self[a],self[b]);return result?result:a-b;}
+indices.sort(indexComparator);for(var i=0;i<this.length;++i){if(indices[i]<0||i===indices[i])
+continue;var cyclical=i;var saved=this[i];while(true){var next=indices[cyclical];indices[cyclical]=-1;if(next===i){this[cyclical]=saved;break;}else{this[cyclical]=this[next];cyclical=next;}}}
+return this;}});Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
 {if(k<0||k>=this.length)
 return;if(!comparator)
 comparator=function(a,b){return a-b;}
@@ -678,7 +665,15 @@
 {var index=this.lowerBound(value,comparator);return index<this.length&&comparator(value,this[index])===0?index:-1;}});Object.defineProperty(Array.prototype,"select",{value:function(field)
 {var result=new Array(this.length);for(var i=0;i<this.length;++i)
 result[i]=this[i][field];return result;}});Object.defineProperty(Array.prototype,"peekLast",{value:function()
-{return this[this.length-1];}});function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
+{return this[this.length-1];}});(function(){function mergeOrIntersect(array1,array2,comparator,mergeNotIntersect)
+{var result=[];var i=0;var j=0;while(i<array1.length||j<array2.length){if(i===array1.length){result=result.concat(array2.slice(j));j=array2.length;}else if(j===array2.length){result=result.concat(array1.slice(i));i=array1.length;}else{var compareValue=comparator(array1[i],array2[j])
+if(compareValue<0){if(mergeNotIntersect)
+result.push(array1[i]);++i;}else if(compareValue>0){if(mergeNotIntersect)
+result.push(array2[j]);++j;}else{result.push(array1[i]);++i;++j;}}}
+return result;}
+Object.defineProperty(Array.prototype,"intersectOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,false);}});Object.defineProperty(Array.prototype,"mergeOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,true);}});}());function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
 {if(insertionIndexAfter)
 return list.upperBound(object,comparator);else
 return list.lowerBound(object,comparator);}
@@ -811,7 +806,7 @@
 var _importedScripts={};function importScript(scriptName)
 {if(_importedScripts[scriptName])
 return;var xhr=new XMLHttpRequest();_importedScripts[scriptName]=true;xhr.open("GET",scriptName,false);xhr.send(null);if(!xhr.responseText)
-throw"empty response arrived for script '"+scriptName+"'";var sourceURL=WebInspector.ParsedURL.completeURL(window.location.href,scriptName);window.eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
+throw"empty response arrived for script '"+scriptName+"'";var baseUrl=location.href;baseUrl=baseUrl.substring(0,baseUrl.lastIndexOf("/"));var sourceURL=baseUrl+"/"+scriptName;eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
 var loadScript=importScript;function CallbackBarrier()
 {this._pendingIncomingCallbacksCount=0;}
 CallbackBarrier.prototype={createCallback:function(userCallback)
diff --git a/resources/inspector/Images/searchSmallBlue.png b/resources/inspector/Images/searchSmallBlue.png
deleted file mode 100644
index 08350f7..0000000
--- a/resources/inspector/Images/searchSmallBlue.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/searchSmallBrightBlue.png b/resources/inspector/Images/searchSmallBrightBlue.png
deleted file mode 100644
index 09813af..0000000
--- a/resources/inspector/Images/searchSmallBrightBlue.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/searchSmallGray.png b/resources/inspector/Images/searchSmallGray.png
deleted file mode 100644
index a26aa6f..0000000
--- a/resources/inspector/Images/searchSmallGray.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/searchSmallWhite.png b/resources/inspector/Images/searchSmallWhite.png
deleted file mode 100644
index a42bf1e..0000000
--- a/resources/inspector/Images/searchSmallWhite.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/statusbarButtonGlyphs.png b/resources/inspector/Images/statusbarButtonGlyphs.png
index c58a9c5..9abb072 100644
--- a/resources/inspector/Images/statusbarButtonGlyphs.png
+++ b/resources/inspector/Images/statusbarButtonGlyphs.png
Binary files differ
diff --git a/resources/inspector/Images/statusbarButtonGlyphs2x.png b/resources/inspector/Images/statusbarButtonGlyphs2x.png
index ad4a5b2..18d1cf5 100644
--- a/resources/inspector/Images/statusbarButtonGlyphs2x.png
+++ b/resources/inspector/Images/statusbarButtonGlyphs2x.png
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillBlue.png b/resources/inspector/Images/timelineHollowPillBlue.png
deleted file mode 100644
index ed68e45..0000000
--- a/resources/inspector/Images/timelineHollowPillBlue.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillGray.png b/resources/inspector/Images/timelineHollowPillGray.png
deleted file mode 100644
index 12a6662..0000000
--- a/resources/inspector/Images/timelineHollowPillGray.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillGreen.png b/resources/inspector/Images/timelineHollowPillGreen.png
deleted file mode 100644
index 7b31b9e..0000000
--- a/resources/inspector/Images/timelineHollowPillGreen.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillOrange.png b/resources/inspector/Images/timelineHollowPillOrange.png
deleted file mode 100644
index b76928e..0000000
--- a/resources/inspector/Images/timelineHollowPillOrange.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillPurple.png b/resources/inspector/Images/timelineHollowPillPurple.png
deleted file mode 100644
index ce56400..0000000
--- a/resources/inspector/Images/timelineHollowPillPurple.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillRed.png b/resources/inspector/Images/timelineHollowPillRed.png
deleted file mode 100644
index 5cc45b8..0000000
--- a/resources/inspector/Images/timelineHollowPillRed.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelineHollowPillYellow.png b/resources/inspector/Images/timelineHollowPillYellow.png
deleted file mode 100644
index b62f774..0000000
--- a/resources/inspector/Images/timelineHollowPillYellow.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillBlue.png b/resources/inspector/Images/timelinePillBlue.png
deleted file mode 100644
index ad4821d..0000000
--- a/resources/inspector/Images/timelinePillBlue.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillGray.png b/resources/inspector/Images/timelinePillGray.png
deleted file mode 100644
index 4b4d182..0000000
--- a/resources/inspector/Images/timelinePillGray.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillGreen.png b/resources/inspector/Images/timelinePillGreen.png
deleted file mode 100644
index e6a62a8..0000000
--- a/resources/inspector/Images/timelinePillGreen.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillOrange.png b/resources/inspector/Images/timelinePillOrange.png
deleted file mode 100644
index 76c9f56..0000000
--- a/resources/inspector/Images/timelinePillOrange.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillPurple.png b/resources/inspector/Images/timelinePillPurple.png
deleted file mode 100644
index b82cbd8..0000000
--- a/resources/inspector/Images/timelinePillPurple.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillRed.png b/resources/inspector/Images/timelinePillRed.png
deleted file mode 100644
index d8359fd..0000000
--- a/resources/inspector/Images/timelinePillRed.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/Images/timelinePillYellow.png b/resources/inspector/Images/timelinePillYellow.png
deleted file mode 100644
index a5e0d8f..0000000
--- a/resources/inspector/Images/timelinePillYellow.png
+++ /dev/null
Binary files differ
diff --git a/resources/inspector/LayersPanel.js b/resources/inspector/LayersPanel.js
index c86f053..b3d3cb2 100644
--- a/resources/inspector/LayersPanel.js
+++ b/resources/inspector/LayersPanel.js
@@ -13,7 +13,7 @@
 {if(!root){root=this.root();if(!root)
 return false;}
 return callback(root)||root.children().some(this.forEachLayer.bind(this,callback));},layerById:function(id)
-{return this._layersById[id];},_repopulate:function(payload)
+{return this._layersById[id]||null;},_repopulate:function(payload)
 {var oldLayersById=this._layersById;this._layersById={};for(var i=0;i<payload.length;++i){var layerId=payload[i].layerId;var layer=oldLayersById[layerId];if(layer)
 layer._reset(payload[i]);else
 layer=new WebInspector.Layer(payload[i]);this._layersById[layerId]=layer;var parentId=layer.parentId();if(!this._contentRoot&&layer.nodeId())
@@ -50,12 +50,10 @@
 {return this._layerPayload.invisible;},paintCount:function()
 {return this._paintCount||this._layerPayload.paintCount;},lastPaintRect:function()
 {return this._lastPaintRect;},requestCompositingReasons:function(callback)
-{function callbackWrapper(error,compositingReasons)
-{if(error){console.error("LayerTreeAgent.reasonsForCompositingLayer(): "+error);callback(null);return;}
-callback(compositingReasons);}
-LayerTreeAgent.compositingReasons(this.id(),callbackWrapper.bind(this));},_didPaint:function(rect)
-{this._lastPaintRect=rect;this._paintCount=this.paintCount()+1;},_reset:function(layerPayload)
-{this._children=[];this._parent=null;this._paintCount=0;this._layerPayload=layerPayload;}}
+{var wrappedCallback=InspectorBackend.wrapClientCallback(callback,"LayerTreeAgent.reasonsForCompositingLayer(): ",undefined,[]);LayerTreeAgent.compositingReasons(this.id(),wrappedCallback);},requestSnapshot:function(callback)
+{var wrappedCallback=InspectorBackend.wrapClientCallback(callback,"LayerTreeAgent.makeSnapshot(): ",WebInspector.PaintProfilerSnapshot);LayerTreeAgent.makeSnapshot(this.id(),wrappedCallback);},_didPaint:function(rect)
+{this._lastPaintRect=rect;this._paintCount=this.paintCount()+1;this._image=null;},_reset:function(layerPayload)
+{this._children=[];this._parent=null;this._paintCount=0;this._layerPayload=layerPayload;this._image=null;}}
 WebInspector.LayerTreeDispatcher=function(layerTreeModel)
 {this._layerTreeModel=layerTreeModel;}
 WebInspector.LayerTreeDispatcher.prototype={layerTreeDidChange:function(payload)
@@ -91,23 +89,25 @@
 {TreeElement.call(this,"",layer);this._layerTree=tree;this._update();}
 WebInspector.LayerTreeElement.prototype={onattach:function()
 {var selection=document.createElement("div");selection.className="selection";this.listItemElement.insertBefore(selection,this.listItemElement.firstChild);},_update:function()
-{var layer=(this.representedObject);var nodeId=layer.nodeIdForSelfOrAncestor();var node=nodeId&&WebInspector.domAgent.nodeForId(nodeId);var title=document.createDocumentFragment();title.createChild("div","selection");title.appendChild(document.createTextNode(node?node.appropriateSelectorFor(false):"#"+layer.id()));var details=title.createChild("span","dimmed");details.textContent=WebInspector.UIString(" (%d × %d)",layer.width(),layer.height());this.title=title;},onselect:function()
-{this._layerTree._selectedNodeChanged(this);},setHovered:function(hovered)
+{var layer=(this.representedObject);var nodeId=layer.nodeIdForSelfOrAncestor();var node=nodeId?WebInspector.domAgent.nodeForId(nodeId):null;var title=document.createDocumentFragment();title.createChild("div","selection");title.appendChild(document.createTextNode(node?WebInspector.DOMPresentationUtils.appropriateSelectorFor(node,false):"#"+layer.id()));var details=title.createChild("span","dimmed");details.textContent=WebInspector.UIString(" (%d × %d)",layer.width(),layer.height());this.title=title;},onselect:function()
+{this._layerTree._selectedNodeChanged(this);return false;},setHovered:function(hovered)
 {this.listItemElement.enableStyleClass("hovered",hovered);},__proto__:TreeElement.prototype};WebInspector.Layers3DView=function(model)
-{WebInspector.View.call(this);this.element.classList.add("fill");this.element.classList.add("layers-3d-view");this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("Not in the composited mode.\nConsider forcing composited mode in Settings."));this._model=model;this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._update,this);this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerPainted,this._onLayerPainted,this);this._rotatingContainerElement=this.element.createChild("div","fill rotating-container");this.element.addEventListener("mousemove",this._onMouseMove.bind(this),false);this.element.addEventListener("mouseout",this._onMouseMove.bind(this),false);this.element.addEventListener("mousedown",this._onMouseDown.bind(this),false);this.element.addEventListener("mouseup",this._onMouseUp.bind(this),false);this.element.addEventListener("contextmenu",this._onContextMenu.bind(this),false);this.element.addEventListener("click",this._onClick.bind(this),false);this._elementsByLayerId={};this._rotateX=0;this._rotateY=0;this._scaleAdjustmentStylesheet=this.element.ownerDocument.head.createChild("style");this._scaleAdjustmentStylesheet.disabled=true;this._lastOutlinedElement={};WebInspector.settings.showPaintRects.addChangeListener(this._update,this);}
+{WebInspector.View.call(this);this.element.classList.add("fill");this.element.classList.add("layers-3d-view");this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("Not in the composited mode.\nConsider forcing composited mode in Settings."));this._model=model;this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._update,this);this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerPainted,this._onLayerPainted,this);this._rotatingContainerElement=this.element.createChild("div","fill rotating-container");this.element.addEventListener("mousemove",this._onMouseMove.bind(this),false);this.element.addEventListener("mouseout",this._onMouseMove.bind(this),false);this.element.addEventListener("mousedown",this._onMouseDown.bind(this),false);this.element.addEventListener("mouseup",this._onMouseUp.bind(this),false);this.element.addEventListener("contextmenu",this._onContextMenu.bind(this),false);this.element.addEventListener("dblclick",this._onDoubleClick.bind(this),false);this.element.addEventListener("click",this._onClick.bind(this),false);this._elementsByLayerId={};this._rotateX=0;this._rotateY=0;this._scaleAdjustmentStylesheet=this.element.ownerDocument.head.createChild("style");this._scaleAdjustmentStylesheet.disabled=true;this._lastOutlinedElement={};this._layerImage=document.createElement("img");WebInspector.settings.showPaintRects.addChangeListener(this._update,this);}
 WebInspector.Layers3DView.OutlineType={Hovered:"hovered",Selected:"selected"}
-WebInspector.Layers3DView.Events={LayerHovered:"LayerHovered",LayerSelected:"LayerSelected"}
-WebInspector.Layers3DView.PaintRectColors=[WebInspector.Color.fromRGBA([0xFF,0,0]),WebInspector.Color.fromRGBA([0xFF,0,0xFF]),WebInspector.Color.fromRGBA([0,0,0xFF])]
+WebInspector.Layers3DView.Events={LayerHovered:"LayerHovered",LayerSelected:"LayerSelected",LayerSnapshotRequested:"LayerSnapshotRequested"}
+WebInspector.Layers3DView.PaintRectColors=[WebInspector.Color.fromRGBA([0,0x5F,0,0x3F]),WebInspector.Color.fromRGBA([0,0xAF,0,0x3F]),WebInspector.Color.fromRGBA([0,0xFF,0,0x3F])]
 WebInspector.Layers3DView.prototype={onResize:function()
 {this._update();},willHide:function()
 {this._scaleAdjustmentStylesheet.disabled=true;},wasShown:function()
 {this._scaleAdjustmentStylesheet.disabled=false;if(this._needsUpdate)
 this._update();},_setOutline:function(type,layer)
 {var element=layer?this._elementForLayer(layer):null;var previousElement=this._lastOutlinedElement[type];if(previousElement===element)
-return;this._lastOutlinedElement[type]=element;if(previousElement){previousElement.removeStyleClass(type);this._updateElementColor(previousElement);}
-if(element){element.addStyleClass(type);this._updateElementColor(element);}},hoverLayer:function(layer)
+return;this._lastOutlinedElement[type]=element;if(previousElement){previousElement.classList.remove(type);this._updateElementColor(previousElement);}
+if(element){element.classList.add(type);this._updateElementColor(element);}},hoverLayer:function(layer)
 {this._setOutline(WebInspector.Layers3DView.OutlineType.Hovered,layer);},selectLayer:function(layer)
-{this._setOutline(WebInspector.Layers3DView.OutlineType.Hovered,null);this._setOutline(WebInspector.Layers3DView.OutlineType.Selected,layer);},_scaleToFit:function()
+{this._setOutline(WebInspector.Layers3DView.OutlineType.Hovered,null);this._setOutline(WebInspector.Layers3DView.OutlineType.Selected,layer);},showImageForLayer:function(layer,imageURL)
+{var element=this._elementForLayer(layer);this._layerImage.removeAttribute("src");if(imageURL)
+this._layerImage.src=imageURL;element.appendChild(this._layerImage);},_scaleToFit:function()
 {var root=this._model.contentRoot();if(!root)
 return;const padding=40;var scaleX=this._clientWidth/(root.width()+2*padding);var scaleY=this._clientHeight/(root.height()+2*padding);this._scale=Math.min(scaleX,scaleY);const screenLayerSpacing=20;this._layerSpacing=Math.ceil(screenLayerSpacing/this._scale)+"px";const screenLayerThickness=4;var layerThickness=Math.ceil(screenLayerThickness/this._scale)+"px";var stylesheetContent=".layer-container .side-wall { height: "+layerThickness+"; width: "+layerThickness+"; } "+".layer-container .back-wall { -webkit-transform: translateZ(-"+layerThickness+"); } "+".layer-container { -webkit-transform: translateZ("+this._layerSpacing+"); }";var stylesheetTextNode=this._scaleAdjustmentStylesheet.firstChild;if(!stylesheetTextNode||stylesheetTextNode.nodeType!==Node.TEXT_NODE||stylesheetTextNode.nextSibling)
 this._scaleAdjustmentStylesheet.textContent=stylesheetContent;else
@@ -124,11 +124,11 @@
 element=document.createElement("div");element.className="layer-container";["fill back-wall","side-wall top","side-wall right","side-wall bottom","side-wall left"].forEach(element.createChild.bind(element,"div"));element.__layerDetails=new WebInspector.LayerDetails(layer,element.createChild("div","paint-rect"));this._elementsByLayerId[layer.id()]=element;return element;},_updateLayerElement:function(element)
 {var layer=element.__layerDetails.layer;var style=element.style;var isContentRoot=layer===this._model.contentRoot();var parentElement=isContentRoot?this._rotatingContainerElement:this._elementForLayer(layer.parent());element.__layerDetails.depth=parentElement.__layerDetails?parentElement.__layerDetails.depth+1:0;element.enableStyleClass("invisible",layer.invisible());this._updateElementColor(element);if(parentElement!==element.parentElement)
 parentElement.appendChild(element);style.width=layer.width()+"px";style.height=layer.height()+"px";this._updatePaintRect(element);if(isContentRoot)
-return;style.left=layer.offsetX()+"px";style.top=layer.offsetY()+"px";var transform=layer.transform();if(transform){function toFixed5(x)
-{return x.toFixed(5);}
-style.webkitTransform="matrix3d("+transform.map(toFixed5).join(",")+") translateZ("+this._layerSpacing+")";var anchor=layer.anchorPoint();style.webkitTransformOrigin=Math.round(anchor[0]*100)+"% "+Math.round(anchor[1]*100)+"% "+anchor[2];}else{style.webkitTransform="";style.webkitTransformOrigin="";}},_updatePaintRect:function(element)
-{var details=element.__layerDetails;var paintRect=details.layer.lastPaintRect();var paintRectElement=details.paintRectElement;if(!paintRect||!WebInspector.settings.showPaintRects.get()){paintRectElement.addStyleClass("hidden");return;}
-paintRectElement.removeStyleClass("hidden");if(details.paintCount===details.layer.paintCount())
+return;style.left=layer.offsetX()+"px";style.top=layer.offsetY()+"px";var transform=layer.transform();if(transform){style.webkitTransform="matrix3d("+transform.map(toFixed5).join(",")+") translateZ("+this._layerSpacing+")";var anchor=layer.anchorPoint();style.webkitTransformOrigin=Math.round(anchor[0]*100)+"% "+Math.round(anchor[1]*100)+"% "+anchor[2];}else{style.webkitTransform="";style.webkitTransformOrigin="";}
+function toFixed5(x)
+{return x.toFixed(5);}},_updatePaintRect:function(element)
+{var details=element.__layerDetails;var paintRect=details.layer.lastPaintRect();var paintRectElement=details.paintRectElement;if(!paintRect||!WebInspector.settings.showPaintRects.get()){paintRectElement.classList.add("hidden");return;}
+paintRectElement.classList.remove("hidden");if(details.paintCount===details.layer.paintCount())
 return;details.paintCount=details.layer.paintCount();var style=paintRectElement.style;style.left=paintRect.x+"px";style.top=paintRect.y+"px";style.width=paintRect.width+"px";style.height=paintRect.height+"px";var color=WebInspector.Layers3DView.PaintRectColors[details.paintCount%WebInspector.Layers3DView.PaintRectColors.length];style.borderWidth=Math.ceil(1/this._scale)+"px";style.borderColor=color.toString(WebInspector.Color.Format.RGBA);},_updateElementColor:function(element)
 {var color;if(element===this._lastOutlinedElement[WebInspector.Layers3DView.OutlineType.Selected])
 color=WebInspector.Color.PageHighlight.Content.toString(WebInspector.Color.Format.RGBA)||"";else{const base=144;var component=base+20*((element.__layerDetails.depth-1)%5);color="rgba("+component+","+component+","+component+", 0.8)";}
@@ -147,36 +147,62 @@
 {var layer=this._layerFromEventPoint(event);var nodeId=layer&&layer.nodeId();if(!nodeId)
 return;var domNode=WebInspector.domAgent.nodeForId(nodeId);if(!domNode)
 return;var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(domNode);contextMenu.show();},_onClick:function(event)
-{this.dispatchEventToListeners(WebInspector.Layers3DView.Events.LayerSelected,this._layerFromEventPoint(event));},__proto__:WebInspector.View.prototype}
+{this.dispatchEventToListeners(WebInspector.Layers3DView.Events.LayerSelected,this._layerFromEventPoint(event));},_onDoubleClick:function(event)
+{var layer=this._layerFromEventPoint(event);if(layer)
+this.dispatchEventToListeners(WebInspector.Layers3DView.Events.LayerSnapshotRequested,layer);event.stopPropagation();},__proto__:WebInspector.View.prototype}
 WebInspector.LayerDetails=function(layer,paintRectElement)
-{this.layer=layer;this.depth=0;this.paintRectElement=paintRectElement;this.paintCount=0;};WebInspector.LayerDetailsView=function()
-{WebInspector.View.call(this);this.element.classList.add("fill");this.element.classList.add("layer-details-view");this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("Select a layer to see its details"));this._createTable();this.showLayer(null);}
-WebInspector.LayerDetailsView.CompositingReasonDetail={"transform3D":WebInspector.UIString("Composition due to association with an element with a CSS 3D transform."),"video":WebInspector.UIString("Composition due to association with a <video> element."),"canvas":WebInspector.UIString("Composition due to the element being a <canvas> element."),"plugin":WebInspector.UIString("Composition due to association with a plugin."),"iFrame":WebInspector.UIString("Composition due to association with an <iframe> element."),"backfaceVisibilityHidden":WebInspector.UIString("Composition due to association with an element with a \"backface-visibility: hidden\" style."),"animation":WebInspector.UIString("Composition due to association with an animated element."),"filters":WebInspector.UIString("Composition due to association with an element with CSS filters applied."),"positionFixed":WebInspector.UIString("Composition due to association with an element with a \"position: fixed\" style."),"positionSticky":WebInspector.UIString("Composition due to association with an element with a \"position: sticky\" style."),"overflowScrollingTouch":WebInspector.UIString("Composition due to association with an element with a \"overflow-scrolling: touch\" style."),"blending":WebInspector.UIString("Composition due to association with an element that has blend mode other than \"normal\"."),"assumedOverlap":WebInspector.UIString("Composition due to association with an element that may overlap other composited elements."),"overlap":WebInspector.UIString("Composition due to association with an element overlapping other composited elements."),"negativeZIndexChildren":WebInspector.UIString("Composition due to association with an element with descendants that have a negative z-index."),"transformWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with composited descendants."),"opacityWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with opacity applied and composited descendants."),"maskWithCompositedDescendants":WebInspector.UIString("Composition due to association with a masked element and composited descendants."),"reflectionWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with a reflection and composited descendants."),"filterWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with CSS filters applied and composited descendants."),"blendingWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with CSS blending applied and composited descendants."),"clipsCompositingDescendants":WebInspector.UIString("Composition due to association with an element clipping compositing descendants."),"perspective":WebInspector.UIString("Composition due to association with an element with perspective applied."),"preserve3D":WebInspector.UIString("Composition due to association with an element with a \"transform-style: preserve-3d\" style."),"root":WebInspector.UIString("Root layer."),"layerForClip":WebInspector.UIString("Layer for clip."),"layerForScrollbar":WebInspector.UIString("Layer for scrollbar."),"layerForScrollingContainer":WebInspector.UIString("Layer for scrolling container."),"layerForForeground":WebInspector.UIString("Layer for foreground."),"layerForBackground":WebInspector.UIString("Layer for background."),"layerForMask":WebInspector.UIString("Layer for mask."),"layerForVideoOverlay":WebInspector.UIString("Layer for video overlay.")};WebInspector.LayerDetailsView.prototype={showLayer:function(layer)
-{if(!layer){this._tableElement.remove();this._emptyView.show(this.element);return;}
-this._emptyView.detach();this.element.appendChild(this._tableElement);this._positionCell.textContent=WebInspector.UIString("%d,%d",layer.offsetX(),layer.offsetY());this._sizeCell.textContent=WebInspector.UIString("%d × %d",layer.width(),layer.height());this._paintCountCell.textContent=layer.paintCount();const bytesPerPixel=4;this._memoryEstimateCell.textContent=Number.bytesToString(layer.invisible()?0:layer.width()*layer.height()*bytesPerPixel);layer.requestCompositingReasons(this._updateCompositingReasons.bind(this));},_createTable:function()
+{this.layer=layer;this.depth=0;this.paintRectElement=paintRectElement;this.paintCount=0;};WebInspector.LayerDetailsView=function(model)
+{WebInspector.View.call(this);this.element.classList.add("fill");this.element.classList.add("layer-details-view");this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("Select a layer to see its details"));this._createTable();this._model=model;this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._onLayerTreeUpdated,this);this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerPainted,this._onLayerPainted,this);}
+WebInspector.LayerDetailsView.CompositingReasonDetail={"transform3D":WebInspector.UIString("Composition due to association with an element with a CSS 3D transform."),"video":WebInspector.UIString("Composition due to association with a <video> element."),"canvas":WebInspector.UIString("Composition due to the element being a <canvas> element."),"plugin":WebInspector.UIString("Composition due to association with a plugin."),"iFrame":WebInspector.UIString("Composition due to association with an <iframe> element."),"backfaceVisibilityHidden":WebInspector.UIString("Composition due to association with an element with a \"backface-visibility: hidden\" style."),"animation":WebInspector.UIString("Composition due to association with an animated element."),"filters":WebInspector.UIString("Composition due to association with an element with CSS filters applied."),"positionFixed":WebInspector.UIString("Composition due to association with an element with a \"position: fixed\" style."),"positionSticky":WebInspector.UIString("Composition due to association with an element with a \"position: sticky\" style."),"overflowScrollingTouch":WebInspector.UIString("Composition due to association with an element with a \"overflow-scrolling: touch\" style."),"blending":WebInspector.UIString("Composition due to association with an element that has blend mode other than \"normal\"."),"assumedOverlap":WebInspector.UIString("Composition due to association with an element that may overlap other composited elements."),"overlap":WebInspector.UIString("Composition due to association with an element overlapping other composited elements."),"negativeZIndexChildren":WebInspector.UIString("Composition due to association with an element with descendants that have a negative z-index."),"transformWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with composited descendants."),"opacityWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with opacity applied and composited descendants."),"maskWithCompositedDescendants":WebInspector.UIString("Composition due to association with a masked element and composited descendants."),"reflectionWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with a reflection and composited descendants."),"filterWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with CSS filters applied and composited descendants."),"blendingWithCompositedDescendants":WebInspector.UIString("Composition due to association with an element with CSS blending applied and composited descendants."),"clipsCompositingDescendants":WebInspector.UIString("Composition due to association with an element clipping compositing descendants."),"perspective":WebInspector.UIString("Composition due to association with an element with perspective applied."),"preserve3D":WebInspector.UIString("Composition due to association with an element with a \"transform-style: preserve-3d\" style."),"root":WebInspector.UIString("Root layer."),"layerForClip":WebInspector.UIString("Layer for clip."),"layerForScrollbar":WebInspector.UIString("Layer for scrollbar."),"layerForScrollingContainer":WebInspector.UIString("Layer for scrolling container."),"layerForForeground":WebInspector.UIString("Layer for foreground."),"layerForBackground":WebInspector.UIString("Layer for background."),"layerForMask":WebInspector.UIString("Layer for mask."),"layerForVideoOverlay":WebInspector.UIString("Layer for video overlay.")};WebInspector.LayerDetailsView.prototype={setLayer:function(layer)
+{this._layer=layer;if(this.isShowing())
+this._update();},wasShown:function()
+{WebInspector.View.prototype.wasShown.call(this);this._update();},_onLayerTreeUpdated:function()
+{if(this.isShowing())
+this._update();},_onLayerPainted:function(event)
+{var layer=(event.data);if(this._layer===layer)
+this._paintCountCell.textContent=layer.paintCount();},_update:function()
+{if(!this._layer){this._tableElement.remove();this._emptyView.show(this.element);return;}
+this._emptyView.detach();this.element.appendChild(this._tableElement);this._positionCell.textContent=WebInspector.UIString("%d,%d",this._layer.offsetX(),this._layer.offsetY());this._sizeCell.textContent=WebInspector.UIString("%d × %d",this._layer.width(),this._layer.height());this._paintCountCell.textContent=this._layer.paintCount();const bytesPerPixel=4;this._memoryEstimateCell.textContent=Number.bytesToString(this._layer.invisible()?0:this._layer.width()*this._layer.height()*bytesPerPixel);this._layer.requestCompositingReasons(this._updateCompositingReasons.bind(this));},_createTable:function()
 {this._tableElement=this.element.createChild("table");this._tbodyElement=this._tableElement.createChild("tbody");this._positionCell=this._createRow(WebInspector.UIString("Position in parent:"));this._sizeCell=this._createRow(WebInspector.UIString("Size:"));this._compositingReasonsCell=this._createRow(WebInspector.UIString("Compositing Reasons:"));this._memoryEstimateCell=this._createRow(WebInspector.UIString("Memory estimate:"));this._paintCountCell=this._createRow(WebInspector.UIString("Paint count:"));},_createRow:function(title)
 {var tr=this._tbodyElement.createChild("tr");var titleCell=tr.createChild("td");titleCell.textContent=title;return tr.createChild("td");},_updateCompositingReasons:function(compositingReasons)
 {if(!compositingReasons||!compositingReasons.length){this._compositingReasonsCell.textContent="n/a";return;}
 var fragment=document.createDocumentFragment();for(var i=0;i<compositingReasons.length;++i){if(i)
 fragment.appendChild(document.createTextNode(","));var span=document.createElement("span");span.title=WebInspector.LayerDetailsView.CompositingReasonDetail[compositingReasons[i]]||"";span.textContent=compositingReasons[i];fragment.appendChild(span);}
-this._compositingReasonsCell.removeChildren();this._compositingReasonsCell.appendChild(fragment);},updatePaintCount:function(paintCount)
-{this._paintCountCell.textContent=paintCount;},__proto__:WebInspector.View.prototype};WebInspector.LayersPanel=function()
-{WebInspector.Panel.call(this,"layers");this.registerRequiredCSS("layersPanel.css");const initialLayerTreeSidebarWidth=225;const minimumMainWidthPercent=0.5;this.createSidebarViewWithTree();this.sidebarElement.addStyleClass("outline-disclosure");this.sidebarTreeElement.removeStyleClass("sidebar-tree");this._model=new WebInspector.LayerTreeModel();this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._onLayerTreeUpdated,this);this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerPainted,this._onLayerPainted,this);this._currentlySelectedLayer=null;this._currentlyHoveredLayer=null;this._layerTree=new WebInspector.LayerTree(this._model,this.sidebarTree);this._layerTree.addEventListener(WebInspector.LayerTree.Events.LayerSelected,this._onLayerSelected,this);this._layerTree.addEventListener(WebInspector.LayerTree.Events.LayerHovered,this._onLayerHovered,this);this._layerDetailsSplitView=new WebInspector.SplitView(false,"layerDetailsSplitView");this._layerDetailsSplitView.show(this.splitView.mainElement);this._layers3DView=new WebInspector.Layers3DView(this._model);this._layers3DView.show(this._layerDetailsSplitView.firstElement());this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.LayerSelected,this._onLayerSelected,this);this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.LayerHovered,this._onLayerHovered,this);this._layerDetailsView=new WebInspector.LayerDetailsView();this._layerDetailsView.show(this._layerDetailsSplitView.secondElement());}
-WebInspector.LayersPanel.prototype={wasShown:function()
+this._compositingReasonsCell.removeChildren();this._compositingReasonsCell.appendChild(fragment);},__proto__:WebInspector.View.prototype};WebInspector.PaintProfilerView=function(model,layers3DView)
+{WebInspector.View.call(this);this.element.classList.add("fill","paint-profiler-view");this._model=model;this._layers3DView=layers3DView;this._canvas=this.element.createChild("canvas","fill");this._context=this._canvas.getContext("2d");this._selectionWindow=new WebInspector.OverviewGrid.Window(this.element,this.element);this._selectionWindow.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);this._innerBarWidth=4*window.devicePixelRatio;this._minBarHeight=4*window.devicePixelRatio;this._barPaddingWidth=2*window.devicePixelRatio;this._outerBarWidth=this._innerBarWidth+this._barPaddingWidth;this._reset();}
+WebInspector.PaintProfilerView.prototype={onResize:function()
+{this._update();},_update:function()
+{this._canvas.width=this.element.clientWidth*window.devicePixelRatio;this._canvas.height=this.element.clientHeight*window.devicePixelRatio;this._samplesPerBar=0;if(!this._profiles||!this._profiles.length)
+return;var maxBars=Math.floor((this._canvas.width-2*this._barPaddingWidth)/this._outerBarWidth);var sampleCount=this._profiles[0].length;this._samplesPerBar=Math.ceil(sampleCount/maxBars);var barCount=Math.floor(sampleCount/this._samplesPerBar);var maxBarTime=0;var barTimes=[];for(var i=0,lastBarIndex=0,lastBarTime=0;i<sampleCount;){for(var row=0;row<this._profiles.length;row++)
+lastBarTime+=this._profiles[row][i];++i;if(i-lastBarIndex==this._samplesPerBar||i==sampleCount){lastBarTime/=this._profiles.length*(i-lastBarIndex);barTimes.push(lastBarTime);if(lastBarTime>maxBarTime)
+maxBarTime=lastBarTime;lastBarTime=0;lastBarIndex=i;}}
+const paddingHeight=4*window.devicePixelRatio;var scale=(this._canvas.height-paddingHeight-this._minBarHeight)/maxBarTime;this._context.fillStyle="rgba(110, 180, 110, 0.7)";for(var i=0;i<barTimes.length;++i)
+this._renderBar(i,barTimes[i]*scale+this._minBarHeight);},_renderBar:function(index,height)
+{var x=this._barPaddingWidth+index*this._outerBarWidth;var y=this._canvas.height-height;this._context.fillRect(x,y,this._innerBarWidth,height);},_onWindowChanged:function()
+{if(this._updateImageTimer)
+return;this._updateImageTimer=setTimeout(this._updateImage.bind(this),100);},_updateImage:function()
+{delete this._updateImageTimer;if(!this._profiles||!this._profiles.length)
+return;var screenLeft=this._selectionWindow.windowLeft*this._canvas.width;var screenRight=this._selectionWindow.windowRight*this._canvas.width;var barLeft=Math.floor((screenLeft-this._barPaddingWidth)/this._outerBarWidth);var barRight=Math.floor((screenRight-this._barPaddingWidth+this._innerBarWidth)/this._outerBarWidth);var stepLeft=Math.max(0,barLeft*this._samplesPerBar);var stepRight=Math.min(barRight*this._samplesPerBar,this._profiles[0].length);this._snapshot.requestImage(stepLeft,stepRight,this._layers3DView.showImageForLayer.bind(this._layers3DView,this._layer));},_reset:function()
+{this._snapshot=null;this._profiles=null;this._selectionWindow.reset();},profile:function(layer)
+{this._reset();this._layer=layer;this._layer.requestSnapshot(onSnapshotDone.bind(this));function onSnapshotDone(snapshot)
+{this._snapshot=snapshot;if(!snapshot){this._profiles=null;this._update();return;}
+snapshot.requestImage(null,null,this._layers3DView.showImageForLayer.bind(this._layers3DView,this._layer));snapshot.profile(onProfileDone.bind(this));}
+function onProfileDone(profiles)
+{this._profiles=profiles;this._update();}},__proto__:WebInspector.View.prototype};;WebInspector.LayersPanel=function()
+{WebInspector.Panel.call(this,"layers");this.registerRequiredCSS("layersPanel.css");const initialLayerTreeSidebarWidth=225;const minimumMainWidthPercent=0.5;this.createSidebarViewWithTree();this.splitView.sidebarElement().classList.add("outline-disclosure");this.sidebarTreeElement.classList.remove("sidebar-tree");this._model=new WebInspector.LayerTreeModel();this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._onLayerTreeUpdated,this);this._currentlySelectedLayer=null;this._currentlyHoveredLayer=null;this._layerTree=new WebInspector.LayerTree(this._model,this.sidebarTree);this._layerTree.addEventListener(WebInspector.LayerTree.Events.LayerSelected,this._onLayerSelected,this);this._layerTree.addEventListener(WebInspector.LayerTree.Events.LayerHovered,this._onLayerHovered,this);this._rightSplitView=new WebInspector.SplitView(false,"layerDetailsSplitView");this.splitView.setMainView(this._rightSplitView);this._layers3DView=new WebInspector.Layers3DView(this._model);this._layers3DView.show(this._rightSplitView.firstElement());this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.LayerSelected,this._onLayerSelected,this);this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.LayerHovered,this._onLayerHovered,this);this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.LayerSnapshotRequested,this._onSnapshotRequested,this);this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.element.classList.add("fill");this._tabbedPane.show(this._rightSplitView.secondElement());this._layerDetailsView=new WebInspector.LayerDetailsView(this._model);this._tabbedPane.appendTab(WebInspector.LayersPanel.DetailsViewTabs.Details,WebInspector.UIString("Details"),this._layerDetailsView);this._paintProfilerView=new WebInspector.PaintProfilerView(this._model,this._layers3DView);this._tabbedPane.appendTab(WebInspector.LayersPanel.DetailsViewTabs.Profiler,WebInspector.UIString("Profiler"),this._paintProfilerView);}
+WebInspector.LayersPanel.DetailsViewTabs={Details:"details",Profiler:"profiler"};WebInspector.LayersPanel.prototype={wasShown:function()
 {WebInspector.Panel.prototype.wasShown.call(this);this.sidebarTreeElement.focus();this._model.enable();},willHide:function()
 {this._model.disable();WebInspector.Panel.prototype.willHide.call(this);},_onLayerTreeUpdated:function()
 {if(this._currentlySelectedLayer&&!this._model.layerById(this._currentlySelectedLayer.id()))
 this._selectLayer(null);if(this._currentlyHoveredLayer&&!this._model.layerById(this._currentlyHoveredLayer.id()))
-this._hoverLayer(null);if(this._currentlySelectedLayer)
-this._layerDetailsView.showLayer(this._currentlySelectedLayer);},_onLayerPainted:function(event)
-{var layer=(event.data);if(this._currentlySelectedLayer===layer)
-this._layerDetailsView.updatePaintCount(this._currentlySelectedLayer.paintCount());},_onLayerSelected:function(event)
+this._hoverLayer(null);},_onLayerSelected:function(event)
 {var layer=(event.data);this._selectLayer(layer);},_onLayerHovered:function(event)
-{var layer=(event.data);this._hoverLayer(layer);},_selectLayer:function(layer)
+{var layer=(event.data);this._hoverLayer(layer);},_onSnapshotRequested:function(event)
+{var layer=(event.data);this._tabbedPane.selectTab(WebInspector.LayersPanel.DetailsViewTabs.Profiler);this._paintProfilerView.profile(layer);},_selectLayer:function(layer)
 {if(this._currentlySelectedLayer===layer)
 return;this._currentlySelectedLayer=layer;var nodeId=layer&&layer.nodeIdForSelfOrAncestor();if(nodeId)
 WebInspector.domAgent.highlightDOMNodeForTwoSeconds(nodeId);else
-WebInspector.domAgent.hideDOMNodeHighlight();this._layerTree.selectLayer(layer);this._layers3DView.selectLayer(layer);this._layerDetailsView.showLayer(layer);},_hoverLayer:function(layer)
+WebInspector.domAgent.hideDOMNodeHighlight();this._layerTree.selectLayer(layer);this._layers3DView.selectLayer(layer);this._layerDetailsView.setLayer(layer);},_hoverLayer:function(layer)
 {if(this._currentlyHoveredLayer===layer)
 return;this._currentlyHoveredLayer=layer;var nodeId=layer&&layer.nodeIdForSelfOrAncestor();if(nodeId)
 WebInspector.domAgent.highlightDOMNode(nodeId);else
diff --git a/resources/inspector/NetworkPanel.js b/resources/inspector/NetworkPanel.js
index 83a88e5..544e358 100644
--- a/resources/inspector/NetworkPanel.js
+++ b/resources/inspector/NetworkPanel.js
@@ -1,5 +1,5 @@
 WebInspector.RequestView=function(request)
-{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.addStyleClass("resource-view");this.request=request;}
+{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.classList.add("resource-view");this.request=request;}
 WebInspector.RequestView.prototype={hasContent:function()
 {return false;},__proto__:WebInspector.View.prototype}
 WebInspector.RequestView.hasTextContent=function(request)
@@ -8,7 +8,7 @@
 return request.content&&!request.contentEncoded;return false;}
 WebInspector.RequestView.nonSourceViewForRequest=function(request)
 {switch(request.type){case WebInspector.resourceTypes.Image:return new WebInspector.ImageView(request);case WebInspector.resourceTypes.Font:return new WebInspector.FontView(request);default:return new WebInspector.RequestView(request);}};WebInspector.NetworkItemView=function(request)
-{WebInspector.TabbedPane.call(this);this.element.addStyleClass("network-item-view");var headersView=new WebInspector.RequestHeadersView(request);this.appendTab("headers",WebInspector.UIString("Headers"),headersView);this.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);if(request.type===WebInspector.resourceTypes.WebSocket){var frameView=new WebInspector.ResourceWebSocketFrameView(request);this.appendTab("webSocketFrames",WebInspector.UIString("Frames"),frameView);}else{var responseView=new WebInspector.RequestResponseView(request);var previewView=new WebInspector.RequestPreviewView(request,responseView);this.appendTab("preview",WebInspector.UIString("Preview"),previewView);this.appendTab("response",WebInspector.UIString("Response"),responseView);}
+{WebInspector.TabbedPane.call(this);this.element.classList.add("network-item-view");var headersView=new WebInspector.RequestHeadersView(request);this.appendTab("headers",WebInspector.UIString("Headers"),headersView);this.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);if(request.type===WebInspector.resourceTypes.WebSocket){var frameView=new WebInspector.ResourceWebSocketFrameView(request);this.appendTab("webSocketFrames",WebInspector.UIString("Frames"),frameView);}else{var responseView=new WebInspector.RequestResponseView(request);var previewView=new WebInspector.RequestPreviewView(request,responseView);this.appendTab("preview",WebInspector.UIString("Preview"),previewView);this.appendTab("response",WebInspector.UIString("Response"),responseView);}
 if(request.requestCookies||request.responseCookies){this._cookiesView=new WebInspector.RequestCookiesView(request);this.appendTab("cookies",WebInspector.UIString("Cookies"),this._cookiesView);}
 if(request.timing){var timingView=new WebInspector.RequestTimingView(request);this.appendTab("timing",WebInspector.UIString("Timing"),timingView);}
 this._request=request;}
@@ -34,7 +34,7 @@
 {return this._innerView&&this._innerView.canHighlightPosition();},highlightPosition:function(line,column)
 {if(this.canHighlightPosition())
 this._innerView.highlightPosition(line,column);},__proto__:WebInspector.RequestView.prototype};WebInspector.RequestCookiesView=function(request)
-{WebInspector.View.call(this);this.element.addStyleClass("resource-cookies-view");this._request=request;}
+{WebInspector.View.call(this);this.element.classList.add("resource-cookies-view");this._request=request;}
 WebInspector.RequestCookiesView.prototype={wasShown:function()
 {this._request.addEventListener(WebInspector.NetworkRequest.Events.RequestHeadersChanged,this._refreshCookies,this);this._request.addEventListener(WebInspector.NetworkRequest.Events.ResponseHeadersChanged,this._refreshCookies,this);if(!this._gotCookies){if(!this._emptyView){this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("This request has no cookies."));this._emptyView.show(this.element);}
 return;}
@@ -45,9 +45,9 @@
 {this.detachChildViews();this._cookiesTable=new WebInspector.CookiesTable(true);this._cookiesTable.setCookieFolders([{folderName:WebInspector.UIString("Request Cookies"),cookies:this._request.requestCookies},{folderName:WebInspector.UIString("Response Cookies"),cookies:this._request.responseCookies}]);this._cookiesTable.show(this.element);},_refreshCookies:function()
 {delete this._cookiesTable;if(!this._gotCookies||!this.isShowing())
 return;this._buildCookiesTable();},__proto__:WebInspector.View.prototype};WebInspector.RequestHeadersView=function(request)
-{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.addStyleClass("resource-headers-view");this._request=request;this._headersListElement=document.createElement("ol");this._headersListElement.className="outline-disclosure";this.element.appendChild(this._headersListElement);this._headersTreeOutline=new TreeOutline(this._headersListElement);this._headersTreeOutline.expandTreeElementsWhenArrowing=true;this._urlTreeElement=new TreeElement("",null,false);this._urlTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._urlTreeElement);this._requestMethodTreeElement=new TreeElement("",null,false);this._requestMethodTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._requestMethodTreeElement);this._statusCodeTreeElement=new TreeElement("",null,false);this._statusCodeTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._statusCodeTreeElement);this._requestHeadersTreeElement=new TreeElement("",null,true);this._requestHeadersTreeElement.expanded=true;this._requestHeadersTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._requestHeadersTreeElement);this._decodeRequestParameters=true;this._showRequestHeadersText=false;this._showResponseHeadersText=false;this._queryStringTreeElement=new TreeElement("",null,true);this._queryStringTreeElement.expanded=true;this._queryStringTreeElement.selectable=false;this._queryStringTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._queryStringTreeElement);this._urlFragmentTreeElement=new TreeElement("",null,true);this._urlFragmentTreeElement.expanded=true;this._urlFragmentTreeElement.selectable=false;this._urlFragmentTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._urlFragmentTreeElement);this._formDataTreeElement=new TreeElement("",null,true);this._formDataTreeElement.expanded=true;this._formDataTreeElement.selectable=false;this._formDataTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._formDataTreeElement);this._requestPayloadTreeElement=new TreeElement(WebInspector.UIString("Request Payload"),null,true);this._requestPayloadTreeElement.expanded=true;this._requestPayloadTreeElement.selectable=false;this._requestPayloadTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._requestPayloadTreeElement);this._responseHeadersTreeElement=new TreeElement("",null,true);this._responseHeadersTreeElement.expanded=true;this._responseHeadersTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._responseHeadersTreeElement);}
+{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.classList.add("resource-headers-view");this._request=request;this._headersListElement=document.createElement("ol");this._headersListElement.className="outline-disclosure";this.element.appendChild(this._headersListElement);this._headersTreeOutline=new TreeOutline(this._headersListElement);this._headersTreeOutline.expandTreeElementsWhenArrowing=true;this._urlTreeElement=new TreeElement("",null,false);this._urlTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._urlTreeElement);this._requestMethodTreeElement=new TreeElement("",null,false);this._requestMethodTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._requestMethodTreeElement);this._statusCodeTreeElement=new TreeElement("",null,false);this._statusCodeTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._statusCodeTreeElement);this._requestHeadersTreeElement=new TreeElement("",null,true);this._requestHeadersTreeElement.expanded=true;this._requestHeadersTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._requestHeadersTreeElement);this._decodeRequestParameters=true;this._showRequestHeadersText=false;this._showResponseHeadersText=false;this._queryStringTreeElement=new TreeElement("",null,true);this._queryStringTreeElement.expanded=true;this._queryStringTreeElement.selectable=false;this._queryStringTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._queryStringTreeElement);this._formDataTreeElement=new TreeElement("",null,true);this._formDataTreeElement.expanded=true;this._formDataTreeElement.selectable=false;this._formDataTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._formDataTreeElement);this._requestPayloadTreeElement=new TreeElement(WebInspector.UIString("Request Payload"),null,true);this._requestPayloadTreeElement.expanded=true;this._requestPayloadTreeElement.selectable=false;this._requestPayloadTreeElement.hidden=true;this._headersTreeOutline.appendChild(this._requestPayloadTreeElement);this._responseHeadersTreeElement=new TreeElement("",null,true);this._responseHeadersTreeElement.expanded=true;this._responseHeadersTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._responseHeadersTreeElement);}
 WebInspector.RequestHeadersView.prototype={wasShown:function()
-{this._request.addEventListener(WebInspector.NetworkRequest.Events.RequestHeadersChanged,this._refreshRequestHeaders,this);this._request.addEventListener(WebInspector.NetworkRequest.Events.ResponseHeadersChanged,this._refreshResponseHeaders,this);this._request.addEventListener(WebInspector.NetworkRequest.Events.FinishedLoading,this._refreshHTTPInformation,this);this._refreshURL();this._refreshQueryString();this._refreshUrlFragment();this._refreshRequestHeaders();this._refreshResponseHeaders();this._refreshHTTPInformation();},willHide:function()
+{this._request.addEventListener(WebInspector.NetworkRequest.Events.RequestHeadersChanged,this._refreshRequestHeaders,this);this._request.addEventListener(WebInspector.NetworkRequest.Events.ResponseHeadersChanged,this._refreshResponseHeaders,this);this._request.addEventListener(WebInspector.NetworkRequest.Events.FinishedLoading,this._refreshHTTPInformation,this);this._refreshURL();this._refreshQueryString();this._refreshRequestHeaders();this._refreshResponseHeaders();this._refreshHTTPInformation();},willHide:function()
 {this._request.removeEventListener(WebInspector.NetworkRequest.Events.RequestHeadersChanged,this._refreshRequestHeaders,this);this._request.removeEventListener(WebInspector.NetworkRequest.Events.ResponseHeadersChanged,this._refreshResponseHeaders,this);this._request.removeEventListener(WebInspector.NetworkRequest.Events.FinishedLoading,this._refreshHTTPInformation,this);},_formatHeader:function(name,value)
 {var fragment=document.createDocumentFragment();fragment.createChild("div","header-name").textContent=name+":";fragment.createChild("div","header-value source-code").textContent=value;return fragment;},_formatParameter:function(value,className,decodeParameters)
 {var errorDecoding=false;if(decodeParameters){value=value.replace(/\+/g," ");if(value.indexOf("%")>=0){try{value=decodeURIComponent(value);}catch(e){errorDecoding=true;}}}
@@ -56,13 +56,11 @@
 div.textContent=value;return div;},_refreshURL:function()
 {this._urlTreeElement.title=this._formatHeader(WebInspector.UIString("Request URL"),this._request.url);},_refreshQueryString:function()
 {var queryString=this._request.queryString();var queryParameters=this._request.queryParameters;this._queryStringTreeElement.hidden=!queryParameters;if(queryParameters)
-this._refreshParams(WebInspector.UIString("Query String Parameters"),queryParameters,queryString,this._queryStringTreeElement);},_refreshUrlFragment:function()
-{var urlFragment=this._request.parsedURL.fragment;this._urlFragmentTreeElement.hidden=!urlFragment;if(!urlFragment)
-return;var sectionTitle=WebInspector.UIString("URL fragment");this._urlFragmentTreeElement.removeChildren();this._urlFragmentTreeElement.listItemElement.removeChildren();this._urlFragmentTreeElement.listItemElement.appendChild(document.createTextNode(sectionTitle));var fragmentTreeElement=new TreeElement(null,null,false);fragmentTreeElement.title=this._formatHeader("#",urlFragment);fragmentTreeElement.selectable=false;this._urlFragmentTreeElement.appendChild(fragmentTreeElement);},_refreshFormData:function()
+this._refreshParams(WebInspector.UIString("Query String Parameters"),queryParameters,queryString,this._queryStringTreeElement);},_refreshFormData:function()
 {this._formDataTreeElement.hidden=true;this._requestPayloadTreeElement.hidden=true;var formData=this._request.requestFormData;if(!formData)
 return;var formParameters=this._request.formParameters;if(formParameters){this._formDataTreeElement.hidden=false;this._refreshParams(WebInspector.UIString("Form Data"),formParameters,formData,this._formDataTreeElement);}else{this._requestPayloadTreeElement.hidden=false;try{var json=JSON.parse(formData);this._refreshRequestJSONPayload(json,formData);}catch(e){this._populateTreeElementWithSourceText(this._requestPayloadTreeElement,formData);}}},_populateTreeElementWithSourceText:function(treeElement,sourceText)
-{treeElement.removeChildren();var sourceTreeElement=new TreeElement(null,null,false);sourceTreeElement.selectable=false;treeElement.appendChild(sourceTreeElement);var sourceTextElement=document.createElement("span");sourceTextElement.addStyleClass("header-value");sourceTextElement.addStyleClass("source-code");sourceTextElement.textContent=String(sourceText).trim();sourceTreeElement.listItemElement.appendChild(sourceTextElement);},_refreshParams:function(title,params,sourceText,paramsTreeElement)
-{paramsTreeElement.removeChildren();paramsTreeElement.listItemElement.removeChildren();paramsTreeElement.listItemElement.appendChild(document.createTextNode(title));var headerCount=document.createElement("span");headerCount.addStyleClass("header-count");headerCount.textContent=WebInspector.UIString(" (%d)",params.length);paramsTreeElement.listItemElement.appendChild(headerCount);function toggleViewSource(event)
+{var sourceTextElement=document.createElement("span");sourceTextElement.classList.add("header-value");sourceTextElement.classList.add("source-code");sourceTextElement.textContent=String(sourceText||"").trim();var sourceTreeElement=new TreeElement(sourceTextElement);sourceTreeElement.selectable=false;treeElement.removeChildren();treeElement.appendChild(sourceTreeElement);},_refreshParams:function(title,params,sourceText,paramsTreeElement)
+{paramsTreeElement.removeChildren();paramsTreeElement.listItemElement.removeChildren();paramsTreeElement.listItemElement.appendChild(document.createTextNode(title));var headerCount=document.createElement("span");headerCount.classList.add("header-count");headerCount.textContent=WebInspector.UIString(" (%d)",params.length);paramsTreeElement.listItemElement.appendChild(headerCount);function toggleViewSource(event)
 {paramsTreeElement._viewSource=!paramsTreeElement._viewSource;this._refreshParams(title,params,sourceText,paramsTreeElement);}
 paramsTreeElement.listItemElement.appendChild(this._createViewSourceToggle(paramsTreeElement._viewSource,toggleViewSource.bind(this)));if(paramsTreeElement._viewSource){this._populateTreeElementWithSourceText(paramsTreeElement,sourceText);return;}
 var toggleTitle=this._decodeRequestParameters?WebInspector.UIString("view URL encoded"):WebInspector.UIString("view decoded");var toggleButton=this._createToggleButton(toggleTitle);toggleButton.addEventListener("click",this._toggleURLDecoding.bind(this),false);paramsTreeElement.listItemElement.appendChild(toggleButton);for(var i=0;i<params.length;++i){var paramNameValue=document.createDocumentFragment();var name=this._formatParameter(params[i].name+":","header-name",this._decodeRequestParameters);var value=this._formatParameter(params[i].value,"header-value source-code",this._decodeRequestParameters);paramNameValue.appendChild(name);paramNameValue.appendChild(value);var parmTreeElement=new TreeElement(paramNameValue,null,false);parmTreeElement.selectable=false;paramsTreeElement.appendChild(parmTreeElement);}},_refreshRequestJSONPayload:function(parsedObject,sourceText)
@@ -80,24 +78,24 @@
 this._refreshHeadersText(WebInspector.UIString("Response Headers"),headers.length,headersText,treeElement);else
 this._refreshHeaders(WebInspector.UIString("Response Headers"),headers,treeElement);if(headersText){var toggleButton=this._createHeadersToggleButton(this._showResponseHeadersText);toggleButton.addEventListener("click",this._toggleResponseHeadersText.bind(this),false);treeElement.listItemElement.appendChild(toggleButton);}},_refreshHTTPInformation:function()
 {var requestMethodElement=this._requestMethodTreeElement;requestMethodElement.hidden=!this._request.statusCode;var statusCodeElement=this._statusCodeTreeElement;statusCodeElement.hidden=!this._request.statusCode;if(this._request.statusCode){var statusCodeFragment=document.createDocumentFragment();statusCodeFragment.createChild("div","header-name").textContent=WebInspector.UIString("Status Code")+":";var statusCodeImage=statusCodeFragment.createChild("div","resource-status-image");statusCodeImage.title=this._request.statusCode+" "+this._request.statusText;if(this._request.statusCode<300||this._request.statusCode===304)
-statusCodeImage.addStyleClass("green-ball");else if(this._request.statusCode<400)
-statusCodeImage.addStyleClass("orange-ball");else
-statusCodeImage.addStyleClass("red-ball");requestMethodElement.title=this._formatHeader(WebInspector.UIString("Request Method"),this._request.requestMethod);var value=statusCodeFragment.createChild("div","header-value source-code");value.textContent=this._request.statusCode+" "+this._request.statusText;if(this._request.cached)
+statusCodeImage.classList.add("green-ball");else if(this._request.statusCode<400)
+statusCodeImage.classList.add("orange-ball");else
+statusCodeImage.classList.add("red-ball");requestMethodElement.title=this._formatHeader(WebInspector.UIString("Request Method"),this._request.requestMethod);var value=statusCodeFragment.createChild("div","header-value source-code");value.textContent=this._request.statusCode+" "+this._request.statusText;if(this._request.cached)
 value.createChild("span","status-from-cache").textContent=" "+WebInspector.UIString("(from cache)");statusCodeElement.title=statusCodeFragment;}},_refreshHeadersTitle:function(title,headersTreeElement,headersLength)
 {headersTreeElement.listItemElement.removeChildren();headersTreeElement.listItemElement.createTextChild(title);var headerCount=WebInspector.UIString(" (%d)",headersLength);headersTreeElement.listItemElement.createChild("span","header-count").textContent=headerCount;},_refreshHeaders:function(title,headers,headersTreeElement)
-{headersTreeElement.removeChildren();var length=headers.length;this._refreshHeadersTitle(title,headersTreeElement,length);headersTreeElement.hidden=!length;for(var i=0;i<length;++i){var headerTreeElement=new TreeElement(null,null,false);headerTreeElement.title=this._formatHeader(headers[i].name,headers[i].value);headerTreeElement.selectable=false;headersTreeElement.appendChild(headerTreeElement);}},_refreshHeadersText:function(title,count,headersText,headersTreeElement)
+{headersTreeElement.removeChildren();var length=headers.length;this._refreshHeadersTitle(title,headersTreeElement,length);headersTreeElement.hidden=!length;for(var i=0;i<length;++i){var headerTreeElement=new TreeElement(this._formatHeader(headers[i].name,headers[i].value));headerTreeElement.selectable=false;headersTreeElement.appendChild(headerTreeElement);}},_refreshHeadersText:function(title,count,headersText,headersTreeElement)
 {this._populateTreeElementWithSourceText(headersTreeElement,headersText);this._refreshHeadersTitle(title,headersTreeElement,count);},_toggleRequestHeadersText:function(event)
 {this._showRequestHeadersText=!this._showRequestHeadersText;this._refreshRequestHeaders();},_toggleResponseHeadersText:function(event)
 {this._showResponseHeadersText=!this._showResponseHeadersText;this._refreshResponseHeaders();},_createToggleButton:function(title)
-{var button=document.createElement("span");button.addStyleClass("header-toggle");button.textContent=title;return button;},_createHeadersToggleButton:function(isHeadersTextShown)
+{var button=document.createElement("span");button.classList.add("header-toggle");button.textContent=title;return button;},_createHeadersToggleButton:function(isHeadersTextShown)
 {var toggleTitle=isHeadersTextShown?WebInspector.UIString("view parsed"):WebInspector.UIString("view source");return this._createToggleButton(toggleTitle);},__proto__:WebInspector.View.prototype};WebInspector.RequestHTMLView=function(request,dataURL)
-{WebInspector.RequestView.call(this,request);this._dataURL=dataURL;this.element.addStyleClass("html");}
+{WebInspector.RequestView.call(this,request);this._dataURL=dataURL;this.element.classList.add("html");}
 WebInspector.RequestHTMLView.prototype={hasContent:function()
 {return true;},wasShown:function()
 {this._createIFrame();},willHide:function(parentElement)
 {this.element.removeChildren();},_createIFrame:function()
 {this.element.removeChildren();var iframe=document.createElement("iframe");iframe.setAttribute("sandbox","");iframe.setAttribute("src",this._dataURL);this.element.appendChild(iframe);},__proto__:WebInspector.RequestView.prototype};WebInspector.RequestJSONView=function(request,parsedJSON)
-{WebInspector.RequestView.call(this,request);this._parsedJSON=parsedJSON;this.element.addStyleClass("json");}
+{WebInspector.RequestView.call(this,request);this._parsedJSON=parsedJSON;this.element.classList.add("json");}
 WebInspector.RequestJSONView.parseJSON=function(text)
 {var prefix="";var start=/[{[]/.exec(text);if(start&&start.index){prefix=text.substring(0,start.index);text=text.substring(start.index);}
 try{return new WebInspector.ParsedJSON(JSON.parse(text),prefix,"");}catch(e){return;}}
@@ -121,7 +119,7 @@
 return new WebInspector.RequestJSONView(this.request,parsedJSON);},_htmlView:function()
 {var dataURL=this.request.asDataURL();if(dataURL!==null)
 return new WebInspector.RequestHTMLView(this.request,dataURL);},_createPreviewView:function()
-{if(this.request.content){if(this.request.mimeType==="application/json"){var jsonView=this._jsonView();if(jsonView)
+{if(this.request.content){var jsonMediaTypeRE=/^application\/[^;]*\+json/;if(this.request.mimeType==="application/json"||jsonMediaTypeRE.test(this.request.mimeType)){var jsonView=this._jsonView();if(jsonView)
 return jsonView;}
 if(this.request.hasErrorStatusCode()){var htmlView=this._htmlView();if(htmlView)
 return htmlView;}
@@ -139,7 +137,7 @@
 var sourceFrame=new WebInspector.ResourceSourceFrame(this.request);sourceFrame.setHighlighterType(this.request.type.canonicalMimeType()||this.request.mimeType);this._sourceView=sourceFrame;return this._sourceView;},contentLoaded:function()
 {if(!this.request.content||!this.sourceView){if(!this._emptyView){this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("This request has no response data available."));this._emptyView.show(this.element);this.innerView=this._emptyView;}}else{if(this._emptyView){this._emptyView.detach();delete this._emptyView;}
 this.sourceView.show(this.element);this.innerView=this.sourceView;}},__proto__:WebInspector.RequestContentView.prototype};WebInspector.RequestTimingView=function(request)
-{WebInspector.View.call(this);this.element.addStyleClass("resource-timing-view");this._request=request;}
+{WebInspector.View.call(this);this.element.classList.add("resource-timing-view");this._request=request;}
 WebInspector.RequestTimingView.prototype={wasShown:function()
 {this._request.addEventListener(WebInspector.NetworkRequest.Events.TimingChanged,this._refresh,this);if(!this._request.timing){if(!this._emptyView){this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("This request has no detailed timing info."));this._emptyView.show(this.element);this.innerView=this._emptyView;}
 return;}
@@ -160,7 +158,7 @@
 title.style.right=(scale*(total-rows[i].end)+3)+"px";else
 title.style.left=(scale*rows[i].start+3)+"px";title.textContent=Number.secondsToString((rows[i].end-rows[i].start)/1000,true);row.appendChild(title);tr.appendChild(td);}
 return tableElement;};WebInspector.ResourceWebSocketFrameView=function(resource)
-{WebInspector.View.call(this);this.element.addStyleClass("resource-websocket");this.resource=resource;this.element.removeChildren();this._dataGrid=new WebInspector.DataGrid([{id:"data",title:WebInspector.UIString("Data"),sortable:false,weight:88,longText:true},{id:"length",title:WebInspector.UIString("Length"),sortable:false,alig:WebInspector.DataGrid.Align.Right,weight:5},{id:"time",title:WebInspector.UIString("Time"),weight:7}],undefined,undefined,undefined,this._onContextMenu.bind(this));this.refresh();this._dataGrid.setName("ResourceWebSocketFrameView");this._dataGrid.show(this.element);}
+{WebInspector.View.call(this);this.element.classList.add("resource-websocket");this.resource=resource;this.element.removeChildren();this._dataGrid=new WebInspector.DataGrid([{id:"data",title:WebInspector.UIString("Data"),sortable:false,weight:88,longText:true},{id:"length",title:WebInspector.UIString("Length"),sortable:false,alig:WebInspector.DataGrid.Align.Right,weight:5},{id:"time",title:WebInspector.UIString("Time"),weight:7}],undefined,undefined,undefined,this._onContextMenu.bind(this));this.refresh();this._dataGrid.setName("ResourceWebSocketFrameView");this._dataGrid.show(this.element);}
 WebInspector.ResourceWebSocketFrameView.OpCodes={ContinuationFrame:0,TextFrame:1,BinaryFrame:2,ConnectionCloseFrame:8,PingFrame:9,PongFrame:10};WebInspector.ResourceWebSocketFrameView.prototype={appendFrame:function(frame)
 {var payload=frame;var date=new Date(payload.time*1000);var row={data:"",length:typeof payload.payloadData==="undefined"?payload.errorMessage.length.toString():payload.payloadData.length.toString(),time:date.toLocaleTimeString()};var rowClass="";if(payload.errorMessage){rowClass="error";row.data=payload.errorMessage;}else if(payload.opcode==WebInspector.ResourceWebSocketFrameView.OpCodes.TextFrame){if(payload.sent)
 rowClass="outcoming";row.data=payload.payloadData;}else{rowClass="opcode";var opcodeMeaning="";switch(payload.opcode){case WebInspector.ResourceWebSocketFrameView.OpCodes.ContinuationFrame:opcodeMeaning=WebInspector.UIString("Continuation Frame");break;case WebInspector.ResourceWebSocketFrameView.OpCodes.BinaryFrame:opcodeMeaning=WebInspector.UIString("Binary Frame");break;case WebInspector.ResourceWebSocketFrameView.OpCodes.ConnectionCloseFrame:opcodeMeaning=WebInspector.UIString("Connection Close Frame");break;case WebInspector.ResourceWebSocketFrameView.OpCodes.PingFrame:opcodeMeaning=WebInspector.UIString("Ping Frame");break;case WebInspector.ResourceWebSocketFrameView.OpCodes.PongFrame:opcodeMeaning=WebInspector.UIString("Pong Frame");break;}
@@ -171,24 +169,24 @@
 {this.refresh();WebInspector.View.prototype.show.call(this,parentElement,insertBefore);},_onContextMenu:function(contextMenu,node)
 {contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy message":"Copy Message"),this._copyMessage.bind(this,node.data));},_copyMessage:function(row)
 {InspectorFrontendHost.copyText(row.data);},__proto__:WebInspector.View.prototype};WebInspector.NetworkLogView=function(filterBar,coulmnsVisibilitySetting)
-{WebInspector.View.call(this);this.element.classList.add("vbox","fill");this.registerRequiredCSS("networkLogView.css");this.registerRequiredCSS("filter.css");this._filterBar=filterBar;this._coulmnsVisibilitySetting=coulmnsVisibilitySetting;this._allowRequestSelection=false;this._requests=[];this._requestsById={};this._requestsByURL={};this._staleRequests={};this._requestGridNodes={};this._lastRequestGridNodeId=0;this._mainRequestLoadTime=-1;this._mainRequestDOMContentLoadedTime=-1;this._matchedRequests=[];this._highlightedSubstringChanges=[];this._filteredOutRequests=new Map();this._matchedRequestsMap={};this._currentMatchedRequestIndex=-1;this._createStatusbarButtons();this._createStatusBarItems();this._linkifier=new WebInspector.Linkifier();WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestUpdated,this._onRequestUpdated,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestUpdated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._mainFrameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._loadEventFired,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded,this._domContentLoadedEventFired,this);this._addFilters();this._initializeView();WebInspector.networkLog.requests.forEach(this._appendRequest.bind(this));}
-WebInspector.NetworkLogView.HTTPSchemas={"http":true,"https":true,"ws":true,"wss":true};WebInspector.NetworkLogView._responseHeaderColumns=["Cache-Control","Connection","Content-Encoding","Content-Length","ETag","Keep-Alive","Last-Modified","Server","Vary"];WebInspector.NetworkLogView._defaultColumnsVisibility={method:true,status:true,scheme:false,domain:false,type:true,initiator:true,cookies:false,setCookies:false,size:true,time:true,"Cache-Control":false,"Connection":false,"Content-Encoding":false,"Content-Length":false,"ETag":false,"Keep-Alive":false,"Last-Modified":false,"Server":false,"Vary":false};WebInspector.NetworkLogView._defaultRefreshDelay=500;WebInspector.NetworkLogView.ALL_TYPES="all";WebInspector.NetworkLogView.prototype={_addFilters:function()
+{WebInspector.View.call(this);this.element.classList.add("vbox","fill");this.registerRequiredCSS("networkLogView.css");this.registerRequiredCSS("filter.css");this._filterBar=filterBar;this._coulmnsVisibilitySetting=coulmnsVisibilitySetting;this._allowRequestSelection=false;this._requests=[];this._requestsById={};this._requestsByURL={};this._staleRequests={};this._requestGridNodes={};this._lastRequestGridNodeId=0;this._mainRequestLoadTime=-1;this._mainRequestDOMContentLoadedTime=-1;this._matchedRequests=[];this._highlightedSubstringChanges=[];this._filteredOutRequests=new Map();this._matchedRequestsMap={};this._currentMatchedRequestIndex=-1;this._createStatusbarButtons();this._createStatusBarItems();this._linkifier=new WebInspector.Linkifier();WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestUpdated,this._onRequestUpdated,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestUpdated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage,this._willReloadPage,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._mainFrameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._loadEventFired,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded,this._domContentLoadedEventFired,this);this._addFilters();this._initializeView();this._recordButton.toggled=true;WebInspector.networkLog.requests.forEach(this._appendRequest.bind(this));}
+WebInspector.NetworkLogView.HTTPSchemas={"http":true,"https":true,"ws":true,"wss":true};WebInspector.NetworkLogView._responseHeaderColumns=["Cache-Control","Connection","Content-Encoding","Content-Length","ETag","Keep-Alive","Last-Modified","Server","Vary"];WebInspector.NetworkLogView._defaultColumnsVisibility={method:true,status:true,scheme:false,domain:false,type:true,initiator:true,cookies:false,setCookies:false,size:true,time:true,"Cache-Control":false,"Connection":false,"Content-Encoding":false,"Content-Length":false,"ETag":false,"Keep-Alive":false,"Last-Modified":false,"Server":false,"Vary":false};WebInspector.NetworkLogView._defaultRefreshDelay=500;WebInspector.NetworkLogView.prototype={_addFilters:function()
 {this._textFilterUI=new WebInspector.TextFilterUI();this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged,this);this._filterBar.addFilter(this._textFilterUI);this._resourceTypeFilterUI=new WebInspector.NamedBitSetFilterUI();for(var typeId in WebInspector.resourceTypes){var resourceType=WebInspector.resourceTypes[typeId];this._resourceTypeFilterUI.addBit(resourceType.name(),resourceType.categoryTitle());}
-this._resourceTypeFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged.bind(this),this);this._filterBar.addFilter(this._resourceTypeFilterUI);},_filterChanged:function(event)
+this._resourceTypeFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged.bind(this),this);this._filterBar.addFilter(this._resourceTypeFilterUI);var dataURLSetting=WebInspector.settings.networkHideDataURL;this._dataURLFilterUI=new WebInspector.CheckboxFilterUI("hide-data-url",WebInspector.UIString("Hide data URLs"),true,dataURLSetting);this._dataURLFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged.bind(this),this);this._filterBar.addFilter(this._dataURLFilterUI);},_filterChanged:function(event)
 {this._removeAllNodeHighlights();this.searchCanceled();this._filterRequests();},_initializeView:function()
 {this.element.id="network-container";this._createSortingFunctions();this._createTable();this._createTimelineGrid();this._summaryBarElement=this.element.createChild("div","network-summary-bar");if(!this.useLargeRows)
 this._setLargerRequests(this.useLargeRows);this._allowPopover=true;this._popoverHelper=new WebInspector.PopoverHelper(this.element,this._getPopoverAnchor.bind(this),this._showPopover.bind(this),this._onHidePopover.bind(this));this._popoverHelper.setTimeout(100);this.calculator=new WebInspector.NetworkTransferTimeCalculator();this.switchToDetailedView();},get statusBarItems()
-{return[this._preserveLogToggle.element,this._clearButton.element,this._filterBar.filterButton(),this._largerRequestsButton.element,this._progressBarContainer];},get useLargeRows()
+{return[this._recordButton.element,this._clearButton.element,this._filterBar.filterButton().element,this._largerRequestsButton.element,this._preserveLogCheckbox.element,this._progressBarContainer];},get useLargeRows()
 {return WebInspector.settings.resourcesLargeRows.get();},set allowPopover(flag)
 {this._allowPopover=flag;},elementsToRestoreScrollPositionsFor:function()
 {if(!this._dataGrid)
 return[];return[this._dataGrid.scrollContainer];},onResize:function()
 {this._updateOffscreenRows();},_createTimelineGrid:function()
-{this._timelineGrid=new WebInspector.TimelineGrid();this._timelineGrid.element.addStyleClass("network-timeline-grid");this._dataGrid.element.appendChild(this._timelineGrid.element);},_createTable:function()
+{this._timelineGrid=new WebInspector.TimelineGrid();this._timelineGrid.element.classList.add("network-timeline-grid");this._dataGrid.element.appendChild(this._timelineGrid.element);},_createTable:function()
 {var columns=[];columns.push({id:"name",titleDOMFragment:this._makeHeaderFragment(WebInspector.UIString("Name"),WebInspector.UIString("Path")),title:WebInspector.UIString("Name"),sortable:true,weight:20,disclosure:true});columns.push({id:"method",title:WebInspector.UIString("Method"),sortable:true,weight:6});columns.push({id:"status",titleDOMFragment:this._makeHeaderFragment(WebInspector.UIString("Status"),WebInspector.UIString("Text")),title:WebInspector.UIString("Status"),sortable:true,weight:6});columns.push({id:"scheme",title:WebInspector.UIString("Scheme"),sortable:true,weight:6});columns.push({id:"domain",title:WebInspector.UIString("Domain"),sortable:true,weight:6});columns.push({id:"type",title:WebInspector.UIString("Type"),sortable:true,weight:6});columns.push({id:"initiator",title:WebInspector.UIString("Initiator"),sortable:true,weight:10});columns.push({id:"cookies",title:WebInspector.UIString("Cookies"),sortable:true,weight:6,align:WebInspector.DataGrid.Align.Right});columns.push({id:"setCookies",title:WebInspector.UIString("Set-Cookies"),sortable:true,weight:6,align:WebInspector.DataGrid.Align.Right});columns.push({id:"size",titleDOMFragment:this._makeHeaderFragment(WebInspector.UIString("Size"),WebInspector.UIString("Content")),title:WebInspector.UIString("Size"),sortable:true,weight:6,align:WebInspector.DataGrid.Align.Right});columns.push({id:"time",titleDOMFragment:this._makeHeaderFragment(WebInspector.UIString("Time"),WebInspector.UIString("Latency")),title:WebInspector.UIString("Time"),sortable:true,weight:6,align:WebInspector.DataGrid.Align.Right});var responseHeaderColumns=WebInspector.NetworkLogView._responseHeaderColumns;for(var i=0;i<responseHeaderColumns.length;++i){var headerName=responseHeaderColumns[i];var descriptor={id:headerName,title:WebInspector.UIString(headerName),weight:6}
 if(headerName==="Content-Length")
 descriptor.align=WebInspector.DataGrid.Align.Right;columns.push(descriptor);}
-columns.push({id:"timeline",titleDOMFragment:document.createDocumentFragment(),title:WebInspector.UIString("Timeline"),sortable:false,weight:40,sort:WebInspector.DataGrid.Order.Ascending});this._dataGrid=new WebInspector.DataGrid(columns);this._dataGrid.setName("networkLog");this._dataGrid.resizeMethod=WebInspector.DataGrid.ResizeMethod.Last;this._dataGrid.element.addStyleClass("network-log-grid");this._dataGrid.element.addEventListener("contextmenu",this._contextMenu.bind(this),true);this._dataGrid.show(this.element);this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._sortItems,this);this._dataGrid.addEventListener(WebInspector.DataGrid.Events.ColumnsResized,this._updateDividersIfNeeded,this);this._dataGrid.scrollContainer.addEventListener("scroll",this._updateOffscreenRows.bind(this));this._patchTimelineHeader();},_makeHeaderFragment:function(title,subtitle)
+columns.push({id:"timeline",titleDOMFragment:document.createDocumentFragment(),title:WebInspector.UIString("Timeline"),sortable:false,weight:40,sort:WebInspector.DataGrid.Order.Ascending});this._dataGrid=new WebInspector.DataGrid(columns);this._dataGrid.setName("networkLog");this._dataGrid.resizeMethod=WebInspector.DataGrid.ResizeMethod.Last;this._dataGrid.element.classList.add("network-log-grid");this._dataGrid.element.addEventListener("contextmenu",this._contextMenu.bind(this),true);this._dataGrid.show(this.element);this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._sortItems,this);this._dataGrid.addEventListener(WebInspector.DataGrid.Events.ColumnsResized,this._updateDividersIfNeeded,this);this._dataGrid.scrollContainer.addEventListener("scroll",this._updateOffscreenRows.bind(this));this._patchTimelineHeader();},_makeHeaderFragment:function(title,subtitle)
 {var fragment=document.createDocumentFragment();fragment.createTextChild(title);var subtitleDiv=fragment.createChild("div","network-header-subtitle");subtitleDiv.createTextChild(subtitle);return fragment;},_patchTimelineHeader:function()
 {var timelineSorting=document.createElement("select");var option=document.createElement("option");option.value="startTime";option.label=WebInspector.UIString("Timeline");timelineSorting.appendChild(option);option=document.createElement("option");option.value="startTime";option.label=WebInspector.UIString("Start Time");timelineSorting.appendChild(option);option=document.createElement("option");option.value="responseTime";option.label=WebInspector.UIString("Response Time");timelineSorting.appendChild(option);option=document.createElement("option");option.value="endTime";option.label=WebInspector.UIString("End Time");timelineSorting.appendChild(option);option=document.createElement("option");option.value="duration";option.label=WebInspector.UIString("Duration");timelineSorting.appendChild(option);option=document.createElement("option");option.value="latency";option.label=WebInspector.UIString("Latency");timelineSorting.appendChild(option);var header=this._dataGrid.headerTableHeader("timeline");header.replaceChild(timelineSorting,header.firstChild);timelineSorting.addEventListener("click",function(event){event.consume()},false);timelineSorting.addEventListener("change",this._sortByTimeline.bind(this),false);this._timelineSortSelector=timelineSorting;},_createSortingFunctions:function()
 {this._sortingFunctions={};this._sortingFunctions.name=WebInspector.NetworkDataGridNode.NameComparator;this._sortingFunctions.method=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"method",false);this._sortingFunctions.status=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"statusCode",false);this._sortingFunctions.scheme=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"scheme",false);this._sortingFunctions.domain=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"domain",false);this._sortingFunctions.type=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"mimeType",false);this._sortingFunctions.initiator=WebInspector.NetworkDataGridNode.InitiatorComparator;this._sortingFunctions.cookies=WebInspector.NetworkDataGridNode.RequestCookiesCountComparator;this._sortingFunctions.setCookies=WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator;this._sortingFunctions.size=WebInspector.NetworkDataGridNode.SizeComparator;this._sortingFunctions.time=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"duration",false);this._sortingFunctions.timeline=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"startTime",false);this._sortingFunctions.startTime=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"startTime",false);this._sortingFunctions.endTime=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"endTime",false);this._sortingFunctions.responseTime=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"responseReceivedTime",false);this._sortingFunctions.duration=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"duration",true);this._sortingFunctions.latency=WebInspector.NetworkDataGridNode.RequestPropertyComparator.bind(null,"latency",true);var timeCalculator=new WebInspector.NetworkTransferTimeCalculator();var durationCalculator=new WebInspector.NetworkTransferDurationCalculator();this._calculators={};this._calculators.timeline=timeCalculator;this._calculators.startTime=timeCalculator;this._calculators.endTime=timeCalculator;this._calculators.responseTime=timeCalculator;this._calculators.duration=durationCalculator;this._calculators.latency=durationCalculator;},_sortItems:function()
@@ -227,9 +225,11 @@
 return;this._calculator=x;this._calculator.reset();this._invalidateAllItems();this.refresh();},_requestGridNode:function(request)
 {return this._requestGridNodes[request.__gridNodeId];},_createRequestGridNode:function(request)
 {var node=new WebInspector.NetworkDataGridNode(this,request);request.__gridNodeId=this._lastRequestGridNodeId++;this._requestGridNodes[request.__gridNodeId]=node;return node;},_createStatusbarButtons:function()
-{this._preserveLogToggle=new WebInspector.StatusBarButton(WebInspector.UIString("Preserve Log upon Navigation"),"record-profile-status-bar-item");this._preserveLogToggle.addEventListener("click",this._onPreserveLogClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-status-bar-item");this._clearButton.addEventListener("click",this._reset,this);this._largerRequestsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Use small resource rows."),"network-larger-resources-status-bar-item");this._largerRequestsButton.toggled=WebInspector.settings.resourcesLargeRows.get();this._largerRequestsButton.addEventListener("click",this._toggleLargerRequests,this);},_loadEventFired:function(event)
-{this._mainRequestLoadTime=event.data||-1;this._scheduleRefresh();},_domContentLoadedEventFired:function(event)
-{this._mainRequestDOMContentLoadedTime=event.data||-1;this._scheduleRefresh();},wasShown:function()
+{this._recordButton=new WebInspector.StatusBarButton(WebInspector.UIString("Record Network Log"),"record-profile-status-bar-item");this._recordButton.addEventListener("click",this._onRecordButtonClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-status-bar-item");this._clearButton.addEventListener("click",this._reset,this);this._largerRequestsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Use small resource rows."),"network-larger-resources-status-bar-item");this._largerRequestsButton.toggled=WebInspector.settings.resourcesLargeRows.get();this._largerRequestsButton.addEventListener("click",this._toggleLargerRequests,this);this._preserveLogCheckbox=new WebInspector.StatusBarCheckbox(WebInspector.UIString("Preserve log"));},_loadEventFired:function(event)
+{if(!this._recordButton.toggled)
+return;this._mainRequestLoadTime=event.data||-1;this._scheduleRefresh();},_domContentLoadedEventFired:function(event)
+{if(!this._recordButton.toggled)
+return;this._mainRequestDOMContentLoadedTime=event.data||-1;this._scheduleRefresh();},wasShown:function()
 {this._refreshIfNeeded();},willHide:function()
 {this._popoverHelper.hidePopover();},refresh:function()
 {this._needsRefresh=false;if(this._refreshTimeout){clearTimeout(this._refreshTimeout);delete this._refreshTimeout;}
@@ -241,40 +241,43 @@
 if(boundariesChanged){this._invalidateAllItems();}
 for(var requestId in this._staleRequests)
 this._requestGridNode(this._staleRequests[requestId]).refreshGraph(this.calculator);this._staleRequests={};this._sortItems();this._updateSummaryBar();this._dataGrid.updateWidths();if(wasScrolledToLastRow)
-this._dataGrid.scrollToLastRow();},_onPreserveLogClicked:function(e)
-{this._preserveLogToggle.toggled=!this._preserveLogToggle.toggled;},_reset:function()
+this._dataGrid.scrollToLastRow();},_onRecordButtonClicked:function(e)
+{if(!this._recordButton.toggled)
+this._reset();this._recordButton.toggled=!this._recordButton.toggled;},_reset:function()
 {this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.ViewCleared);this._clearSearchMatchedList();if(this._popoverHelper)
 this._popoverHelper.hidePopover();if(this._calculator)
 this._calculator.reset();this._requests=[];this._requestsById={};this._requestsByURL={};this._staleRequests={};this._requestGridNodes={};if(this._dataGrid){this._dataGrid.rootNode().removeChildren();this._updateDividersIfNeeded();this._updateSummaryBar();}
 this._mainRequestLoadTime=-1;this._mainRequestDOMContentLoadedTime=-1;},get requests()
 {return this._requests;},requestById:function(id)
 {return this._requestsById[id];},_onRequestStarted:function(event)
-{this._appendRequest(event.data);},_appendRequest:function(request)
+{if(this._recordButton.toggled)
+this._appendRequest(event.data);},_appendRequest:function(request)
 {this._requests.push(request);if(this._requestsById[request.requestId]){var oldRequest=request.redirects[request.redirects.length-1];this._requestsById[oldRequest.requestId]=oldRequest;this._updateSearchMatchedListAfterRequestIdChanged(request.requestId,oldRequest.requestId);}
 this._requestsById[request.requestId]=request;this._requestsByURL[request.url]=request;if(request.redirects){for(var i=0;i<request.redirects.length;++i)
 this._refreshRequest(request.redirects[i]);}
 this._refreshRequest(request);},_onRequestUpdated:function(event)
 {var request=(event.data);this._refreshRequest(request);},_refreshRequest:function(request)
-{this._staleRequests[request.requestId]=request;this._scheduleRefresh();},clear:function()
-{if(this._preserveLogToggle.toggled)
-return;this._reset();},_mainFrameNavigated:function(event)
-{if(this._preserveLogToggle.toggled)
-return;var frame=(event.data);var loaderId=frame.loaderId;var requestsToPreserve=[];for(var i=0;i<this._requests.length;++i){var request=this._requests[i];if(request.loaderId===loaderId)
-requestsToPreserve.push(request);}
-this._reset();for(var i=0;i<requestsToPreserve.length;++i)
-this._appendRequest(requestsToPreserve[i]);},switchToDetailedView:function()
+{if(!this._requestsById[request.requestId])
+return;this._staleRequests[request.requestId]=request;this._scheduleRefresh();},_willReloadPage:function(event)
+{this._recordButton.toggled=true;if(!this._preserveLogCheckbox.checked())
+this._reset();},_mainFrameNavigated:function(event)
+{if(!this._recordButton.toggled||this._preserveLogCheckbox.checked())
+return;var frame=(event.data);var loaderId=frame.loaderId;var requestsToPick=[];var requests=WebInspector.networkLog.requests;for(var i=0;i<requests.length;++i){var request=requests[i];if(request.loaderId===loaderId)
+requestsToPick.push(request);}
+this._reset();for(var i=0;i<requestsToPick.length;++i)
+this._appendRequest(requestsToPick[i]);},switchToDetailedView:function()
 {if(!this._dataGrid)
 return;if(this._dataGrid.selectedNode)
-this._dataGrid.selectedNode.selected=false;this.element.removeStyleClass("brief-mode");this._detailedMode=true;this._updateColumns();},switchToBriefView:function()
-{this.element.addStyleClass("brief-mode");this._removeAllNodeHighlights();this._detailedMode=false;this._updateColumns();this._popoverHelper.hidePopover();},_toggleLargerRequests:function()
+this._dataGrid.selectedNode.selected=false;this.element.classList.remove("brief-mode");this._detailedMode=true;this._updateColumns();},switchToBriefView:function()
+{this.element.classList.add("brief-mode");this._removeAllNodeHighlights();this._detailedMode=false;this._updateColumns();this._popoverHelper.hidePopover();},_toggleLargerRequests:function()
 {WebInspector.settings.resourcesLargeRows.set(!WebInspector.settings.resourcesLargeRows.get());this._setLargerRequests(WebInspector.settings.resourcesLargeRows.get());},_setLargerRequests:function(enabled)
-{this._largerRequestsButton.toggled=enabled;if(!enabled){this._largerRequestsButton.title=WebInspector.UIString("Use large resource rows.");this._dataGrid.element.addStyleClass("small");this._timelineGrid.element.addStyleClass("small");}else{this._largerRequestsButton.title=WebInspector.UIString("Use small resource rows.");this._dataGrid.element.removeStyleClass("small");this._timelineGrid.element.removeStyleClass("small");}
+{this._largerRequestsButton.toggled=enabled;if(!enabled){this._largerRequestsButton.title=WebInspector.UIString("Use large resource rows.");this._dataGrid.element.classList.add("small");this._timelineGrid.element.classList.add("small");}else{this._largerRequestsButton.title=WebInspector.UIString("Use small resource rows.");this._dataGrid.element.classList.remove("small");this._timelineGrid.element.classList.remove("small");}
 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.RowSizeChanged,{largeRows:enabled});this._updateOffscreenRows();},_getPopoverAnchor:function(element)
 {if(!this._allowPopover)
 return;var anchor=element.enclosingNodeOrSelfWithClass("network-graph-bar")||element.enclosingNodeOrSelfWithClass("network-graph-label");if(anchor&&anchor.parentElement.request&&anchor.parentElement.request.timing)
 return anchor;anchor=element.enclosingNodeOrSelfWithClass("network-script-initiated");if(anchor&&anchor.request&&anchor.request.initiator)
 return anchor;return null;},_showPopover:function(anchor,popover)
-{var content;if(anchor.hasStyleClass("network-script-initiated"))
+{var content;if(anchor.classList.contains("network-script-initiated"))
 content=this._generateScriptInitiatedPopoverContent(anchor.request);else
 content=WebInspector.RequestTimingView.createTimingTable(anchor.parentElement.request);popover.show(content,anchor);},_onHidePopover:function()
 {this._linkifier.reset();},_generateScriptInitiatedPopoverContent:function(request)
@@ -300,14 +303,15 @@
 {InspectorFrontendHost.copyText(request.requestHeadersText());},_copyResponseHeaders:function(request)
 {InspectorFrontendHost.copyText(request.responseHeadersText);},_copyCurlCommand:function(request)
 {InspectorFrontendHost.copyText(this._generateCurlCommand(request));},_exportAll:function()
-{var filename=WebInspector.inspectedPageDomain+".har";var stream=new WebInspector.FileOutputStream();stream.open(filename,openCallback.bind(this));function openCallback()
-{var progressIndicator=new WebInspector.ProgressIndicator();this._progressBarContainer.appendChild(progressIndicator.element);var harWriter=new WebInspector.HARWriter();harWriter.write(stream,this._requests.filter(WebInspector.NetworkLogView.HTTPRequestsFilter),progressIndicator);}},_clearBrowserCache:function()
+{var filename=WebInspector.inspectedPageDomain+".har";var stream=new WebInspector.FileOutputStream();stream.open(filename,openCallback.bind(this));function openCallback(accepted)
+{if(!accepted)
+return;var progressIndicator=new WebInspector.ProgressIndicator();this._progressBarContainer.appendChild(progressIndicator.element);var harWriter=new WebInspector.HARWriter();harWriter.write(stream,this._requests.filter(WebInspector.NetworkLogView.HTTPRequestsFilter),progressIndicator);}},_clearBrowserCache:function()
 {if(confirm(WebInspector.UIString("Are you sure you want to clear browser cache?")))
 NetworkAgent.clearBrowserCache();},_clearBrowserCookies:function()
 {if(confirm(WebInspector.UIString("Are you sure you want to clear browser cookies?")))
 NetworkAgent.clearBrowserCookies();},_updateOffscreenRows:function()
 {var dataTableBody=this._dataGrid.dataTableBody;var rows=dataTableBody.children;var recordsCount=rows.length;if(recordsCount<2)
-return;var visibleTop=this._dataGrid.scrollContainer.scrollTop;var visibleBottom=visibleTop+this._dataGrid.scrollContainer.offsetHeight;var rowHeight=0;var unfilteredRowIndex=0;for(var i=0;i<recordsCount-1;++i){var row=rows[i];var dataGridNode=this._dataGrid.dataGridNodeFromNode(row);if(dataGridNode.isFilteredOut()){row.removeStyleClass("offscreen");continue;}
+return;var visibleTop=this._dataGrid.scrollContainer.scrollTop;var visibleBottom=visibleTop+this._dataGrid.scrollContainer.offsetHeight;var rowHeight=0;var unfilteredRowIndex=0;for(var i=0;i<recordsCount-1;++i){var row=rows[i];var dataGridNode=this._dataGrid.dataGridNodeFromNode(row);if(dataGridNode.isFilteredOut()){row.classList.remove("offscreen");continue;}
 if(!rowHeight)
 rowHeight=row.offsetHeight;var rowIsVisible=unfilteredRowIndex*rowHeight<visibleBottom&&(unfilteredRowIndex+1)*rowHeight>visibleTop;if(rowIsVisible!==row.rowIsVisible){row.enableStyleClass("offscreen",!rowIsVisible);row.rowIsVisible=rowIsVisible;}
 unfilteredRowIndex++;}},_matchRequest:function(request)
@@ -334,7 +338,9 @@
 newMatchedRequestIndex=this._matchedRequests.length-1;}
 this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.SearchCountUpdated,this._matchedRequests.length);if(shouldJump)
 this._highlightNthMatchedRequestForSearch(newMatchedRequestIndex,true);},_applyFilter:function(node)
-{var filter=this._textFilterUI.regex();var request=node._request;var matches=false;if(this._resourceTypeFilterUI.accept(request.type.name())){matches=!filter||filter.test(request.name())||filter.test(request.path());if(filter&&matches)
+{var filter=this._textFilterUI.regex();var request=node._request;var matches=true;if(this._dataURLFilterUI.checked()&&request.parsedURL.isDataURL())
+matches=false;if(matches&&!this._resourceTypeFilterUI.accept(request.type.name()))
+matches=false;if(matches&&filter){matches=filter.test(request.name())||filter.test(request.path());if(matches)
 this._highlightMatchedRequest(request,false,filter);}
 node.element.enableStyleClass("filtered-out",!matches);if(matches)
 this._filteredOutRequests.remove(request);else
@@ -347,8 +353,8 @@
 return;this._highlightNthMatchedRequestForSearch((this._currentMatchedRequestIndex+1)%this._matchedRequests.length,true);},searchCanceled:function()
 {this._clearSearchMatchedList();this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.SearchCountUpdated,0);},revealAndHighlightRequest:function(request)
 {this._removeAllNodeHighlights();var node=this._requestGridNode(request);if(node){this._dataGrid.element.focus();node.reveal();this._highlightNode(node);}},_removeAllNodeHighlights:function()
-{if(this._highlightedNode){this._highlightedNode.element.removeStyleClass("highlighted-row");delete this._highlightedNode;}},_highlightNode:function(node)
-{node.element.addStyleClass("highlighted-row");this._highlightedNode=node;},_generateCurlCommand:function(request)
+{if(this._highlightedNode){this._highlightedNode.element.classList.remove("highlighted-row");delete this._highlightedNode;}},_highlightNode:function(node)
+{node.element.classList.add("highlighted-row");this._highlightedNode=node;},_generateCurlCommand:function(request)
 {var command=["curl"];var ignoredHeaders={"host":1,"method":1,"path":1,"scheme":1,"version":1};function escapeStringWin(str)
 {return"\""+str.replace(/"/g,"\"\"").replace(/%/g,"\"%\"").replace(/\\/g,"\\\\").replace(/[\r\n]+/g,"\"^$&\"")+"\"";}
 function escapeStringPosix(str)
@@ -364,15 +370,16 @@
 WebInspector.NetworkLogView.HTTPRequestsFilter=function(request)
 {return request.parsedURL.isValid&&(request.scheme in WebInspector.NetworkLogView.HTTPSchemas);}
 WebInspector.NetworkLogView.EventTypes={ViewCleared:"ViewCleared",RowSizeChanged:"RowSizeChanged",RequestSelected:"RequestSelected",SearchCountUpdated:"SearchCountUpdated",SearchIndexUpdated:"SearchIndexUpdated"};WebInspector.NetworkPanel=function()
-{WebInspector.Panel.call(this,"network");this.registerRequiredCSS("networkPanel.css");this._injectStyles();this._panelStatusBarElement=this.element.createChild("div","panel-status-bar");this._filterBar=new WebInspector.FilterBar();this._filtersContainer=this.element.createChild("div","network-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this.element.addStyleClass("vbox");this.createSidebarView();this.splitView.element.removeStyleClass("fill");this.splitView.hideMainElement();var defaultColumnsVisibility=WebInspector.NetworkLogView._defaultColumnsVisibility;var networkLogColumnsVisibilitySetting=WebInspector.settings.createSetting("networkLogColumnsVisibility",defaultColumnsVisibility);var savedColumnsVisibility=networkLogColumnsVisibilitySetting.get();var columnsVisibility={};for(var columnId in defaultColumnsVisibility)
-columnsVisibility[columnId]=savedColumnsVisibility.hasOwnProperty(columnId)?savedColumnsVisibility[columnId]:defaultColumnsVisibility[columnId];networkLogColumnsVisibilitySetting.set(columnsVisibility);this._networkLogView=new WebInspector.NetworkLogView(this._filterBar,networkLogColumnsVisibilitySetting);this._networkLogView.show(this.sidebarElement);this._viewsContainerElement=this.splitView.mainElement;this._viewsContainerElement.id="network-views";this._viewsContainerElement.addStyleClass("hidden");if(!this._networkLogView.useLargeRows)
-this._viewsContainerElement.addStyleClass("small");this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.ViewCleared,this._onViewCleared,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.RowSizeChanged,this._onRowSizeChanged,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.RequestSelected,this._onRequestSelected,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.SearchCountUpdated,this._onSearchCountUpdated,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.SearchIndexUpdated,this._onSearchIndexUpdated,this);this._closeButtonElement=this._viewsContainerElement.createChild("div","close-button");this._closeButtonElement.id="network-close-button";this._closeButtonElement.addEventListener("click",this._toggleGridMode.bind(this),false);this._viewsContainerElement.appendChild(this._closeButtonElement);for(var i=0;i<this._networkLogView.statusBarItems.length;++i)
+{WebInspector.Panel.call(this,"network");this.registerRequiredCSS("networkPanel.css");this._injectStyles();this.element.classList.add("vbox");this._panelStatusBarElement=this.element.createChild("div","panel-status-bar");this._filterBar=new WebInspector.FilterBar();this._filtersContainer=this.element.createChild("div","network-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this._searchableView=new WebInspector.SearchableView(this);this._searchableView.show(this.element);this._contentsElement=this._searchableView.element;this.createSidebarView(this._contentsElement);this.splitView.element.classList.remove("fill");this.splitView.hideMainElement();var defaultColumnsVisibility=WebInspector.NetworkLogView._defaultColumnsVisibility;var networkLogColumnsVisibilitySetting=WebInspector.settings.createSetting("networkLogColumnsVisibility",defaultColumnsVisibility);var savedColumnsVisibility=networkLogColumnsVisibilitySetting.get();var columnsVisibility={};for(var columnId in defaultColumnsVisibility)
+columnsVisibility[columnId]=savedColumnsVisibility.hasOwnProperty(columnId)?savedColumnsVisibility[columnId]:defaultColumnsVisibility[columnId];networkLogColumnsVisibilitySetting.set(columnsVisibility);this._networkLogView=new WebInspector.NetworkLogView(this._filterBar,networkLogColumnsVisibilitySetting);this.splitView.setSidebarView(this._networkLogView);this._viewsContainerElement=this.splitView.mainElement();this._viewsContainerElement.id="network-views";this._viewsContainerElement.classList.add("hidden");if(!this._networkLogView.useLargeRows)
+this._viewsContainerElement.classList.add("small");this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.ViewCleared,this._onViewCleared,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.RowSizeChanged,this._onRowSizeChanged,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.RequestSelected,this._onRequestSelected,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.SearchCountUpdated,this._onSearchCountUpdated,this);this._networkLogView.addEventListener(WebInspector.NetworkLogView.EventTypes.SearchIndexUpdated,this._onSearchIndexUpdated,this);this._closeButtonElement=this._viewsContainerElement.createChild("div","close-button");this._closeButtonElement.id="network-close-button";this._closeButtonElement.addEventListener("click",this._toggleGridMode.bind(this),false);this._viewsContainerElement.appendChild(this._closeButtonElement);for(var i=0;i<this._networkLogView.statusBarItems.length;++i)
 this._panelStatusBarElement.appendChild(this._networkLogView.statusBarItems[i]);function viewGetter()
 {return this.visibleView;}
 WebInspector.GoToLineDialog.install(this,viewGetter.bind(this));}
 WebInspector.NetworkPanel.prototype={_onFiltersToggled:function(event)
 {var toggled=(event.data);this._filtersContainer.enableStyleClass("hidden",!toggled);this.element.enableStyleClass("filters-toggled",toggled);},elementsToRestoreScrollPositionsFor:function()
-{return this._networkLogView.elementsToRestoreScrollPositionsFor();},_reset:function()
+{return this._networkLogView.elementsToRestoreScrollPositionsFor();},searchableView:function()
+{return this._searchableView;},_reset:function()
 {this._networkLogView._reset();},handleShortcut:function(event)
 {if(this._viewingRequestMode&&event.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code){this._toggleGridMode();event.handled=true;return;}
 WebInspector.Panel.prototype.handleShortcut.call(this,event);},wasShown:function()
@@ -387,17 +394,17 @@
 this._networkLogView.revealAndHighlightRequest(request);},_onViewCleared:function(event)
 {this._closeVisibleRequest();this._toggleGridMode();this._viewsContainerElement.removeChildren();this._viewsContainerElement.appendChild(this._closeButtonElement);},_onRowSizeChanged:function(event)
 {this._viewsContainerElement.enableStyleClass("small",!event.data.largeRows);},_onSearchCountUpdated:function(event)
-{WebInspector.searchController.updateSearchMatchesCount(event.data,this);},_onSearchIndexUpdated:function(event)
-{WebInspector.searchController.updateCurrentMatchIndex(event.data,this);},_onRequestSelected:function(event)
+{this._searchableView.updateSearchMatchesCount(event.data);},_onSearchIndexUpdated:function(event)
+{this._searchableView.updateCurrentMatchIndex(event.data);},_onRequestSelected:function(event)
 {this._showRequest(event.data);},_showRequest:function(request)
 {if(!request)
 return;this._toggleViewingRequestMode();if(this.visibleView){this.visibleView.detach();delete this.visibleView;}
 var view=new WebInspector.NetworkItemView(request);view.show(this._viewsContainerElement);this.visibleView=view;},_closeVisibleRequest:function()
-{this.element.removeStyleClass("viewing-resource");if(this.visibleView){this.visibleView.detach();delete this.visibleView;}},_toggleGridMode:function()
-{if(this._viewingRequestMode){this._viewingRequestMode=false;this.element.removeStyleClass("viewing-resource");this.splitView.hideMainElement();}
+{this.element.classList.remove("viewing-resource");if(this.visibleView){this.visibleView.detach();delete this.visibleView;}},_toggleGridMode:function()
+{if(this._viewingRequestMode){this._viewingRequestMode=false;this.element.classList.remove("viewing-resource");this.splitView.hideMainElement();}
 this._networkLogView.switchToDetailedView();this._networkLogView.allowPopover=true;this._networkLogView._allowRequestSelection=false;},_toggleViewingRequestMode:function()
 {if(this._viewingRequestMode)
-return;this._viewingRequestMode=true;this.element.addStyleClass("viewing-resource");this.splitView.showMainElement();this._networkLogView.allowPopover=false;this._networkLogView._allowRequestSelection=true;this._networkLogView.switchToBriefView();},performSearch:function(query,shouldJump)
+return;this._viewingRequestMode=true;this.element.classList.add("viewing-resource");this.splitView.showMainElement();this._networkLogView.allowPopover=false;this._networkLogView._allowRequestSelection=true;this._networkLogView.switchToBriefView();},performSearch:function(query,shouldJump)
 {this._networkLogView.performSearch(query,shouldJump);},jumpToPreviousSearchResult:function()
 {this._networkLogView.jumpToPreviousSearchResult();},jumpToNextSearchResult:function()
 {this._networkLogView.jumpToNextSearchResult();},searchCanceled:function()
@@ -415,6 +422,10 @@
 return;appendRevealItem.call(this,request);},_injectStyles:function()
 {var style=document.createElement("style");var rules=[];var columns=WebInspector.NetworkLogView._defaultColumnsVisibility;var hideSelectors=[];var bgSelectors=[];for(var columnId in columns){hideSelectors.push("#network-container .hide-"+columnId+"-column ."+columnId+"-column");bgSelectors.push(".network-log-grid.data-grid td."+columnId+"-column");}
 rules.push(hideSelectors.join(", ")+"{border-left: 0 none transparent;}");rules.push(bgSelectors.join(", ")+"{background-color: rgba(0, 0, 0, 0.07);}");style.textContent=rules.join("\n");document.head.appendChild(style);},__proto__:WebInspector.Panel.prototype}
+WebInspector.NetworkPanel.ContextMenuProvider=function()
+{}
+WebInspector.NetworkPanel.ContextMenuProvider.prototype={appendApplicableItems:function(event,contextMenu,target)
+{WebInspector.panel("network").appendApplicableItems(event,contextMenu,target);}}
 WebInspector.NetworkBaseCalculator=function()
 {}
 WebInspector.NetworkBaseCalculator.prototype={computePosition:function(time)
@@ -428,7 +439,7 @@
 {return this._maximumBoundary;},minimumBoundary:function()
 {return this._minimumBoundary;},zeroTime:function()
 {return this._minimumBoundary;},_value:function(item)
-{return 0;},formatTime:function(value)
+{return 0;},formatTime:function(value,hires)
 {return value.toString();},setDisplayWindow:function(clientWidth)
 {this._workingArea=clientWidth;this.paddingLeft=0;}}
 WebInspector.NetworkTimeCalculator=function(startAtZero)
@@ -477,7 +488,7 @@
 WebInspector.NetworkDataGridNode=function(parentView,request)
 {WebInspector.DataGridNode.call(this,{});this._parentView=parentView;this._request=request;this._linkifier=new WebInspector.Linkifier();}
 WebInspector.NetworkDataGridNode.prototype={createCells:function()
-{this._element.addStyleClass("offscreen");this._nameCell=this._createDivInTD("name");this._methodCell=this._createDivInTD("method");this._statusCell=this._createDivInTD("status");this._schemeCell=this._createDivInTD("scheme");this._domainCell=this._createDivInTD("domain");this._typeCell=this._createDivInTD("type");this._initiatorCell=this._createDivInTD("initiator");this._cookiesCell=this._createDivInTD("cookies");this._setCookiesCell=this._createDivInTD("setCookies");this._sizeCell=this._createDivInTD("size");this._timeCell=this._createDivInTD("time");this._responseHeaderCells={};var responseHeaderColumns=WebInspector.NetworkLogView._responseHeaderColumns;for(var i=0;i<responseHeaderColumns.length;++i)
+{this._element.classList.add("offscreen");this._nameCell=this._createDivInTD("name");this._methodCell=this._createDivInTD("method");this._statusCell=this._createDivInTD("status");this._schemeCell=this._createDivInTD("scheme");this._domainCell=this._createDivInTD("domain");this._typeCell=this._createDivInTD("type");this._initiatorCell=this._createDivInTD("initiator");this._cookiesCell=this._createDivInTD("cookies");this._setCookiesCell=this._createDivInTD("setCookies");this._sizeCell=this._createDivInTD("size");this._timeCell=this._createDivInTD("time");this._responseHeaderCells={};var responseHeaderColumns=WebInspector.NetworkLogView._responseHeaderColumns;for(var i=0;i<responseHeaderColumns.length;++i)
 this._responseHeaderCells[responseHeaderColumns[i]]=this._createDivInTD(responseHeaderColumns[i]);this._timelineCell=this._createDivInTD("timeline");this._createTimelineBar(this._timelineCell);this._nameCell.addEventListener("click",this._onClick.bind(this),false);this._nameCell.addEventListener("dblclick",this._openInNewTab.bind(this),false);},wasDetached:function()
 {this._linkifier.reset();},isFilteredOut:function()
 {return!!this._parentView._filteredOutRequests.get(this._request);},_onClick:function()
@@ -492,40 +503,41 @@
 {cell.className="network-graph-side";this._barAreaElement=document.createElement("div");this._barAreaElement.className="network-graph-bar-area";this._barAreaElement.request=this._request;cell.appendChild(this._barAreaElement);this._barLeftElement=document.createElement("div");this._barLeftElement.className="network-graph-bar waiting";this._barAreaElement.appendChild(this._barLeftElement);this._barRightElement=document.createElement("div");this._barRightElement.className="network-graph-bar";this._barAreaElement.appendChild(this._barRightElement);this._labelLeftElement=document.createElement("div");this._labelLeftElement.className="network-graph-label waiting";this._barAreaElement.appendChild(this._labelLeftElement);this._labelRightElement=document.createElement("div");this._labelRightElement.className="network-graph-label";this._barAreaElement.appendChild(this._labelRightElement);cell.addEventListener("mouseover",this._refreshLabelPositions.bind(this),false);},refreshRequest:function()
 {this._refreshNameCell();this._refreshMethodCell();this._refreshStatusCell();this._refreshSchemeCell();this._refreshDomainCell();this._refreshTypeCell();this._refreshInitiatorCell();this._refreshCookiesCell();this._refreshSetCookiesCell();this._refreshSizeCell();this._refreshTimeCell();var responseHeaderColumns=WebInspector.NetworkLogView._responseHeaderColumns;for(var i=0;i<responseHeaderColumns.length;++i)
 this._refreshResponseHeaderCell(responseHeaderColumns[i]);if(this._request.cached)
-this._timelineCell.addStyleClass("resource-cached");this._element.addStyleClass("network-item");this._element.enableStyleClass("network-error-row",this._request.failed||(this._request.statusCode>=400));this._updateElementStyleClasses(this._element);},_updateElementStyleClasses:function(element)
-{var typeClassName="network-type-"+this._request.type.name();if(!element.hasStyleClass(typeClassName)){element.removeMatchingStyleClasses("network-type-\\w+");element.addStyleClass(typeClassName);}},_refreshResponseHeaderCell:function(headerName)
+this._timelineCell.classList.add("resource-cached");this._element.classList.add("network-item");this._element.enableStyleClass("network-error-row",this._request.failed||(this._request.statusCode>=400));this._updateElementStyleClasses(this._element);},_updateElementStyleClasses:function(element)
+{var typeClassName="network-type-"+this._request.type.name();if(!element.classList.contains(typeClassName)){element.removeMatchingStyleClasses("network-type-\\w+");element.classList.add(typeClassName);}},_refreshResponseHeaderCell:function(headerName)
 {var cell=this._responseHeaderCells[headerName];var value=this._request.responseHeaderValue(headerName);cell.setTextAndTitle(value?value:"");},_refreshNameCell:function()
 {this._nameCell.removeChildren();if(this._request.type===WebInspector.resourceTypes.Image){var previewImage=document.createElement("img");previewImage.className="image-network-icon-preview";this._request.populateImageSource(previewImage);var iconElement=document.createElement("div");iconElement.className="icon";iconElement.appendChild(previewImage);}else{var iconElement=document.createElement("img");iconElement.className="icon";}
 this._nameCell.appendChild(iconElement);this._nameCell.appendChild(document.createTextNode(this._request.name()));this._appendSubtitle(this._nameCell,this._request.path());this._nameCell.title=this._request.url;},_refreshMethodCell:function()
 {this._methodCell.setTextAndTitle(this._request.requestMethod);},_refreshStatusCell:function()
 {this._statusCell.removeChildren();if(this._request.failed){var failText=this._request.canceled?WebInspector.UIString("(canceled)"):WebInspector.UIString("(failed)");if(this._request.localizedFailDescription){this._statusCell.appendChild(document.createTextNode(failText));this._appendSubtitle(this._statusCell,this._request.localizedFailDescription);this._statusCell.title=failText+" "+this._request.localizedFailDescription;}else
-this._statusCell.setTextAndTitle(failText);this._statusCell.addStyleClass("network-dim-cell");return;}
-this._statusCell.removeStyleClass("network-dim-cell");if(this._request.statusCode){this._statusCell.appendChild(document.createTextNode(""+this._request.statusCode));this._appendSubtitle(this._statusCell,this._request.statusText);this._statusCell.title=this._request.statusCode+" "+this._request.statusText;if(this._request.cached)
-this._statusCell.addStyleClass("network-dim-cell");}else{if(!this._request.isHttpFamily()&&this._request.finished)
-this._statusCell.setTextAndTitle(WebInspector.UIString("Success"));else if(this._request.isPingRequest())
-this._statusCell.setTextAndTitle(WebInspector.UIString("(ping)"));else
-this._statusCell.setTextAndTitle(WebInspector.UIString("(pending)"));this._statusCell.addStyleClass("network-dim-cell");}},_refreshSchemeCell:function()
+this._statusCell.setTextAndTitle(failText);this._statusCell.classList.add("network-dim-cell");return;}
+this._statusCell.classList.remove("network-dim-cell");if(this._request.statusCode){this._statusCell.appendChild(document.createTextNode(""+this._request.statusCode));this._appendSubtitle(this._statusCell,this._request.statusText);this._statusCell.title=this._request.statusCode+" "+this._request.statusText;if(this._request.cached)
+this._statusCell.classList.add("network-dim-cell");}else{if(this._request.parsedURL.isDataURL())
+this._statusCell.setTextAndTitle(WebInspector.UIString("(data)"));else if(this._request.isPingRequest())
+this._statusCell.setTextAndTitle(WebInspector.UIString("(ping)"));else if(this._request.finished)
+this._statusCell.setTextAndTitle(WebInspector.UIString("Finished"));else
+this._statusCell.setTextAndTitle(WebInspector.UIString("(pending)"));this._statusCell.classList.add("network-dim-cell");}},_refreshSchemeCell:function()
 {this._schemeCell.setTextAndTitle(this._request.scheme);},_refreshDomainCell:function()
 {this._domainCell.setTextAndTitle(this._request.domain);},_refreshTypeCell:function()
-{if(this._request.mimeType){this._typeCell.removeStyleClass("network-dim-cell");this._typeCell.setTextAndTitle(this._request.mimeType);}else{this._typeCell.enableStyleClass("network-dim-cell",!this._request.isPingRequest());this._typeCell.setTextAndTitle(this._request.requestContentType()||"");}},_refreshInitiatorCell:function()
-{this._initiatorCell.removeChildren();this._initiatorCell.removeStyleClass("network-dim-cell");this._initiatorCell.removeStyleClass("network-script-initiated");delete this._initiatorCell.request;var request=this._request;var initiator=request.initiatorInfo();switch(initiator.type){case WebInspector.NetworkRequest.InitiatorType.Parser:this._initiatorCell.title=initiator.url+":"+initiator.lineNumber;this._initiatorCell.appendChild(WebInspector.linkifyResourceAsNode(initiator.url,initiator.lineNumber-1));this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Parser"));break;case WebInspector.NetworkRequest.InitiatorType.Redirect:this._initiatorCell.title=initiator.url;this._initiatorCell.appendChild(WebInspector.linkifyRequestAsNode(request.redirectSource));this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Redirect"));break;case WebInspector.NetworkRequest.InitiatorType.Script:var urlElement=this._linkifier.linkifyLocation(initiator.url,initiator.lineNumber-1,initiator.columnNumber-1);urlElement.title="";this._initiatorCell.appendChild(urlElement);this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Script"));this._initiatorCell.addStyleClass("network-script-initiated");this._initiatorCell.request=request;break;default:this._initiatorCell.title="";this._initiatorCell.addStyleClass("network-dim-cell");this._initiatorCell.setTextAndTitle(WebInspector.UIString("Other"));}},_refreshCookiesCell:function()
+{if(this._request.mimeType){this._typeCell.classList.remove("network-dim-cell");this._typeCell.setTextAndTitle(this._request.mimeType);}else{this._typeCell.enableStyleClass("network-dim-cell",!this._request.isPingRequest());this._typeCell.setTextAndTitle(this._request.requestContentType()||"");}},_refreshInitiatorCell:function()
+{this._initiatorCell.removeChildren();this._initiatorCell.classList.remove("network-dim-cell");this._initiatorCell.classList.remove("network-script-initiated");delete this._initiatorCell.request;var request=this._request;var initiator=request.initiatorInfo();switch(initiator.type){case WebInspector.NetworkRequest.InitiatorType.Parser:this._initiatorCell.title=initiator.url+":"+initiator.lineNumber;this._initiatorCell.appendChild(WebInspector.linkifyResourceAsNode(initiator.url,initiator.lineNumber-1));this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Parser"));break;case WebInspector.NetworkRequest.InitiatorType.Redirect:this._initiatorCell.title=initiator.url;console.assert(request.redirectSource);var redirectSource=(request.redirectSource);this._initiatorCell.appendChild(WebInspector.linkifyRequestAsNode(redirectSource));this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Redirect"));break;case WebInspector.NetworkRequest.InitiatorType.Script:var urlElement=this._linkifier.linkifyLocation(initiator.url,initiator.lineNumber-1,initiator.columnNumber-1);urlElement.title="";this._initiatorCell.appendChild(urlElement);this._appendSubtitle(this._initiatorCell,WebInspector.UIString("Script"));this._initiatorCell.classList.add("network-script-initiated");this._initiatorCell.request=request;break;default:this._initiatorCell.title="";this._initiatorCell.classList.add("network-dim-cell");this._initiatorCell.setTextAndTitle(WebInspector.UIString("Other"));}},_refreshCookiesCell:function()
 {var requestCookies=this._request.requestCookies;this._cookiesCell.setTextAndTitle(requestCookies?""+requestCookies.length:"");},_refreshSetCookiesCell:function()
 {var responseCookies=this._request.responseCookies;this._setCookiesCell.setTextAndTitle(responseCookies?""+responseCookies.length:"");},_refreshSizeCell:function()
-{if(this._request.cached){this._sizeCell.setTextAndTitle(WebInspector.UIString("(from cache)"));this._sizeCell.addStyleClass("network-dim-cell");}else{var resourceSize=Number.bytesToString(this._request.resourceSize);var transferSize=Number.bytesToString(this._request.transferSize);this._sizeCell.setTextAndTitle(transferSize);this._sizeCell.removeStyleClass("network-dim-cell");this._appendSubtitle(this._sizeCell,resourceSize);}},_refreshTimeCell:function()
-{if(this._request.duration>0){this._timeCell.removeStyleClass("network-dim-cell");this._timeCell.setTextAndTitle(Number.secondsToString(this._request.duration));this._appendSubtitle(this._timeCell,Number.secondsToString(this._request.latency));}else{this._timeCell.addStyleClass("network-dim-cell");this._timeCell.setTextAndTitle(WebInspector.UIString("Pending"));}},_appendSubtitle:function(cellElement,subtitleText)
+{if(this._request.cached){this._sizeCell.setTextAndTitle(WebInspector.UIString("(from cache)"));this._sizeCell.classList.add("network-dim-cell");}else{var resourceSize=Number.bytesToString(this._request.resourceSize);var transferSize=Number.bytesToString(this._request.transferSize);this._sizeCell.setTextAndTitle(transferSize);this._sizeCell.classList.remove("network-dim-cell");this._appendSubtitle(this._sizeCell,resourceSize);}},_refreshTimeCell:function()
+{if(this._request.duration>0){this._timeCell.classList.remove("network-dim-cell");this._timeCell.setTextAndTitle(Number.secondsToString(this._request.duration));this._appendSubtitle(this._timeCell,Number.secondsToString(this._request.latency));}else{this._timeCell.classList.add("network-dim-cell");this._timeCell.setTextAndTitle(WebInspector.UIString("Pending"));}},_appendSubtitle:function(cellElement,subtitleText)
 {var subtitleElement=document.createElement("div");subtitleElement.className="network-cell-subtitle";subtitleElement.textContent=subtitleText;cellElement.appendChild(subtitleElement);},refreshGraph:function(calculator)
-{var percentages=calculator.computeBarGraphPercentages(this._request);this._percentages=percentages;this._barAreaElement.removeStyleClass("hidden");this._updateElementStyleClasses(this._timelineCell);this._barLeftElement.style.setProperty("left",percentages.start+"%");this._barRightElement.style.setProperty("right",(100-percentages.end)+"%");this._barLeftElement.style.setProperty("right",(100-percentages.end)+"%");this._barRightElement.style.setProperty("left",percentages.middle+"%");var labels=calculator.computeBarGraphLabels(this._request);this._labelLeftElement.textContent=labels.left;this._labelRightElement.textContent=labels.right;var tooltip=(labels.tooltip||"");this._barLeftElement.title=tooltip;this._labelLeftElement.title=tooltip;this._labelRightElement.title=tooltip;this._barRightElement.title=tooltip;},_refreshLabelPositions:function()
+{var percentages=calculator.computeBarGraphPercentages(this._request);this._percentages=percentages;this._barAreaElement.classList.remove("hidden");this._updateElementStyleClasses(this._timelineCell);this._barLeftElement.style.setProperty("left",percentages.start+"%");this._barRightElement.style.setProperty("right",(100-percentages.end)+"%");this._barLeftElement.style.setProperty("right",(100-percentages.end)+"%");this._barRightElement.style.setProperty("left",percentages.middle+"%");var labels=calculator.computeBarGraphLabels(this._request);this._labelLeftElement.textContent=labels.left;this._labelRightElement.textContent=labels.right;var tooltip=(labels.tooltip||"");this._barLeftElement.title=tooltip;this._labelLeftElement.title=tooltip;this._labelRightElement.title=tooltip;this._barRightElement.title=tooltip;},_refreshLabelPositions:function()
 {if(!this._percentages)
-return;this._labelLeftElement.style.removeProperty("left");this._labelLeftElement.style.removeProperty("right");this._labelLeftElement.removeStyleClass("before");this._labelLeftElement.removeStyleClass("hidden");this._labelRightElement.style.removeProperty("left");this._labelRightElement.style.removeProperty("right");this._labelRightElement.removeStyleClass("after");this._labelRightElement.removeStyleClass("hidden");const labelPadding=10;const barRightElementOffsetWidth=this._barRightElement.offsetWidth;const barLeftElementOffsetWidth=this._barLeftElement.offsetWidth;if(this._barLeftElement){var leftBarWidth=barLeftElementOffsetWidth-labelPadding;var rightBarWidth=(barRightElementOffsetWidth-barLeftElementOffsetWidth)-labelPadding;}else{var leftBarWidth=(barLeftElementOffsetWidth-barRightElementOffsetWidth)-labelPadding;var rightBarWidth=barRightElementOffsetWidth-labelPadding;}
+return;this._labelLeftElement.style.removeProperty("left");this._labelLeftElement.style.removeProperty("right");this._labelLeftElement.classList.remove("before");this._labelLeftElement.classList.remove("hidden");this._labelRightElement.style.removeProperty("left");this._labelRightElement.style.removeProperty("right");this._labelRightElement.classList.remove("after");this._labelRightElement.classList.remove("hidden");const labelPadding=10;const barRightElementOffsetWidth=this._barRightElement.offsetWidth;const barLeftElementOffsetWidth=this._barLeftElement.offsetWidth;if(this._barLeftElement){var leftBarWidth=barLeftElementOffsetWidth-labelPadding;var rightBarWidth=(barRightElementOffsetWidth-barLeftElementOffsetWidth)-labelPadding;}else{var leftBarWidth=(barLeftElementOffsetWidth-barRightElementOffsetWidth)-labelPadding;var rightBarWidth=barRightElementOffsetWidth-labelPadding;}
 const labelLeftElementOffsetWidth=this._labelLeftElement.offsetWidth;const labelRightElementOffsetWidth=this._labelRightElement.offsetWidth;const labelBefore=(labelLeftElementOffsetWidth>leftBarWidth);const labelAfter=(labelRightElementOffsetWidth>rightBarWidth);const graphElementOffsetWidth=this._timelineCell.offsetWidth;if(labelBefore&&(graphElementOffsetWidth*(this._percentages.start/100))<(labelLeftElementOffsetWidth+10))
 var leftHidden=true;if(labelAfter&&(graphElementOffsetWidth*((100-this._percentages.end)/100))<(labelRightElementOffsetWidth+10))
 var rightHidden=true;if(barLeftElementOffsetWidth==barRightElementOffsetWidth){if(labelBefore&&!labelAfter)
 leftHidden=true;else if(labelAfter&&!labelBefore)
 rightHidden=true;}
 if(labelBefore){if(leftHidden)
-this._labelLeftElement.addStyleClass("hidden");this._labelLeftElement.style.setProperty("right",(100-this._percentages.start)+"%");this._labelLeftElement.addStyleClass("before");}else{this._labelLeftElement.style.setProperty("left",this._percentages.start+"%");this._labelLeftElement.style.setProperty("right",(100-this._percentages.middle)+"%");}
+this._labelLeftElement.classList.add("hidden");this._labelLeftElement.style.setProperty("right",(100-this._percentages.start)+"%");this._labelLeftElement.classList.add("before");}else{this._labelLeftElement.style.setProperty("left",this._percentages.start+"%");this._labelLeftElement.style.setProperty("right",(100-this._percentages.middle)+"%");}
 if(labelAfter){if(rightHidden)
-this._labelRightElement.addStyleClass("hidden");this._labelRightElement.style.setProperty("left",this._percentages.end+"%");this._labelRightElement.addStyleClass("after");}else{this._labelRightElement.style.setProperty("left",this._percentages.middle+"%");this._labelRightElement.style.setProperty("right",(100-this._percentages.end)+"%");}},__proto__:WebInspector.DataGridNode.prototype}
+this._labelRightElement.classList.add("hidden");this._labelRightElement.style.setProperty("left",this._percentages.end+"%");this._labelRightElement.classList.add("after");}else{this._labelRightElement.style.setProperty("left",this._percentages.middle+"%");this._labelRightElement.style.setProperty("right",(100-this._percentages.end)+"%");}},__proto__:WebInspector.DataGridNode.prototype}
 WebInspector.NetworkDataGridNode.NameComparator=function(a,b)
 {var aFileName=a._request.name();var bFileName=b._request.name();if(aFileName>bFileName)
 return 1;if(bFileName>aFileName)
diff --git a/resources/inspector/ProfilesPanel.js b/resources/inspector/ProfilesPanel.js
index fd57e60..0916a70 100644
--- a/resources/inspector/ProfilesPanel.js
+++ b/resources/inspector/ProfilesPanel.js
@@ -1,6 +1,6 @@
 WebInspector.ProfileType=function(id,name)
-{this._id=id;this._name=name;this._profiles=[];this._profilesIdMap={};this.treeElement=null;}
-WebInspector.ProfileType.Events={AddProfileHeader:"add-profile-header",RemoveProfileHeader:"remove-profile-header",ProgressUpdated:"progress-updated",ViewUpdated:"view-updated"}
+{this._id=id;this._name=name;this._profiles=[];this.treeElement=null;this._profileBeingRecorded=null;window.addEventListener("unload",this._clearTempStorage.bind(this),false);}
+WebInspector.ProfileType.Events={AddProfileHeader:"add-profile-header",RemoveProfileHeader:"remove-profile-header",ViewUpdated:"view-updated"}
 WebInspector.ProfileType.prototype={hasTemporaryView:function()
 {return false;},fileExtension:function()
 {return null;},get statusBarItems()
@@ -13,31 +13,37 @@
 {return"";},isInstantProfile:function()
 {return false;},isEnabled:function()
 {return true;},getProfiles:function()
-{return this._profiles.filter(function(profile){return!profile.isTemporary;});},decorationElement:function()
+{function isFinished(profile)
+{return this._profileBeingRecorded!==profile;}
+return this._profiles.filter(isFinished.bind(this));},decorationElement:function()
 {return null;},getProfile:function(uid)
-{return this._profilesIdMap[this._makeKey(uid)];},createTemporaryProfile:function(title)
-{throw new Error("Needs implemented.");},createProfile:function(profile)
-{throw new Error("Not supported for "+this._name+" profiles.");},_makeKey:function(id)
-{return id+'/'+escape(this.id);},addProfile:function(profile)
-{this._profiles.push(profile);this._profilesIdMap[this._makeKey(profile.uid)]=profile;this.dispatchEventToListeners(WebInspector.ProfileType.Events.AddProfileHeader,profile);},removeProfile:function(profile)
-{for(var i=0;i<this._profiles.length;++i){if(this._profiles[i].uid===profile.uid){this._profiles.splice(i,1);break;}}
-delete this._profilesIdMap[this._makeKey(profile.uid)];},findTemporaryProfile:function()
-{for(var i=0;i<this._profiles.length;++i){if(this._profiles[i].isTemporary)
+{for(var i=0;i<this._profiles.length;++i){if(this._profiles[i].uid===uid)
 return this._profiles[i];}
-return null;},_reset:function()
+return null;},loadFromFile:function(file)
+{var name=file.name;if(name.endsWith(this.fileExtension()))
+name=name.substr(0,name.length-this.fileExtension().length);var profile=this.createProfileLoadedFromFile(name);profile.setFromFile();this._profileBeingRecorded=profile;this.addProfile(profile);profile.loadFromFile(file);},createProfileLoadedFromFile:function(title)
+{throw new Error("Needs implemented.");},addProfile:function(profile)
+{this._profiles.push(profile);this.dispatchEventToListeners(WebInspector.ProfileType.Events.AddProfileHeader,profile);},removeProfile:function(profile)
+{if(this._profileBeingRecorded===profile)
+this._profileBeingRecorded=null;for(var i=0;i<this._profiles.length;++i){if(this._profiles[i].uid===profile.uid){this._profiles.splice(i,1);break;}}},_clearTempStorage:function()
+{for(var i=0;i<this._profiles.length;++i)
+this._profiles[i].removeTempFile();},profileBeingRecorded:function()
+{return this._profileBeingRecorded;},_reset:function()
 {var profiles=this._profiles.slice(0);for(var i=0;i<profiles.length;++i){var profile=profiles[i];var view=profile.existingView();if(view){view.detach();if("dispose"in view)
 view.dispose();}
 this.dispatchEventToListeners(WebInspector.ProfileType.Events.RemoveProfileHeader,profile);}
-this.treeElement.removeChildren();this._profiles=[];this._profilesIdMap={};},__proto__:WebInspector.Object.prototype}
+this.treeElement.removeChildren();this._profiles=[];},__proto__:WebInspector.Object.prototype}
 WebInspector.ProfileHeader=function(profileType,title,uid)
-{this._profileType=profileType;this.title=title;this.isTemporary=uid===undefined;this.uid=this.isTemporary?-1:uid;this._fromFile=false;}
+{this._profileType=profileType;this.title=title;this.uid=(uid===undefined)?-1:uid;this._fromFile=false;}
 WebInspector.ProfileHeader._nextProfileFromFileUid=1;WebInspector.ProfileHeader.prototype={profileType:function()
 {return this._profileType;},createSidebarTreeElement:function()
 {throw new Error("Needs implemented.");},existingView:function()
 {return this._view;},view:function(panel)
 {if(!this._view)
 this._view=this.createView(panel);return this._view;},createView:function(panel)
-{throw new Error("Not implemented.");},dispose:function()
+{throw new Error("Not implemented.");},removeTempFile:function()
+{if(this._tempFile)
+this._tempFile.remove();},dispose:function()
 {},load:function(callback)
 {},canSaveToFile:function()
 {return false;},saveToFile:function()
@@ -46,10 +52,11 @@
 {return this._fromFile;},setFromFile:function()
 {this._fromFile=true;this.uid="From file #"+WebInspector.ProfileHeader._nextProfileFromFileUid++;}}
 WebInspector.ProfilesPanel=function(name,type)
-{var singleProfileMode=typeof name!=="undefined";name=name||"profiles";WebInspector.Panel.call(this,name);this.registerRequiredCSS("panelEnablerView.css");this.registerRequiredCSS("heapProfiler.css");this.registerRequiredCSS("profilesPanel.css");this.createSidebarViewWithTree();this.splitView.mainElement.addStyleClass("vbox");this.splitView.sidebarElement.addStyleClass("vbox");this.profilesItemTreeElement=new WebInspector.ProfilesSidebarTreeElement(this);this.sidebarTree.appendChild(this.profilesItemTreeElement);this._singleProfileMode=singleProfileMode;this._profileTypesByIdMap={};this.profileViews=document.createElement("div");this.profileViews.id="profile-views";this.profileViews.addStyleClass("vbox");this.splitView.mainElement.appendChild(this.profileViews);var statusBarContainer=this.splitView.mainElement.createChild("div","profiles-status-bar");this._statusBarElement=statusBarContainer.createChild("div","status-bar");var sidebarTreeBox=this.sidebarElement.createChild("div","profiles-sidebar-tree-box");sidebarTreeBox.appendChild(this.sidebarTreeElement);var statusBarContainerLeft=this.sidebarElement.createChild("div","profiles-status-bar");this._statusBarButtons=statusBarContainerLeft.createChild("div","status-bar");this.recordButton=new WebInspector.StatusBarButton("","record-profile-status-bar-item");this.recordButton.addEventListener("click",this.toggleRecordButton,this);this._statusBarButtons.appendChild(this.recordButton.element);this.clearResultsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear all profiles."),"clear-status-bar-item");this.clearResultsButton.addEventListener("click",this._clearProfiles,this);this._statusBarButtons.appendChild(this.clearResultsButton.element);this._profileTypeStatusBarItemsContainer=this._statusBarElement.createChild("div");this._profileViewStatusBarItemsContainer=this._statusBarElement.createChild("div");if(singleProfileMode){this._launcherView=this._createLauncherView();this._registerProfileType((type));this._selectedProfileType=type;this._updateProfileTypeSpecificUI();}else{this._launcherView=new WebInspector.MultiProfileLauncherView(this);this._launcherView.addEventListener(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,this._onProfileTypeSelected,this);this._registerProfileType(new WebInspector.CPUProfileType());this._registerProfileType(new WebInspector.HeapSnapshotProfileType());this._registerProfileType(new WebInspector.TrackingHeapSnapshotProfileType(this));if(!WebInspector.WorkerManager.isWorkerFrontend()&&WebInspector.experimentsSettings.canvasInspection.isEnabled())
-this._registerProfileType(new WebInspector.CanvasProfileType());}
-this._reset();this._createFileSelectorElement();this.element.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),true);this._registerShortcuts();WebInspector.ContextMenu.registerProvider(this);this._configureCpuProfilerSamplingInterval();WebInspector.settings.highResolutionCpuProfiling.addChangeListener(this._configureCpuProfilerSamplingInterval,this);}
-WebInspector.ProfilesPanel.prototype={_createFileSelectorElement:function()
+{var singleProfileMode=typeof name!=="undefined";name=name||"profiles";WebInspector.Panel.call(this,name);this.registerRequiredCSS("panelEnablerView.css");this.registerRequiredCSS("heapProfiler.css");this.registerRequiredCSS("profilesPanel.css");this.createSidebarViewWithTree();this.splitView.mainElement().classList.add("vbox");this.splitView.sidebarElement().classList.add("vbox");this._searchableView=new WebInspector.SearchableView(this);this.splitView.setMainView(this._searchableView);this.profilesItemTreeElement=new WebInspector.ProfilesSidebarTreeElement(this);this.sidebarTree.appendChild(this.profilesItemTreeElement);this._singleProfileMode=singleProfileMode;this._profileTypesByIdMap={};this.profileViews=document.createElement("div");this.profileViews.id="profile-views";this.profileViews.classList.add("vbox");this._searchableView.element.appendChild(this.profileViews);var statusBarContainer=this.splitView.mainElement().createChild("div","profiles-status-bar");this._statusBarElement=statusBarContainer.createChild("div","status-bar");var sidebarTreeBox=this.splitView.sidebarElement().createChild("div","profiles-sidebar-tree-box");sidebarTreeBox.appendChild(this.sidebarTreeElement);var statusBarContainerLeft=this.splitView.sidebarElement().createChild("div","profiles-status-bar");this._statusBarButtons=statusBarContainerLeft.createChild("div","status-bar");this.recordButton=new WebInspector.StatusBarButton("","record-profile-status-bar-item");this.recordButton.addEventListener("click",this.toggleRecordButton,this);this._statusBarButtons.appendChild(this.recordButton.element);this.clearResultsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear all profiles."),"clear-status-bar-item");this.clearResultsButton.addEventListener("click",this._clearProfiles,this);this._statusBarButtons.appendChild(this.clearResultsButton.element);this._profileTypeStatusBarItemsContainer=this._statusBarElement.createChild("div");this._profileViewStatusBarItemsContainer=this._statusBarElement.createChild("div");if(singleProfileMode){this._launcherView=this._createLauncherView();this._registerProfileType((type));this._selectedProfileType=type;this._updateProfileTypeSpecificUI();}else{this._launcherView=new WebInspector.MultiProfileLauncherView(this);this._launcherView.addEventListener(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,this._onProfileTypeSelected,this);this._registerProfileType(new WebInspector.CPUProfileType());this._registerProfileType(new WebInspector.HeapSnapshotProfileType());this._registerProfileType(new WebInspector.TrackingHeapSnapshotProfileType(this));if(!WebInspector.WorkerManager.isWorkerFrontend()&&WebInspector.experimentsSettings.canvasInspection.isEnabled())
+this._registerProfileType(new WebInspector.CanvasProfileType());this._launcherView.restoreSelectedProfileType();}
+this._reset();this._createFileSelectorElement();this.element.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),true);this._registerShortcuts();this._configureCpuProfilerSamplingInterval();WebInspector.settings.highResolutionCpuProfiling.addChangeListener(this._configureCpuProfilerSamplingInterval,this);}
+WebInspector.ProfilesPanel.prototype={searchableView:function()
+{return this._searchableView;},_createFileSelectorElement:function()
 {if(this._fileSelectorElement)
 this.element.removeChild(this._fileSelectorElement);this._fileSelectorElement=WebInspector.createFileSelectorElement(this._loadFromFile.bind(this));this.element.appendChild(this._fileSelectorElement);},_createLauncherView:function()
 {return new WebInspector.ProfileLauncherView(this);},_findProfileTypeByExtension:function(fileName)
@@ -57,119 +64,86 @@
 continue;if(fileName.endsWith(type.fileExtension()))
 return type;}
 return null;},_registerShortcuts:function()
-{this.registerShortcuts(WebInspector.ProfilesPanelDescriptor.ShortcutKeys.StartStopRecording,this.toggleRecordButton.bind(this));},_configureCpuProfilerSamplingInterval:function()
+{this.registerShortcuts(WebInspector.ShortcutsScreen.ProfilesPanelShortcuts.StartStopRecording,this.toggleRecordButton.bind(this));},_configureCpuProfilerSamplingInterval:function()
 {var intervalUs=WebInspector.settings.highResolutionCpuProfiling.get()?100:1000;ProfilerAgent.setSamplingInterval(intervalUs,didChangeInterval.bind(this));function didChangeInterval(error)
 {if(error)
 WebInspector.showErrorMessage(error)}},_loadFromFile:function(file)
 {this._createFileSelectorElement();var profileType=this._findProfileTypeByExtension(file.name);if(!profileType){var extensions=[];for(var id in this._profileTypesByIdMap){var extension=this._profileTypesByIdMap[id].fileExtension();if(!extension)
 continue;extensions.push(extension);}
 WebInspector.log(WebInspector.UIString("Can't load file. Only files with extensions '%s' can be loaded.",extensions.join("', '")));return;}
-if(!!profileType.findTemporaryProfile()){WebInspector.log(WebInspector.UIString("Can't load profile when other profile is recording."));return;}
-var name=file.name;if(name.endsWith(profileType.fileExtension()))
-name=name.substr(0,name.length-profileType.fileExtension().length);var temporaryProfile=profileType.createTemporaryProfile(name);temporaryProfile.setFromFile();profileType.addProfile(temporaryProfile);temporaryProfile.loadFromFile(file);},toggleRecordButton:function(event)
-{var isProfiling=this._selectedProfileType.buttonClicked();this.setRecordingProfile(this._selectedProfileType.id,isProfiling);return true;},_onProfileTypeSelected:function(event)
+if(!!profileType.profileBeingRecorded()){WebInspector.log(WebInspector.UIString("Can't load profile when other profile is recording."));return;}
+profileType.loadFromFile(file);},toggleRecordButton:function()
+{var type=this._selectedProfileType;var isProfiling=type.buttonClicked();this.recordButton.toggled=isProfiling;this.recordButton.title=type.buttonTooltip;if(isProfiling){this._launcherView.profileStarted();if(type.hasTemporaryView())
+this._showProfile(type.profileBeingRecorded());}else{this._launcherView.profileFinished();}
+return true;},_profileBeingRecordedRemoved:function()
+{this.recordButton.toggled=false;this.recordButton.title=this._selectedProfileType.buttonTooltip;this._launcherView.profileFinished();},_onProfileTypeSelected:function(event)
 {this._selectedProfileType=(event.data);this._updateProfileTypeSpecificUI();},_updateProfileTypeSpecificUI:function()
 {this.recordButton.title=this._selectedProfileType.buttonTooltip;this._launcherView.updateProfileType(this._selectedProfileType);this._profileTypeStatusBarItemsContainer.removeChildren();var statusBarItems=this._selectedProfileType.statusBarItems;if(statusBarItems){for(var i=0;i<statusBarItems.length;++i)
 this._profileTypeStatusBarItemsContainer.appendChild(statusBarItems[i]);}},_reset:function()
 {WebInspector.Panel.prototype.reset.call(this);for(var typeId in this._profileTypesByIdMap)
 this._profileTypesByIdMap[typeId]._reset();delete this.visibleView;delete this.currentQuery;this.searchCanceled();this._profileGroups={};this.recordButton.toggled=false;if(this._selectedProfileType)
-this.recordButton.title=this._selectedProfileType.buttonTooltip;this._launcherView.profileFinished();this.sidebarTreeElement.removeStyleClass("some-expandable");this._launcherView.detach();this.profileViews.removeChildren();this._profileViewStatusBarItemsContainer.removeChildren();this.removeAllListeners();this.recordButton.visible=true;this._profileViewStatusBarItemsContainer.removeStyleClass("hidden");this.clearResultsButton.element.removeStyleClass("hidden");this.profilesItemTreeElement.select();this._showLauncherView();},_showLauncherView:function()
+this.recordButton.title=this._selectedProfileType.buttonTooltip;this._launcherView.profileFinished();this.sidebarTreeElement.classList.remove("some-expandable");this._launcherView.detach();this.profileViews.removeChildren();this._profileViewStatusBarItemsContainer.removeChildren();this.removeAllListeners();this.recordButton.visible=true;this._profileViewStatusBarItemsContainer.classList.remove("hidden");this.clearResultsButton.element.classList.remove("hidden");this.profilesItemTreeElement.select();this._showLauncherView();},_showLauncherView:function()
 {this.closeVisibleView();this._profileViewStatusBarItemsContainer.removeChildren();this._launcherView.show(this.profileViews);this.visibleView=this._launcherView;},_clearProfiles:function()
-{ProfilerAgent.clearProfiles();HeapProfilerAgent.clearProfiles();this._reset();},_garbageCollectButtonClicked:function()
+{HeapProfilerAgent.clearProfiles();this._reset();},_garbageCollectButtonClicked:function()
 {HeapProfilerAgent.collectGarbage();},_registerProfileType:function(profileType)
 {this._profileTypesByIdMap[profileType.id]=profileType;this._launcherView.addProfileType(profileType);profileType.treeElement=new WebInspector.SidebarSectionTreeElement(profileType.treeItemTitle,null,true);profileType.treeElement.hidden=!this._singleProfileMode;this.sidebarTree.appendChild(profileType.treeElement);profileType.treeElement.childrenListElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),true);function onAddProfileHeader(event)
 {this._addProfileHeader(event.data);}
 function onRemoveProfileHeader(event)
 {this._removeProfileHeader(event.data);}
-function onProgressUpdated(event)
-{this._reportProfileProgress(event.data.profile,event.data.done,event.data.total);}
-profileType.addEventListener(WebInspector.ProfileType.Events.ViewUpdated,this._updateProfileTypeSpecificUI,this);profileType.addEventListener(WebInspector.ProfileType.Events.AddProfileHeader,onAddProfileHeader,this);profileType.addEventListener(WebInspector.ProfileType.Events.RemoveProfileHeader,onRemoveProfileHeader,this);profileType.addEventListener(WebInspector.ProfileType.Events.ProgressUpdated,onProgressUpdated,this);},_handleContextMenuEvent:function(event)
+profileType.addEventListener(WebInspector.ProfileType.Events.ViewUpdated,this._updateProfileTypeSpecificUI,this);profileType.addEventListener(WebInspector.ProfileType.Events.AddProfileHeader,onAddProfileHeader,this);profileType.addEventListener(WebInspector.ProfileType.Events.RemoveProfileHeader,onRemoveProfileHeader,this);},_handleContextMenuEvent:function(event)
 {var element=event.srcElement;while(element&&!element.treeElement&&element!==this.element)
 element=element.parentElement;if(!element)
 return;if(element.treeElement&&element.treeElement.handleContextMenuEvent){element.treeElement.handleContextMenuEvent(event,this);return;}
 var contextMenu=new WebInspector.ContextMenu(event);if(this.visibleView instanceof WebInspector.HeapSnapshotView){this.visibleView.populateContextMenu(contextMenu,event);}
-if(element!==this.element||event.srcElement===this.sidebarElement){contextMenu.appendItem(WebInspector.UIString("Load\u2026"),this._fileSelectorElement.click.bind(this._fileSelectorElement));}
+if(element!==this.element||event.srcElement===this.splitView.sidebarElement()){contextMenu.appendItem(WebInspector.UIString("Load\u2026"),this._fileSelectorElement.click.bind(this._fileSelectorElement));}
 contextMenu.show();},_makeTitleKey:function(text,profileTypeId)
 {return escape(text)+'/'+escape(profileTypeId);},_addProfileHeader:function(profile)
-{var profileType=profile.profileType();var typeId=profileType.id;var sidebarParent=profileType.treeElement;sidebarParent.hidden=false;var small=false;var alternateTitle;if(!profile.fromFile()&&!profile.isTemporary){var profileTitleKey=this._makeTitleKey(profile.title,typeId);if(!(profileTitleKey in this._profileGroups))
+{var profileType=profile.profileType();var typeId=profileType.id;var sidebarParent=profileType.treeElement;sidebarParent.hidden=false;var small=false;var alternateTitle;if(!profile.fromFile()&&profile.profileType().profileBeingRecorded()!==profile){var profileTitleKey=this._makeTitleKey(profile.title,typeId);if(!(profileTitleKey in this._profileGroups))
 this._profileGroups[profileTitleKey]=[];var group=this._profileGroups[profileTitleKey];group.push(profile);if(group.length===2){group._profilesTreeElement=new WebInspector.ProfileGroupSidebarTreeElement(this,profile.title);var index=sidebarParent.children.indexOf(group[0]._profilesTreeElement);sidebarParent.insertChild(group._profilesTreeElement,index);var selected=group[0]._profilesTreeElement.selected;sidebarParent.removeChild(group[0]._profilesTreeElement);group._profilesTreeElement.appendChild(group[0]._profilesTreeElement);if(selected)
-group[0]._profilesTreeElement.revealAndSelect();group[0]._profilesTreeElement.small=true;group[0]._profilesTreeElement.mainTitle=WebInspector.UIString("Run %d",1);this.sidebarTreeElement.addStyleClass("some-expandable");}
+group[0]._profilesTreeElement.revealAndSelect();group[0]._profilesTreeElement.small=true;group[0]._profilesTreeElement.mainTitle=WebInspector.UIString("Run %d",1);this.sidebarTreeElement.classList.add("some-expandable");}
 if(group.length>=2){sidebarParent=group._profilesTreeElement;alternateTitle=WebInspector.UIString("Run %d",group.length);small=true;}}
 var profileTreeElement=profile.createSidebarTreeElement();profile.sidebarElement=profileTreeElement;profileTreeElement.small=small;if(alternateTitle)
-profileTreeElement.mainTitle=alternateTitle;profile._profilesTreeElement=profileTreeElement;var temporaryProfile=profileType.findTemporaryProfile();if(profile.isTemporary||!temporaryProfile)
-sidebarParent.appendChild(profileTreeElement);else{if(temporaryProfile){sidebarParent.insertBeforeChild(profileTreeElement,temporaryProfile._profilesTreeElement);this._removeTemporaryProfile(profile.profileType().id);}
-if(!this.visibleView||this.visibleView===this._launcherView)
-this._showProfile(profile);this.dispatchEventToListeners("profile added",{type:typeId});}},_removeProfileHeader:function(profile)
-{profile.dispose();profile.profileType().removeProfile(profile);var sidebarParent=profile.profileType().treeElement;var profileTitleKey=this._makeTitleKey(profile.title,profile.profileType().id);var group=this._profileGroups[profileTitleKey];if(group){group.splice(group.indexOf(profile),1);if(group.length===1){var index=sidebarParent.children.indexOf(group._profilesTreeElement);sidebarParent.insertChild(group[0]._profilesTreeElement,index);group[0]._profilesTreeElement.small=false;group[0]._profilesTreeElement.mainTitle=group[0].title;sidebarParent.removeChild(group._profilesTreeElement);}
+profileTreeElement.mainTitle=alternateTitle;profile._profilesTreeElement=profileTreeElement;sidebarParent.appendChild(profileTreeElement);if(!this.visibleView||this.visibleView===this._launcherView)
+this._showProfile(profile);},_removeProfileHeader:function(profile)
+{if(profile.profileType()._profileBeingRecorded===profile)
+this._profileBeingRecordedRemoved();profile.dispose();profile.profileType().removeProfile(profile);var sidebarParent=profile.profileType().treeElement;var profileTitleKey=this._makeTitleKey(profile.title,profile.profileType().id);var group=this._profileGroups[profileTitleKey];if(group){group.splice(group.indexOf(profile),1);if(group.length===1){var index=sidebarParent.children.indexOf(group._profilesTreeElement);sidebarParent.insertChild(group[0]._profilesTreeElement,index);group[0]._profilesTreeElement.small=false;group[0]._profilesTreeElement.mainTitle=group[0].title;sidebarParent.removeChild(group._profilesTreeElement);}
 if(group.length!==0)
 sidebarParent=group._profilesTreeElement;else
 delete this._profileGroups[profileTitleKey];}
 sidebarParent.removeChild(profile._profilesTreeElement);if(!sidebarParent.children.length){this.profilesItemTreeElement.select();this._showLauncherView();sidebarParent.hidden=!this._singleProfileMode;}},_showProfile:function(profile)
-{if(!profile||(profile.isTemporary&&!profile.profileType().hasTemporaryView()))
+{if(!profile||(profile.profileType().profileBeingRecorded()===profile)&&!profile.profileType().hasTemporaryView())
 return null;var view=profile.view(this);if(view===this.visibleView)
 return view;this.closeVisibleView();view.show(this.profileViews);profile._profilesTreeElement._suppressOnSelect=true;profile._profilesTreeElement.revealAndSelect();delete profile._profilesTreeElement._suppressOnSelect;this.visibleView=view;this._profileViewStatusBarItemsContainer.removeChildren();var statusBarItems=view.statusBarItems;if(statusBarItems)
 for(var i=0;i<statusBarItems.length;++i)
 this._profileViewStatusBarItemsContainer.appendChild(statusBarItems[i]);return view;},showObject:function(snapshotObjectId,viewName)
-{var heapProfiles=this.getProfileType(WebInspector.HeapSnapshotProfileType.TypeId).getProfiles();for(var i=0;i<heapProfiles.length;i++){var profile=heapProfiles[i];if(profile.maxJSObjectId>=snapshotObjectId){this._showProfile(profile);var view=profile.view(this);view.changeView(viewName,function(){view.dataGrid.highlightObjectByHeapSnapshotId(snapshotObjectId);});break;}}},_createTemporaryProfile:function(typeId)
-{var type=this.getProfileType(typeId);if(!type.findTemporaryProfile())
-type.addProfile(type.createTemporaryProfile());},_removeTemporaryProfile:function(typeId)
-{var temporaryProfile=this.getProfileType(typeId).findTemporaryProfile();if(!!temporaryProfile)
-this._removeProfileHeader(temporaryProfile);},getProfile:function(typeId,uid)
+{var heapProfiles=this.getProfileType(WebInspector.HeapSnapshotProfileType.TypeId).getProfiles();for(var i=0;i<heapProfiles.length;i++){var profile=heapProfiles[i];if(profile.maxJSObjectId>=snapshotObjectId){this._showProfile(profile);var view=profile.view(this);view.changeView(viewName,function(){function didHighlightObject(found){if(!found)
+WebInspector.log("Cannot find corresponding heap snapshot node",WebInspector.ConsoleMessage.MessageLevel.Error,true);}
+view.dataGrid.highlightObjectByHeapSnapshotId(snapshotObjectId,didHighlightObject.bind(this));});break;}}},getProfile:function(typeId,uid)
 {return this.getProfileType(typeId).getProfile(uid);},showView:function(view)
 {this._showProfile(view.profile);},getProfileType:function(typeId)
 {return this._profileTypesByIdMap[typeId];},showProfile:function(typeId,uid)
 {return this._showProfile(this.getProfile(typeId,Number(uid)));},closeVisibleView:function()
 {if(this.visibleView)
 this.visibleView.detach();delete this.visibleView;},performSearch:function(query,shouldJump)
-{this.searchCanceled();var searchableViews=this._searchableViews();if(!searchableViews||!searchableViews.length)
-return;var visibleView=this.visibleView;var matchesCountUpdateTimeout=null;function updateMatchesCount()
-{WebInspector.searchController.updateSearchMatchesCount(this._totalSearchMatches,this);WebInspector.searchController.updateCurrentMatchIndex(this._currentSearchResultIndex,this);matchesCountUpdateTimeout=null;}
-function updateMatchesCountSoon()
-{if(matchesCountUpdateTimeout)
-return;matchesCountUpdateTimeout=setTimeout(updateMatchesCount.bind(this),500);}
-function finishedCallback(view,searchMatches)
+{this.searchCanceled();var visibleView=this.visibleView;if(!visibleView)
+return;function finishedCallback(view,searchMatches)
 {if(!searchMatches)
-return;this._totalSearchMatches+=searchMatches;this._searchResults.push(view);this.searchMatchFound(view,searchMatches);updateMatchesCountSoon.call(this);if(shouldJump&&view===visibleView)
-view.jumpToFirstSearchResult();}
-var i=0;var panel=this;var boundFinishedCallback=finishedCallback.bind(this);var chunkIntervalIdentifier=null;function processChunk()
-{var view=searchableViews[i];if(++i>=searchableViews.length){if(panel._currentSearchChunkIntervalIdentifier===chunkIntervalIdentifier)
-delete panel._currentSearchChunkIntervalIdentifier;clearInterval(chunkIntervalIdentifier);}
-if(!view)
-return;view.currentQuery=query;view.performSearch(query,boundFinishedCallback);}
-processChunk();chunkIntervalIdentifier=setInterval(processChunk,25);this._currentSearchChunkIntervalIdentifier=chunkIntervalIdentifier;},jumpToNextSearchResult:function()
-{if(!this.showView||!this._searchResults||!this._searchResults.length)
-return;var showFirstResult=false;this._currentSearchResultIndex=this._searchResults.indexOf(this.visibleView);if(this._currentSearchResultIndex===-1){this._currentSearchResultIndex=0;showFirstResult=true;}
-var currentView=this._searchResults[this._currentSearchResultIndex];if(currentView.showingLastSearchResult()){if(++this._currentSearchResultIndex>=this._searchResults.length)
-this._currentSearchResultIndex=0;currentView=this._searchResults[this._currentSearchResultIndex];showFirstResult=true;}
-WebInspector.searchController.updateCurrentMatchIndex(this._currentSearchResultIndex,this);if(currentView!==this.visibleView){this.showView(currentView);WebInspector.searchController.showSearchField();}
-if(showFirstResult)
-currentView.jumpToFirstSearchResult();else
-currentView.jumpToNextSearchResult();},jumpToPreviousSearchResult:function()
-{if(!this.showView||!this._searchResults||!this._searchResults.length)
-return;var showLastResult=false;this._currentSearchResultIndex=this._searchResults.indexOf(this.visibleView);if(this._currentSearchResultIndex===-1){this._currentSearchResultIndex=0;showLastResult=true;}
-var currentView=this._searchResults[this._currentSearchResultIndex];if(currentView.showingFirstSearchResult()){if(--this._currentSearchResultIndex<0)
-this._currentSearchResultIndex=(this._searchResults.length-1);currentView=this._searchResults[this._currentSearchResultIndex];showLastResult=true;}
-WebInspector.searchController.updateCurrentMatchIndex(this._currentSearchResultIndex,this);if(currentView!==this.visibleView){this.showView(currentView);WebInspector.searchController.showSearchField();}
-if(showLastResult)
-currentView.jumpToLastSearchResult();else
-currentView.jumpToPreviousSearchResult();},_getAllProfiles:function()
+return;this._searchableView.updateSearchMatchesCount(searchMatches);this._searchResultsView=view;if(shouldJump){view.jumpToFirstSearchResult();this._searchableView.updateCurrentMatchIndex(view.currentSearchResultIndex());}}
+visibleView.currentQuery=query;visibleView.performSearch(query,finishedCallback.bind(this));},jumpToNextSearchResult:function()
+{if(!this._searchResultsView)
+return;if(this._searchResultsView!==this.visibleView)
+return;this._searchResultsView.jumpToNextSearchResult();this._searchableView.updateCurrentMatchIndex(this._searchResultsView.currentSearchResultIndex());},jumpToPreviousSearchResult:function()
+{if(!this._searchResultsView)
+return;if(this._searchResultsView!==this.visibleView)
+return;this._searchResultsView.jumpToPreviousSearchResult();this._searchableView.updateCurrentMatchIndex(this._searchResultsView.currentSearchResultIndex());},_getAllProfiles:function()
 {var profiles=[];for(var typeId in this._profileTypesByIdMap)
-profiles=profiles.concat(this._profileTypesByIdMap[typeId].getProfiles());return profiles;},_searchableViews:function()
-{var profiles=this._getAllProfiles();var searchableViews=[];for(var i=0;i<profiles.length;++i){var view=profiles[i].view(this);if(view.performSearch)
-searchableViews.push(view)}
-var index=searchableViews.indexOf(this.visibleView);if(index>0){searchableViews[index]=searchableViews[0];searchableViews[0]=this.visibleView;}
-return searchableViews;},searchMatchFound:function(view,matches)
-{view.profile._profilesTreeElement.searchMatches=matches;},searchCanceled:function()
-{if(this._searchResults){for(var i=0;i<this._searchResults.length;++i){var view=this._searchResults[i];if(view.searchCanceled)
-view.searchCanceled();delete view.currentQuery;}}
-WebInspector.Panel.prototype.searchCanceled.call(this);if(this._currentSearchChunkIntervalIdentifier){clearInterval(this._currentSearchChunkIntervalIdentifier);delete this._currentSearchChunkIntervalIdentifier;}
-this._totalSearchMatches=0;this._currentSearchResultIndex=0;this._searchResults=[];var profiles=this._getAllProfiles();for(var i=0;i<profiles.length;++i)
-profiles[i]._profilesTreeElement.searchMatches=0;},setRecordingProfile:function(profileType,isProfiling)
-{var profileTypeObject=this.getProfileType(profileType);this.recordButton.toggled=isProfiling;this.recordButton.title=profileTypeObject.buttonTooltip;if(isProfiling){this._launcherView.profileStarted();this._createTemporaryProfile(profileType);if(profileTypeObject.hasTemporaryView())
-this._showProfile(profileTypeObject.findTemporaryProfile());}else
-this._launcherView.profileFinished();},_reportProfileProgress:function(profile,done,total)
+profiles=profiles.concat(this._profileTypesByIdMap[typeId].getProfiles());return profiles;},searchCanceled:function()
+{if(this._searchResultsView){if(this._searchResultsView.searchCanceled)
+this._searchResultsView.searchCanceled();this._searchResultsView.currentQuery=null;this._searchResultsView=null;}
+this._searchableView.updateSearchMatchesCount(0);},_reportProfileProgress:function(profile,done,total)
 {profile.sidebarElement.subtitle=WebInspector.UIString("%.0f%",(done/total)*100);profile.sidebarElement.wait=true;},appendApplicableItems:function(event,contextMenu,target)
-{if(WebInspector.inspectorView.currentPanel()!==this)
+{if(!(target instanceof WebInspector.RemoteObject))
+return;if(WebInspector.inspectorView.currentPanel()!==this)
 return;var object=(target);var objectId=object.objectId;if(!objectId)
 return;var heapProfiles=this.getProfileType(WebInspector.HeapSnapshotProfileType.TypeId).getProfiles();if(!heapProfiles.length)
 return;function revealInView(viewName)
@@ -179,18 +153,19 @@
 return;if(!error)
 this.showObject(result,viewName);}
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Dominators view":"Reveal in Dominators View"),revealInView.bind(this,"Dominators"));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Summary view":"Reveal in Summary View"),revealInView.bind(this,"Summary"));},__proto__:WebInspector.Panel.prototype}
-WebInspector.ProfileSidebarTreeElement=function(profile,titleFormat,className)
-{this.profile=profile;this._titleFormat=titleFormat;WebInspector.SidebarTreeElement.call(this,className,"","",profile,false);this.refreshTitles();}
+WebInspector.ProfilesPanel.ContextMenuProvider=function()
+{}
+WebInspector.ProfilesPanel.ContextMenuProvider.prototype={appendApplicableItems:function(event,contextMenu,target)
+{WebInspector.panel("profiles").appendApplicableItems(event,contextMenu,target);}}
+WebInspector.ProfileSidebarTreeElement=function(profile,className)
+{this.profile=profile;WebInspector.SidebarTreeElement.call(this,className,"","",profile,false);this.refreshTitles();}
 WebInspector.ProfileSidebarTreeElement.prototype={onselect:function()
 {if(!this._suppressOnSelect)
 this.treeOutline.panel._showProfile(this.profile);},ondelete:function()
 {this.treeOutline.panel._removeProfileHeader(this.profile);return true;},get mainTitle()
 {if(this._mainTitle)
 return this._mainTitle;return this.profile.title;},set mainTitle(x)
-{this._mainTitle=x;this.refreshTitles();},set searchMatches(matches)
-{if(!matches){if(!this.bubbleElement)
-return;this.bubbleElement.removeStyleClass("search-matches");this.bubbleText="";return;}
-this.bubbleText=matches;this.bubbleElement.addStyleClass("search-matches");},handleContextMenuEvent:function(event,panel)
+{this._mainTitle=x;this.refreshTitles();},handleContextMenuEvent:function(event,panel)
 {var profile=this.profile;var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("Load\u2026"),panel._fileSelectorElement.click.bind(panel._fileSelectorElement));if(profile.canSaveToFile())
 contextMenu.appendItem(WebInspector.UIString("Save\u2026"),profile.saveToFile.bind(profile));contextMenu.appendItem(WebInspector.UIString("Delete"),this.ondelete.bind(this));contextMenu.show();},__proto__:WebInspector.SidebarTreeElement.prototype}
 WebInspector.ProfileGroupSidebarTreeElement=function(panel,title,subtitle)
@@ -225,11 +200,11 @@
 data["total"]=WebInspector.UIString("%.2f%",this.totalPercent);else
 data["total"]=formatMilliseconds(this.totalTime);return data;},createCell:function(columnIdentifier)
 {var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);if(columnIdentifier==="self"&&this._searchMatchedSelfColumn)
-cell.addStyleClass("highlight");else if(columnIdentifier==="total"&&this._searchMatchedTotalColumn)
-cell.addStyleClass("highlight");if(columnIdentifier!=="function")
+cell.classList.add("highlight");else if(columnIdentifier==="total"&&this._searchMatchedTotalColumn)
+cell.classList.add("highlight");if(columnIdentifier!=="function")
 return cell;if(this._deoptReason)
-cell.addStyleClass("not-optimized");if(this.profileNode._searchMatchedFunctionColumn)
-cell.addStyleClass("highlight");if(this.profileNode.scriptId!=="0"){var lineNumber=this.profileNode.lineNumber?this.profileNode.lineNumber-1:0;var columnNumber=this.profileNode.columnNumber?this.profileNode.columnNumber-1:0;var location=new WebInspector.DebuggerModel.Location(this.profileNode.scriptId,lineNumber,columnNumber);var urlElement=this.tree.profileView._linkifier.linkifyRawLocation(location,"profile-node-file");if(!urlElement)
+cell.classList.add("not-optimized");if(this.profileNode._searchMatchedFunctionColumn)
+cell.classList.add("highlight");if(this.profileNode.scriptId!=="0"){var lineNumber=this.profileNode.lineNumber?this.profileNode.lineNumber-1:0;var columnNumber=this.profileNode.columnNumber?this.profileNode.columnNumber-1:0;var location=new WebInspector.DebuggerModel.Location(this.profileNode.scriptId,lineNumber,columnNumber);var urlElement=this.tree.profileView._linkifier.linkifyRawLocation(location,"profile-node-file");if(!urlElement)
 urlElement=this.tree.profileView._linkifier.linkifyLocation(this.profileNode.url,lineNumber,columnNumber,"profile-node-file");urlElement.style.maxWidth="75%";cell.insertBefore(urlElement,cell.firstChild);}
 return cell;},select:function(supressSelectedEvent)
 {WebInspector.DataGridNode.prototype.select.call(this,supressSelectedEvent);this.tree.profileView._dataGridNodeSelected(this);},deselect:function(supressDeselectedEvent)
@@ -280,44 +255,7 @@
 return-1;if(lhs[property]<rhs[property])
 return 1;return 0;}}
 WebInspector.ProfileDataGridTree.propertyComparators[(isAscending?1:0)][property]=comparator;}
-return comparator;};WebInspector.AllocationProfile=function(profile)
-{this._strings=profile.strings;this._nextNodeId=1;this._idToFunctionInfo={};this._idToNode={};this._collapsedTopNodeIdToFunctionInfo={};this._traceTops=null;this._buildAllocationFunctionInfos(profile);this._traceTree=this._buildInvertedAllocationTree(profile);}
-WebInspector.AllocationProfile.prototype={_buildAllocationFunctionInfos:function(profile)
-{var strings=this._strings;var functionInfoFields=profile.snapshot.meta.trace_function_info_fields;var functionIdOffset=functionInfoFields.indexOf("function_id");var functionNameOffset=functionInfoFields.indexOf("name");var scriptNameOffset=functionInfoFields.indexOf("script_name");var scriptIdOffset=functionInfoFields.indexOf("script_id");var lineOffset=functionInfoFields.indexOf("line");var columnOffset=functionInfoFields.indexOf("column");var functionInfoFieldCount=functionInfoFields.length;var map=this._idToFunctionInfo;map[0]=new WebInspector.FunctionAllocationInfo("(root)","<unknown>",0,-1,-1);var rawInfos=profile.trace_function_infos;var infoLength=rawInfos.length;for(var i=0;i<infoLength;i+=functionInfoFieldCount){map[rawInfos[i+functionIdOffset]]=new WebInspector.FunctionAllocationInfo(strings[rawInfos[i+functionNameOffset]],strings[rawInfos[i+scriptNameOffset]],rawInfos[i+scriptIdOffset],rawInfos[i+lineOffset],rawInfos[i+columnOffset]);}},_buildInvertedAllocationTree:function(profile)
-{var traceTreeRaw=profile.trace_tree;var idToFunctionInfo=this._idToFunctionInfo;var traceNodeFields=profile.snapshot.meta.trace_node_fields;var nodeIdOffset=traceNodeFields.indexOf("id");var functionIdOffset=traceNodeFields.indexOf("function_id");var allocationCountOffset=traceNodeFields.indexOf("count");var allocationSizeOffset=traceNodeFields.indexOf("size");var childrenOffset=traceNodeFields.indexOf("children");var nodeFieldCount=traceNodeFields.length;function traverseNode(rawNodeArray,nodeOffset,parent)
-{var functionInfo=idToFunctionInfo[rawNodeArray[nodeOffset+functionIdOffset]];var result=new WebInspector.AllocationTraceNode(rawNodeArray[nodeOffset+nodeIdOffset],functionInfo,rawNodeArray[nodeOffset+allocationCountOffset],rawNodeArray[nodeOffset+allocationSizeOffset],parent);functionInfo.addTraceTopNode(result);var rawChildren=rawNodeArray[nodeOffset+childrenOffset];for(var i=0;i<rawChildren.length;i+=nodeFieldCount){result.children.push(traverseNode(rawChildren,i,result));}
-return result;}
-return traverseNode(traceTreeRaw,0,null);},serializeTraceTops:function()
-{if(this._traceTops)
-return this._traceTops;var result=this._traceTops=[];var idToFunctionInfo=this._idToFunctionInfo;for(var id in idToFunctionInfo){var info=idToFunctionInfo[id];if(info.totalCount===0)
-continue;var nodeId=this._nextNodeId++;result.push(this._serializeNode(nodeId,info,info.totalCount,info.totalSize,true));this._collapsedTopNodeIdToFunctionInfo[nodeId]=info;}
-result.sort(function(a,b){return b.size-a.size;});return result;},serializeCallers:function(nodeId)
-{var node=this._idToNode[nodeId];if(!node){var functionInfo=this._collapsedTopNodeIdToFunctionInfo[nodeId];node=functionInfo.tracesWithThisTop();delete this._collapsedTopNodeIdToFunctionInfo[nodeId];this._idToNode[nodeId]=node;}
-var nodesWithSingleCaller=[];while(node.callers().length===1){node=node.callers()[0];nodesWithSingleCaller.push(this._serializeCaller(node));}
-var branchingCallers=[];var callers=node.callers();for(var i=0;i<callers.length;i++){branchingCallers.push(this._serializeCaller(callers[i]));}
-return{nodesWithSingleCaller:nodesWithSingleCaller,branchingCallers:branchingCallers};},_serializeCaller:function(node)
-{var callerId=this._nextNodeId++;this._idToNode[callerId]=node;return this._serializeNode(callerId,node.functionInfo,node.allocationCount,node.allocationSize,node.hasCallers());},_serializeNode:function(nodeId,functionInfo,count,size,hasChildren)
-{return{id:nodeId,name:functionInfo.functionName,scriptName:functionInfo.scriptName,line:functionInfo.line,column:functionInfo.column,count:count,size:size,hasChildren:hasChildren};}}
-WebInspector.AllocationTraceNode=function(id,functionInfo,count,size,parent)
-{this.id=id;this.functionInfo=functionInfo;this.allocationCount=count;this.allocationSize=size;this.parent=parent;this.children=[];}
-WebInspector.AllocationBackTraceNode=function(functionInfo)
-{this.functionInfo=functionInfo;this.allocationCount=0;this.allocationSize=0;this._callers=[];}
-WebInspector.AllocationBackTraceNode.prototype={addCaller:function(traceNode)
-{var functionInfo=traceNode.functionInfo;var result;for(var i=0;i<this._callers.length;i++){var caller=this._callers[i];if(caller.functionInfo===functionInfo){result=caller;break;}}
-if(!result){result=new WebInspector.AllocationBackTraceNode(functionInfo);this._callers.push(result);}
-return result;},callers:function()
-{return this._callers;},hasCallers:function()
-{return this._callers.length>0;}}
-WebInspector.FunctionAllocationInfo=function(functionName,scriptName,scriptId,line,column)
-{this.functionName=functionName;this.scriptName=scriptName;this.scriptId=scriptId;this.line=line;this.column=column;this.totalCount=0;this.totalSize=0;this._traceTops=[];}
-WebInspector.FunctionAllocationInfo.prototype={addTraceTopNode:function(node)
-{if(node.allocationCount===0)
-return;this._traceTops.push(node);this.totalCount+=node.allocationCount;this.totalSize+=node.allocationSize;},tracesWithThisTop:function()
-{if(!this._traceTops.length)
-return null;if(!this._backTraceTree)
-this._buildAllocationTraceTree();return this._backTraceTree;},_buildAllocationTraceTree:function()
-{this._backTraceTree=new WebInspector.AllocationBackTraceNode(this._traceTops[0].functionInfo);for(var i=0;i<this._traceTops.length;i++){var node=this._traceTops[i];var backTraceNode=this._backTraceTree;var count=node.allocationCount;var size=node.allocationSize;while(true){backTraceNode.allocationCount+=count;backTraceNode.allocationSize+=size;node=node.parent;if(node===null){break;}
-backTraceNode=backTraceNode.addCaller(node);}}}};WebInspector.BottomUpProfileDataGridNode=function(profileNode,owningTree)
+return comparator;};WebInspector.BottomUpProfileDataGridNode=function(profileNode,owningTree)
 {WebInspector.ProfileDataGridNode.call(this,profileNode,owningTree,this._willHaveChildren(profileNode));this._remainingNodeInfos=[];}
 WebInspector.BottomUpProfileDataGridNode.prototype={_takePropertiesFromProfileDataGridNode:function(profileDataGridNode)
 {this._save();this.selfTime=profileDataGridNode.selfTime;this.totalTime=profileDataGridNode.totalTime;},_keepOnlyChild:function(child)
@@ -353,26 +291,23 @@
 this.children.remove(excludedTopLevelChild);var children=this.children;var count=children.length;for(var index=0;index<count;++index)
 children[index]._exclude(excludedCallUID);if(this.lastComparator)
 this.sort(this.lastComparator,true);},_sharedPopulate:WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate,__proto__:WebInspector.ProfileDataGridTree.prototype};WebInspector.CPUProfileView=function(profileHeader)
-{WebInspector.View.call(this);this.element.addStyleClass("profile-view");this.showSelfTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowSelfTimeAsPercent",true);this.showTotalTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowTotalTimeAsPercent",true);this.showAverageTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowAverageTimeAsPercent",true);this._viewType=WebInspector.settings.createSetting("cpuProfilerView",WebInspector.CPUProfileView._TypeHeavy);var columns=[];columns.push({id:"self",title:WebInspector.UIString("Self"),width:"72px",sort:WebInspector.DataGrid.Order.Descending,sortable:true});columns.push({id:"total",title:WebInspector.UIString("Total"),width:"72px",sortable:true});columns.push({id:"function",title:WebInspector.UIString("Function"),disclosure:true,sortable:true});this.dataGrid=new WebInspector.DataGrid(columns);this.dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._sortProfile,this);this.dataGrid.element.addEventListener("mousedown",this._mouseDownInDataGrid.bind(this),true);this.dataGrid.show(this.element);this.viewSelectComboBox=new WebInspector.StatusBarComboBox(this._changeView.bind(this));var options={};options[WebInspector.CPUProfileView._TypeFlame]=this.viewSelectComboBox.createOption(WebInspector.UIString("Flame Chart"),"",WebInspector.CPUProfileView._TypeFlame);options[WebInspector.CPUProfileView._TypeHeavy]=this.viewSelectComboBox.createOption(WebInspector.UIString("Heavy (Bottom Up)"),"",WebInspector.CPUProfileView._TypeHeavy);options[WebInspector.CPUProfileView._TypeTree]=this.viewSelectComboBox.createOption(WebInspector.UIString("Tree (Top Down)"),"",WebInspector.CPUProfileView._TypeTree);var optionName=this._viewType.get()||WebInspector.CPUProfileView._TypeFlame;var option=options[optionName]||options[WebInspector.CPUProfileView._TypeFlame];this.viewSelectComboBox.select(option);this._statusBarButtonsElement=document.createElement("span");this.percentButton=new WebInspector.StatusBarButton("","percent-time-status-bar-item");this.percentButton.addEventListener("click",this._percentClicked,this);this._statusBarButtonsElement.appendChild(this.percentButton.element);this.focusButton=new WebInspector.StatusBarButton(WebInspector.UIString("Focus selected function."),"focus-profile-node-status-bar-item");this.focusButton.setEnabled(false);this.focusButton.addEventListener("click",this._focusClicked,this);this._statusBarButtonsElement.appendChild(this.focusButton.element);this.excludeButton=new WebInspector.StatusBarButton(WebInspector.UIString("Exclude selected function."),"exclude-profile-node-status-bar-item");this.excludeButton.setEnabled(false);this.excludeButton.addEventListener("click",this._excludeClicked,this);this._statusBarButtonsElement.appendChild(this.excludeButton.element);this.resetButton=new WebInspector.StatusBarButton(WebInspector.UIString("Restore all functions."),"reset-profile-status-bar-item");this.resetButton.visible=false;this.resetButton.addEventListener("click",this._resetClicked,this);this._statusBarButtonsElement.appendChild(this.resetButton.element);this.profileHead=(null);this.profile=profileHeader;this._linkifier=new WebInspector.Linkifier(new WebInspector.Linkifier.DefaultFormatter(30));if(this.profile._profile)
+{WebInspector.View.call(this);this.element.classList.add("profile-view");this.showSelfTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowSelfTimeAsPercent",true);this.showTotalTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowTotalTimeAsPercent",true);this.showAverageTimeAsPercent=WebInspector.settings.createSetting("cpuProfilerShowAverageTimeAsPercent",true);this._viewType=WebInspector.settings.createSetting("cpuProfilerView",WebInspector.CPUProfileView._TypeHeavy);var columns=[];columns.push({id:"self",title:WebInspector.UIString("Self"),width:"72px",sort:WebInspector.DataGrid.Order.Descending,sortable:true});columns.push({id:"total",title:WebInspector.UIString("Total"),width:"72px",sortable:true});columns.push({id:"function",title:WebInspector.UIString("Function"),disclosure:true,sortable:true});this.dataGrid=new WebInspector.DataGrid(columns);this.dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._sortProfile,this);this.dataGrid.element.addEventListener("mousedown",this._mouseDownInDataGrid.bind(this),true);this.dataGrid.show(this.element);this.viewSelectComboBox=new WebInspector.StatusBarComboBox(this._changeView.bind(this));var options={};options[WebInspector.CPUProfileView._TypeFlame]=this.viewSelectComboBox.createOption(WebInspector.UIString("Flame Chart"),"",WebInspector.CPUProfileView._TypeFlame);options[WebInspector.CPUProfileView._TypeHeavy]=this.viewSelectComboBox.createOption(WebInspector.UIString("Heavy (Bottom Up)"),"",WebInspector.CPUProfileView._TypeHeavy);options[WebInspector.CPUProfileView._TypeTree]=this.viewSelectComboBox.createOption(WebInspector.UIString("Tree (Top Down)"),"",WebInspector.CPUProfileView._TypeTree);var optionName=this._viewType.get()||WebInspector.CPUProfileView._TypeFlame;var option=options[optionName]||options[WebInspector.CPUProfileView._TypeFlame];this.viewSelectComboBox.select(option);this._statusBarButtonsElement=document.createElement("span");this.percentButton=new WebInspector.StatusBarButton("","percent-time-status-bar-item");this.percentButton.addEventListener("click",this._percentClicked,this);this._statusBarButtonsElement.appendChild(this.percentButton.element);this.focusButton=new WebInspector.StatusBarButton(WebInspector.UIString("Focus selected function."),"focus-profile-node-status-bar-item");this.focusButton.setEnabled(false);this.focusButton.addEventListener("click",this._focusClicked,this);this._statusBarButtonsElement.appendChild(this.focusButton.element);this.excludeButton=new WebInspector.StatusBarButton(WebInspector.UIString("Exclude selected function."),"exclude-profile-node-status-bar-item");this.excludeButton.setEnabled(false);this.excludeButton.addEventListener("click",this._excludeClicked,this);this._statusBarButtonsElement.appendChild(this.excludeButton.element);this.resetButton=new WebInspector.StatusBarButton(WebInspector.UIString("Restore all functions."),"reset-profile-status-bar-item");this.resetButton.visible=false;this.resetButton.addEventListener("click",this._resetClicked,this);this._statusBarButtonsElement.appendChild(this.resetButton.element);this.profileHead=(null);this.profile=profileHeader;this._linkifier=new WebInspector.Linkifier(new WebInspector.Linkifier.DefaultFormatter(30));if(this.profile._profile)
 this._processProfileData(this.profile._profile);else
-ProfilerAgent.getCPUProfile(this.profile.uid,this._getCPUProfileCallback.bind(this));}
+this._processProfileData(this.profile.protocolProfile());}
 WebInspector.CPUProfileView._TypeFlame="Flame";WebInspector.CPUProfileView._TypeTree="Tree";WebInspector.CPUProfileView._TypeHeavy="Heavy";WebInspector.CPUProfileView.prototype={selectRange:function(timeLeft,timeRight)
 {if(!this._flameChart)
 return;this._flameChart.selectRange(timeLeft,timeRight);},_revealProfilerNode:function(event)
 {var current=this.profileDataGridTree.children[0];while(current&&current.profileNode!==event.data)
 current=current.traverseNextNode(false,null,false);if(current)
-current.revealAndSelect();},_getCPUProfileCallback:function(error,profile)
-{if(error)
-return;if(!profile.head){return;}
-this._processProfileData(profile);},_processProfileData:function(profile)
+current.revealAndSelect();},_processProfileData:function(profile)
 {this.profileHead=profile.head;this.samples=profile.samples;this._calculateTimes(profile);this._assignParentsInProfile();if(this.samples)
 this._buildIdToNodeMap();this._changeView();this._updatePercentButton();if(this._flameChart)
 this._flameChart.update();},get statusBarItems()
 {return[this.viewSelectComboBox.element,this._statusBarButtonsElement];},_getBottomUpProfileDataGridTree:function()
 {if(!this._bottomUpProfileDataGridTree)
-this._bottomUpProfileDataGridTree=new WebInspector.BottomUpProfileDataGridTree(this,this.profileHead);return this._bottomUpProfileDataGridTree;},_getTopDownProfileDataGridTree:function()
+this._bottomUpProfileDataGridTree=new WebInspector.BottomUpProfileDataGridTree(this,(this.profileHead));return this._bottomUpProfileDataGridTree;},_getTopDownProfileDataGridTree:function()
 {if(!this._topDownProfileDataGridTree)
-this._topDownProfileDataGridTree=new WebInspector.TopDownProfileDataGridTree(this,this.profileHead);return this._topDownProfileDataGridTree;},willHide:function()
+this._topDownProfileDataGridTree=new WebInspector.TopDownProfileDataGridTree(this,(this.profileHead));return this._topDownProfileDataGridTree;},willHide:function()
 {this._currentSearchResultIndex=-1;},refresh:function()
 {var selectedProfileNode=this.dataGrid.selectedNode?this.dataGrid.selectedNode.profileNode:null;this.dataGrid.rootNode().removeChildren();var children=this.profileDataGridTree.children;var count=children.length;for(var index=0;index<count;++index)
 this.dataGrid.rootNode().appendChild(children[index]);if(selectedProfileNode)
@@ -420,11 +355,11 @@
 return;if(--this._currentSearchResultIndex<0)
 this._currentSearchResultIndex=(this._searchResults.length-1);this._jumpToSearchResult(this._currentSearchResultIndex);},showingFirstSearchResult:function()
 {return(this._currentSearchResultIndex===0);},showingLastSearchResult:function()
-{return(this._searchResults&&this._currentSearchResultIndex===(this._searchResults.length-1));},_jumpToSearchResult:function(index)
+{return(this._searchResults&&this._currentSearchResultIndex===(this._searchResults.length-1));},currentSearchResultIndex:function(){return this._currentSearchResultIndex;},_jumpToSearchResult:function(index)
 {var searchResult=this._searchResults[index];if(!searchResult)
 return;var profileNode=searchResult.profileNode;profileNode.revealAndSelect();},_ensureFlameChartCreated:function()
 {if(this._flameChart)
-return;this._flameChart=new WebInspector.FlameChart(this);this._flameChart.addEventListener(WebInspector.FlameChart.Events.SelectedNode,this._onSelectedNode.bind(this));},_onSelectedNode:function(event)
+return;var dataProvider=new WebInspector.CPUFlameChartDataProvider(this);this._flameChart=new WebInspector.FlameChart(dataProvider);this._flameChart.addEventListener(WebInspector.FlameChart.Events.EntrySelected,this._onEntrySelected.bind(this));},_onEntrySelected:function(event)
 {var node=event.data;if(!node||!node.scriptId)
 return;var script=WebInspector.debuggerModel.scriptForId(node.scriptId)
 if(!script)
@@ -447,10 +382,10 @@
 {this.focusButton.setEnabled(false);this.excludeButton.setEnabled(false);},_sortProfile:function()
 {var sortAscending=this.dataGrid.isSortOrderAscending();var sortColumnIdentifier=this.dataGrid.sortColumnIdentifier();var sortProperty={"self":"selfTime","total":"totalTime","function":"functionName"}[sortColumnIdentifier];this.profileDataGridTree.sort(WebInspector.ProfileDataGridTree.propertyComparator(sortProperty,sortAscending));this.refresh();},_mouseDownInDataGrid:function(event)
 {if(event.detail<2)
-return;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell||(!cell.hasStyleClass("total-column")&&!cell.hasStyleClass("self-column")&&!cell.hasStyleClass("average-column")))
-return;if(cell.hasStyleClass("total-column"))
-this.showTotalTimeAsPercent.set(!this.showTotalTimeAsPercent.get());else if(cell.hasStyleClass("self-column"))
-this.showSelfTimeAsPercent.set(!this.showSelfTimeAsPercent.get());else if(cell.hasStyleClass("average-column"))
+return;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell||(!cell.classList.contains("total-column")&&!cell.classList.contains("self-column")&&!cell.classList.contains("average-column")))
+return;if(cell.classList.contains("total-column"))
+this.showTotalTimeAsPercent.set(!this.showTotalTimeAsPercent.get());else if(cell.classList.contains("self-column"))
+this.showSelfTimeAsPercent.set(!this.showSelfTimeAsPercent.get());else if(cell.classList.contains("average-column"))
 this.showAverageTimeAsPercent.set(!this.showAverageTimeAsPercent.get());this.refreshShowAsPercents();event.consume(true);},_calculateTimes:function(profile)
 {function totalHitCount(node){var result=node.hitCount;for(var i=0;i<node.children.length;i++)
 result+=totalHitCount(node.children[i]);return result;}
@@ -463,894 +398,109 @@
 stack.push(node.children[i]);}
 var topLevelNodes=this.profileHead.children;for(var i=0;i<topLevelNodes.length;i++){var node=topLevelNodes[i];if(node.functionName=="(garbage collector)"){this._gcNode=node;break;}}},__proto__:WebInspector.View.prototype}
 WebInspector.CPUProfileType=function()
-{WebInspector.ProfileType.call(this,WebInspector.CPUProfileType.TypeId,WebInspector.UIString("Collect JavaScript CPU Profile"));InspectorBackend.registerProfilerDispatcher(this);this._recording=false;WebInspector.CPUProfileType.instance=this;}
+{WebInspector.ProfileType.call(this,WebInspector.CPUProfileType.TypeId,WebInspector.UIString("Collect JavaScript CPU Profile"));this._recording=false;this._nextProfileId=1;this._nextAnonymousConsoleProfileNumber=1;this._anonymousConsoleProfileIdToTitle={};WebInspector.CPUProfileType.instance=this;WebInspector.cpuProfilerModel.setDelegate(this);}
 WebInspector.CPUProfileType.TypeId="CPU";WebInspector.CPUProfileType.prototype={fileExtension:function()
 {return".cpuprofile";},get buttonTooltip()
 {return this._recording?WebInspector.UIString("Stop CPU profiling."):WebInspector.UIString("Start CPU profiling.");},buttonClicked:function()
 {if(this._recording){this.stopRecordingProfile();return false;}else{this.startRecordingProfile();return true;}},get treeItemTitle()
 {return WebInspector.UIString("CPU PROFILES");},get description()
-{return WebInspector.UIString("CPU profiles show where the execution time is spent in your page's JavaScript functions.");},addProfileHeader:function(profileHeader)
-{this.addProfile(this.createProfile(profileHeader));},isRecordingProfile:function()
+{return WebInspector.UIString("CPU profiles show where the execution time is spent in your page's JavaScript functions.");},consoleProfileStarted:function(id,scriptLocation,title)
+{var resolvedTitle=title;if(!resolvedTitle){resolvedTitle=WebInspector.UIString("Profile %s",this._nextAnonymousConsoleProfileNumber++);this._anonymousConsoleProfileIdToTitle[id]=resolvedTitle;}
+this._addMessageToConsole(WebInspector.ConsoleMessage.MessageType.Profile,scriptLocation,resolvedTitle);},consoleProfileFinished:function(protocolId,scriptLocation,cpuProfile,title)
+{var resolvedTitle=title;if(typeof title==="undefined"){resolvedTitle=this._anonymousConsoleProfileIdToTitle[protocolId];delete this._anonymousConsoleProfileIdToTitle[protocolId];}
+var id=this._nextProfileId++;var profile=new WebInspector.CPUProfileHeader(this,resolvedTitle,id);profile.setProtocolProfile(cpuProfile);this.addProfile(profile);resolvedTitle+="#"+id;this._addMessageToConsole(WebInspector.ConsoleMessage.MessageType.ProfileEnd,scriptLocation,resolvedTitle);},_addMessageToConsole:function(type,scriptLocation,title)
+{var rawLocation=new WebInspector.DebuggerModel.Location(scriptLocation.scriptId,scriptLocation.lineNumber,scriptLocation.columnNumber||0);var uiLocation=WebInspector.debuggerModel.rawLocationToUILocation(rawLocation);var url;if(uiLocation)
+url=uiLocation.url();var message=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.ConsoleAPI,WebInspector.ConsoleMessage.MessageLevel.Debug,title,type,url||undefined,scriptLocation.lineNumber,scriptLocation.columnNumber);WebInspector.console.addMessage(message);},isRecordingProfile:function()
 {return this._recording;},startRecordingProfile:function()
-{this._recording=true;WebInspector.userMetrics.ProfilesCPUProfileTaken.record();ProfilerAgent.start();},stopRecordingProfile:function()
-{this._recording=false;ProfilerAgent.stop();},setRecordingProfile:function(isProfiling)
-{this._recording=isProfiling;},createTemporaryProfile:function(title)
-{title=title||WebInspector.UIString("Recording\u2026");return new WebInspector.CPUProfileHeader(this,title);},createProfile:function(profile)
-{return new WebInspector.CPUProfileHeader(this,profile.title,profile.uid);},removeProfile:function(profile)
-{WebInspector.ProfileType.prototype.removeProfile.call(this,profile);if(!profile.isTemporary&&!profile.fromFile())
-ProfilerAgent.removeProfile(this.id,profile.uid);},resetProfiles:function()
-{this._reset();},addHeapSnapshotChunk:function(uid,chunk)
-{throw new Error("Never called");},reportHeapSnapshotProgress:function(done,total)
-{throw new Error("Never called");},__proto__:WebInspector.ProfileType.prototype}
+{if(this._profileBeingRecorded)
+return;var id=this._nextProfileId++;this._profileBeingRecorded=new WebInspector.CPUProfileHeader(this,WebInspector.UIString("Recording\u2026"),id);this.addProfile(this._profileBeingRecorded);this._recording=true;WebInspector.cpuProfilerModel.setRecording(true);WebInspector.userMetrics.ProfilesCPUProfileTaken.record();ProfilerAgent.start();},stopRecordingProfile:function()
+{this._recording=false;WebInspector.cpuProfilerModel.setRecording(false);function didStopProfiling(error,profile)
+{if(!this._profileBeingRecorded)
+return;this._profileBeingRecorded.setProtocolProfile(profile);var title=WebInspector.UIString("Profile %d",this._profileBeingRecorded.uid);this._profileBeingRecorded.title=title;this._profileBeingRecorded.sidebarElement.mainTitle=title;var recordedProfile=this._profileBeingRecorded;this._profileBeingRecorded=null;WebInspector.panels.profiles._showProfile(recordedProfile);}
+ProfilerAgent.stop(didStopProfiling.bind(this));},createProfileLoadedFromFile:function(title)
+{return new WebInspector.CPUProfileHeader(this,title);},removeProfile:function(profile)
+{if(this._profileBeingRecorded===profile)
+this.stopRecordingProfile();WebInspector.ProfileType.prototype.removeProfile.call(this,profile);},__proto__:WebInspector.ProfileType.prototype}
 WebInspector.CPUProfileHeader=function(type,title,uid)
-{WebInspector.ProfileHeader.call(this,type,title,uid);}
+{WebInspector.ProfileHeader.call(this,type,title,uid);this._tempFile=null;}
 WebInspector.CPUProfileHeader.prototype={onTransferStarted:function()
 {this._jsonifiedProfile="";this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026 %s",Number.bytesToString(this._jsonifiedProfile.length));},onChunkTransferred:function(reader)
 {this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026 %d\%",Number.bytesToString(this._jsonifiedProfile.length));},onTransferFinished:function()
-{this.sidebarElement.subtitle=WebInspector.UIString("Parsing\u2026");this._profile=JSON.parse(this._jsonifiedProfile);this._jsonifiedProfile=null;this.sidebarElement.subtitle=WebInspector.UIString("Loaded");this.isTemporary=false;},onError:function(reader,e)
+{this.sidebarElement.subtitle=WebInspector.UIString("Parsing\u2026");this._profile=JSON.parse(this._jsonifiedProfile);this._jsonifiedProfile=null;this.sidebarElement.subtitle=WebInspector.UIString("Loaded");if(this._profileType._profileBeingRecorded===this)
+this._profileType._profileBeingRecorded=null;},onError:function(reader,e)
 {switch(e.target.error.code){case e.target.error.NOT_FOUND_ERR:this.sidebarElement.subtitle=WebInspector.UIString("'%s' not found.",reader.fileName());break;case e.target.error.NOT_READABLE_ERR:this.sidebarElement.subtitle=WebInspector.UIString("'%s' is not readable",reader.fileName());break;case e.target.error.ABORT_ERR:break;default:this.sidebarElement.subtitle=WebInspector.UIString("'%s' error %d",reader.fileName(),e.target.error.code);}},write:function(text)
-{this._jsonifiedProfile+=text;},close:function(){},createSidebarTreeElement:function()
-{return new WebInspector.ProfileSidebarTreeElement(this,WebInspector.UIString("Profile %d"),"profile-sidebar-tree-item");},createView:function(profilesPanel)
+{this._jsonifiedProfile+=text;},close:function(){},dispose:function()
+{this.removeTempFile();},createSidebarTreeElement:function()
+{return new WebInspector.ProfileSidebarTreeElement(this,"profile-sidebar-tree-item");},createView:function(profilesPanel)
 {return new WebInspector.CPUProfileView(this);},canSaveToFile:function()
-{return true;},saveToFile:function()
-{var fileOutputStream=new WebInspector.FileOutputStream();function getCPUProfileCallback(error,profile)
-{if(error){fileOutputStream.close();return;}
-if(!profile.head){fileOutputStream.close();return;}
-fileOutputStream.write(JSON.stringify(profile),fileOutputStream.close.bind(fileOutputStream));}
-function onOpen()
-{ProfilerAgent.getCPUProfile(this.uid,getCPUProfileCallback.bind(this));}
-this._fileName=this._fileName||"CPU-"+new Date().toISO8601Compact()+this._profileType.fileExtension();fileOutputStream.open(this._fileName,onOpen.bind(this));},loadFromFile:function(file)
-{this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026");this.sidebarElement.wait=true;var fileReader=new WebInspector.ChunkedFileReader(file,10000000,this);fileReader.start(this);},__proto__:WebInspector.ProfileHeader.prototype};WebInspector.FlameChart=function(cpuProfileView)
-{WebInspector.View.call(this);this.registerRequiredCSS("flameChart.css");this.element.className="fill";this.element.id="cpu-flame-chart";this._overviewContainer=this.element.createChild("div","overview-container");this._overviewGrid=new WebInspector.OverviewGrid("flame-chart");this._overviewCanvas=this._overviewContainer.createChild("canvas","flame-chart-overview-canvas");this._overviewContainer.appendChild(this._overviewGrid.element);this._overviewCalculator=new WebInspector.FlameChart.OverviewCalculator();this._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);this._chartContainer=this.element.createChild("div","chart-container");this._timelineGrid=new WebInspector.TimelineGrid();this._chartContainer.appendChild(this._timelineGrid.element);this._calculator=new WebInspector.FlameChart.Calculator();this._canvas=this._chartContainer.createChild("canvas");this._canvas.addEventListener("mousemove",this._onMouseMove.bind(this));WebInspector.installDragHandle(this._canvas,this._startCanvasDragging.bind(this),this._canvasDragging.bind(this),this._endCanvasDragging.bind(this),"col-resize");this._entryInfo=this._chartContainer.createChild("div","entry-info");this._cpuProfileView=cpuProfileView;this._windowLeft=0.0;this._windowRight=1.0;this._barHeight=15;this._minWidth=1;this._paddingLeft=15;this._canvas.addEventListener("mousewheel",this._onMouseWheel.bind(this),false);this._canvas.addEventListener("click",this._onClick.bind(this),false);this._linkifier=new WebInspector.Linkifier();this._highlightedEntryIndex=-1;if(!WebInspector.FlameChart._colorGenerator)
-WebInspector.FlameChart._colorGenerator=new WebInspector.FlameChart.ColorGenerator();}
-WebInspector.FlameChart.Calculator=function()
-{}
-WebInspector.FlameChart.Calculator.prototype={_updateBoundaries:function(flameChart)
-{function log10(x)
-{return Math.log(x)/Math.LN10;}
-this._decimalDigits=Math.max(0,-Math.floor(log10(flameChart._timelineGrid.gridSliceTime*1.01)));this._minimumBoundaries=flameChart._windowLeft*flameChart._timelineData.totalTime;this._maximumBoundaries=flameChart._windowRight*flameChart._timelineData.totalTime;this.paddingLeft=flameChart._paddingLeft;this._width=flameChart._canvas.width-this.paddingLeft;this._timeToPixel=this._width/this.boundarySpan();},computePosition:function(time)
-{return(time-this._minimumBoundaries)*this._timeToPixel+this.paddingLeft;},formatTime:function(value)
-{var format="%."+this._decimalDigits+"f\u2009ms";return WebInspector.UIString(format,value+this._minimumBoundaries);},maximumBoundary:function()
-{return this._maximumBoundaries;},minimumBoundary:function()
-{return this._minimumBoundaries;},zeroTime:function()
-{return 0;},boundarySpan:function()
-{return this._maximumBoundaries-this._minimumBoundaries;}}
-WebInspector.FlameChart.OverviewCalculator=function()
-{}
-WebInspector.FlameChart.OverviewCalculator.prototype={_updateBoundaries:function(flameChart)
-{this._minimumBoundaries=0;this._maximumBoundaries=flameChart._timelineData.totalTime;this._xScaleFactor=flameChart._canvas.width/flameChart._timelineData.totalTime;},computePosition:function(time)
-{return(time-this._minimumBoundaries)*this._xScaleFactor;},formatTime:function(value)
-{return Number.secondsToString((value+this._minimumBoundaries)/1000);},maximumBoundary:function()
-{return this._maximumBoundaries;},minimumBoundary:function()
-{return this._minimumBoundaries;},zeroTime:function()
-{return this._minimumBoundaries;},boundarySpan:function()
-{return this._maximumBoundaries-this._minimumBoundaries;}}
-WebInspector.FlameChart.Events={SelectedNode:"SelectedNode"}
-WebInspector.FlameChart.ColorGenerator=function()
-{this._colorPairs={};this._colorIndexes=[];this._currentColorIndex=0;this._colorPairForID("(idle)::0",50);this._colorPairForID("(program)::0",50);this._colorPairForID("(garbage collector)::0",50);}
-WebInspector.FlameChart.ColorGenerator.prototype={_colorPairForID:function(id,sat)
-{if(typeof sat!=="number")
-sat=100;var colorPairs=this._colorPairs;var colorPair=colorPairs[id];if(!colorPair){colorPairs[id]=colorPair=this._createPair(this._currentColorIndex++,sat);this._colorIndexes[colorPair.index]=colorPair;}
-return colorPair;},_colorPairForIndex:function(index)
-{return this._colorIndexes[index];},_createPair:function(index,sat)
-{var hue=(index*7+12*(index%2))%360;return{index:index,highlighted:"hsla("+hue+", "+sat+"%, 33%, 0.7)",normal:"hsla("+hue+", "+sat+"%, 66%, 0.7)"}}}
-WebInspector.FlameChart.Entry=function(colorPair,depth,duration,startTime,node)
+{return!!this._tempFile;},saveToFile:function()
+{var fileOutputStream=new WebInspector.FileOutputStream();function onOpenForSave(accepted)
+{if(!accepted)
+return;function didRead(data)
+{if(data)
+fileOutputStream.write(data,fileOutputStream.close.bind(fileOutputStream));else
+fileOutputStream.close();}
+this._tempFile.read(didRead.bind(this));}
+this._fileName=this._fileName||"CPU-"+new Date().toISO8601Compact()+this._profileType.fileExtension();fileOutputStream.open(this._fileName,onOpenForSave.bind(this));},loadFromFile:function(file)
+{this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026");this.sidebarElement.wait=true;var fileReader=new WebInspector.ChunkedFileReader(file,10000000,this);fileReader.start(this);},protocolProfile:function()
+{return this._protocolProfile;},setProtocolProfile:function(cpuProfile)
+{this._protocolProfile=cpuProfile;this._saveProfileDataToTempFile(cpuProfile);},_saveProfileDataToTempFile:function(data)
+{var serializedData=JSON.stringify(data);function didCreateTempFile(tempFile)
+{this._writeToTempFile(tempFile,serializedData);}
+new WebInspector.TempFile("cpu-profiler",this.uid,didCreateTempFile.bind(this));},_writeToTempFile:function(tempFile,serializedData)
+{this._tempFile=tempFile;if(tempFile)
+tempFile.write(serializedData,tempFile.finishWriting.bind(tempFile));},__proto__:WebInspector.ProfileHeader.prototype}
+WebInspector.CPUFlameChartDataProvider=function(cpuProfileView)
+{WebInspector.FlameChartDataProvider.call(this);this._cpuProfileView=cpuProfileView;}
+WebInspector.CPUFlameChartDataProvider.prototype={timelineData:function(colorGenerator)
+{return this._timelineData||this._calculateTimelineData(colorGenerator);},_calculateTimelineData:function(colorGenerator)
+{if(!this._cpuProfileView.profileHead)
+return null;var samples=this._cpuProfileView.samples;var idToNode=this._cpuProfileView._idToNode;var gcNode=this._cpuProfileView._gcNode;var samplesCount=samples.length;var samplingInterval=this._cpuProfileView.samplingIntervalMs;var index=0;var openIntervals=[];var stackTrace=[];var colorEntryIndexes=[];var maxDepth=5;var depth=0;function ChartEntry(colorPair,depth,duration,startTime,node)
 {this.colorPair=colorPair;this.depth=depth;this.duration=duration;this.startTime=startTime;this.node=node;this.selfTime=0;}
-WebInspector.FlameChart.prototype={selectRange:function(timeLeft,timeRight)
-{this._overviewGrid.setWindow(timeLeft/this._totalTime,timeRight/this._totalTime);},_onWindowChanged:function(event)
-{this._scheduleUpdate();},_startCanvasDragging:function(event)
-{if(!this._timelineData)
-return false;this._isDragging=true;this._wasDragged=false;this._dragStartPoint=event.pageX;this._dragStartWindowLeft=this._windowLeft;this._dragStartWindowRight=this._windowRight;return true;},_canvasDragging:function(event)
-{var pixelShift=this._dragStartPoint-event.pageX;var windowShift=pixelShift/this._totalPixels;var windowLeft=Math.max(0,this._dragStartWindowLeft+windowShift);if(windowLeft===this._windowLeft)
-return;windowShift=windowLeft-this._dragStartWindowLeft;var windowRight=Math.min(1,this._dragStartWindowRight+windowShift);if(windowRight===this._windowRight)
-return;windowShift=windowRight-this._dragStartWindowRight;this._overviewGrid.setWindow(this._dragStartWindowLeft+windowShift,this._dragStartWindowRight+windowShift);this._wasDragged=true;},_endCanvasDragging:function()
-{this._isDragging=false;},_calculateTimelineData:function()
-{if(this._timelineData)
-return this._timelineData;if(!this._cpuProfileView.profileHead)
-return null;var samples=this._cpuProfileView.samples;var idToNode=this._cpuProfileView._idToNode;var gcNode=this._cpuProfileView._gcNode;var samplesCount=samples.length;var samplingInterval=this._cpuProfileView.samplingIntervalMs;var index=0;var entries=([]);var openIntervals=[];var stackTrace=[];var colorGenerator=WebInspector.FlameChart._colorGenerator;var colorEntryIndexes=[];var maxDepth=5;var depth=0;for(var sampleIndex=0;sampleIndex<samplesCount;sampleIndex++){var node=idToNode[samples[sampleIndex]];stackTrace.length=0;while(node){stackTrace.push(node);node=node.parent;}
+var entries=([]);for(var sampleIndex=0;sampleIndex<samplesCount;sampleIndex++){var node=idToNode[samples[sampleIndex]];stackTrace.length=0;while(node){stackTrace.push(node);node=node.parent;}
 stackTrace.pop();maxDepth=Math.max(maxDepth,depth);depth=0;node=stackTrace.pop();var intervalIndex;if(node===gcNode){while(depth<openIntervals.length){intervalIndex=openIntervals[depth].index;entries[intervalIndex].duration+=samplingInterval;++depth;}
 if(openIntervals.length>0&&openIntervals.peekLast().node===node){entries[intervalIndex].selfTime+=samplingInterval;continue;}}
 while(node&&depth<openIntervals.length&&node===openIntervals[depth].node){intervalIndex=openIntervals[depth].index;entries[intervalIndex].duration+=samplingInterval;node=stackTrace.pop();++depth;}
 if(depth<openIntervals.length)
 openIntervals.length=depth;if(!node){entries[intervalIndex].selfTime+=samplingInterval;continue;}
 while(node){var colorPair=colorGenerator._colorPairForID(node.functionName+":"+node.url+":"+node.lineNumber);var indexesForColor=colorEntryIndexes[colorPair.index];if(!indexesForColor)
-indexesForColor=colorEntryIndexes[colorPair.index]=[];var entry=new WebInspector.FlameChart.Entry(colorPair,depth,samplingInterval,sampleIndex*samplingInterval,node);indexesForColor.push(entries.length);entries.push(entry);openIntervals.push({node:node,index:index});++index;node=stackTrace.pop();++depth;}
+indexesForColor=colorEntryIndexes[colorPair.index]=[];var entry=new ChartEntry(colorPair,depth,samplingInterval,sampleIndex*samplingInterval,node);indexesForColor.push(entries.length);entries.push(entry);openIntervals.push({node:node,index:index});++index;node=stackTrace.pop();++depth;}
 entries[entries.length-1].selfTime+=samplingInterval;}
-this._maxStackDepth=Math.max(maxDepth,depth);var entryColorIndexes=new Uint16Array(entries.length);var entryLevels=new Uint8Array(entries.length);var entryTotalTimes=new Float32Array(entries.length);var entryOffsets=new Float32Array(entries.length);var entryTitles=new Array(entries.length);var entryDeoptFlags=new Uint8Array(entries.length);for(var i=0;i<entries.length;++i){var entry=entries[i];entryColorIndexes[i]=colorPair.index;entryLevels[i]=entry.depth;entryTotalTimes[i]=entry.duration;entryOffsets[i]=entry.startTime;entryTitles[i]=entry.node.functionName;var reason=entry.node.deoptReason;entryDeoptFlags[i]=(reason&&reason!=="no reason");}
-this._timelineData={entries:entries,totalTime:this._cpuProfileView.profileHead.totalTime,entryColorIndexes:entryColorIndexes,entryLevels:entryLevels,entryTotalTimes:entryTotalTimes,entryOffsets:entryOffsets,colorEntryIndexes:colorEntryIndexes,entryTitles:entryTitles,entryDeoptFlags:entryDeoptFlags};return this._timelineData;},_onMouseMove:function(event)
-{if(this._isDragging)
-return;var entryIndex=this._coordinatesToEntryIndex(event.offsetX,event.offsetY);if(this._highlightedEntryIndex===entryIndex)
-return;if(entryIndex===-1||this._timelineData.entries[entryIndex].node.scriptId==="0")
-this._canvas.style.cursor="default";else
-this._canvas.style.cursor="pointer";this._highlightedEntryIndex=entryIndex;this._scheduleUpdate();},_millisecondsToString:function(ms)
+var entryNodes=new Array(entries.length);var entryColorIndexes=new Uint16Array(entries.length);var entryLevels=new Uint8Array(entries.length);var entryTotalTimes=new Float32Array(entries.length);var entrySelfTimes=new Float32Array(entries.length);var entryOffsets=new Float32Array(entries.length);var entryTitles=new Array(entries.length);var entryDeoptFlags=new Uint8Array(entries.length);for(var i=0;i<entries.length;++i){var entry=entries[i];entryNodes[i]=entry.node;entryColorIndexes[i]=colorPair.index;entryLevels[i]=entry.depth;entryTotalTimes[i]=entry.duration;entrySelfTimes[i]=entry.selfTime;entryOffsets[i]=entry.startTime;entryTitles[i]=entry.node.functionName;var reason=entry.node.deoptReason;entryDeoptFlags[i]=(reason&&reason!=="no reason");}
+this._timelineData={maxStackDepth:Math.max(maxDepth,depth),totalTime:this._cpuProfileView.profileHead.totalTime,entryNodes:entryNodes,entryColorIndexes:entryColorIndexes,entryLevels:entryLevels,entryTotalTimes:entryTotalTimes,entrySelfTimes:entrySelfTimes,entryOffsets:entryOffsets,colorEntryIndexes:colorEntryIndexes,entryTitles:entryTitles,entryDeoptFlags:entryDeoptFlags};return this._timelineData;},_millisecondsToString:function(ms)
 {if(ms===0)
 return"0";if(ms<1000)
-return WebInspector.UIString("%.1f\u2009ms",ms);return Number.secondsToString(ms/1000,true);},_prepareHighlightedEntryInfo:function()
-{if(this._isDragging)
-return null;var entry=this._timelineData.entries[this._highlightedEntryIndex];if(!entry)
-return null;var node=entry.node;if(!node)
+return WebInspector.UIString("%.1f\u2009ms",ms);return Number.secondsToString(ms/1000,true);},prepareHighlightedEntryInfo:function(entryIndex)
+{var timelineData=this._timelineData;var node=timelineData.entryNodes[entryIndex];if(!node)
 return null;var entryInfo=[];function pushEntryInfoRow(title,text)
 {var row={};row.title=title;row.text=text;entryInfo.push(row);}
-pushEntryInfoRow(WebInspector.UIString("Name"),node.functionName);if(this._cpuProfileView.samples){var selfTime=this._millisecondsToString(entry.selfTime);var totalTime=this._millisecondsToString(entry.duration);pushEntryInfoRow(WebInspector.UIString("Self time"),selfTime);pushEntryInfoRow(WebInspector.UIString("Total time"),totalTime);}
-if(node.url)
+pushEntryInfoRow(WebInspector.UIString("Name"),timelineData.entryTitles[entryIndex]);var selfTime=this._millisecondsToString(timelineData.entrySelfTimes[entryIndex]);var totalTime=this._millisecondsToString(timelineData.entryTotalTimes[entryIndex]);pushEntryInfoRow(WebInspector.UIString("Self time"),selfTime);pushEntryInfoRow(WebInspector.UIString("Total time"),totalTime);if(node.url)
 pushEntryInfoRow(WebInspector.UIString("URL"),node.url+":"+node.lineNumber);pushEntryInfoRow(WebInspector.UIString("Aggregated self time"),Number.secondsToString(node.selfTime/1000,true));pushEntryInfoRow(WebInspector.UIString("Aggregated total time"),Number.secondsToString(node.totalTime/1000,true));if(node.deoptReason&&node.deoptReason!=="no reason")
-pushEntryInfoRow(WebInspector.UIString("Not optimized"),node.deoptReason);return entryInfo;},_onClick:function(e)
-{if(this._wasDragged)
-return;if(this._highlightedEntryIndex===-1)
-return;var node=this._timelineData.entries[this._highlightedEntryIndex].node;this.dispatchEventToListeners(WebInspector.FlameChart.Events.SelectedNode,node);},_onMouseWheel:function(e)
-{if(e.wheelDeltaY){const zoomFactor=1.1;const mouseWheelZoomSpeed=1/120;var zoom=Math.pow(zoomFactor,-e.wheelDeltaY*mouseWheelZoomSpeed);var overviewReference=(this._pixelWindowLeft+e.offsetX-this._paddingLeft)/this._totalPixels;this._overviewGrid.zoom(zoom,overviewReference);}else{var shift=Number.constrain(-1*this._windowWidth/4*e.wheelDeltaX/120,-this._windowLeft,1-this._windowRight);this._overviewGrid.setWindow(this._windowLeft+shift,this._windowRight+shift);}},_coordinatesToEntryIndex:function(x,y)
-{var timelineData=this._timelineData;if(!timelineData)
-return-1;var timelineEntries=timelineData.entries;var cursorTime=(x+this._pixelWindowLeft-this._paddingLeft)*this._pixelToTime;var cursorLevel=Math.floor((this._canvas.height/window.devicePixelRatio-y)/this._barHeight);for(var i=0;i<timelineEntries.length;++i){if(cursorTime<timelineEntries[i].startTime)
-return-1;if(cursorTime<(timelineEntries[i].startTime+timelineEntries[i].duration)&&cursorLevel===timelineEntries[i].depth)
-return i;}
-return-1;},onResize:function()
-{this._updateOverviewCanvas=true;this._scheduleUpdate();},_drawOverviewCanvas:function(width,height)
-{if(!this._timelineData)
-return;var timelineEntries=this._timelineData.entries;var drawData=new Uint8Array(width);var scaleFactor=width/this._totalTime;for(var entryIndex=0;entryIndex<timelineEntries.length;++entryIndex){var entry=timelineEntries[entryIndex];var start=Math.floor(entry.startTime*scaleFactor);var finish=Math.floor((entry.startTime+entry.duration)*scaleFactor);for(var x=start;x<finish;++x)
-drawData[x]=Math.max(drawData[x],entry.depth+1);}
-var ratio=window.devicePixelRatio;var canvasWidth=width*ratio;var canvasHeight=height*ratio;this._overviewCanvas.width=canvasWidth;this._overviewCanvas.height=canvasHeight;this._overviewCanvas.style.width=width+"px";this._overviewCanvas.style.height=height+"px";var context=this._overviewCanvas.getContext("2d");var yScaleFactor=canvasHeight/(this._maxStackDepth*1.1);context.lineWidth=1;context.translate(0.5,0.5);context.strokeStyle="rgba(20,0,0,0.4)";context.fillStyle="rgba(214,225,254,0.8)";context.moveTo(-1,canvasHeight-1);if(drawData)
-context.lineTo(-1,Math.round(height-drawData[0]*yScaleFactor-1));var value;for(var x=0;x<width;++x){value=Math.round(canvasHeight-drawData[x]*yScaleFactor-1);context.lineTo(x*ratio,value);}
-context.lineTo(canvasWidth+1,value);context.lineTo(canvasWidth+1,canvasHeight-1);context.fill();context.stroke();context.closePath();},draw:function(width,height)
-{var timelineData=this._calculateTimelineData();if(!timelineData)
-return;var ratio=window.devicePixelRatio;this._canvas.width=width*ratio;this._canvas.height=height*ratio;this._canvas.style.width=width+"px";this._canvas.style.height=height+"px";var context=this._canvas.getContext("2d");context.scale(ratio,ratio);var timeWindowRight=this._timeWindowRight;var timeToPixel=this._timeToPixel;var pixelWindowLeft=this._pixelWindowLeft;var paddingLeft=this._paddingLeft;var minWidth=this._minWidth;var entryTotalTimes=this._timelineData.entryTotalTimes;var entryOffsets=this._timelineData.entryOffsets;var entryLevels=this._timelineData.entryLevels;var colorEntryIndexes=this._timelineData.colorEntryIndexes;var entryTitles=this._timelineData.entryTitles;var entryDeoptFlags=this._timelineData.entryDeoptFlags;var colorGenerator=WebInspector.FlameChart._colorGenerator;var titleIndexes=new Uint32Array(this._timelineData.entryTotalTimes);var lastTitleIndex=0;var dotsWidth=context.measureText("\u2026").width;var textPaddingLeft=2;this._minTextWidth=context.measureText("\u2026").width+textPaddingLeft;var minTextWidth=this._minTextWidth;var marksField=[];for(var i=0;i<this._maxStackDepth;++i)
-marksField.push(new Uint16Array(width));var barHeight=this._barHeight;var barX=0;var barWidth=0;var barRight=0;var barLevel=0;var bHeight=height-barHeight;context.strokeStyle="black";var colorPair;var entryIndex=0;var entryOffset=0;for(var colorIndex=0;colorIndex<colorEntryIndexes.length;++colorIndex){colorPair=colorGenerator._colorPairForIndex(colorIndex);context.fillStyle=colorPair.normal;var indexes=colorEntryIndexes[colorIndex];if(!indexes)
-continue;context.beginPath();for(var i=0;i<indexes.length;++i){entryIndex=indexes[i];entryOffset=entryOffsets[entryIndex];if(entryOffset>timeWindowRight)
-break;barX=Math.ceil(entryOffset*timeToPixel)-pixelWindowLeft+paddingLeft;barRight=Math.floor((entryOffset+entryTotalTimes[entryIndex])*timeToPixel)-pixelWindowLeft+paddingLeft;if(barRight<0)
-continue;barWidth=(barRight-barX)||minWidth;barLevel=entryLevels[entryIndex];var marksRow=marksField[barLevel];if(barWidth<=marksRow[barX])
-continue;marksRow[barX]=barWidth;if(entryIndex===this._highlightedEntryIndex){context.fill();context.beginPath();context.fillStyle=colorPair.highlighted;}
-context.rect(barX,bHeight-barLevel*barHeight,barWidth,barHeight);if(entryIndex===this._highlightedEntryIndex){context.fill();context.beginPath();context.fillStyle=colorPair.normal;}
-if(barWidth>minTextWidth)
-titleIndexes[lastTitleIndex++]=entryIndex;}
-context.fill();}
-var font=(barHeight-4)+"px "+window.getComputedStyle(this.element,null).getPropertyValue("font-family");var boldFont="bold "+font;var isBoldFontSelected=false;context.font=font;context.textBaseline="alphabetic";context.fillStyle="#333";this._dotsWidth=context.measureText("\u2026").width;var textBaseHeight=bHeight+barHeight-4;for(var i=0;i<lastTitleIndex;++i){entryIndex=titleIndexes[i];if(isBoldFontSelected){if(!entryDeoptFlags[entryIndex]){context.font=font;isBoldFontSelected=false;}}else{if(entryDeoptFlags[entryIndex]){context.font=boldFont;isBoldFontSelected=true;}}
-entryOffset=entryOffsets[entryIndex];barX=Math.floor(entryOffset*timeToPixel)-pixelWindowLeft+paddingLeft;barRight=Math.ceil((entryOffset+entryTotalTimes[entryIndex])*timeToPixel)-pixelWindowLeft+paddingLeft;barWidth=(barRight-barX)||minWidth;var xText=Math.max(0,barX);var widthText=barWidth-textPaddingLeft+barX-xText;var title=this._prepareText(context,entryTitles[entryIndex],widthText);if(title)
-context.fillText(title,xText+textPaddingLeft,textBaseHeight-entryLevels[entryIndex]*barHeight);}
-var entryInfo=this._prepareHighlightedEntryInfo();this._entryInfo.removeChildren();if(entryInfo)
-this._entryInfo.appendChild(this._buildEntryInfo(entryInfo));},_buildEntryInfo:function(entryInfo)
-{var infoTable=document.createElement("table");infoTable.className="info-table";for(var i=0;i<entryInfo.length;++i){var row=infoTable.createChild("tr");var titleCell=row.createChild("td");titleCell.textContent=entryInfo[i].title;titleCell.className="title";var textCell=row.createChild("td");textCell.textContent=entryInfo[i].text;}
-return infoTable;},_prepareText:function(context,title,maxSize)
-{if(maxSize<this._dotsWidth)
-return null;var titleWidth=context.measureText(title).width;if(maxSize>titleWidth)
-return title;maxSize-=this._dotsWidth;var dotRegExp=/[\.\$]/g;var match=dotRegExp.exec(title);if(!match){var visiblePartSize=maxSize/titleWidth;var newTextLength=Math.floor(title.length*visiblePartSize)+1;var minTextLength=4;if(newTextLength<minTextLength)
-return null;var substring;do{--newTextLength;substring=title.substring(0,newTextLength);}while(context.measureText(substring).width>maxSize);return title.substring(0,newTextLength)+"\u2026";}
-while(match){var substring=title.substring(match.index+1);var width=context.measureText(substring).width;if(maxSize>width)
-return"\u2026"+substring;match=dotRegExp.exec(title);}
-var i=0;do{++i;}while(context.measureText(title.substring(0,i)).width<maxSize);return title.substring(0,i-1)+"\u2026";},_scheduleUpdate:function()
-{if(this._updateTimerId)
-return;this._updateTimerId=setTimeout(this.update.bind(this),10);},_updateBoundaries:function()
-{this._windowLeft=this._overviewGrid.windowLeft();this._windowRight=this._overviewGrid.windowRight();this._windowWidth=this._windowRight-this._windowLeft;this._totalTime=this._timelineData.totalTime;this._timeWindowLeft=this._windowLeft*this._totalTime;this._timeWindowRight=this._windowRight*this._totalTime;this._pixelWindowWidth=this._chartContainer.clientWidth;this._totalPixels=Math.floor(this._pixelWindowWidth/this._windowWidth);this._pixelWindowLeft=Math.floor(this._totalPixels*this._windowLeft);this._pixelWindowRight=Math.floor(this._totalPixels*this._windowRight);this._timeToPixel=this._totalPixels/this._totalTime;this._pixelToTime=this._totalTime/this._totalPixels;this._paddingLeftTime=this._paddingLeft/this._timeToPixel;},update:function()
-{this._updateTimerId=0;if(!this._timelineData)
-this._calculateTimelineData();if(!this._timelineData)
-return;this._updateBoundaries();this.draw(this._chartContainer.clientWidth,this._chartContainer.clientHeight);this._calculator._updateBoundaries(this);this._overviewCalculator._updateBoundaries(this);this._timelineGrid.element.style.width=this.element.clientWidth;this._timelineGrid.updateDividers(this._calculator);this._overviewGrid.updateDividers(this._overviewCalculator);if(this._updateOverviewCanvas){this._drawOverviewCanvas(this._overviewContainer.clientWidth,this._overviewContainer.clientHeight-20);this._updateOverviewCanvas=false;}},__proto__:WebInspector.View.prototype};;WebInspector.HeapSnapshotArraySlice=function(array,start,end)
-{this._array=array;this._start=start;this.length=end-start;}
-WebInspector.HeapSnapshotArraySlice.prototype={item:function(index)
-{return this._array[this._start+index];},slice:function(start,end)
-{if(typeof end==="undefined")
-end=this.length;return this._array.subarray(this._start+start,this._start+end);}}
-WebInspector.HeapSnapshotEdge=function(snapshot,edges,edgeIndex)
-{this._snapshot=snapshot;this._edges=edges;this.edgeIndex=edgeIndex||0;}
-WebInspector.HeapSnapshotEdge.prototype={clone:function()
-{return new WebInspector.HeapSnapshotEdge(this._snapshot,this._edges,this.edgeIndex);},hasStringName:function()
-{throw new Error("Not implemented");},name:function()
-{throw new Error("Not implemented");},node:function()
-{return this._snapshot.createNode(this.nodeIndex());},nodeIndex:function()
-{return this._edges.item(this.edgeIndex+this._snapshot._edgeToNodeOffset);},rawEdges:function()
-{return this._edges;},toString:function()
-{return"HeapSnapshotEdge: "+this.name();},type:function()
-{return this._snapshot._edgeTypes[this._type()];},serialize:function()
-{var node=this.node();return{name:this.name(),node:node.serialize(),nodeIndex:this.nodeIndex(),type:this.type(),distance:node.distance()};},_type:function()
-{return this._edges.item(this.edgeIndex+this._snapshot._edgeTypeOffset);}};WebInspector.HeapSnapshotEdgeIterator=function(edge)
-{this.edge=edge;}
-WebInspector.HeapSnapshotEdgeIterator.prototype={rewind:function()
-{this.edge.edgeIndex=0;},hasNext:function()
-{return this.edge.edgeIndex<this.edge._edges.length;},index:function()
-{return this.edge.edgeIndex;},setIndex:function(newIndex)
-{this.edge.edgeIndex=newIndex;},item:function()
-{return this.edge;},next:function()
-{this.edge.edgeIndex+=this.edge._snapshot._edgeFieldsCount;}};WebInspector.HeapSnapshotRetainerEdge=function(snapshot,retainedNodeIndex,retainerIndex)
-{this._snapshot=snapshot;this._retainedNodeIndex=retainedNodeIndex;var retainedNodeOrdinal=retainedNodeIndex/snapshot._nodeFieldCount;this._firstRetainer=snapshot._firstRetainerIndex[retainedNodeOrdinal];this._retainersCount=snapshot._firstRetainerIndex[retainedNodeOrdinal+1]-this._firstRetainer;this.setRetainerIndex(retainerIndex);}
-WebInspector.HeapSnapshotRetainerEdge.prototype={clone:function()
-{return new WebInspector.HeapSnapshotRetainerEdge(this._snapshot,this._retainedNodeIndex,this.retainerIndex());},hasStringName:function()
-{return this._edge().hasStringName();},name:function()
-{return this._edge().name();},node:function()
-{return this._node();},nodeIndex:function()
-{return this._nodeIndex;},retainerIndex:function()
-{return this._retainerIndex;},setRetainerIndex:function(newIndex)
-{if(newIndex!==this._retainerIndex){this._retainerIndex=newIndex;this.edgeIndex=newIndex;}},set edgeIndex(edgeIndex)
-{var retainerIndex=this._firstRetainer+edgeIndex;this._globalEdgeIndex=this._snapshot._retainingEdges[retainerIndex];this._nodeIndex=this._snapshot._retainingNodes[retainerIndex];delete this._edgeInstance;delete this._nodeInstance;},_node:function()
-{if(!this._nodeInstance)
-this._nodeInstance=this._snapshot.createNode(this._nodeIndex);return this._nodeInstance;},_edge:function()
-{if(!this._edgeInstance){var edgeIndex=this._globalEdgeIndex-this._node()._edgeIndexesStart();this._edgeInstance=this._snapshot.createEdge(this._node().rawEdges(),edgeIndex);}
-return this._edgeInstance;},toString:function()
-{return this._edge().toString();},serialize:function()
-{var node=this.node();return{name:this.name(),node:node.serialize(),nodeIndex:this.nodeIndex(),type:this.type(),distance:node.distance()};},type:function()
-{return this._edge().type();}}
-WebInspector.HeapSnapshotRetainerEdgeIterator=function(retainer)
-{this.retainer=retainer;}
-WebInspector.HeapSnapshotRetainerEdgeIterator.prototype={rewind:function()
-{this.retainer.setRetainerIndex(0);},hasNext:function()
-{return this.retainer.retainerIndex()<this.retainer._retainersCount;},index:function()
-{return this.retainer.retainerIndex();},setIndex:function(newIndex)
-{this.retainer.setRetainerIndex(newIndex);},item:function()
-{return this.retainer;},next:function()
-{this.retainer.setRetainerIndex(this.retainer.retainerIndex()+1);}};WebInspector.HeapSnapshotNode=function(snapshot,nodeIndex)
-{this._snapshot=snapshot;this._firstNodeIndex=nodeIndex;this.nodeIndex=nodeIndex;}
-WebInspector.HeapSnapshotNode.prototype={distance:function()
-{return this._snapshot._nodeDistances[this.nodeIndex/this._snapshot._nodeFieldCount];},className:function()
-{throw new Error("Not implemented");},classIndex:function()
-{throw new Error("Not implemented");},dominatorIndex:function()
-{var nodeFieldCount=this._snapshot._nodeFieldCount;return this._snapshot._dominatorsTree[this.nodeIndex/this._snapshot._nodeFieldCount]*nodeFieldCount;},edges:function()
-{return new WebInspector.HeapSnapshotEdgeIterator(this._snapshot.createEdge(this.rawEdges(),0));},edgesCount:function()
-{return(this._edgeIndexesEnd()-this._edgeIndexesStart())/this._snapshot._edgeFieldsCount;},id:function()
-{throw new Error("Not implemented");},isRoot:function()
-{return this.nodeIndex===this._snapshot._rootNodeIndex;},name:function()
-{return this._snapshot._strings[this._name()];},rawEdges:function()
-{return new WebInspector.HeapSnapshotArraySlice(this._snapshot._containmentEdges,this._edgeIndexesStart(),this._edgeIndexesEnd());},retainedSize:function()
-{var snapshot=this._snapshot;return snapshot._nodes[this.nodeIndex+snapshot._nodeRetainedSizeOffset];},retainers:function()
-{return new WebInspector.HeapSnapshotRetainerEdgeIterator(this._snapshot.createRetainingEdge(this.nodeIndex,0));},selfSize:function()
-{var snapshot=this._snapshot;return snapshot._nodes[this.nodeIndex+snapshot._nodeSelfSizeOffset];},type:function()
-{return this._snapshot._nodeTypes[this._type()];},serialize:function()
-{return{id:this.id(),name:this.name(),distance:this.distance(),nodeIndex:this.nodeIndex,retainedSize:this.retainedSize(),selfSize:this.selfSize(),type:this.type(),};},_name:function()
-{var snapshot=this._snapshot;return snapshot._nodes[this.nodeIndex+snapshot._nodeNameOffset];},_edgeIndexesStart:function()
-{return this._snapshot._firstEdgeIndexes[this._ordinal()];},_edgeIndexesEnd:function()
-{return this._snapshot._firstEdgeIndexes[this._ordinal()+1];},_ordinal:function()
-{return this.nodeIndex/this._snapshot._nodeFieldCount;},_nextNodeIndex:function()
-{return this.nodeIndex+this._snapshot._nodeFieldCount;},_type:function()
-{var snapshot=this._snapshot;return snapshot._nodes[this.nodeIndex+snapshot._nodeTypeOffset];}};WebInspector.HeapSnapshotNodeIterator=function(node)
-{this.node=node;this._nodesLength=node._snapshot._nodes.length;}
-WebInspector.HeapSnapshotNodeIterator.prototype={rewind:function()
-{this.node.nodeIndex=this.node._firstNodeIndex;},hasNext:function()
-{return this.node.nodeIndex<this._nodesLength;},index:function()
-{return this.node.nodeIndex;},setIndex:function(newIndex)
-{this.node.nodeIndex=newIndex;},item:function()
-{return this.node;},next:function()
-{this.node.nodeIndex=this.node._nextNodeIndex();}}
-WebInspector.HeapSnapshotProgress=function(dispatcher)
-{this._dispatcher=dispatcher;}
-WebInspector.HeapSnapshotProgress.Event={Update:"ProgressUpdate"};WebInspector.HeapSnapshotProgress.prototype={updateStatus:function(status)
-{this._sendUpdateEvent(WebInspector.UIString(status));},updateProgress:function(title,value,total)
-{var percentValue=((total?(value/total):0)*100).toFixed(0);this._sendUpdateEvent(WebInspector.UIString(title,percentValue));},_sendUpdateEvent:function(text)
-{if(this._dispatcher)
-this._dispatcher.sendEvent(WebInspector.HeapSnapshotProgress.Event.Update,text);}}
-WebInspector.HeapSnapshot=function(profile,progress)
-{this.uid=profile.snapshot.uid;this._nodes=profile.nodes;this._containmentEdges=profile.edges;this._metaNode=profile.snapshot.meta;this._strings=profile.strings;this._progress=progress;this._noDistance=-5;this._rootNodeIndex=0;if(profile.snapshot.root_index)
-this._rootNodeIndex=profile.snapshot.root_index;this._snapshotDiffs={};this._aggregatesForDiff=null;this._init();if(WebInspector.HeapSnapshot.enableAllocationProfiler){this._progress.updateStatus("Buiding allocation statistics\u2026");this._allocationProfile=new WebInspector.AllocationProfile(profile);this._progress.updateStatus("Done");}}
-WebInspector.HeapSnapshot.enableAllocationProfiler=false;function HeapSnapshotMetainfo()
-{this.node_fields=[];this.node_types=[];this.edge_fields=[];this.edge_types=[];this.trace_function_info_fields=[];this.trace_node_fields=[];this.type_strings={};}
-function HeapSnapshotHeader()
-{this.title="";this.uid=0;this.meta=new HeapSnapshotMetainfo();this.node_count=0;this.edge_count=0;}
-WebInspector.HeapSnapshot.prototype={_init:function()
-{var meta=this._metaNode;this._nodeTypeOffset=meta.node_fields.indexOf("type");this._nodeNameOffset=meta.node_fields.indexOf("name");this._nodeIdOffset=meta.node_fields.indexOf("id");this._nodeSelfSizeOffset=meta.node_fields.indexOf("self_size");this._nodeEdgeCountOffset=meta.node_fields.indexOf("edge_count");this._nodeFieldCount=meta.node_fields.length;this._nodeTypes=meta.node_types[this._nodeTypeOffset];this._nodeHiddenType=this._nodeTypes.indexOf("hidden");this._nodeObjectType=this._nodeTypes.indexOf("object");this._nodeNativeType=this._nodeTypes.indexOf("native");this._nodeConsStringType=this._nodeTypes.indexOf("concatenated string");this._nodeSlicedStringType=this._nodeTypes.indexOf("sliced string");this._nodeCodeType=this._nodeTypes.indexOf("code");this._nodeSyntheticType=this._nodeTypes.indexOf("synthetic");this._edgeFieldsCount=meta.edge_fields.length;this._edgeTypeOffset=meta.edge_fields.indexOf("type");this._edgeNameOffset=meta.edge_fields.indexOf("name_or_index");this._edgeToNodeOffset=meta.edge_fields.indexOf("to_node");this._edgeTypes=meta.edge_types[this._edgeTypeOffset];this._edgeTypes.push("invisible");this._edgeElementType=this._edgeTypes.indexOf("element");this._edgeHiddenType=this._edgeTypes.indexOf("hidden");this._edgeInternalType=this._edgeTypes.indexOf("internal");this._edgeShortcutType=this._edgeTypes.indexOf("shortcut");this._edgeWeakType=this._edgeTypes.indexOf("weak");this._edgeInvisibleType=this._edgeTypes.indexOf("invisible");this.nodeCount=this._nodes.length/this._nodeFieldCount;this._edgeCount=this._containmentEdges.length/this._edgeFieldsCount;this._progress.updateStatus("Building edge indexes\u2026");this._buildEdgeIndexes();this._progress.updateStatus("Marking invisible edges\u2026");this._markInvisibleEdges();this._progress.updateStatus("Building retainers\u2026");this._buildRetainers();this._progress.updateStatus("Calculating node flags\u2026");this._calculateFlags();this._progress.updateStatus("Calculating distances\u2026");this._calculateDistances();this._progress.updateStatus("Building postorder index\u2026");var result=this._buildPostOrderIndex();this._progress.updateStatus("Building dominator tree\u2026");this._dominatorsTree=this._buildDominatorTree(result.postOrderIndex2NodeOrdinal,result.nodeOrdinal2PostOrderIndex);this._progress.updateStatus("Calculating retained sizes\u2026");this._calculateRetainedSizes(result.postOrderIndex2NodeOrdinal);this._progress.updateStatus("Buiding dominated nodes\u2026");this._buildDominatedNodes();this._progress.updateStatus("Finished processing.");},_buildEdgeIndexes:function()
-{var nodes=this._nodes;var nodeCount=this.nodeCount;var firstEdgeIndexes=this._firstEdgeIndexes=new Uint32Array(nodeCount+1);var nodeFieldCount=this._nodeFieldCount;var edgeFieldsCount=this._edgeFieldsCount;var nodeEdgeCountOffset=this._nodeEdgeCountOffset;firstEdgeIndexes[nodeCount]=this._containmentEdges.length;for(var nodeOrdinal=0,edgeIndex=0;nodeOrdinal<nodeCount;++nodeOrdinal){firstEdgeIndexes[nodeOrdinal]=edgeIndex;edgeIndex+=nodes[nodeOrdinal*nodeFieldCount+nodeEdgeCountOffset]*edgeFieldsCount;}},_buildRetainers:function()
-{var retainingNodes=this._retainingNodes=new Uint32Array(this._edgeCount);var retainingEdges=this._retainingEdges=new Uint32Array(this._edgeCount);var firstRetainerIndex=this._firstRetainerIndex=new Uint32Array(this.nodeCount+1);var containmentEdges=this._containmentEdges;var edgeFieldsCount=this._edgeFieldsCount;var nodeFieldCount=this._nodeFieldCount;var edgeToNodeOffset=this._edgeToNodeOffset;var firstEdgeIndexes=this._firstEdgeIndexes;var nodeCount=this.nodeCount;for(var toNodeFieldIndex=edgeToNodeOffset,l=containmentEdges.length;toNodeFieldIndex<l;toNodeFieldIndex+=edgeFieldsCount){var toNodeIndex=containmentEdges[toNodeFieldIndex];if(toNodeIndex%nodeFieldCount)
-throw new Error("Invalid toNodeIndex "+toNodeIndex);++firstRetainerIndex[toNodeIndex/nodeFieldCount];}
-for(var i=0,firstUnusedRetainerSlot=0;i<nodeCount;i++){var retainersCount=firstRetainerIndex[i];firstRetainerIndex[i]=firstUnusedRetainerSlot;retainingNodes[firstUnusedRetainerSlot]=retainersCount;firstUnusedRetainerSlot+=retainersCount;}
-firstRetainerIndex[nodeCount]=retainingNodes.length;var nextNodeFirstEdgeIndex=firstEdgeIndexes[0];for(var srcNodeOrdinal=0;srcNodeOrdinal<nodeCount;++srcNodeOrdinal){var firstEdgeIndex=nextNodeFirstEdgeIndex;nextNodeFirstEdgeIndex=firstEdgeIndexes[srcNodeOrdinal+1];var srcNodeIndex=srcNodeOrdinal*nodeFieldCount;for(var edgeIndex=firstEdgeIndex;edgeIndex<nextNodeFirstEdgeIndex;edgeIndex+=edgeFieldsCount){var toNodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];if(toNodeIndex%nodeFieldCount)
-throw new Error("Invalid toNodeIndex "+toNodeIndex);var firstRetainerSlotIndex=firstRetainerIndex[toNodeIndex/nodeFieldCount];var nextUnusedRetainerSlotIndex=firstRetainerSlotIndex+(--retainingNodes[firstRetainerSlotIndex]);retainingNodes[nextUnusedRetainerSlotIndex]=srcNodeIndex;retainingEdges[nextUnusedRetainerSlotIndex]=edgeIndex;}}},createNode:function(nodeIndex)
-{throw new Error("Not implemented");},createEdge:function(edges,edgeIndex)
-{throw new Error("Not implemented");},createRetainingEdge:function(retainedNodeIndex,retainerIndex)
-{throw new Error("Not implemented");},dispose:function()
-{delete this._nodes;delete this._strings;delete this._retainingEdges;delete this._retainingNodes;delete this._firstRetainerIndex;if(this._aggregates){delete this._aggregates;delete this._aggregatesSortedFlags;}
-delete this._dominatedNodes;delete this._firstDominatedNodeIndex;delete this._nodeDistances;delete this._dominatorsTree;},_allNodes:function()
-{return new WebInspector.HeapSnapshotNodeIterator(this.rootNode());},rootNode:function()
-{return this.createNode(this._rootNodeIndex);},get rootNodeIndex()
-{return this._rootNodeIndex;},get totalSize()
-{return this.rootNode().retainedSize();},_getDominatedIndex:function(nodeIndex)
-{if(nodeIndex%this._nodeFieldCount)
-throw new Error("Invalid nodeIndex: "+nodeIndex);return this._firstDominatedNodeIndex[nodeIndex/this._nodeFieldCount];},_dominatedNodesOfNode:function(node)
-{var dominatedIndexFrom=this._getDominatedIndex(node.nodeIndex);var dominatedIndexTo=this._getDominatedIndex(node._nextNodeIndex());return new WebInspector.HeapSnapshotArraySlice(this._dominatedNodes,dominatedIndexFrom,dominatedIndexTo);},aggregates:function(sortedIndexes,key,filterString)
-{if(!this._aggregates){this._aggregates={};this._aggregatesSortedFlags={};}
-var aggregatesByClassName=this._aggregates[key];if(aggregatesByClassName){if(sortedIndexes&&!this._aggregatesSortedFlags[key]){this._sortAggregateIndexes(aggregatesByClassName);this._aggregatesSortedFlags[key]=sortedIndexes;}
-return aggregatesByClassName;}
-var filter;if(filterString)
-filter=this._parseFilter(filterString);var aggregates=this._buildAggregates(filter);this._calculateClassesRetainedSize(aggregates.aggregatesByClassIndex,filter);aggregatesByClassName=aggregates.aggregatesByClassName;if(sortedIndexes)
-this._sortAggregateIndexes(aggregatesByClassName);this._aggregatesSortedFlags[key]=sortedIndexes;this._aggregates[key]=aggregatesByClassName;return aggregatesByClassName;},allocationTracesTops:function()
-{return this._allocationProfile.serializeTraceTops();},allocationNodeCallers:function(nodeId)
-{return this._allocationProfile.serializeCallers(nodeId);},aggregatesForDiff:function()
-{if(this._aggregatesForDiff)
-return this._aggregatesForDiff;var aggregatesByClassName=this.aggregates(true,"allObjects");this._aggregatesForDiff={};var node=this.createNode();for(var className in aggregatesByClassName){var aggregate=aggregatesByClassName[className];var indexes=aggregate.idxs;var ids=new Array(indexes.length);var selfSizes=new Array(indexes.length);for(var i=0;i<indexes.length;i++){node.nodeIndex=indexes[i];ids[i]=node.id();selfSizes[i]=node.selfSize();}
-this._aggregatesForDiff[className]={indexes:indexes,ids:ids,selfSizes:selfSizes};}
-return this._aggregatesForDiff;},_isUserRoot:function(node)
-{return true;},forEachRoot:function(action,userRootsOnly)
-{for(var iter=this.rootNode().edges();iter.hasNext();iter.next()){var node=iter.edge.node();if(!userRootsOnly||this._isUserRoot(node))
-action(node);}},_calculateDistances:function()
-{var nodeFieldCount=this._nodeFieldCount;var nodeCount=this.nodeCount;var distances=new Int32Array(nodeCount);var noDistance=this._noDistance;for(var i=0;i<nodeCount;++i)
-distances[i]=noDistance;var nodesToVisit=new Uint32Array(this.nodeCount);var nodesToVisitLength=0;function enqueueNode(node)
-{var ordinal=node._ordinal();if(distances[ordinal]!==noDistance)
-return;distances[ordinal]=0;nodesToVisit[nodesToVisitLength++]=node.nodeIndex;}
-this.forEachRoot(enqueueNode,true);this._bfs(nodesToVisit,nodesToVisitLength,distances);nodesToVisitLength=0;this.forEachRoot(enqueueNode);this._bfs(nodesToVisit,nodesToVisitLength,distances);this._nodeDistances=distances;},_bfs:function(nodesToVisit,nodesToVisitLength,distances)
-{var edgeFieldsCount=this._edgeFieldsCount;var nodeFieldCount=this._nodeFieldCount;var containmentEdges=this._containmentEdges;var firstEdgeIndexes=this._firstEdgeIndexes;var edgeToNodeOffset=this._edgeToNodeOffset;var edgeTypeOffset=this._edgeTypeOffset;var nodeCount=this.nodeCount;var containmentEdgesLength=containmentEdges.length;var edgeWeakType=this._edgeWeakType;var noDistance=this._noDistance;var index=0;while(index<nodesToVisitLength){var nodeIndex=nodesToVisit[index++];var nodeOrdinal=nodeIndex/nodeFieldCount;var distance=distances[nodeOrdinal]+1;var firstEdgeIndex=firstEdgeIndexes[nodeOrdinal];var edgesEnd=firstEdgeIndexes[nodeOrdinal+1];for(var edgeIndex=firstEdgeIndex;edgeIndex<edgesEnd;edgeIndex+=edgeFieldsCount){var edgeType=containmentEdges[edgeIndex+edgeTypeOffset];if(edgeType==edgeWeakType)
-continue;var childNodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];var childNodeOrdinal=childNodeIndex/nodeFieldCount;if(distances[childNodeOrdinal]!==noDistance)
-continue;distances[childNodeOrdinal]=distance;nodesToVisit[nodesToVisitLength++]=childNodeIndex;}}
-if(nodesToVisitLength>nodeCount)
-throw new Error("BFS failed. Nodes to visit ("+nodesToVisitLength+") is more than nodes count ("+nodeCount+")");},_buildAggregates:function(filter)
-{var aggregates={};var aggregatesByClassName={};var classIndexes=[];var nodes=this._nodes;var mapAndFlag=this.userObjectsMapAndFlag();var flags=mapAndFlag?mapAndFlag.map:null;var flag=mapAndFlag?mapAndFlag.flag:0;var nodesLength=nodes.length;var nodeNativeType=this._nodeNativeType;var nodeFieldCount=this._nodeFieldCount;var selfSizeOffset=this._nodeSelfSizeOffset;var nodeTypeOffset=this._nodeTypeOffset;var node=this.rootNode();var nodeDistances=this._nodeDistances;for(var nodeIndex=0;nodeIndex<nodesLength;nodeIndex+=nodeFieldCount){var nodeOrdinal=nodeIndex/nodeFieldCount;if(flags&&!(flags[nodeOrdinal]&flag))
-continue;node.nodeIndex=nodeIndex;if(filter&&!filter(node))
-continue;var selfSize=nodes[nodeIndex+selfSizeOffset];if(!selfSize&&nodes[nodeIndex+nodeTypeOffset]!==nodeNativeType)
-continue;var classIndex=node.classIndex();if(!(classIndex in aggregates)){var nodeType=node.type();var nameMatters=nodeType==="object"||nodeType==="native";var value={count:1,distance:nodeDistances[nodeOrdinal],self:selfSize,maxRet:0,type:nodeType,name:nameMatters?node.name():null,idxs:[nodeIndex]};aggregates[classIndex]=value;classIndexes.push(classIndex);aggregatesByClassName[node.className()]=value;}else{var clss=aggregates[classIndex];clss.distance=Math.min(clss.distance,nodeDistances[nodeOrdinal]);++clss.count;clss.self+=selfSize;clss.idxs.push(nodeIndex);}}
-for(var i=0,l=classIndexes.length;i<l;++i){var classIndex=classIndexes[i];aggregates[classIndex].idxs=aggregates[classIndex].idxs.slice();}
-return{aggregatesByClassName:aggregatesByClassName,aggregatesByClassIndex:aggregates};},_calculateClassesRetainedSize:function(aggregates,filter)
-{var rootNodeIndex=this._rootNodeIndex;var node=this.createNode(rootNodeIndex);var list=[rootNodeIndex];var sizes=[-1];var classes=[];var seenClassNameIndexes={};var nodeFieldCount=this._nodeFieldCount;var nodeTypeOffset=this._nodeTypeOffset;var nodeNativeType=this._nodeNativeType;var dominatedNodes=this._dominatedNodes;var nodes=this._nodes;var mapAndFlag=this.userObjectsMapAndFlag();var flags=mapAndFlag?mapAndFlag.map:null;var flag=mapAndFlag?mapAndFlag.flag:0;var firstDominatedNodeIndex=this._firstDominatedNodeIndex;while(list.length){var nodeIndex=list.pop();node.nodeIndex=nodeIndex;var classIndex=node.classIndex();var seen=!!seenClassNameIndexes[classIndex];var nodeOrdinal=nodeIndex/nodeFieldCount;var dominatedIndexFrom=firstDominatedNodeIndex[nodeOrdinal];var dominatedIndexTo=firstDominatedNodeIndex[nodeOrdinal+1];if(!seen&&(!flags||(flags[nodeOrdinal]&flag))&&(!filter||filter(node))&&(node.selfSize()||nodes[nodeIndex+nodeTypeOffset]===nodeNativeType)){aggregates[classIndex].maxRet+=node.retainedSize();if(dominatedIndexFrom!==dominatedIndexTo){seenClassNameIndexes[classIndex]=true;sizes.push(list.length);classes.push(classIndex);}}
-for(var i=dominatedIndexFrom;i<dominatedIndexTo;i++)
-list.push(dominatedNodes[i]);var l=list.length;while(sizes[sizes.length-1]===l){sizes.pop();classIndex=classes.pop();seenClassNameIndexes[classIndex]=false;}}},_sortAggregateIndexes:function(aggregates)
-{var nodeA=this.createNode();var nodeB=this.createNode();for(var clss in aggregates)
-aggregates[clss].idxs.sort(function(idxA,idxB){nodeA.nodeIndex=idxA;nodeB.nodeIndex=idxB;return nodeA.id()<nodeB.id()?-1:1;});},_buildPostOrderIndex:function()
-{var nodeFieldCount=this._nodeFieldCount;var nodes=this._nodes;var nodeCount=this.nodeCount;var rootNodeOrdinal=this._rootNodeIndex/nodeFieldCount;var edgeFieldsCount=this._edgeFieldsCount;var edgeTypeOffset=this._edgeTypeOffset;var edgeToNodeOffset=this._edgeToNodeOffset;var edgeShortcutType=this._edgeShortcutType;var firstEdgeIndexes=this._firstEdgeIndexes;var containmentEdges=this._containmentEdges;var containmentEdgesLength=this._containmentEdges.length;var mapAndFlag=this.userObjectsMapAndFlag();var flags=mapAndFlag?mapAndFlag.map:null;var flag=mapAndFlag?mapAndFlag.flag:0;var nodesToVisit=new Uint32Array(nodeCount);var postOrderIndex2NodeOrdinal=new Uint32Array(nodeCount);var nodeOrdinal2PostOrderIndex=new Uint32Array(nodeCount);var painted=new Uint8Array(nodeCount);var nodesToVisitLength=0;var postOrderIndex=0;var grey=1;var black=2;nodesToVisit[nodesToVisitLength++]=rootNodeOrdinal;painted[rootNodeOrdinal]=grey;while(nodesToVisitLength){var nodeOrdinal=nodesToVisit[nodesToVisitLength-1];if(painted[nodeOrdinal]===grey){painted[nodeOrdinal]=black;var nodeFlag=!flags||(flags[nodeOrdinal]&flag);var beginEdgeIndex=firstEdgeIndexes[nodeOrdinal];var endEdgeIndex=firstEdgeIndexes[nodeOrdinal+1];for(var edgeIndex=beginEdgeIndex;edgeIndex<endEdgeIndex;edgeIndex+=edgeFieldsCount){if(nodeOrdinal!==rootNodeOrdinal&&containmentEdges[edgeIndex+edgeTypeOffset]===edgeShortcutType)
-continue;var childNodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];var childNodeOrdinal=childNodeIndex/nodeFieldCount;var childNodeFlag=!flags||(flags[childNodeOrdinal]&flag);if(nodeOrdinal!==rootNodeOrdinal&&childNodeFlag&&!nodeFlag)
-continue;if(!painted[childNodeOrdinal]){painted[childNodeOrdinal]=grey;nodesToVisit[nodesToVisitLength++]=childNodeOrdinal;}}}else{nodeOrdinal2PostOrderIndex[nodeOrdinal]=postOrderIndex;postOrderIndex2NodeOrdinal[postOrderIndex++]=nodeOrdinal;--nodesToVisitLength;}}
-if(postOrderIndex!==nodeCount){console.log("Error: Corrupted snapshot. "+(nodeCount-postOrderIndex)+" nodes are unreachable from the root:");var dumpNode=this.rootNode();for(var i=0;i<nodeCount;++i){if(painted[i]!==black){nodeOrdinal2PostOrderIndex[i]=postOrderIndex;postOrderIndex2NodeOrdinal[postOrderIndex++]=i;dumpNode.nodeIndex=i*nodeFieldCount;console.log(JSON.stringify(dumpNode.serialize()));for(var retainers=dumpNode.retainers();retainers.hasNext();retainers=retainers.item().node().retainers())
-console.log("  edgeName: "+retainers.item().name()+" nodeClassName: "+retainers.item().node().className());}}}
-return{postOrderIndex2NodeOrdinal:postOrderIndex2NodeOrdinal,nodeOrdinal2PostOrderIndex:nodeOrdinal2PostOrderIndex};},_buildDominatorTree:function(postOrderIndex2NodeOrdinal,nodeOrdinal2PostOrderIndex)
-{var nodeFieldCount=this._nodeFieldCount;var nodes=this._nodes;var firstRetainerIndex=this._firstRetainerIndex;var retainingNodes=this._retainingNodes;var retainingEdges=this._retainingEdges;var edgeFieldsCount=this._edgeFieldsCount;var edgeTypeOffset=this._edgeTypeOffset;var edgeToNodeOffset=this._edgeToNodeOffset;var edgeShortcutType=this._edgeShortcutType;var firstEdgeIndexes=this._firstEdgeIndexes;var containmentEdges=this._containmentEdges;var containmentEdgesLength=this._containmentEdges.length;var rootNodeIndex=this._rootNodeIndex;var mapAndFlag=this.userObjectsMapAndFlag();var flags=mapAndFlag?mapAndFlag.map:null;var flag=mapAndFlag?mapAndFlag.flag:0;var nodesCount=postOrderIndex2NodeOrdinal.length;var rootPostOrderedIndex=nodesCount-1;var noEntry=nodesCount;var dominators=new Uint32Array(nodesCount);for(var i=0;i<rootPostOrderedIndex;++i)
-dominators[i]=noEntry;dominators[rootPostOrderedIndex]=rootPostOrderedIndex;var affected=new Uint8Array(nodesCount);var nodeOrdinal;{nodeOrdinal=this._rootNodeIndex/nodeFieldCount;var beginEdgeToNodeFieldIndex=firstEdgeIndexes[nodeOrdinal]+edgeToNodeOffset;var endEdgeToNodeFieldIndex=firstEdgeIndexes[nodeOrdinal+1];for(var toNodeFieldIndex=beginEdgeToNodeFieldIndex;toNodeFieldIndex<endEdgeToNodeFieldIndex;toNodeFieldIndex+=edgeFieldsCount){var childNodeOrdinal=containmentEdges[toNodeFieldIndex]/nodeFieldCount;affected[nodeOrdinal2PostOrderIndex[childNodeOrdinal]]=1;}}
-var changed=true;while(changed){changed=false;for(var postOrderIndex=rootPostOrderedIndex-1;postOrderIndex>=0;--postOrderIndex){if(affected[postOrderIndex]===0)
-continue;affected[postOrderIndex]=0;if(dominators[postOrderIndex]===rootPostOrderedIndex)
-continue;nodeOrdinal=postOrderIndex2NodeOrdinal[postOrderIndex];var nodeFlag=!flags||(flags[nodeOrdinal]&flag);var newDominatorIndex=noEntry;var beginRetainerIndex=firstRetainerIndex[nodeOrdinal];var endRetainerIndex=firstRetainerIndex[nodeOrdinal+1];for(var retainerIndex=beginRetainerIndex;retainerIndex<endRetainerIndex;++retainerIndex){var retainerEdgeIndex=retainingEdges[retainerIndex];var retainerEdgeType=containmentEdges[retainerEdgeIndex+edgeTypeOffset];var retainerNodeIndex=retainingNodes[retainerIndex];if(retainerNodeIndex!==rootNodeIndex&&retainerEdgeType===edgeShortcutType)
-continue;var retainerNodeOrdinal=retainerNodeIndex/nodeFieldCount;var retainerNodeFlag=!flags||(flags[retainerNodeOrdinal]&flag);if(retainerNodeIndex!==rootNodeIndex&&nodeFlag&&!retainerNodeFlag)
-continue;var retanerPostOrderIndex=nodeOrdinal2PostOrderIndex[retainerNodeOrdinal];if(dominators[retanerPostOrderIndex]!==noEntry){if(newDominatorIndex===noEntry)
-newDominatorIndex=retanerPostOrderIndex;else{while(retanerPostOrderIndex!==newDominatorIndex){while(retanerPostOrderIndex<newDominatorIndex)
-retanerPostOrderIndex=dominators[retanerPostOrderIndex];while(newDominatorIndex<retanerPostOrderIndex)
-newDominatorIndex=dominators[newDominatorIndex];}}
-if(newDominatorIndex===rootPostOrderedIndex)
-break;}}
-if(newDominatorIndex!==noEntry&&dominators[postOrderIndex]!==newDominatorIndex){dominators[postOrderIndex]=newDominatorIndex;changed=true;nodeOrdinal=postOrderIndex2NodeOrdinal[postOrderIndex];beginEdgeToNodeFieldIndex=firstEdgeIndexes[nodeOrdinal]+edgeToNodeOffset;endEdgeToNodeFieldIndex=firstEdgeIndexes[nodeOrdinal+1];for(var toNodeFieldIndex=beginEdgeToNodeFieldIndex;toNodeFieldIndex<endEdgeToNodeFieldIndex;toNodeFieldIndex+=edgeFieldsCount){var childNodeOrdinal=containmentEdges[toNodeFieldIndex]/nodeFieldCount;affected[nodeOrdinal2PostOrderIndex[childNodeOrdinal]]=1;}}}}
-var dominatorsTree=new Uint32Array(nodesCount);for(var postOrderIndex=0,l=dominators.length;postOrderIndex<l;++postOrderIndex){nodeOrdinal=postOrderIndex2NodeOrdinal[postOrderIndex];dominatorsTree[nodeOrdinal]=postOrderIndex2NodeOrdinal[dominators[postOrderIndex]];}
-return dominatorsTree;},_calculateRetainedSizes:function(postOrderIndex2NodeOrdinal)
-{var nodeCount=this.nodeCount;var nodes=this._nodes;var nodeSelfSizeOffset=this._nodeSelfSizeOffset;var nodeFieldCount=this._nodeFieldCount;var dominatorsTree=this._dominatorsTree;var nodeRetainedSizeOffset=this._nodeRetainedSizeOffset=this._nodeEdgeCountOffset;delete this._nodeEdgeCountOffset;for(var nodeIndex=0,l=nodes.length;nodeIndex<l;nodeIndex+=nodeFieldCount)
-nodes[nodeIndex+nodeRetainedSizeOffset]=nodes[nodeIndex+nodeSelfSizeOffset];for(var postOrderIndex=0;postOrderIndex<nodeCount-1;++postOrderIndex){var nodeOrdinal=postOrderIndex2NodeOrdinal[postOrderIndex];var nodeIndex=nodeOrdinal*nodeFieldCount;var dominatorIndex=dominatorsTree[nodeOrdinal]*nodeFieldCount;nodes[dominatorIndex+nodeRetainedSizeOffset]+=nodes[nodeIndex+nodeRetainedSizeOffset];}},_buildDominatedNodes:function()
-{var indexArray=this._firstDominatedNodeIndex=new Uint32Array(this.nodeCount+1);var dominatedNodes=this._dominatedNodes=new Uint32Array(this.nodeCount-1);var nodeFieldCount=this._nodeFieldCount;var dominatorsTree=this._dominatorsTree;var fromNodeOrdinal=0;var toNodeOrdinal=this.nodeCount;var rootNodeOrdinal=this._rootNodeIndex/nodeFieldCount;if(rootNodeOrdinal===fromNodeOrdinal)
-fromNodeOrdinal=1;else if(rootNodeOrdinal===toNodeOrdinal-1)
-toNodeOrdinal=toNodeOrdinal-1;else
-throw new Error("Root node is expected to be either first or last");for(var nodeOrdinal=fromNodeOrdinal;nodeOrdinal<toNodeOrdinal;++nodeOrdinal)
-++indexArray[dominatorsTree[nodeOrdinal]];var firstDominatedNodeIndex=0;for(var i=0,l=this.nodeCount;i<l;++i){var dominatedCount=dominatedNodes[firstDominatedNodeIndex]=indexArray[i];indexArray[i]=firstDominatedNodeIndex;firstDominatedNodeIndex+=dominatedCount;}
-indexArray[this.nodeCount]=dominatedNodes.length;for(var nodeOrdinal=fromNodeOrdinal;nodeOrdinal<toNodeOrdinal;++nodeOrdinal){var dominatorOrdinal=dominatorsTree[nodeOrdinal];var dominatedRefIndex=indexArray[dominatorOrdinal];dominatedRefIndex+=(--dominatedNodes[dominatedRefIndex]);dominatedNodes[dominatedRefIndex]=nodeOrdinal*nodeFieldCount;}},_markInvisibleEdges:function()
-{throw new Error("Not implemented");},_calculateFlags:function()
-{throw new Error("Not implemented");},userObjectsMapAndFlag:function()
-{throw new Error("Not implemented");},calculateSnapshotDiff:function(baseSnapshotId,baseSnapshotAggregates)
-{var snapshotDiff=this._snapshotDiffs[baseSnapshotId];if(snapshotDiff)
-return snapshotDiff;snapshotDiff={};var aggregates=this.aggregates(true,"allObjects");for(var className in baseSnapshotAggregates){var baseAggregate=baseSnapshotAggregates[className];var diff=this._calculateDiffForClass(baseAggregate,aggregates[className]);if(diff)
-snapshotDiff[className]=diff;}
-var emptyBaseAggregate={ids:[],indexes:[],selfSizes:[]};for(var className in aggregates){if(className in baseSnapshotAggregates)
-continue;snapshotDiff[className]=this._calculateDiffForClass(emptyBaseAggregate,aggregates[className]);}
-this._snapshotDiffs[baseSnapshotId]=snapshotDiff;return snapshotDiff;},_calculateDiffForClass:function(baseAggregate,aggregate)
-{var baseIds=baseAggregate.ids;var baseIndexes=baseAggregate.indexes;var baseSelfSizes=baseAggregate.selfSizes;var indexes=aggregate?aggregate.idxs:[];var i=0,l=baseIds.length;var j=0,m=indexes.length;var diff={addedCount:0,removedCount:0,addedSize:0,removedSize:0,deletedIndexes:[],addedIndexes:[]};var nodeB=this.createNode(indexes[j]);while(i<l&&j<m){var nodeAId=baseIds[i];if(nodeAId<nodeB.id()){diff.deletedIndexes.push(baseIndexes[i]);diff.removedCount++;diff.removedSize+=baseSelfSizes[i];++i;}else if(nodeAId>nodeB.id()){diff.addedIndexes.push(indexes[j]);diff.addedCount++;diff.addedSize+=nodeB.selfSize();nodeB.nodeIndex=indexes[++j];}else{++i;nodeB.nodeIndex=indexes[++j];}}
-while(i<l){diff.deletedIndexes.push(baseIndexes[i]);diff.removedCount++;diff.removedSize+=baseSelfSizes[i];++i;}
-while(j<m){diff.addedIndexes.push(indexes[j]);diff.addedCount++;diff.addedSize+=nodeB.selfSize();nodeB.nodeIndex=indexes[++j];}
-diff.countDelta=diff.addedCount-diff.removedCount;diff.sizeDelta=diff.addedSize-diff.removedSize;if(!diff.addedCount&&!diff.removedCount)
-return null;return diff;},_nodeForSnapshotObjectId:function(snapshotObjectId)
-{for(var it=this._allNodes();it.hasNext();it.next()){if(it.node.id()===snapshotObjectId)
-return it.node;}
-return null;},nodeClassName:function(snapshotObjectId)
-{var node=this._nodeForSnapshotObjectId(snapshotObjectId);if(node)
-return node.className();return null;},dominatorIdsForNode:function(snapshotObjectId)
-{var node=this._nodeForSnapshotObjectId(snapshotObjectId);if(!node)
-return null;var result=[];while(!node.isRoot()){result.push(node.id());node.nodeIndex=node.dominatorIndex();}
-return result;},_parseFilter:function(filter)
-{if(!filter)
-return null;var parsedFilter=eval("(function(){return "+filter+"})()");return parsedFilter.bind(this);},createEdgesProvider:function(nodeIndex,showHiddenData)
-{var node=this.createNode(nodeIndex);var filter=this.containmentEdgesFilter(showHiddenData);return new WebInspector.HeapSnapshotEdgesProvider(this,filter,node.edges());},createEdgesProviderForTest:function(nodeIndex,filter)
-{var node=this.createNode(nodeIndex);return new WebInspector.HeapSnapshotEdgesProvider(this,filter,node.edges());},retainingEdgesFilter:function(showHiddenData)
-{return null;},containmentEdgesFilter:function(showHiddenData)
-{return null;},createRetainingEdgesProvider:function(nodeIndex,showHiddenData)
-{var node=this.createNode(nodeIndex);var filter=this.retainingEdgesFilter(showHiddenData);return new WebInspector.HeapSnapshotEdgesProvider(this,filter,node.retainers());},createAddedNodesProvider:function(baseSnapshotId,className)
-{var snapshotDiff=this._snapshotDiffs[baseSnapshotId];var diffForClass=snapshotDiff[className];return new WebInspector.HeapSnapshotNodesProvider(this,null,diffForClass.addedIndexes);},createDeletedNodesProvider:function(nodeIndexes)
-{return new WebInspector.HeapSnapshotNodesProvider(this,null,nodeIndexes);},classNodesFilter:function()
-{return null;},createNodesProviderForClass:function(className,aggregatesKey)
-{return new WebInspector.HeapSnapshotNodesProvider(this,this.classNodesFilter(),this.aggregates(false,aggregatesKey)[className].idxs);},createNodesProviderForDominator:function(nodeIndex)
-{var node=this.createNode(nodeIndex);return new WebInspector.HeapSnapshotNodesProvider(this,null,this._dominatedNodesOfNode(node));},updateStaticData:function()
-{return{nodeCount:this.nodeCount,rootNodeIndex:this._rootNodeIndex,totalSize:this.totalSize,uid:this.uid};}};WebInspector.HeapSnapshotFilteredOrderedIterator=function(iterator,filter,unfilteredIterationOrder)
-{this._filter=filter;this._iterator=iterator;this._unfilteredIterationOrder=unfilteredIterationOrder;this._iterationOrder=null;this._position=0;this._currentComparator=null;this._sortedPrefixLength=0;this._sortedSuffixLength=0;}
-WebInspector.HeapSnapshotFilteredOrderedIterator.prototype={_createIterationOrder:function()
-{if(this._iterationOrder)
-return;if(this._unfilteredIterationOrder&&!this._filter){this._iterationOrder=this._unfilteredIterationOrder.slice(0);this._unfilteredIterationOrder=null;return;}
-this._iterationOrder=[];var iterator=this._iterator;if(!this._unfilteredIterationOrder&&!this._filter){for(iterator.rewind();iterator.hasNext();iterator.next())
-this._iterationOrder.push(iterator.index());}else if(!this._unfilteredIterationOrder){for(iterator.rewind();iterator.hasNext();iterator.next()){if(this._filter(iterator.item()))
-this._iterationOrder.push(iterator.index());}}else{var order=this._unfilteredIterationOrder.constructor===Array?this._unfilteredIterationOrder:this._unfilteredIterationOrder.slice(0);for(var i=0,l=order.length;i<l;++i){iterator.setIndex(order[i]);if(this._filter(iterator.item()))
-this._iterationOrder.push(iterator.index());}
-this._unfilteredIterationOrder=null;}},rewind:function()
-{this._position=0;},hasNext:function()
-{return this._position<this._iterationOrder.length;},isEmpty:function()
-{if(this._iterationOrder)
-return!this._iterationOrder.length;if(this._unfilteredIterationOrder&&!this._filter)
-return!this._unfilteredIterationOrder.length;var iterator=this._iterator;if(!this._unfilteredIterationOrder&&!this._filter){iterator.rewind();return!iterator.hasNext();}else if(!this._unfilteredIterationOrder){for(iterator.rewind();iterator.hasNext();iterator.next())
-if(this._filter(iterator.item()))
-return false;}else{var order=this._unfilteredIterationOrder.constructor===Array?this._unfilteredIterationOrder:this._unfilteredIterationOrder.slice(0);for(var i=0,l=order.length;i<l;++i){iterator.setIndex(order[i]);if(this._filter(iterator.item()))
-return false;}}
-return true;},item:function()
-{this._iterator.setIndex(this._iterationOrder[this._position]);return this._iterator.item();},get length()
-{this._createIterationOrder();return this._iterationOrder.length;},next:function()
-{++this._position;},serializeItemsRange:function(begin,end)
-{this._createIterationOrder();if(begin>end)
-throw new Error("Start position > end position: "+begin+" > "+end);if(end>this._iterationOrder.length)
-end=this._iterationOrder.length;if(this._sortedPrefixLength<end&&begin<this._iterationOrder.length-this._sortedSuffixLength){this.sort(this._currentComparator,this._sortedPrefixLength,this._iterationOrder.length-1-this._sortedSuffixLength,begin,end-1);if(begin<=this._sortedPrefixLength)
-this._sortedPrefixLength=end;if(end>=this._iterationOrder.length-this._sortedSuffixLength)
-this._sortedSuffixLength=this._iterationOrder.length-begin;}
-this._position=begin;var startPosition=this._position;var count=end-begin;var result=new Array(count);for(var i=0;i<count&&this.hasNext();++i,this.next())
-result[i]=this.item().serialize();result.length=i;result.totalLength=this._iterationOrder.length;result.startPosition=startPosition;result.endPosition=this._position;return result;},sortAll:function()
-{this._createIterationOrder();if(this._sortedPrefixLength+this._sortedSuffixLength>=this._iterationOrder.length)
-return;this.sort(this._currentComparator,this._sortedPrefixLength,this._iterationOrder.length-1-this._sortedSuffixLength,this._sortedPrefixLength,this._iterationOrder.length-1-this._sortedSuffixLength);this._sortedPrefixLength=this._iterationOrder.length;this._sortedSuffixLength=0;},sortAndRewind:function(comparator)
-{this._currentComparator=comparator;this._sortedPrefixLength=0;this._sortedSuffixLength=0;this.rewind();}}
-WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator=function(fieldNames)
-{return{fieldName1:fieldNames[0],ascending1:fieldNames[1],fieldName2:fieldNames[2],ascending2:fieldNames[3]};}
-WebInspector.HeapSnapshotEdgesProvider=function(snapshot,filter,edgesIter)
-{this.snapshot=snapshot;WebInspector.HeapSnapshotFilteredOrderedIterator.call(this,edgesIter,filter);}
-WebInspector.HeapSnapshotEdgesProvider.prototype={sort:function(comparator,leftBound,rightBound,windowLeft,windowRight)
-{var fieldName1=comparator.fieldName1;var fieldName2=comparator.fieldName2;var ascending1=comparator.ascending1;var ascending2=comparator.ascending2;var edgeA=this._iterator.item().clone();var edgeB=edgeA.clone();var nodeA=this.snapshot.createNode();var nodeB=this.snapshot.createNode();function compareEdgeFieldName(ascending,indexA,indexB)
-{edgeA.edgeIndex=indexA;edgeB.edgeIndex=indexB;if(edgeB.name()==="__proto__")return-1;if(edgeA.name()==="__proto__")return 1;var result=edgeA.hasStringName()===edgeB.hasStringName()?(edgeA.name()<edgeB.name()?-1:(edgeA.name()>edgeB.name()?1:0)):(edgeA.hasStringName()?-1:1);return ascending?result:-result;}
-function compareNodeField(fieldName,ascending,indexA,indexB)
-{edgeA.edgeIndex=indexA;nodeA.nodeIndex=edgeA.nodeIndex();var valueA=nodeA[fieldName]();edgeB.edgeIndex=indexB;nodeB.nodeIndex=edgeB.nodeIndex();var valueB=nodeB[fieldName]();var result=valueA<valueB?-1:(valueA>valueB?1:0);return ascending?result:-result;}
-function compareEdgeAndNode(indexA,indexB){var result=compareEdgeFieldName(ascending1,indexA,indexB);if(result===0)
-result=compareNodeField(fieldName2,ascending2,indexA,indexB);if(result===0)
-return indexA-indexB;return result;}
-function compareNodeAndEdge(indexA,indexB){var result=compareNodeField(fieldName1,ascending1,indexA,indexB);if(result===0)
-result=compareEdgeFieldName(ascending2,indexA,indexB);if(result===0)
-return indexA-indexB;return result;}
-function compareNodeAndNode(indexA,indexB){var result=compareNodeField(fieldName1,ascending1,indexA,indexB);if(result===0)
-result=compareNodeField(fieldName2,ascending2,indexA,indexB);if(result===0)
-return indexA-indexB;return result;}
-if(fieldName1==="!edgeName")
-this._iterationOrder.sortRange(compareEdgeAndNode,leftBound,rightBound,windowLeft,windowRight);else if(fieldName2==="!edgeName")
-this._iterationOrder.sortRange(compareNodeAndEdge,leftBound,rightBound,windowLeft,windowRight);else
-this._iterationOrder.sortRange(compareNodeAndNode,leftBound,rightBound,windowLeft,windowRight);},__proto__:WebInspector.HeapSnapshotFilteredOrderedIterator.prototype}
-WebInspector.HeapSnapshotNodesProvider=function(snapshot,filter,nodeIndexes)
-{this.snapshot=snapshot;WebInspector.HeapSnapshotFilteredOrderedIterator.call(this,snapshot._allNodes(),filter,nodeIndexes);}
-WebInspector.HeapSnapshotNodesProvider.prototype={nodePosition:function(snapshotObjectId)
-{this._createIterationOrder();if(this.isEmpty())
-return-1;this.sortAll();var node=this.snapshot.createNode();for(var i=0;i<this._iterationOrder.length;i++){node.nodeIndex=this._iterationOrder[i];if(node.id()===snapshotObjectId)
-return i;}
-return-1;},sort:function(comparator,leftBound,rightBound,windowLeft,windowRight)
-{var fieldName1=comparator.fieldName1;var fieldName2=comparator.fieldName2;var ascending1=comparator.ascending1;var ascending2=comparator.ascending2;var nodeA=this.snapshot.createNode();var nodeB=this.snapshot.createNode();function sortByNodeField(fieldName,ascending)
-{var valueOrFunctionA=nodeA[fieldName];var valueA=typeof valueOrFunctionA!=="function"?valueOrFunctionA:valueOrFunctionA.call(nodeA);var valueOrFunctionB=nodeB[fieldName];var valueB=typeof valueOrFunctionB!=="function"?valueOrFunctionB:valueOrFunctionB.call(nodeB);var result=valueA<valueB?-1:(valueA>valueB?1:0);return ascending?result:-result;}
-function sortByComparator(indexA,indexB){nodeA.nodeIndex=indexA;nodeB.nodeIndex=indexB;var result=sortByNodeField(fieldName1,ascending1);if(result===0)
-result=sortByNodeField(fieldName2,ascending2);if(result===0)
-return indexA-indexB;return result;}
-this._iterationOrder.sortRange(sortByComparator,leftBound,rightBound,windowLeft,windowRight);},__proto__:WebInspector.HeapSnapshotFilteredOrderedIterator.prototype};WebInspector.HeapSnapshotSortableDataGrid=function(columns)
-{WebInspector.DataGrid.call(this,columns);this._recursiveSortingDepth=0;this._highlightedNode=null;this._populatedAndSorted=false;this.addEventListener("sorting complete",this._sortingComplete,this);this.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this.sortingChanged,this);}
-WebInspector.HeapSnapshotSortableDataGrid.Events={ContentShown:"ContentShown"}
-WebInspector.HeapSnapshotSortableDataGrid.prototype={defaultPopulateCount:function()
-{return 100;},dispose:function()
-{var children=this.topLevelNodes();for(var i=0,l=children.length;i<l;++i)
-children[i].dispose();},wasShown:function()
-{if(this._populatedAndSorted)
-this.dispatchEventToListeners(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,this);},_sortingComplete:function()
-{this.removeEventListener("sorting complete",this._sortingComplete,this);this._populatedAndSorted=true;this.dispatchEventToListeners(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,this);},willHide:function()
-{this._clearCurrentHighlight();},populateContextMenu:function(profilesPanel,contextMenu,event)
-{var td=event.target.enclosingNodeOrSelfWithNodeName("td");if(!td)
-return;var node=td.heapSnapshotNode;function revealInDominatorsView()
-{profilesPanel.showObject(node.snapshotNodeId,"Dominators");}
-function revealInSummaryView()
-{profilesPanel.showObject(node.snapshotNodeId,"Summary");}
-if(node&&node.showRetainingEdges){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Summary view":"Reveal in Summary View"),revealInSummaryView.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Dominators view":"Reveal in Dominators View"),revealInDominatorsView.bind(this));}
-else if(node instanceof WebInspector.HeapSnapshotInstanceNode||node instanceof WebInspector.HeapSnapshotObjectNode){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Dominators view":"Reveal in Dominators View"),revealInDominatorsView.bind(this));}else if(node instanceof WebInspector.HeapSnapshotDominatorObjectNode){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Summary view":"Reveal in Summary View"),revealInSummaryView.bind(this));}},resetSortingCache:function()
-{delete this._lastSortColumnIdentifier;delete this._lastSortAscending;},topLevelNodes:function()
-{return this.rootNode().children;},highlightObjectByHeapSnapshotId:function(heapSnapshotObjectId)
-{},highlightNode:function(node)
-{var prevNode=this._highlightedNode;this._clearCurrentHighlight();this._highlightedNode=node;this._highlightedNode.element.addStyleClass("highlighted-row");if(node===prevNode){var element=node.element;var parent=element.parentElement;var nextSibling=element.nextSibling;parent.removeChild(element);parent.insertBefore(element,nextSibling);}},nodeWasDetached:function(node)
-{if(this._highlightedNode===node)
-this._clearCurrentHighlight();},_clearCurrentHighlight:function()
-{if(!this._highlightedNode)
-return
-this._highlightedNode.element.removeStyleClass("highlighted-row");this._highlightedNode=null;},changeNameFilter:function(filter)
-{filter=filter.toLowerCase();var children=this.topLevelNodes();for(var i=0,l=children.length;i<l;++i){var node=children[i];if(node.depth===0)
-node.revealed=node._name.toLowerCase().indexOf(filter)!==-1;}
-this.updateVisibleNodes();},sortingChanged:function()
-{var sortAscending=this.isSortOrderAscending();var sortColumnIdentifier=this.sortColumnIdentifier();if(this._lastSortColumnIdentifier===sortColumnIdentifier&&this._lastSortAscending===sortAscending)
-return;this._lastSortColumnIdentifier=sortColumnIdentifier;this._lastSortAscending=sortAscending;var sortFields=this._sortFields(sortColumnIdentifier,sortAscending);function SortByTwoFields(nodeA,nodeB)
-{var field1=nodeA[sortFields[0]];var field2=nodeB[sortFields[0]];var result=field1<field2?-1:(field1>field2?1:0);if(!sortFields[1])
-result=-result;if(result!==0)
-return result;field1=nodeA[sortFields[2]];field2=nodeB[sortFields[2]];result=field1<field2?-1:(field1>field2?1:0);if(!sortFields[3])
-result=-result;return result;}
-this._performSorting(SortByTwoFields);},_performSorting:function(sortFunction)
-{this.recursiveSortingEnter();var children=this._topLevelNodes;this.rootNode().removeChildren();children.sort(sortFunction);for(var i=0,l=children.length;i<l;++i){var child=children[i];this.appendChildAfterSorting(child);if(child.expanded)
-child.sort();}
-this.updateVisibleNodes();this.recursiveSortingLeave();},appendChildAfterSorting:function(child)
-{var revealed=child.revealed;this.rootNode().appendChild(child);child.revealed=revealed;},updateVisibleNodes:function()
-{},recursiveSortingEnter:function()
-{++this._recursiveSortingDepth;},recursiveSortingLeave:function()
-{if(!this._recursiveSortingDepth)
-return;if(!--this._recursiveSortingDepth)
-this.dispatchEventToListeners("sorting complete");},__proto__:WebInspector.DataGrid.prototype}
-WebInspector.HeapSnapshotViewportDataGrid=function(columns)
-{WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);this.scrollContainer.addEventListener("scroll",this._onScroll.bind(this),true);this._topLevelNodes=[];this._topPadding=new WebInspector.HeapSnapshotPaddingNode();this._bottomPadding=new WebInspector.HeapSnapshotPaddingNode();this._nodeToHighlightAfterScroll=null;}
-WebInspector.HeapSnapshotViewportDataGrid.prototype={topLevelNodes:function()
-{return this._topLevelNodes;},appendChildAfterSorting:function(child)
-{},updateVisibleNodes:function()
-{var scrollTop=this.scrollContainer.scrollTop;var viewPortHeight=this.scrollContainer.offsetHeight;this._removePaddingRows();var children=this._topLevelNodes;var i=0;var topPadding=0;while(i<children.length){if(children[i].revealed){var newTop=topPadding+children[i].nodeHeight();if(newTop>scrollTop)
-break;topPadding=newTop;}
-++i;}
-var selectedNode=this.selectedNode;this.rootNode().removeChildren();var heightToFill=viewPortHeight+(scrollTop-topPadding);var filledHeight=0;while(i<children.length&&filledHeight<heightToFill){if(children[i].revealed){this.rootNode().appendChild(children[i]);filledHeight+=children[i].nodeHeight();}
-++i;}
-var bottomPadding=0;while(i<children.length){bottomPadding+=children[i].nodeHeight();++i;}
-this._addPaddingRows(topPadding,bottomPadding);if(selectedNode){if(selectedNode.parent){selectedNode.select(true);}else{this.selectedNode=selectedNode;}}},appendTopLevelNode:function(node)
-{this._topLevelNodes.push(node);},removeTopLevelNodes:function()
-{this.rootNode().removeChildren();this._topLevelNodes=[];},highlightNode:function(node)
-{if(this._isScrolledIntoView(node.element))
-WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightNode.call(this,node);else{node.element.scrollIntoViewIfNeeded(true);this._nodeToHighlightAfterScroll=node;}},_isScrolledIntoView:function(element)
-{var viewportTop=this.scrollContainer.scrollTop;var viewportBottom=viewportTop+this.scrollContainer.clientHeight;var elemTop=element.offsetTop
-var elemBottom=elemTop+element.offsetHeight;return elemBottom<=viewportBottom&&elemTop>=viewportTop;},_addPaddingRows:function(top,bottom)
-{if(this._topPadding.element.parentNode!==this.dataTableBody)
-this.dataTableBody.insertBefore(this._topPadding.element,this.dataTableBody.firstChild);if(this._bottomPadding.element.parentNode!==this.dataTableBody)
-this.dataTableBody.insertBefore(this._bottomPadding.element,this.dataTableBody.lastChild);this._topPadding.setHeight(top);this._bottomPadding.setHeight(bottom);},_removePaddingRows:function()
-{this._bottomPadding.removeFromTable();this._topPadding.removeFromTable();},onResize:function()
-{WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize.call(this);this.updateVisibleNodes();},_onScroll:function(event)
-{this.updateVisibleNodes();if(this._nodeToHighlightAfterScroll){WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightNode.call(this,this._nodeToHighlightAfterScroll);this._nodeToHighlightAfterScroll=null;}},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
-WebInspector.HeapSnapshotPaddingNode=function()
-{this.element=document.createElement("tr");this.element.addStyleClass("revealed");}
-WebInspector.HeapSnapshotPaddingNode.prototype={setHeight:function(height)
-{this.element.style.height=height+"px";},removeFromTable:function()
-{var parent=this.element.parentNode;if(parent)
-parent.removeChild(this.element);}}
-WebInspector.HeapSnapshotContainmentDataGrid=function(columns)
-{columns=columns||[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"80px",sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sortable:true,sort:WebInspector.DataGrid.Order.Descending}];WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);}
-WebInspector.HeapSnapshotContainmentDataGrid.prototype={setDataSource:function(snapshot,nodeIndex)
-{this.snapshot=snapshot;var node=new WebInspector.HeapSnapshotNode(snapshot,nodeIndex||snapshot.rootNodeIndex);var fakeEdge={node:node};this.setRootNode(new WebInspector.HeapSnapshotObjectNode(this,false,fakeEdge,null));this.rootNode().sort();},sortingChanged:function()
-{this.rootNode().sort();},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
-WebInspector.HeapSnapshotRetainmentDataGrid=function()
-{this.showRetainingEdges=true;var columns=[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"80px",sortable:true,sort:WebInspector.DataGrid.Order.Ascending},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sortable:true}];WebInspector.HeapSnapshotContainmentDataGrid.call(this,columns);}
-WebInspector.HeapSnapshotRetainmentDataGrid.Events={ExpandRetainersComplete:"ExpandRetainersComplete"}
-WebInspector.HeapSnapshotRetainmentDataGrid.prototype={_sortFields:function(sortColumn,sortAscending)
-{return{object:["_name",sortAscending,"_count",false],count:["_count",sortAscending,"_name",true],shallowSize:["_shallowSize",sortAscending,"_name",true],retainedSize:["_retainedSize",sortAscending,"_name",true],distance:["_distance",sortAscending,"_name",true]}[sortColumn];},reset:function()
-{this.rootNode().removeChildren();this.resetSortingCache();},setDataSource:function(snapshot,nodeIndex)
-{WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource.call(this,snapshot,nodeIndex);var dataGrid=this;var maxExpandLevels=20;function populateComplete()
-{this.removeEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,this);this.expand();if(--maxExpandLevels>0&&this.children.length>0){var retainer=this.children[0];if(retainer._distance>1){retainer.addEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,retainer);retainer.populate();return;}}
-dataGrid.dispatchEventToListeners(WebInspector.HeapSnapshotRetainmentDataGrid.Events.ExpandRetainersComplete);}
-this.rootNode().addEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,this.rootNode());},__proto__:WebInspector.HeapSnapshotContainmentDataGrid.prototype}
-WebInspector.HeapSnapshotConstructorsDataGrid=function()
-{var columns=[{id:"object",title:WebInspector.UIString("Constructor"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"90px",sortable:true},{id:"count",title:WebInspector.UIString("Objects Count"),width:"90px",sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sort:WebInspector.DataGrid.Order.Descending,sortable:true}];WebInspector.HeapSnapshotViewportDataGrid.call(this,columns);this._profileIndex=-1;this._topLevelNodes=[];this._objectIdToSelect=null;}
-WebInspector.HeapSnapshotConstructorsDataGrid.Request=function(minNodeId,maxNodeId)
-{if(typeof minNodeId==="number"){this.key=minNodeId+".."+maxNodeId;this.filter="function(node) { var id = node.id(); return id > "+minNodeId+" && id <= "+maxNodeId+"; }";}else{this.key="allObjects";this.filter=null;}}
-WebInspector.HeapSnapshotConstructorsDataGrid.prototype={_sortFields:function(sortColumn,sortAscending)
-{return{object:["_name",sortAscending,"_count",false],distance:["_distance",sortAscending,"_retainedSize",true],count:["_count",sortAscending,"_name",true],shallowSize:["_shallowSize",sortAscending,"_name",true],retainedSize:["_retainedSize",sortAscending,"_name",true]}[sortColumn];},highlightObjectByHeapSnapshotId:function(id)
-{if(!this.snapshot){this._objectIdToSelect=id;return;}
-function didGetClassName(className)
-{var constructorNodes=this.topLevelNodes();for(var i=0;i<constructorNodes.length;i++){var parent=constructorNodes[i];if(parent._name===className){parent.revealNodeBySnapshotObjectId(parseInt(id,10));return;}}}
-this.snapshot.nodeClassName(parseInt(id,10),didGetClassName.bind(this));},setDataSource:function(snapshot)
-{this.snapshot=snapshot;if(this._profileIndex===-1)
-this._populateChildren();if(this._objectIdToSelect){this.highlightObjectByHeapSnapshotId(this._objectIdToSelect);this._objectIdToSelect=null;}},setSelectionRange:function(minNodeId,maxNodeId)
-{this._populateChildren(new WebInspector.HeapSnapshotConstructorsDataGrid.Request(minNodeId,maxNodeId));},_aggregatesReceived:function(key,aggregates)
-{this._requestInProgress=null;if(this._nextRequest){this.snapshot.aggregates(false,this._nextRequest.key,this._nextRequest.filter,this._aggregatesReceived.bind(this,this._nextRequest.key));this._requestInProgress=this._nextRequest;this._nextRequest=null;}
-this.dispose();this.removeTopLevelNodes();this.resetSortingCache();for(var constructor in aggregates)
-this.appendTopLevelNode(new WebInspector.HeapSnapshotConstructorNode(this,constructor,aggregates[constructor],key));this.sortingChanged();this._lastKey=key;},_populateChildren:function(request)
-{request=request||new WebInspector.HeapSnapshotConstructorsDataGrid.Request();if(this._requestInProgress){this._nextRequest=this._requestInProgress.key===request.key?null:request;return;}
-if(this._lastKey===request.key)
-return;this._requestInProgress=request;this.snapshot.aggregates(false,request.key,request.filter,this._aggregatesReceived.bind(this,request.key));},filterSelectIndexChanged:function(profiles,profileIndex)
-{this._profileIndex=profileIndex;var request=null;if(profileIndex!==-1){var minNodeId=profileIndex>0?profiles[profileIndex-1].maxJSObjectId:0;var maxNodeId=profiles[profileIndex].maxJSObjectId;request=new WebInspector.HeapSnapshotConstructorsDataGrid.Request(minNodeId,maxNodeId)}
-this._populateChildren(request);},__proto__:WebInspector.HeapSnapshotViewportDataGrid.prototype}
-WebInspector.HeapSnapshotDiffDataGrid=function()
-{var columns=[{id:"object",title:WebInspector.UIString("Constructor"),disclosure:true,sortable:true},{id:"addedCount",title:WebInspector.UIString("# New"),width:"72px",sortable:true},{id:"removedCount",title:WebInspector.UIString("# Deleted"),width:"72px",sortable:true},{id:"countDelta",title:"# Delta",width:"64px",sortable:true},{id:"addedSize",title:WebInspector.UIString("Alloc. Size"),width:"72px",sortable:true,sort:WebInspector.DataGrid.Order.Descending},{id:"removedSize",title:WebInspector.UIString("Freed Size"),width:"72px",sortable:true},{id:"sizeDelta",title:"Size Delta",width:"72px",sortable:true}];WebInspector.HeapSnapshotViewportDataGrid.call(this,columns);}
-WebInspector.HeapSnapshotDiffDataGrid.prototype={defaultPopulateCount:function()
-{return 50;},_sortFields:function(sortColumn,sortAscending)
-{return{object:["_name",sortAscending,"_count",false],addedCount:["_addedCount",sortAscending,"_name",true],removedCount:["_removedCount",sortAscending,"_name",true],countDelta:["_countDelta",sortAscending,"_name",true],addedSize:["_addedSize",sortAscending,"_name",true],removedSize:["_removedSize",sortAscending,"_name",true],sizeDelta:["_sizeDelta",sortAscending,"_name",true]}[sortColumn];},setDataSource:function(snapshot)
-{this.snapshot=snapshot;},setBaseDataSource:function(baseSnapshot)
-{this.baseSnapshot=baseSnapshot;this.dispose();this.removeTopLevelNodes();this.resetSortingCache();if(this.baseSnapshot===this.snapshot){this.dispatchEventToListeners("sorting complete");return;}
-this._populateChildren();},_populateChildren:function()
-{function aggregatesForDiffReceived(aggregatesForDiff)
-{this.snapshot.calculateSnapshotDiff(this.baseSnapshot.uid,aggregatesForDiff,didCalculateSnapshotDiff.bind(this));function didCalculateSnapshotDiff(diffByClassName)
-{for(var className in diffByClassName){var diff=diffByClassName[className];this.appendTopLevelNode(new WebInspector.HeapSnapshotDiffNode(this,className,diff));}
-this.sortingChanged();}}
-this.baseSnapshot.aggregatesForDiff(aggregatesForDiffReceived.bind(this));},__proto__:WebInspector.HeapSnapshotViewportDataGrid.prototype}
-WebInspector.HeapSnapshotDominatorsDataGrid=function()
-{var columns=[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sort:WebInspector.DataGrid.Order.Descending,sortable:true}];WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);this._objectIdToSelect=null;}
-WebInspector.HeapSnapshotDominatorsDataGrid.prototype={defaultPopulateCount:function()
-{return 25;},setDataSource:function(snapshot)
-{this.snapshot=snapshot;var fakeNode={nodeIndex:this.snapshot.rootNodeIndex};this.setRootNode(new WebInspector.HeapSnapshotDominatorObjectNode(this,fakeNode));this.rootNode().sort();if(this._objectIdToSelect){this.highlightObjectByHeapSnapshotId(this._objectIdToSelect);this._objectIdToSelect=null;}},sortingChanged:function()
-{this.rootNode().sort();},highlightObjectByHeapSnapshotId:function(id)
-{if(!this.snapshot){this._objectIdToSelect=id;return;}
-function didGetDominators(dominatorIds)
-{if(!dominatorIds){WebInspector.log(WebInspector.UIString("Cannot find corresponding heap snapshot node"));return;}
-var dominatorNode=this.rootNode();expandNextDominator.call(this,dominatorIds,dominatorNode);}
-function expandNextDominator(dominatorIds,dominatorNode)
-{if(!dominatorNode){console.error("Cannot find dominator node");return;}
-if(!dominatorIds.length){this.highlightNode(dominatorNode);dominatorNode.element.scrollIntoViewIfNeeded(true);return;}
-var snapshotObjectId=dominatorIds.pop();dominatorNode.retrieveChildBySnapshotObjectId(snapshotObjectId,expandNextDominator.bind(this,dominatorIds));}
-this.snapshot.dominatorIdsForNode(parseInt(id,10),didGetDominators.bind(this));},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
-WebInspector.AllocationDataGrid=function()
-{var columns=[{id:"count",title:WebInspector.UIString("Count"),width:"72px",sortable:true,sort:WebInspector.DataGrid.Order.Descending},{id:"size",title:WebInspector.UIString("Size"),width:"72px",sortable:true,sort:WebInspector.DataGrid.Order.Descending},{id:"name",title:WebInspector.UIString("Function"),disclosure:true,sortable:true},];WebInspector.DataGrid.call(this,columns);this._linkifier=new WebInspector.Linkifier();}
-WebInspector.AllocationDataGrid.prototype={setDataSource:function(snapshot)
-{this._snapshot=snapshot;this._snapshot.allocationTracesTops(didReceiveAllocationTracesTops.bind(this));function didReceiveAllocationTracesTops(tops)
-{var root=this.rootNode();for(var i=0;i<tops.length;i++)
-root.appendChild(new WebInspector.AllocationGridNode(this,tops[i]));}},__proto__:WebInspector.DataGrid.prototype}
-WebInspector.AllocationGridNode=function(dataGrid,data)
-{WebInspector.DataGridNode.call(this,data,data.hasChildren);this._dataGrid=dataGrid;this._populated=false;}
-WebInspector.AllocationGridNode.prototype={populate:function()
-{if(this._populated)
-return;this._populated=true;this._dataGrid._snapshot.allocationNodeCallers(this.data.id,didReceiveCallers.bind(this));function didReceiveCallers(callers)
-{var callersChain=callers.nodesWithSingleCaller;var parentNode=this;for(var i=0;i<callersChain.length;i++){var child=new WebInspector.AllocationGridNode(this._dataGrid,callersChain[i]);parentNode.appendChild(child);parentNode=child;parentNode._populated=true;if(this.expanded)
-parentNode.expand();}
-var callersBranch=callers.branchingCallers;for(var i=0;i<callersBranch.length;i++)
-parentNode.appendChild(new WebInspector.AllocationGridNode(this._dataGrid,callersBranch[i]));}},expand:function()
-{WebInspector.DataGridNode.prototype.expand.call(this);if(this.children.length===1)
-this.children[0].expand();},createCell:function(columnIdentifier)
-{var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);if(columnIdentifier!=="name")
-return cell;var functionInfo=this.data;if(functionInfo.scriptName){var urlElement=this._dataGrid._linkifier.linkifyLocation(functionInfo.scriptName,functionInfo.line-1,functionInfo.column-1,"profile-node-file");urlElement.style.maxWidth="75%";cell.insertBefore(urlElement,cell.firstChild);}
-return cell;},__proto__:WebInspector.DataGridNode.prototype};WebInspector.HeapSnapshotGridNode=function(tree,hasChildren)
-{WebInspector.DataGridNode.call(this,null,hasChildren);this._dataGrid=tree;this._instanceCount=0;this._savedChildren=null;this._retrievedChildrenRanges=[];}
-WebInspector.HeapSnapshotGridNode.Events={PopulateComplete:"PopulateComplete"}
-WebInspector.HeapSnapshotGridNode.prototype={createProvider:function()
-{throw new Error("Needs implemented.");},_provider:function()
-{if(!this._providerObject)
-this._providerObject=this.createProvider();return this._providerObject;},createCell:function(columnIdentifier)
-{var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);if(this._searchMatched)
-cell.addStyleClass("highlight");return cell;},collapse:function()
-{WebInspector.DataGridNode.prototype.collapse.call(this);this._dataGrid.updateVisibleNodes();},dispose:function()
-{if(this._provider())
-this._provider().dispose();for(var node=this.children[0];node;node=node.traverseNextNode(true,this,true))
-if(node.dispose)
-node.dispose();},_reachableFromWindow:false,queryObjectContent:function(callback)
-{},wasDetached:function()
-{this._dataGrid.nodeWasDetached(this);},_toPercentString:function(num)
-{return num.toFixed(0)+"\u2009%";},childForPosition:function(nodePosition)
-{var indexOfFirsChildInRange=0;for(var i=0;i<this._retrievedChildrenRanges.length;i++){var range=this._retrievedChildrenRanges[i];if(range.from<=nodePosition&&nodePosition<range.to){var childIndex=indexOfFirsChildInRange+nodePosition-range.from;return this.children[childIndex];}
-indexOfFirsChildInRange+=range.to-range.from+1;}
-return null;},_createValueCell:function(columnIdentifier)
-{var cell=document.createElement("td");cell.className=columnIdentifier+"-column";if(this.dataGrid.snapshot.totalSize!==0){var div=document.createElement("div");var valueSpan=document.createElement("span");valueSpan.textContent=this.data[columnIdentifier];div.appendChild(valueSpan);var percentColumn=columnIdentifier+"-percent";if(percentColumn in this.data){var percentSpan=document.createElement("span");percentSpan.className="percent-column";percentSpan.textContent=this.data[percentColumn];div.appendChild(percentSpan);div.addStyleClass("heap-snapshot-multiple-values");}
-cell.appendChild(div);}
-return cell;},populate:function(event)
-{if(this._populated)
-return;this._populated=true;function sorted()
-{this._populateChildren();}
-this._provider().sortAndRewind(this.comparator(),sorted.bind(this));},expandWithoutPopulate:function(callback)
-{this._populated=true;this.expand();this._provider().sortAndRewind(this.comparator(),callback);},_populateChildren:function(fromPosition,toPosition,afterPopulate)
-{fromPosition=fromPosition||0;toPosition=toPosition||fromPosition+this._dataGrid.defaultPopulateCount();var firstNotSerializedPosition=fromPosition;function serializeNextChunk()
-{if(firstNotSerializedPosition>=toPosition)
-return;var end=Math.min(firstNotSerializedPosition+this._dataGrid.defaultPopulateCount(),toPosition);this._provider().serializeItemsRange(firstNotSerializedPosition,end,childrenRetrieved.bind(this));firstNotSerializedPosition=end;}
-function insertRetrievedChild(item,insertionIndex)
-{if(this._savedChildren){var hash=this._childHashForEntity(item);if(hash in this._savedChildren){this.insertChild(this._savedChildren[hash],insertionIndex);return;}}
-this.insertChild(this._createChildNode(item),insertionIndex);}
-function insertShowMoreButton(from,to,insertionIndex)
-{var button=new WebInspector.ShowMoreDataGridNode(this._populateChildren.bind(this),from,to,this._dataGrid.defaultPopulateCount());this.insertChild(button,insertionIndex);}
-function childrenRetrieved(items)
-{var itemIndex=0;var itemPosition=items.startPosition;var insertionIndex=0;if(!this._retrievedChildrenRanges.length){if(items.startPosition>0){this._retrievedChildrenRanges.push({from:0,to:0});insertShowMoreButton.call(this,0,items.startPosition,insertionIndex++);}
-this._retrievedChildrenRanges.push({from:items.startPosition,to:items.endPosition});for(var i=0,l=items.length;i<l;++i)
-insertRetrievedChild.call(this,items[i],insertionIndex++);if(items.endPosition<items.totalLength)
-insertShowMoreButton.call(this,items.endPosition,items.totalLength,insertionIndex++);}else{var rangeIndex=0;var found=false;var range;while(rangeIndex<this._retrievedChildrenRanges.length){range=this._retrievedChildrenRanges[rangeIndex];if(range.to>=itemPosition){found=true;break;}
-insertionIndex+=range.to-range.from;if(range.to<items.totalLength)
-insertionIndex+=1;++rangeIndex;}
-if(!found||items.startPosition<range.from){this.children[insertionIndex-1].setEndPosition(items.startPosition);insertShowMoreButton.call(this,items.startPosition,found?range.from:items.totalLength,insertionIndex);range={from:items.startPosition,to:items.startPosition};if(!found)
-rangeIndex=this._retrievedChildrenRanges.length;this._retrievedChildrenRanges.splice(rangeIndex,0,range);}else{insertionIndex+=itemPosition-range.from;}
-while(range.to<items.endPosition){var skipCount=range.to-itemPosition;insertionIndex+=skipCount;itemIndex+=skipCount;itemPosition=range.to;var nextRange=this._retrievedChildrenRanges[rangeIndex+1];var newEndOfRange=nextRange?nextRange.from:items.totalLength;if(newEndOfRange>items.endPosition)
-newEndOfRange=items.endPosition;while(itemPosition<newEndOfRange){insertRetrievedChild.call(this,items[itemIndex++],insertionIndex++);++itemPosition;}
-if(nextRange&&newEndOfRange===nextRange.from){range.to=nextRange.to;this.removeChild(this.children[insertionIndex]);this._retrievedChildrenRanges.splice(rangeIndex+1,1);}else{range.to=newEndOfRange;if(newEndOfRange===items.totalLength)
-this.removeChild(this.children[insertionIndex]);else
-this.children[insertionIndex].setStartPosition(items.endPosition);}}}
-this._instanceCount+=items.length;if(firstNotSerializedPosition<toPosition){serializeNextChunk.call(this);return;}
-if(afterPopulate)
-afterPopulate();this.dispatchEventToListeners(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete);}
-serializeNextChunk.call(this);},_saveChildren:function()
-{this._savedChildren=null;for(var i=0,childrenCount=this.children.length;i<childrenCount;++i){var child=this.children[i];if(!child.expanded)
-continue;if(!this._savedChildren)
-this._savedChildren={};this._savedChildren[this._childHashForNode(child)]=child;}},sort:function()
-{this._dataGrid.recursiveSortingEnter();function afterSort()
-{this._saveChildren();this.removeChildren();this._retrievedChildrenRanges=[];function afterPopulate()
-{for(var i=0,l=this.children.length;i<l;++i){var child=this.children[i];if(child.expanded)
-child.sort();}
-this._dataGrid.recursiveSortingLeave();}
-var instanceCount=this._instanceCount;this._instanceCount=0;this._populateChildren(0,instanceCount,afterPopulate.bind(this));}
-this._provider().sortAndRewind(this.comparator(),afterSort.bind(this));},__proto__:WebInspector.DataGridNode.prototype}
-WebInspector.HeapSnapshotGenericObjectNode=function(tree,node)
-{this.snapshotNodeIndex=0;WebInspector.HeapSnapshotGridNode.call(this,tree,false);if(!node)
-return;this._name=node.name;this._displayName=node.displayName;this._type=node.type;this._distance=node.distance;this._shallowSize=node.selfSize;this._retainedSize=node.retainedSize;this.snapshotNodeId=node.id;this.snapshotNodeIndex=node.nodeIndex;if(this._type==="string")
-this._reachableFromWindow=true;else if(this._type==="object"&&this._name.startsWith("Window")){this._name=this.shortenWindowURL(this._name,false);this._reachableFromWindow=true;}else if(node.canBeQueried)
-this._reachableFromWindow=true;if(node.detachedDOMTreeNode)
-this.detachedDOMTreeNode=true;};WebInspector.HeapSnapshotGenericObjectNode.prototype={createCell:function(columnIdentifier)
-{var cell=columnIdentifier!=="object"?this._createValueCell(columnIdentifier):this._createObjectCell();if(this._searchMatched)
-cell.addStyleClass("highlight");return cell;},_createObjectCell:function()
-{var cell=document.createElement("td");cell.className="object-column";var div=document.createElement("div");div.className="source-code event-properties";div.style.overflow="visible";var data=this.data["object"];if(this._prefixObjectCell)
-this._prefixObjectCell(div,data);var valueSpan=document.createElement("span");valueSpan.className="value console-formatted-"+data.valueStyle;valueSpan.textContent=data.value;div.appendChild(valueSpan);if(this.data.displayName){var nameSpan=document.createElement("span");nameSpan.className="name console-formatted-name";nameSpan.textContent=" "+this.data.displayName;div.appendChild(nameSpan);}
-var idSpan=document.createElement("span");idSpan.className="console-formatted-id";idSpan.textContent=" @"+data["nodeId"];div.appendChild(idSpan);if(this._postfixObjectCell)
-this._postfixObjectCell(div,data);cell.appendChild(div);cell.addStyleClass("disclosure");if(this.depth)
-cell.style.setProperty("padding-left",(this.depth*this.dataGrid.indentWidth)+"px");cell.heapSnapshotNode=this;return cell;},get data()
-{var data=this._emptyData();var value=this._name;var valueStyle="object";switch(this._type){case"concatenated string":case"string":value="\""+value+"\"";valueStyle="string";break;case"regexp":value="/"+value+"/";valueStyle="string";break;case"closure":value="function"+(value?" ":"")+value+"()";valueStyle="function";break;case"number":valueStyle="number";break;case"hidden":valueStyle="null";break;case"array":if(!value)
-value="[]";else
-value+="[]";break;};if(this._reachableFromWindow)
-valueStyle+=" highlight";if(value==="Object")
-value="";if(this.detachedDOMTreeNode)
-valueStyle+=" detached-dom-tree-node";data["object"]={valueStyle:valueStyle,value:value,nodeId:this.snapshotNodeId};data["displayName"]=this._displayName;data["distance"]=this._distance;data["shallowSize"]=Number.withThousandsSeparator(this._shallowSize);data["retainedSize"]=Number.withThousandsSeparator(this._retainedSize);data["shallowSize-percent"]=this._toPercentString(this._shallowSizePercent);data["retainedSize-percent"]=this._toPercentString(this._retainedSizePercent);return this._enhanceData?this._enhanceData(data):data;},queryObjectContent:function(callback,objectGroupName)
-{if(this._type==="string")
-callback(WebInspector.RemoteObject.fromPrimitiveValue(this._name));else{function formatResult(error,object)
-{if(!error&&object.type)
-callback(WebInspector.RemoteObject.fromPayload(object),!!error);else
-callback(WebInspector.RemoteObject.fromPrimitiveValue(WebInspector.UIString("Not available")));}
-HeapProfilerAgent.getObjectByHeapObjectId(String(this.snapshotNodeId),objectGroupName,formatResult);}},get _retainedSizePercent()
-{return this._retainedSize/this.dataGrid.snapshot.totalSize*100.0;},get _shallowSizePercent()
-{return this._shallowSize/this.dataGrid.snapshot.totalSize*100.0;},updateHasChildren:function()
-{function isEmptyCallback(isEmpty)
-{this.hasChildren=!isEmpty;}
-this._provider().isEmpty(isEmptyCallback.bind(this));},shortenWindowURL:function(fullName,hasObjectId)
-{var startPos=fullName.indexOf("/");var endPos=hasObjectId?fullName.indexOf("@"):fullName.length;if(startPos!==-1&&endPos!==-1){var fullURL=fullName.substring(startPos+1,endPos).trimLeft();var url=fullURL.trimURL();if(url.length>40)
-url=url.trimMiddle(40);return fullName.substr(0,startPos+2)+url+fullName.substr(endPos);}else
-return fullName;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
-WebInspector.HeapSnapshotObjectNode=function(tree,isFromBaseSnapshot,edge,parentGridNode)
-{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,edge.node);this._referenceName=edge.name;this._referenceType=edge.type;this._distance=edge.distance;this.showRetainingEdges=tree.showRetainingEdges;this._isFromBaseSnapshot=isFromBaseSnapshot;this._parentGridNode=parentGridNode;this._cycledWithAncestorGridNode=this._findAncestorWithSameSnapshotNodeId();if(!this._cycledWithAncestorGridNode)
-this.updateHasChildren();}
-WebInspector.HeapSnapshotObjectNode.prototype={createProvider:function()
-{var tree=this._dataGrid;var showHiddenData=WebInspector.settings.showAdvancedHeapSnapshotProperties.get();var snapshot=this._isFromBaseSnapshot?tree.baseSnapshot:tree.snapshot;if(this.showRetainingEdges)
-return snapshot.createRetainingEdgesProvider(this.snapshotNodeIndex,showHiddenData);else
-return snapshot.createEdgesProvider(this.snapshotNodeIndex,showHiddenData);},_findAncestorWithSameSnapshotNodeId:function()
-{var ancestor=this._parentGridNode;while(ancestor){if(ancestor.snapshotNodeId===this.snapshotNodeId)
-return ancestor;ancestor=ancestor._parentGridNode;}
-return null;},_createChildNode:function(item)
-{return new WebInspector.HeapSnapshotObjectNode(this._dataGrid,this._isFromBaseSnapshot,item,this);},_childHashForEntity:function(edge)
-{var prefix=this.showRetainingEdges?edge.node.id+"#":"";return prefix+edge.type+"#"+edge.name;},_childHashForNode:function(childNode)
-{var prefix=this.showRetainingEdges?childNode.snapshotNodeId+"#":"";return prefix+childNode._referenceType+"#"+childNode._referenceName;},comparator:function()
-{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["!edgeName",sortAscending,"retainedSize",false],count:["!edgeName",true,"retainedSize",false],shallowSize:["selfSize",sortAscending,"!edgeName",true],retainedSize:["retainedSize",sortAscending,"!edgeName",true],distance:["distance",sortAscending,"_name",true]}[sortColumnIdentifier]||["!edgeName",true,"retainedSize",false];return WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator(sortFields);},_emptyData:function()
-{return{count:"",addedCount:"",removedCount:"",countDelta:"",addedSize:"",removedSize:"",sizeDelta:""};},_enhanceData:function(data)
-{var name=this._referenceName;if(name==="")name="(empty)";var nameClass="name";switch(this._referenceType){case"context":nameClass="console-formatted-number";break;case"internal":case"hidden":nameClass="console-formatted-null";break;case"element":name="["+name+"]";break;}
-data["object"].nameClass=nameClass;data["object"].name=name;data["distance"]=this._distance;return data;},_prefixObjectCell:function(div,data)
-{if(this._cycledWithAncestorGridNode)
-div.className+=" cycled-ancessor-node";var nameSpan=document.createElement("span");nameSpan.className=data.nameClass;nameSpan.textContent=data.name;div.appendChild(nameSpan);var separatorSpan=document.createElement("span");separatorSpan.className="grayed";separatorSpan.textContent=this.showRetainingEdges?" in ":" :: ";div.appendChild(separatorSpan);},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype}
-WebInspector.HeapSnapshotInstanceNode=function(tree,baseSnapshot,snapshot,node)
-{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,node);this._baseSnapshotOrSnapshot=baseSnapshot||snapshot;this._isDeletedNode=!!baseSnapshot;this.updateHasChildren();};WebInspector.HeapSnapshotInstanceNode.prototype={createProvider:function()
-{var showHiddenData=WebInspector.settings.showAdvancedHeapSnapshotProperties.get();return this._baseSnapshotOrSnapshot.createEdgesProvider(this.snapshotNodeIndex,showHiddenData);},_createChildNode:function(item)
-{return new WebInspector.HeapSnapshotObjectNode(this._dataGrid,this._isDeletedNode,item,null);},_childHashForEntity:function(edge)
-{return edge.type+"#"+edge.name;},_childHashForNode:function(childNode)
-{return childNode._referenceType+"#"+childNode._referenceName;},comparator:function()
-{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["!edgeName",sortAscending,"retainedSize",false],distance:["distance",sortAscending,"retainedSize",false],count:["!edgeName",true,"retainedSize",false],addedSize:["selfSize",sortAscending,"!edgeName",true],removedSize:["selfSize",sortAscending,"!edgeName",true],shallowSize:["selfSize",sortAscending,"!edgeName",true],retainedSize:["retainedSize",sortAscending,"!edgeName",true]}[sortColumnIdentifier]||["!edgeName",true,"retainedSize",false];return WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator(sortFields);},_emptyData:function()
-{return{count:"",countDelta:"",sizeDelta:""};},_enhanceData:function(data)
-{if(this._isDeletedNode){data["addedCount"]="";data["addedSize"]="";data["removedCount"]="\u2022";data["removedSize"]=Number.withThousandsSeparator(this._shallowSize);}else{data["addedCount"]="\u2022";data["addedSize"]=Number.withThousandsSeparator(this._shallowSize);data["removedCount"]="";data["removedSize"]="";}
-return data;},get isDeletedNode()
-{return this._isDeletedNode;},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype}
-WebInspector.HeapSnapshotConstructorNode=function(tree,className,aggregate,aggregatesKey)
-{WebInspector.HeapSnapshotGridNode.call(this,tree,aggregate.count>0);this._name=className;this._aggregatesKey=aggregatesKey;this._distance=aggregate.distance;this._count=aggregate.count;this._shallowSize=aggregate.self;this._retainedSize=aggregate.maxRet;}
-WebInspector.HeapSnapshotConstructorNode.prototype={createProvider:function()
-{return this._dataGrid.snapshot.createNodesProviderForClass(this._name,this._aggregatesKey)},revealNodeBySnapshotObjectId:function(snapshotObjectId)
-{function didExpand()
-{this._provider().nodePosition(snapshotObjectId,didGetNodePosition.bind(this));}
-function didGetNodePosition(nodePosition)
-{if(nodePosition===-1)
-this.collapse();else
-this._populateChildren(nodePosition,null,didPopulateChildren.bind(this,nodePosition));}
-function didPopulateChildren(nodePosition)
-{var indexOfFirsChildInRange=0;for(var i=0;i<this._retrievedChildrenRanges.length;i++){var range=this._retrievedChildrenRanges[i];if(range.from<=nodePosition&&nodePosition<range.to){var childIndex=indexOfFirsChildInRange+nodePosition-range.from;var instanceNode=this.children[childIndex];this._dataGrid.highlightNode(instanceNode);return;}
-indexOfFirsChildInRange+=range.to-range.from+1;}}
-this.expandWithoutPopulate(didExpand.bind(this));},createCell:function(columnIdentifier)
-{var cell=columnIdentifier!=="object"?this._createValueCell(columnIdentifier):WebInspector.HeapSnapshotGridNode.prototype.createCell.call(this,columnIdentifier);if(this._searchMatched)
-cell.addStyleClass("highlight");return cell;},_createChildNode:function(item)
-{return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,null,this._dataGrid.snapshot,item);},comparator:function()
-{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"retainedSize",false],distance:["distance",sortAscending,"retainedSize",false],count:["id",true,"retainedSize",false],shallowSize:["selfSize",sortAscending,"id",true],retainedSize:["retainedSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator(sortFields);},_childHashForEntity:function(node)
-{return node.id;},_childHashForNode:function(childNode)
-{return childNode.snapshotNodeId;},get data()
-{var data={object:this._name};data["count"]=Number.withThousandsSeparator(this._count);data["distance"]=this._distance;data["shallowSize"]=Number.withThousandsSeparator(this._shallowSize);data["retainedSize"]=Number.withThousandsSeparator(this._retainedSize);data["count-percent"]=this._toPercentString(this._countPercent);data["shallowSize-percent"]=this._toPercentString(this._shallowSizePercent);data["retainedSize-percent"]=this._toPercentString(this._retainedSizePercent);return data;},get _countPercent()
-{return this._count/this.dataGrid.snapshot.nodeCount*100.0;},get _retainedSizePercent()
-{return this._retainedSize/this.dataGrid.snapshot.totalSize*100.0;},get _shallowSizePercent()
-{return this._shallowSize/this.dataGrid.snapshot.totalSize*100.0;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
-WebInspector.HeapSnapshotDiffNodesProvider=function(addedNodesProvider,deletedNodesProvider,addedCount,removedCount)
-{this._addedNodesProvider=addedNodesProvider;this._deletedNodesProvider=deletedNodesProvider;this._addedCount=addedCount;this._removedCount=removedCount;}
-WebInspector.HeapSnapshotDiffNodesProvider.prototype={dispose:function()
-{this._addedNodesProvider.dispose();this._deletedNodesProvider.dispose();},isEmpty:function(callback)
-{callback(false);},serializeItemsRange:function(beginPosition,endPosition,callback)
-{function didReceiveAllItems(items)
-{items.totalLength=this._addedCount+this._removedCount;callback(items);}
-function didReceiveDeletedItems(addedItems,items)
-{if(!addedItems.length)
-addedItems.startPosition=this._addedCount+items.startPosition;for(var i=0;i<items.length;i++){items[i].isAddedNotRemoved=false;addedItems.push(items[i]);}
-addedItems.endPosition=this._addedCount+items.endPosition;didReceiveAllItems.call(this,addedItems);}
-function didReceiveAddedItems(items)
-{for(var i=0;i<items.length;i++)
-items[i].isAddedNotRemoved=true;if(items.endPosition<endPosition)
-return this._deletedNodesProvider.serializeItemsRange(0,endPosition-items.endPosition,didReceiveDeletedItems.bind(this,items));items.totalLength=this._addedCount+this._removedCount;didReceiveAllItems.call(this,items);}
-if(beginPosition<this._addedCount)
-this._addedNodesProvider.serializeItemsRange(beginPosition,endPosition,didReceiveAddedItems.bind(this));else
-this._deletedNodesProvider.serializeItemsRange(beginPosition-this._addedCount,endPosition-this._addedCount,didReceiveDeletedItems.bind(this,[]));},sortAndRewind:function(comparator,callback)
-{function afterSort()
-{this._deletedNodesProvider.sortAndRewind(comparator,callback);}
-this._addedNodesProvider.sortAndRewind(comparator,afterSort.bind(this));}};WebInspector.HeapSnapshotDiffNode=function(tree,className,diffForClass)
-{WebInspector.HeapSnapshotGridNode.call(this,tree,true);this._name=className;this._addedCount=diffForClass.addedCount;this._removedCount=diffForClass.removedCount;this._countDelta=diffForClass.countDelta;this._addedSize=diffForClass.addedSize;this._removedSize=diffForClass.removedSize;this._sizeDelta=diffForClass.sizeDelta;this._deletedIndexes=diffForClass.deletedIndexes;}
-WebInspector.HeapSnapshotDiffNode.prototype={createProvider:function()
-{var tree=this._dataGrid;return new WebInspector.HeapSnapshotDiffNodesProvider(tree.snapshot.createAddedNodesProvider(tree.baseSnapshot.uid,this._name),tree.baseSnapshot.createDeletedNodesProvider(this._deletedIndexes),this._addedCount,this._removedCount);},_createChildNode:function(item)
-{if(item.isAddedNotRemoved)
-return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,null,this._dataGrid.snapshot,item);else
-return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,this._dataGrid.baseSnapshot,null,item);},_childHashForEntity:function(node)
-{return node.id;},_childHashForNode:function(childNode)
-{return childNode.snapshotNodeId;},comparator:function()
-{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"selfSize",false],addedCount:["selfSize",sortAscending,"id",true],removedCount:["selfSize",sortAscending,"id",true],countDelta:["selfSize",sortAscending,"id",true],addedSize:["selfSize",sortAscending,"id",true],removedSize:["selfSize",sortAscending,"id",true],sizeDelta:["selfSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator(sortFields);},_signForDelta:function(delta)
-{if(delta===0)
-return"";if(delta>0)
-return"+";else
-return"\u2212";},get data()
-{var data={object:this._name};data["addedCount"]=Number.withThousandsSeparator(this._addedCount);data["removedCount"]=Number.withThousandsSeparator(this._removedCount);data["countDelta"]=this._signForDelta(this._countDelta)+Number.withThousandsSeparator(Math.abs(this._countDelta));data["addedSize"]=Number.withThousandsSeparator(this._addedSize);data["removedSize"]=Number.withThousandsSeparator(this._removedSize);data["sizeDelta"]=this._signForDelta(this._sizeDelta)+Number.withThousandsSeparator(Math.abs(this._sizeDelta));return data;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
-WebInspector.HeapSnapshotDominatorObjectNode=function(tree,node)
-{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,node);this.updateHasChildren();};WebInspector.HeapSnapshotDominatorObjectNode.prototype={createProvider:function()
-{return this._dataGrid.snapshot.createNodesProviderForDominator(this.snapshotNodeIndex);},retrieveChildBySnapshotObjectId:function(snapshotObjectId,callback)
-{function didExpand()
-{this._provider().nodePosition(snapshotObjectId,didGetNodePosition.bind(this));}
-function didGetNodePosition(nodePosition)
-{if(nodePosition===-1){this.collapse();callback(null);}else
-this._populateChildren(nodePosition,null,didPopulateChildren.bind(this,nodePosition));}
-function didPopulateChildren(nodePosition)
-{var child=this.childForPosition(nodePosition);callback(child);}
-this.hasChildren=true;this.expandWithoutPopulate(didExpand.bind(this));},_createChildNode:function(item)
-{return new WebInspector.HeapSnapshotDominatorObjectNode(this._dataGrid,item);},_childHashForEntity:function(node)
-{return node.id;},_childHashForNode:function(childNode)
-{return childNode.snapshotNodeId;},comparator:function()
-{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"retainedSize",false],shallowSize:["selfSize",sortAscending,"id",true],retainedSize:["retainedSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.createComparator(sortFields);},_emptyData:function()
-{return{};},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype};WebInspector.HeapSnapshotLoader=function(dispatcher)
-{this._reset();this._progress=new WebInspector.HeapSnapshotProgress(dispatcher);}
-WebInspector.HeapSnapshotLoader.prototype={dispose:function()
-{this._reset();},_reset:function()
-{this._json="";this._state="find-snapshot-info";this._snapshot={};},close:function()
-{if(this._json)
-this._parseStringsArray();},buildSnapshot:function(constructorName)
-{this._progress.updateStatus("Processing snapshot\u2026");var constructor=WebInspector[constructorName];var result=new constructor(this._snapshot,this._progress);this._reset();return result;},_parseUintArray:function()
-{var index=0;var char0="0".charCodeAt(0),char9="9".charCodeAt(0),closingBracket="]".charCodeAt(0);var length=this._json.length;while(true){while(index<length){var code=this._json.charCodeAt(index);if(char0<=code&&code<=char9)
-break;else if(code===closingBracket){this._json=this._json.slice(index+1);return false;}
-++index;}
-if(index===length){this._json="";return true;}
-var nextNumber=0;var startIndex=index;while(index<length){var code=this._json.charCodeAt(index);if(char0>code||code>char9)
-break;nextNumber*=10;nextNumber+=(code-char0);++index;}
-if(index===length){this._json=this._json.slice(startIndex);return true;}
-this._array[this._arrayIndex++]=nextNumber;}},_parseStringsArray:function()
-{this._progress.updateStatus("Parsing strings\u2026");var closingBracketIndex=this._json.lastIndexOf("]");if(closingBracketIndex===-1)
-throw new Error("Incomplete JSON");this._json=this._json.slice(0,closingBracketIndex+1);this._snapshot.strings=JSON.parse(this._json);},write:function(chunk)
-{this._json+=chunk;while(true){switch(this._state){case"find-snapshot-info":{var snapshotToken="\"snapshot\"";var snapshotTokenIndex=this._json.indexOf(snapshotToken);if(snapshotTokenIndex===-1)
-throw new Error("Snapshot token not found");this._json=this._json.slice(snapshotTokenIndex+snapshotToken.length+1);this._state="parse-snapshot-info";this._progress.updateStatus("Loading snapshot info\u2026");break;}
-case"parse-snapshot-info":{var closingBracketIndex=WebInspector.findBalancedCurlyBrackets(this._json);if(closingBracketIndex===-1)
-return;this._snapshot.snapshot=(JSON.parse(this._json.slice(0,closingBracketIndex)));this._json=this._json.slice(closingBracketIndex);this._state="find-nodes";break;}
-case"find-nodes":{var nodesToken="\"nodes\"";var nodesTokenIndex=this._json.indexOf(nodesToken);if(nodesTokenIndex===-1)
-return;var bracketIndex=this._json.indexOf("[",nodesTokenIndex);if(bracketIndex===-1)
-return;this._json=this._json.slice(bracketIndex+1);var node_fields_count=this._snapshot.snapshot.meta.node_fields.length;var nodes_length=this._snapshot.snapshot.node_count*node_fields_count;this._array=new Uint32Array(nodes_length);this._arrayIndex=0;this._state="parse-nodes";break;}
-case"parse-nodes":{var hasMoreData=this._parseUintArray();this._progress.updateProgress("Loading nodes\u2026 %d\%",this._arrayIndex,this._array.length);if(hasMoreData)
-return;this._snapshot.nodes=this._array;this._state="find-edges";this._array=null;break;}
-case"find-edges":{var edgesToken="\"edges\"";var edgesTokenIndex=this._json.indexOf(edgesToken);if(edgesTokenIndex===-1)
-return;var bracketIndex=this._json.indexOf("[",edgesTokenIndex);if(bracketIndex===-1)
-return;this._json=this._json.slice(bracketIndex+1);var edge_fields_count=this._snapshot.snapshot.meta.edge_fields.length;var edges_length=this._snapshot.snapshot.edge_count*edge_fields_count;this._array=new Uint32Array(edges_length);this._arrayIndex=0;this._state="parse-edges";break;}
-case"parse-edges":{var hasMoreData=this._parseUintArray();this._progress.updateProgress("Loading edges\u2026 %d\%",this._arrayIndex,this._array.length);if(hasMoreData)
-return;this._snapshot.edges=this._array;this._array=null;if(WebInspector.HeapSnapshot.enableAllocationProfiler)
-this._state="find-trace-function-infos";else
-this._state="find-strings";break;}
-case"find-trace-function-infos":{var tracesToken="\"trace_function_infos\"";var tracesTokenIndex=this._json.indexOf(tracesToken);if(tracesTokenIndex===-1)
-return;var bracketIndex=this._json.indexOf("[",tracesTokenIndex);if(bracketIndex===-1)
-return;this._json=this._json.slice(bracketIndex+1);var trace_function_info_field_count=this._snapshot.snapshot.meta.trace_function_info_fields.length;var trace_function_info_length=this._snapshot.snapshot.trace_function_count*trace_function_info_field_count;this._array=new Uint32Array(trace_function_info_length);this._arrayIndex=0;this._state="parse-trace-function-infos";break;}
-case"parse-trace-function-infos":{if(this._parseUintArray())
-return;this._snapshot.trace_function_infos=this._array;this._array=null;this._state="find-trace-tree";break;}
-case"find-trace-tree":{var tracesToken="\"trace_tree\"";var tracesTokenIndex=this._json.indexOf(tracesToken);if(tracesTokenIndex===-1)
-return;var bracketIndex=this._json.indexOf("[",tracesTokenIndex);if(bracketIndex===-1)
-return;this._json=this._json.slice(bracketIndex);this._state="parse-trace-tree";break;}
-case"parse-trace-tree":{var stringsToken="\"strings\"";var stringsTokenIndex=this._json.indexOf(stringsToken);if(stringsTokenIndex===-1)
-return;var bracketIndex=this._json.lastIndexOf("]",stringsTokenIndex);this._snapshot.trace_tree=JSON.parse(this._json.substring(0,bracketIndex+1));this._json=this._json.slice(bracketIndex);this._state="find-strings";this._progress.updateStatus("Loading strings\u2026");break;}
-case"find-strings":{var stringsToken="\"strings\"";var stringsTokenIndex=this._json.indexOf(stringsToken);if(stringsTokenIndex===-1)
-return;var bracketIndex=this._json.indexOf("[",stringsTokenIndex);if(bracketIndex===-1)
-return;this._json=this._json.slice(bracketIndex);this._state="accumulate-strings";break;}
-case"accumulate-strings":return;}}}};;WebInspector.HeapSnapshotWorkerWrapper=function()
-{}
-WebInspector.HeapSnapshotWorkerWrapper.prototype={postMessage:function(message)
-{},terminate:function()
-{},__proto__:WebInspector.Object.prototype}
-WebInspector.HeapSnapshotRealWorker=function()
-{this._worker=new Worker("HeapSnapshotWorker.js");this._worker.addEventListener("message",this._messageReceived.bind(this),false);}
-WebInspector.HeapSnapshotRealWorker.prototype={_messageReceived:function(event)
-{var message=event.data;this.dispatchEventToListeners("message",message);},postMessage:function(message)
-{this._worker.postMessage(message);},terminate:function()
-{this._worker.terminate();},__proto__:WebInspector.HeapSnapshotWorkerWrapper.prototype}
-WebInspector.AsyncTaskQueue=function()
-{this._queue=[];this._isTimerSheduled=false;}
-WebInspector.AsyncTaskQueue.prototype={addTask:function(task)
-{this._queue.push(task);this._scheduleTimer();},_onTimeout:function()
-{this._isTimerSheduled=false;var queue=this._queue;this._queue=[];for(var i=0;i<queue.length;i++){try{queue[i]();}catch(e){console.error("Exception while running task: "+e.stack);}}
-this._scheduleTimer();},_scheduleTimer:function()
-{if(this._queue.length&&!this._isTimerSheduled){setTimeout(this._onTimeout.bind(this),0);this._isTimerSheduled=true;}}}
-WebInspector.HeapSnapshotFakeWorker=function()
-{this._dispatcher=new WebInspector.HeapSnapshotWorkerDispatcher(window,this._postMessageFromWorker.bind(this));this._asyncTaskQueue=new WebInspector.AsyncTaskQueue();}
-WebInspector.HeapSnapshotFakeWorker.prototype={postMessage:function(message)
-{function dispatch()
-{if(this._dispatcher)
-this._dispatcher.dispatchMessage({data:message});}
-this._asyncTaskQueue.addTask(dispatch.bind(this));},terminate:function()
-{this._dispatcher=null;},_postMessageFromWorker:function(message)
-{function send()
-{this.dispatchEventToListeners("message",message);}
-this._asyncTaskQueue.addTask(send.bind(this));},__proto__:WebInspector.HeapSnapshotWorkerWrapper.prototype}
-WebInspector.HeapSnapshotWorkerProxy=function(eventHandler)
-{this._eventHandler=eventHandler;this._nextObjectId=1;this._nextCallId=1;this._callbacks=[];this._previousCallbacks=[];this._worker=typeof InspectorTest==="undefined"?new WebInspector.HeapSnapshotRealWorker():new WebInspector.HeapSnapshotFakeWorker();this._worker.addEventListener("message",this._messageReceived,this);}
+pushEntryInfoRow(WebInspector.UIString("Not optimized"),node.deoptReason);return entryInfo;},canJumpToEntry:function(entryIndex)
+{return this._timelineData.entryNodes[entryIndex].scriptId!=="0";},entryData:function(entryIndex)
+{return this._timelineData.entryNodes[entryIndex];}};WebInspector.HeapSnapshotProgressEvent={Update:"ProgressUpdate"};WebInspector.HeapSnapshotCommon={}
+WebInspector.HeapSnapshotCommon.AllocationNodeCallers=function()
+{this.nodesWithSingleCaller;this.branchingCallers;}
+WebInspector.HeapSnapshotCommon.Aggregate=function()
+{this.count;this.distance;this.self;this.maxRet;this.type;this.name;this.idxs;}
+WebInspector.HeapSnapshotCommon.DiffForClass=function()
+{this.addedCount;this.removedCount;this.addedSize;this.removedSize;this.deletedIndexes;this.addedIndexes;this.countDelta;this.sizeDelta;}
+WebInspector.HeapSnapshotCommon.ComparatorConfig=function()
+{this.fieldName1;this.ascending1;this.fieldName2;this.ascending2;}
+WebInspector.HeapSnapshotCommon.WorkerCommand=function()
+{this.callId;this.disposition;this.objectId;this.newObjectId;this.methodName;this.methodArguments;this.source;};WebInspector.HeapSnapshotWorkerProxy=function(eventHandler)
+{this._eventHandler=eventHandler;this._nextObjectId=1;this._nextCallId=1;this._callbacks=[];this._previousCallbacks=[];this._worker=new Worker("HeapSnapshotWorker.js");this._worker.onmessage=this._messageReceived.bind(this);if(WebInspector.HeapSnapshotView.allocationProfilerEnabled)
+this._postMessage({disposition:"enableAllocationProfiler"});}
 WebInspector.HeapSnapshotWorkerProxy.prototype={createLoader:function(snapshotConstructorName,proxyConstructor)
 {var objectId=this._nextObjectId++;var proxy=new WebInspector.HeapSnapshotLoaderProxy(this,objectId,snapshotConstructorName,proxyConstructor);this._postMessage({callId:this._nextCallId++,disposition:"create",objectId:objectId,methodName:"WebInspector.HeapSnapshotLoader"});return proxy;},dispose:function()
 {this._worker.terminate();if(this._interval)
 clearInterval(this._interval);},disposeObject:function(objectId)
-{this._postMessage({callId:this._nextCallId++,disposition:"dispose",objectId:objectId});},callGetter:function(callback,objectId,getterName)
+{this._postMessage({callId:this._nextCallId++,disposition:"dispose",objectId:objectId});},evaluateForTest:function(script,callback)
+{var callId=this._nextCallId++;this._callbacks[callId]=callback;this._postMessage({callId:callId,disposition:"evaluateForTest",source:script});},callGetter:function(callback,objectId,getterName)
 {var callId=this._nextCallId++;this._callbacks[callId]=callback;this._postMessage({callId:callId,disposition:"getter",objectId:objectId,methodName:getterName});},callFactoryMethod:function(callback,objectId,methodName,proxyConstructor)
-{var callId=this._nextCallId++;var methodArguments=Array.prototype.slice.call(arguments,4);var newObjectId=this._nextObjectId++;if(callback){function wrapCallback(remoteResult)
+{var callId=this._nextCallId++;var methodArguments=Array.prototype.slice.call(arguments,4);var newObjectId=this._nextObjectId++;function wrapCallback(remoteResult)
 {callback(remoteResult?new proxyConstructor(this,newObjectId):null);}
-this._callbacks[callId]=wrapCallback.bind(this);this._postMessage({callId:callId,disposition:"factory",objectId:objectId,methodName:methodName,methodArguments:methodArguments,newObjectId:newObjectId});return null;}else{this._postMessage({callId:callId,disposition:"factory",objectId:objectId,methodName:methodName,methodArguments:methodArguments,newObjectId:newObjectId});return new proxyConstructor(this,newObjectId);}},callMethod:function(callback,objectId,methodName)
+if(callback){this._callbacks[callId]=wrapCallback.bind(this);this._postMessage({callId:callId,disposition:"factory",objectId:objectId,methodName:methodName,methodArguments:methodArguments,newObjectId:newObjectId});return null;}else{this._postMessage({callId:callId,disposition:"factory",objectId:objectId,methodName:methodName,methodArguments:methodArguments,newObjectId:newObjectId});return new proxyConstructor(this,newObjectId);}},callMethod:function(callback,objectId,methodName)
 {var callId=this._nextCallId++;var methodArguments=Array.prototype.slice.call(arguments,3);if(callback)
 this._callbacks[callId]=callback;this._postMessage({callId:callId,disposition:"method",objectId:objectId,methodName:methodName,methodArguments:methodArguments});},startCheckingForLongRunningCalls:function()
 {if(this._interval)
@@ -1365,7 +515,7 @@
 {var data=event.data;if(data.eventName){if(this._eventHandler)
 this._eventHandler(data.eventName,data.data);return;}
 if(data.error){if(data.errorMethodName)
-WebInspector.log(WebInspector.UIString("An error happened when a call for method '%s' was requested",data.errorMethodName));WebInspector.log(data.errorCallStack);delete this._callbacks[data.callId];return;}
+WebInspector.log(WebInspector.UIString("An error happened when a call for method '%s' was requested",data.errorMethodName));WebInspector.log(data["errorCallStack"]);delete this._callbacks[data.callId];return;}
 if(!this._callbacks[data.callId])
 return;var callback=this._callbacks[data.callId];delete this._callbacks[data.callId];callback(data.result);},_postMessage:function(message)
 {this._worker.postMessage(message);},__proto__:WebInspector.Object.prototype}
@@ -1423,25 +573,391 @@
 {this.callMethod(callback,"nodePosition",snapshotObjectId);},isEmpty:function(callback)
 {this.callMethod(callback,"isEmpty");},serializeItemsRange:function(startPosition,endPosition,callback)
 {this.callMethod(callback,"serializeItemsRange",startPosition,endPosition);},sortAndRewind:function(comparator,callback)
-{this.callMethod(callback,"sortAndRewind",comparator);},__proto__:WebInspector.HeapSnapshotProxyObject.prototype};WebInspector.HeapSnapshotView=function(parent,profile)
-{WebInspector.View.call(this);this.element.addStyleClass("heap-snapshot-view");this.parent=parent;this.parent.addEventListener("profile added",this._onProfileHeaderAdded,this);if(profile._profileType.id===WebInspector.TrackingHeapSnapshotProfileType.TypeId){this._trackingOverviewGrid=new WebInspector.HeapTrackingOverviewGrid(profile);this._trackingOverviewGrid.addEventListener(WebInspector.HeapTrackingOverviewGrid.IdsRangeChanged,this._onIdsRangeChanged.bind(this));this._trackingOverviewGrid.show(this.element);}
-this.viewsContainer=document.createElement("div");this.viewsContainer.addStyleClass("views-container");this.element.appendChild(this.viewsContainer);this.containmentView=new WebInspector.View();this.containmentView.element.addStyleClass("view");this.containmentDataGrid=new WebInspector.HeapSnapshotContainmentDataGrid();this.containmentDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.containmentDataGrid.show(this.containmentView.element);this.containmentDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.constructorsView=new WebInspector.View();this.constructorsView.element.addStyleClass("view");this.constructorsView.element.appendChild(this._createToolbarWithClassNameFilter());this.constructorsDataGrid=new WebInspector.HeapSnapshotConstructorsDataGrid();this.constructorsDataGrid.element.addStyleClass("class-view-grid");this.constructorsDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.constructorsDataGrid.show(this.constructorsView.element);this.constructorsDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.dataGrid=(this.constructorsDataGrid);this.currentView=this.constructorsView;this.currentView.show(this.viewsContainer);this.diffView=new WebInspector.View();this.diffView.element.addStyleClass("view");this.diffView.element.appendChild(this._createToolbarWithClassNameFilter());this.diffDataGrid=new WebInspector.HeapSnapshotDiffDataGrid();this.diffDataGrid.element.addStyleClass("class-view-grid");this.diffDataGrid.show(this.diffView.element);this.diffDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.dominatorView=new WebInspector.View();this.dominatorView.element.addStyleClass("view");this.dominatorDataGrid=new WebInspector.HeapSnapshotDominatorsDataGrid();this.dominatorDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.dominatorDataGrid.show(this.dominatorView.element);this.dominatorDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);if(WebInspector.HeapSnapshot.enableAllocationProfiler){this.allocationView=new WebInspector.View();this.allocationView.element.addStyleClass("view");this.allocationDataGrid=new WebInspector.AllocationDataGrid();this.allocationDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.allocationDataGrid.show(this.allocationView.element);this.allocationDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);}
-this.retainmentViewHeader=document.createElement("div");this.retainmentViewHeader.addStyleClass("retainers-view-header");WebInspector.installDragHandle(this.retainmentViewHeader,this._startRetainersHeaderDragging.bind(this),this._retainersHeaderDragging.bind(this),this._endRetainersHeaderDragging.bind(this),"row-resize");var retainingPathsTitleDiv=document.createElement("div");retainingPathsTitleDiv.className="title";var retainingPathsTitle=document.createElement("span");retainingPathsTitle.textContent=WebInspector.UIString("Object's retaining tree");retainingPathsTitleDiv.appendChild(retainingPathsTitle);this.retainmentViewHeader.appendChild(retainingPathsTitleDiv);this.element.appendChild(this.retainmentViewHeader);this.retainmentView=new WebInspector.View();this.retainmentView.element.addStyleClass("view");this.retainmentView.element.addStyleClass("retaining-paths-view");this.retainmentDataGrid=new WebInspector.HeapSnapshotRetainmentDataGrid();this.retainmentDataGrid.show(this.retainmentView.element);this.retainmentDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._inspectedObjectChanged,this);this.retainmentView.show(this.element);this.retainmentDataGrid.reset();this.viewSelect=new WebInspector.StatusBarComboBox(this._onSelectedViewChanged.bind(this));this.views=[{title:"Summary",view:this.constructorsView,grid:this.constructorsDataGrid},{title:"Comparison",view:this.diffView,grid:this.diffDataGrid},{title:"Containment",view:this.containmentView,grid:this.containmentDataGrid}];if(WebInspector.settings.showAdvancedHeapSnapshotProperties.get())
-this.views.push({title:"Dominators",view:this.dominatorView,grid:this.dominatorDataGrid});if(WebInspector.HeapSnapshot.enableAllocationProfiler)
-this.views.push({title:"Allocation",view:this.allocationView,grid:this.allocationDataGrid});this.views.current=0;for(var i=0;i<this.views.length;++i)
-this.viewSelect.createOption(WebInspector.UIString(this.views[i].title));this._profileUid=profile.uid;this._profileTypeId=profile.profileType().id;this.baseSelect=new WebInspector.StatusBarComboBox(this._changeBase.bind(this));this.baseSelect.element.addStyleClass("hidden");this._updateBaseOptions();this.filterSelect=new WebInspector.StatusBarComboBox(this._changeFilter.bind(this));this._updateFilterOptions();this.selectedSizeText=new WebInspector.StatusBarText("");this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.element,this._getHoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),undefined,true);this.profile.load(profileCallback.bind(this));function profileCallback(heapSnapshotProxy)
-{var list=this._profiles();var profileIndex;for(var i=0;i<list.length;++i){if(list[i].uid===this._profileUid){profileIndex=i;break;}}
-if(profileIndex>0)
-this.baseSelect.setSelectedIndex(profileIndex-1);else
-this.baseSelect.setSelectedIndex(profileIndex);this.dataGrid.setDataSource(heapSnapshotProxy);}}
-WebInspector.HeapSnapshotView.prototype={_onIdsRangeChanged:function(event)
+{this.callMethod(callback,"sortAndRewind",comparator);},__proto__:WebInspector.HeapSnapshotProxyObject.prototype};WebInspector.HeapSnapshotSortableDataGrid=function(columns)
+{WebInspector.DataGrid.call(this,columns);this._recursiveSortingDepth=0;this._highlightedNode=null;this._populatedAndSorted=false;this.addEventListener("sorting complete",this._sortingComplete,this);this.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this.sortingChanged,this);}
+WebInspector.HeapSnapshotSortableDataGrid.Events={ContentShown:"ContentShown"}
+WebInspector.HeapSnapshotSortableDataGrid.prototype={defaultPopulateCount:function()
+{return 100;},dispose:function()
+{var children=this.topLevelNodes();for(var i=0,l=children.length;i<l;++i)
+children[i].dispose();},wasShown:function()
+{if(this._populatedAndSorted)
+this.dispatchEventToListeners(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,this);},_sortingComplete:function()
+{this.removeEventListener("sorting complete",this._sortingComplete,this);this._populatedAndSorted=true;this.dispatchEventToListeners(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,this);},willHide:function()
+{this._clearCurrentHighlight();},populateContextMenu:function(profilesPanel,contextMenu,event)
+{var td=event.target.enclosingNodeOrSelfWithNodeName("td");if(!td)
+return;var node=td.heapSnapshotNode;function revealInDominatorsView()
+{profilesPanel.showObject(node.snapshotNodeId,"Dominators");}
+function revealInSummaryView()
+{profilesPanel.showObject(node.snapshotNodeId,"Summary");}
+if(node&&node.showRetainingEdges){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Summary view":"Reveal in Summary View"),revealInSummaryView.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Dominators view":"Reveal in Dominators View"),revealInDominatorsView.bind(this));}
+else if(node instanceof WebInspector.HeapSnapshotInstanceNode||node instanceof WebInspector.HeapSnapshotObjectNode){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Dominators view":"Reveal in Dominators View"),revealInDominatorsView.bind(this));}else if(node instanceof WebInspector.HeapSnapshotDominatorObjectNode){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Summary view":"Reveal in Summary View"),revealInSummaryView.bind(this));}},resetSortingCache:function()
+{delete this._lastSortColumnIdentifier;delete this._lastSortAscending;},topLevelNodes:function()
+{return this.rootNode().children;},highlightObjectByHeapSnapshotId:function(heapSnapshotObjectId,callback)
+{},highlightNode:function(node)
+{var prevNode=this._highlightedNode;this._clearCurrentHighlight();this._highlightedNode=node;this._highlightedNode.element.classList.add("highlighted-row");if(node===prevNode){var element=node.element;var parent=element.parentElement;var nextSibling=element.nextSibling;parent.removeChild(element);parent.insertBefore(element,nextSibling);}},nodeWasDetached:function(node)
+{if(this._highlightedNode===node)
+this._clearCurrentHighlight();},_clearCurrentHighlight:function()
+{if(!this._highlightedNode)
+return
+this._highlightedNode.element.classList.remove("highlighted-row");this._highlightedNode=null;},changeNameFilter:function(filter)
+{filter=filter.toLowerCase();var children=this.topLevelNodes();for(var i=0,l=children.length;i<l;++i){var node=children[i];if(node.depth===0)
+node.revealed=node._name.toLowerCase().indexOf(filter)!==-1;}
+this.updateVisibleNodes();},sortingChanged:function()
+{var sortAscending=this.isSortOrderAscending();var sortColumnIdentifier=this.sortColumnIdentifier();if(this._lastSortColumnIdentifier===sortColumnIdentifier&&this._lastSortAscending===sortAscending)
+return;this._lastSortColumnIdentifier=sortColumnIdentifier;this._lastSortAscending=sortAscending;var sortFields=this._sortFields(sortColumnIdentifier,sortAscending);function SortByTwoFields(nodeA,nodeB)
+{var field1=nodeA[sortFields[0]];var field2=nodeB[sortFields[0]];var result=field1<field2?-1:(field1>field2?1:0);if(!sortFields[1])
+result=-result;if(result!==0)
+return result;field1=nodeA[sortFields[2]];field2=nodeB[sortFields[2]];result=field1<field2?-1:(field1>field2?1:0);if(!sortFields[3])
+result=-result;return result;}
+this._performSorting(SortByTwoFields);},_performSorting:function(sortFunction)
+{this.recursiveSortingEnter();var children=this._topLevelNodes;this.rootNode().removeChildren();children.sort(sortFunction);for(var i=0,l=children.length;i<l;++i){var child=children[i];this.appendChildAfterSorting(child);if(child.expanded)
+child.sort();}
+this.updateVisibleNodes();this.recursiveSortingLeave();},appendChildAfterSorting:function(child)
+{var revealed=child.revealed;this.rootNode().appendChild(child);child.revealed=revealed;},updateVisibleNodes:function()
+{},recursiveSortingEnter:function()
+{++this._recursiveSortingDepth;},recursiveSortingLeave:function()
+{if(!this._recursiveSortingDepth)
+return;if(!--this._recursiveSortingDepth)
+this.dispatchEventToListeners("sorting complete");},__proto__:WebInspector.DataGrid.prototype}
+WebInspector.HeapSnapshotViewportDataGrid=function(columns)
+{WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);this.scrollContainer.addEventListener("scroll",this._onScroll.bind(this),true);this._topLevelNodes=[];this._topPadding=new WebInspector.HeapSnapshotPaddingNode();this._bottomPadding=new WebInspector.HeapSnapshotPaddingNode();this._nodeToHighlightAfterScroll=null;}
+WebInspector.HeapSnapshotViewportDataGrid.prototype={topLevelNodes:function()
+{return this._topLevelNodes;},appendChildAfterSorting:function(child)
+{},updateVisibleNodes:function()
+{var scrollTop=this.scrollContainer.scrollTop;var children=this._topLevelNodes;var i=0;var topPadding=0;while(i<children.length){if(children[i].revealed){var newTop=topPadding+children[i].nodeHeight();if(newTop>scrollTop)
+break;topPadding=newTop;}
+++i;}
+this._addVisibleNodes(i,scrollTop-topPadding,topPadding);},_addVisibleNodes:function(firstVisibleNodeIndex,firstNodeHiddenHeight,topPadding)
+{var viewPortHeight=this.scrollContainer.offsetHeight;this._removePaddingRows();var children=this._topLevelNodes;var selectedNode=this.selectedNode;this.rootNode().removeChildren();var heightToFill=viewPortHeight+firstNodeHiddenHeight;var filledHeight=0;var i=firstVisibleNodeIndex;while(i<children.length&&filledHeight<heightToFill){if(children[i].revealed){this.rootNode().appendChild(children[i]);filledHeight+=children[i].nodeHeight();}
+++i;}
+var bottomPadding=0;while(i<children.length){bottomPadding+=children[i].nodeHeight();++i;}
+this._addPaddingRows(topPadding,bottomPadding);if(selectedNode){if(selectedNode.parent){selectedNode.select(true);}else{this.selectedNode=selectedNode;}}},_revealTopLevelNode:function(nodeToReveal)
+{var children=this._topLevelNodes;var i=0;var topPadding=0;while(i<children.length){if(children[i]===nodeToReveal)
+break;if(children[i].revealed){var newTop=topPadding+children[i].nodeHeight();topPadding=newTop;}
+++i;}
+this._addVisibleNodes(i,0,topPadding);},appendTopLevelNode:function(node)
+{this._topLevelNodes.push(node);},removeTopLevelNodes:function()
+{this.rootNode().removeChildren();this._topLevelNodes=[];},highlightNode:function(node)
+{if(this._isScrolledIntoView(node.element))
+WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightNode.call(this,node);else{node.element.scrollIntoViewIfNeeded(true);this._nodeToHighlightAfterScroll=node;}},_isScrolledIntoView:function(element)
+{var viewportTop=this.scrollContainer.scrollTop;var viewportBottom=viewportTop+this.scrollContainer.clientHeight;var elemTop=element.offsetTop
+var elemBottom=elemTop+element.offsetHeight;return elemBottom<=viewportBottom&&elemTop>=viewportTop;},_addPaddingRows:function(top,bottom)
+{if(this._topPadding.element.parentNode!==this.dataTableBody)
+this.dataTableBody.insertBefore(this._topPadding.element,this.dataTableBody.firstChild);if(this._bottomPadding.element.parentNode!==this.dataTableBody)
+this.dataTableBody.insertBefore(this._bottomPadding.element,this.dataTableBody.lastChild);this._topPadding.setHeight(top);this._bottomPadding.setHeight(bottom);},_removePaddingRows:function()
+{this._bottomPadding.removeFromTable();this._topPadding.removeFromTable();},onResize:function()
+{WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize.call(this);this.updateVisibleNodes();},_onScroll:function(event)
+{this.updateVisibleNodes();if(this._nodeToHighlightAfterScroll){WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightNode.call(this,this._nodeToHighlightAfterScroll);this._nodeToHighlightAfterScroll=null;}},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
+WebInspector.HeapSnapshotPaddingNode=function()
+{this.element=document.createElement("tr");this.element.classList.add("revealed");}
+WebInspector.HeapSnapshotPaddingNode.prototype={setHeight:function(height)
+{this.element.style.height=height+"px";},removeFromTable:function()
+{var parent=this.element.parentNode;if(parent)
+parent.removeChild(this.element);}}
+WebInspector.HeapSnapshotContainmentDataGrid=function(columns)
+{columns=columns||[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"80px",sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sortable:true,sort:WebInspector.DataGrid.Order.Descending}];WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);}
+WebInspector.HeapSnapshotContainmentDataGrid.prototype={setDataSource:function(snapshot,nodeIndex)
+{this.snapshot=snapshot;var node={nodeIndex:nodeIndex||snapshot.rootNodeIndex};var fakeEdge={node:node};this.setRootNode(new WebInspector.HeapSnapshotObjectNode(this,false,fakeEdge,null));this.rootNode().sort();},sortingChanged:function()
+{this.rootNode().sort();},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
+WebInspector.HeapSnapshotRetainmentDataGrid=function()
+{this.showRetainingEdges=true;var columns=[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"80px",sortable:true,sort:WebInspector.DataGrid.Order.Ascending},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sortable:true}];WebInspector.HeapSnapshotContainmentDataGrid.call(this,columns);}
+WebInspector.HeapSnapshotRetainmentDataGrid.Events={ExpandRetainersComplete:"ExpandRetainersComplete"}
+WebInspector.HeapSnapshotRetainmentDataGrid.prototype={_sortFields:function(sortColumn,sortAscending)
+{return{object:["_name",sortAscending,"_count",false],count:["_count",sortAscending,"_name",true],shallowSize:["_shallowSize",sortAscending,"_name",true],retainedSize:["_retainedSize",sortAscending,"_name",true],distance:["_distance",sortAscending,"_name",true]}[sortColumn];},reset:function()
+{this.rootNode().removeChildren();this.resetSortingCache();},setDataSource:function(snapshot,nodeIndex)
+{WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource.call(this,snapshot,nodeIndex);var dataGrid=this;var maxExpandLevels=20;function populateComplete()
+{this.removeEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,this);this.expand();if(--maxExpandLevels>0&&this.children.length>0){var retainer=this.children[0];if(retainer._distance>1){retainer.addEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,retainer);retainer.populate();return;}}
+dataGrid.dispatchEventToListeners(WebInspector.HeapSnapshotRetainmentDataGrid.Events.ExpandRetainersComplete);}
+this.rootNode().addEventListener(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete,populateComplete,this.rootNode());},__proto__:WebInspector.HeapSnapshotContainmentDataGrid.prototype}
+WebInspector.HeapSnapshotConstructorsDataGrid=function()
+{var columns=[{id:"object",title:WebInspector.UIString("Constructor"),disclosure:true,sortable:true},{id:"distance",title:WebInspector.UIString("Distance"),width:"90px",sortable:true},{id:"count",title:WebInspector.UIString("Objects Count"),width:"90px",sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sort:WebInspector.DataGrid.Order.Descending,sortable:true}];WebInspector.HeapSnapshotViewportDataGrid.call(this,columns);this._profileIndex=-1;this._topLevelNodes=[];this._objectIdToSelect=null;}
+WebInspector.HeapSnapshotConstructorsDataGrid.Request=function(minNodeId,maxNodeId)
+{if(typeof minNodeId==="number"){this.key=minNodeId+".."+maxNodeId;this.filter="function(node) { var id = node.id(); return id > "+minNodeId+" && id <= "+maxNodeId+"; }";}else{this.key="allObjects";this.filter=null;}}
+WebInspector.HeapSnapshotConstructorsDataGrid.prototype={_sortFields:function(sortColumn,sortAscending)
+{return{object:["_name",sortAscending,"_count",false],distance:["_distance",sortAscending,"_retainedSize",true],count:["_count",sortAscending,"_name",true],shallowSize:["_shallowSize",sortAscending,"_name",true],retainedSize:["_retainedSize",sortAscending,"_name",true]}[sortColumn];},highlightObjectByHeapSnapshotId:function(id,callback)
+{if(!this.snapshot){this._objectIdToSelect=id;return;}
+function didGetClassName(className)
+{if(!className){callback(false);return;}
+var constructorNodes=this.topLevelNodes();for(var i=0;i<constructorNodes.length;i++){var parent=constructorNodes[i];if(parent._name===className){if(!parent.dataGrid){this._revealTopLevelNode(parent);}
+parent.revealNodeBySnapshotObjectId(parseInt(id,10),callback);return;}}}
+this.snapshot.nodeClassName(parseInt(id,10),didGetClassName.bind(this));},setDataSource:function(snapshot)
+{this.snapshot=snapshot;if(this._profileIndex===-1)
+this._populateChildren();if(this._objectIdToSelect){this.highlightObjectByHeapSnapshotId(this._objectIdToSelect,function(found){});this._objectIdToSelect=null;}},setSelectionRange:function(minNodeId,maxNodeId)
+{this._populateChildren(new WebInspector.HeapSnapshotConstructorsDataGrid.Request(minNodeId,maxNodeId));},_aggregatesReceived:function(key,aggregates)
+{this._requestInProgress=null;if(this._nextRequest){this.snapshot.aggregates(false,this._nextRequest.key,this._nextRequest.filter,this._aggregatesReceived.bind(this,this._nextRequest.key));this._requestInProgress=this._nextRequest;this._nextRequest=null;}
+this.dispose();this.removeTopLevelNodes();this.resetSortingCache();for(var constructor in aggregates)
+this.appendTopLevelNode(new WebInspector.HeapSnapshotConstructorNode(this,constructor,aggregates[constructor],key));this.sortingChanged();this._lastKey=key;},_populateChildren:function(request)
+{request=request||new WebInspector.HeapSnapshotConstructorsDataGrid.Request();if(this._requestInProgress){this._nextRequest=this._requestInProgress.key===request.key?null:request;return;}
+if(this._lastKey===request.key)
+return;this._requestInProgress=request;this.snapshot.aggregates(false,request.key,request.filter,this._aggregatesReceived.bind(this,request.key));},filterSelectIndexChanged:function(profiles,profileIndex)
+{this._profileIndex=profileIndex;var request=null;if(profileIndex!==-1){var minNodeId=profileIndex>0?profiles[profileIndex-1].maxJSObjectId:0;var maxNodeId=profiles[profileIndex].maxJSObjectId;request=new WebInspector.HeapSnapshotConstructorsDataGrid.Request(minNodeId,maxNodeId)}
+this._populateChildren(request);},__proto__:WebInspector.HeapSnapshotViewportDataGrid.prototype}
+WebInspector.HeapSnapshotDiffDataGrid=function()
+{var columns=[{id:"object",title:WebInspector.UIString("Constructor"),disclosure:true,sortable:true},{id:"addedCount",title:WebInspector.UIString("# New"),width:"72px",sortable:true},{id:"removedCount",title:WebInspector.UIString("# Deleted"),width:"72px",sortable:true},{id:"countDelta",title:WebInspector.UIString("# Delta"),width:"64px",sortable:true},{id:"addedSize",title:WebInspector.UIString("Alloc. Size"),width:"72px",sortable:true,sort:WebInspector.DataGrid.Order.Descending},{id:"removedSize",title:WebInspector.UIString("Freed Size"),width:"72px",sortable:true},{id:"sizeDelta",title:WebInspector.UIString("Size Delta"),width:"72px",sortable:true}];WebInspector.HeapSnapshotViewportDataGrid.call(this,columns);}
+WebInspector.HeapSnapshotDiffDataGrid.prototype={defaultPopulateCount:function()
+{return 50;},_sortFields:function(sortColumn,sortAscending)
+{return{object:["_name",sortAscending,"_count",false],addedCount:["_addedCount",sortAscending,"_name",true],removedCount:["_removedCount",sortAscending,"_name",true],countDelta:["_countDelta",sortAscending,"_name",true],addedSize:["_addedSize",sortAscending,"_name",true],removedSize:["_removedSize",sortAscending,"_name",true],sizeDelta:["_sizeDelta",sortAscending,"_name",true]}[sortColumn];},setDataSource:function(snapshot)
+{this.snapshot=snapshot;},setBaseDataSource:function(baseSnapshot)
+{this.baseSnapshot=baseSnapshot;this.dispose();this.removeTopLevelNodes();this.resetSortingCache();if(this.baseSnapshot===this.snapshot){this.dispatchEventToListeners("sorting complete");return;}
+this._populateChildren();},_populateChildren:function()
+{function aggregatesForDiffReceived(aggregatesForDiff)
+{this.snapshot.calculateSnapshotDiff(this.baseSnapshot.uid,aggregatesForDiff,didCalculateSnapshotDiff.bind(this));function didCalculateSnapshotDiff(diffByClassName)
+{for(var className in diffByClassName){var diff=diffByClassName[className];this.appendTopLevelNode(new WebInspector.HeapSnapshotDiffNode(this,className,diff));}
+this.sortingChanged();}}
+this.baseSnapshot.aggregatesForDiff(aggregatesForDiffReceived.bind(this));},__proto__:WebInspector.HeapSnapshotViewportDataGrid.prototype}
+WebInspector.HeapSnapshotDominatorsDataGrid=function()
+{var columns=[{id:"object",title:WebInspector.UIString("Object"),disclosure:true,sortable:true},{id:"shallowSize",title:WebInspector.UIString("Shallow Size"),width:"120px",sortable:true},{id:"retainedSize",title:WebInspector.UIString("Retained Size"),width:"120px",sort:WebInspector.DataGrid.Order.Descending,sortable:true}];WebInspector.HeapSnapshotSortableDataGrid.call(this,columns);this._objectIdToSelect=null;}
+WebInspector.HeapSnapshotDominatorsDataGrid.prototype={defaultPopulateCount:function()
+{return 25;},setDataSource:function(snapshot)
+{this.snapshot=snapshot;var fakeNode={nodeIndex:this.snapshot.rootNodeIndex};this.setRootNode(new WebInspector.HeapSnapshotDominatorObjectNode(this,fakeNode));this.rootNode().sort();if(this._objectIdToSelect){this.highlightObjectByHeapSnapshotId(this._objectIdToSelect,function(found){});this._objectIdToSelect=null;}},sortingChanged:function()
+{this.rootNode().sort();},highlightObjectByHeapSnapshotId:function(id,callback)
+{if(!this.snapshot){this._objectIdToSelect=id;callback(false);return;}
+function didGetDominators(dominatorIds)
+{if(!dominatorIds){WebInspector.log(WebInspector.UIString("Cannot find corresponding heap snapshot node"));callback(false);return;}
+var dominatorNode=this.rootNode();expandNextDominator.call(this,dominatorIds,dominatorNode);}
+function expandNextDominator(dominatorIds,dominatorNode)
+{if(!dominatorNode){console.error("Cannot find dominator node");callback(false);return;}
+if(!dominatorIds.length){this.highlightNode(dominatorNode);dominatorNode.element.scrollIntoViewIfNeeded(true);callback(true);return;}
+var snapshotObjectId=dominatorIds.pop();dominatorNode.retrieveChildBySnapshotObjectId(snapshotObjectId,expandNextDominator.bind(this,dominatorIds));}
+this.snapshot.dominatorIdsForNode(parseInt(id,10),didGetDominators.bind(this));},__proto__:WebInspector.HeapSnapshotSortableDataGrid.prototype}
+WebInspector.AllocationDataGrid=function()
+{var columns=[{id:"count",title:WebInspector.UIString("Count"),width:"72px",sortable:true},{id:"size",title:WebInspector.UIString("Size"),width:"72px",sortable:true,sort:WebInspector.DataGrid.Order.Descending},{id:"name",title:WebInspector.UIString("Function"),disclosure:true,sortable:true},];WebInspector.DataGrid.call(this,columns);this._linkifier=new WebInspector.Linkifier();}
+WebInspector.AllocationDataGrid.prototype={setDataSource:function(snapshot)
+{this._snapshot=snapshot;this._snapshot.allocationTracesTops(didReceiveAllocationTracesTops.bind(this));function didReceiveAllocationTracesTops(tops)
+{var root=this.rootNode();for(var i=0;i<tops.length;i++)
+root.appendChild(new WebInspector.AllocationGridNode(this,tops[i]));}},__proto__:WebInspector.DataGrid.prototype}
+WebInspector.AllocationGridNode=function(dataGrid,data)
+{WebInspector.DataGridNode.call(this,data,data.hasChildren);this._dataGrid=dataGrid;this._populated=false;}
+WebInspector.AllocationGridNode.prototype={populate:function()
+{if(this._populated)
+return;this._populated=true;this._dataGrid._snapshot.allocationNodeCallers(this.data.id,didReceiveCallers.bind(this));function didReceiveCallers(callers)
+{var callersChain=callers.nodesWithSingleCaller;var parentNode=this;for(var i=0;i<callersChain.length;i++){var child=new WebInspector.AllocationGridNode(this._dataGrid,callersChain[i]);parentNode.appendChild(child);parentNode=child;parentNode._populated=true;if(this.expanded)
+parentNode.expand();}
+var callersBranch=callers.branchingCallers;for(var i=0;i<callersBranch.length;i++)
+parentNode.appendChild(new WebInspector.AllocationGridNode(this._dataGrid,callersBranch[i]));}},expand:function()
+{WebInspector.DataGridNode.prototype.expand.call(this);if(this.children.length===1)
+this.children[0].expand();},createCell:function(columnIdentifier)
+{var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);if(columnIdentifier!=="name")
+return cell;var functionInfo=this.data;if(functionInfo.scriptName){var urlElement=this._dataGrid._linkifier.linkifyLocation(functionInfo.scriptName,functionInfo.line-1,functionInfo.column-1,"profile-node-file");urlElement.style.maxWidth="75%";cell.insertBefore(urlElement,cell.firstChild);}
+return cell;},__proto__:WebInspector.DataGridNode.prototype};WebInspector.HeapSnapshotGridNode=function(tree,hasChildren)
+{WebInspector.DataGridNode.call(this,null,hasChildren);this._dataGrid=tree;this._instanceCount=0;this._savedChildren=null;this._retrievedChildrenRanges=[];}
+WebInspector.HeapSnapshotGridNode.Events={PopulateComplete:"PopulateComplete"}
+WebInspector.HeapSnapshotGridNode.createComparator=function(fieldNames)
+{return{fieldName1:fieldNames[0],ascending1:fieldNames[1],fieldName2:fieldNames[2],ascending2:fieldNames[3]};}
+WebInspector.HeapSnapshotGridNode.prototype={createProvider:function()
+{throw new Error("Needs implemented.");},_provider:function()
+{if(!this._providerObject)
+this._providerObject=this.createProvider();return this._providerObject;},createCell:function(columnIdentifier)
+{var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);if(this._searchMatched)
+cell.classList.add("highlight");return cell;},collapse:function()
+{WebInspector.DataGridNode.prototype.collapse.call(this);this._dataGrid.updateVisibleNodes();},dispose:function()
+{if(this._provider())
+this._provider().dispose();for(var node=this.children[0];node;node=node.traverseNextNode(true,this,true))
+if(node.dispose)
+node.dispose();},_reachableFromWindow:false,queryObjectContent:function(callback)
+{},wasDetached:function()
+{this._dataGrid.nodeWasDetached(this);},_toPercentString:function(num)
+{return num.toFixed(0)+"\u2009%";},childForPosition:function(nodePosition)
+{var indexOfFirsChildInRange=0;for(var i=0;i<this._retrievedChildrenRanges.length;i++){var range=this._retrievedChildrenRanges[i];if(range.from<=nodePosition&&nodePosition<range.to){var childIndex=indexOfFirsChildInRange+nodePosition-range.from;return this.children[childIndex];}
+indexOfFirsChildInRange+=range.to-range.from+1;}
+return null;},_createValueCell:function(columnIdentifier)
+{var cell=document.createElement("td");cell.className=columnIdentifier+"-column";if(this.dataGrid.snapshot.totalSize!==0){var div=document.createElement("div");var valueSpan=document.createElement("span");valueSpan.textContent=this.data[columnIdentifier];div.appendChild(valueSpan);var percentColumn=columnIdentifier+"-percent";if(percentColumn in this.data){var percentSpan=document.createElement("span");percentSpan.className="percent-column";percentSpan.textContent=this.data[percentColumn];div.appendChild(percentSpan);div.classList.add("heap-snapshot-multiple-values");}
+cell.appendChild(div);}
+return cell;},populate:function(event)
+{if(this._populated)
+return;this._populated=true;function sorted()
+{this._populateChildren();}
+this._provider().sortAndRewind(this.comparator(),sorted.bind(this));},expandWithoutPopulate:function(callback)
+{this._populated=true;this.expand();this._provider().sortAndRewind(this.comparator(),callback);},_populateChildren:function(fromPosition,toPosition,afterPopulate)
+{fromPosition=fromPosition||0;toPosition=toPosition||fromPosition+this._dataGrid.defaultPopulateCount();var firstNotSerializedPosition=fromPosition;function serializeNextChunk()
+{if(firstNotSerializedPosition>=toPosition)
+return;var end=Math.min(firstNotSerializedPosition+this._dataGrid.defaultPopulateCount(),toPosition);this._provider().serializeItemsRange(firstNotSerializedPosition,end,childrenRetrieved.bind(this));firstNotSerializedPosition=end;}
+function insertRetrievedChild(item,insertionIndex)
+{if(this._savedChildren){var hash=this._childHashForEntity(item);if(hash in this._savedChildren){this.insertChild(this._savedChildren[hash],insertionIndex);return;}}
+this.insertChild(this._createChildNode(item),insertionIndex);}
+function insertShowMoreButton(from,to,insertionIndex)
+{var button=new WebInspector.ShowMoreDataGridNode(this._populateChildren.bind(this),from,to,this._dataGrid.defaultPopulateCount());this.insertChild(button,insertionIndex);}
+function childrenRetrieved(items)
+{var itemIndex=0;var itemPosition=items.startPosition;var insertionIndex=0;if(!this._retrievedChildrenRanges.length){if(items.startPosition>0){this._retrievedChildrenRanges.push({from:0,to:0});insertShowMoreButton.call(this,0,items.startPosition,insertionIndex++);}
+this._retrievedChildrenRanges.push({from:items.startPosition,to:items.endPosition});for(var i=0,l=items.length;i<l;++i)
+insertRetrievedChild.call(this,items[i],insertionIndex++);if(items.endPosition<items.totalLength)
+insertShowMoreButton.call(this,items.endPosition,items.totalLength,insertionIndex++);}else{var rangeIndex=0;var found=false;var range;while(rangeIndex<this._retrievedChildrenRanges.length){range=this._retrievedChildrenRanges[rangeIndex];if(range.to>=itemPosition){found=true;break;}
+insertionIndex+=range.to-range.from;if(range.to<items.totalLength)
+insertionIndex+=1;++rangeIndex;}
+if(!found||items.startPosition<range.from){this.children[insertionIndex-1].setEndPosition(items.startPosition);insertShowMoreButton.call(this,items.startPosition,found?range.from:items.totalLength,insertionIndex);range={from:items.startPosition,to:items.startPosition};if(!found)
+rangeIndex=this._retrievedChildrenRanges.length;this._retrievedChildrenRanges.splice(rangeIndex,0,range);}else{insertionIndex+=itemPosition-range.from;}
+while(range.to<items.endPosition){var skipCount=range.to-itemPosition;insertionIndex+=skipCount;itemIndex+=skipCount;itemPosition=range.to;var nextRange=this._retrievedChildrenRanges[rangeIndex+1];var newEndOfRange=nextRange?nextRange.from:items.totalLength;if(newEndOfRange>items.endPosition)
+newEndOfRange=items.endPosition;while(itemPosition<newEndOfRange){insertRetrievedChild.call(this,items[itemIndex++],insertionIndex++);++itemPosition;}
+if(nextRange&&newEndOfRange===nextRange.from){range.to=nextRange.to;this.removeChild(this.children[insertionIndex]);this._retrievedChildrenRanges.splice(rangeIndex+1,1);}else{range.to=newEndOfRange;if(newEndOfRange===items.totalLength)
+this.removeChild(this.children[insertionIndex]);else
+this.children[insertionIndex].setStartPosition(items.endPosition);}}}
+this._instanceCount+=items.length;if(firstNotSerializedPosition<toPosition){serializeNextChunk.call(this);return;}
+if(afterPopulate)
+afterPopulate();this.dispatchEventToListeners(WebInspector.HeapSnapshotGridNode.Events.PopulateComplete);}
+serializeNextChunk.call(this);},_saveChildren:function()
+{this._savedChildren=null;for(var i=0,childrenCount=this.children.length;i<childrenCount;++i){var child=this.children[i];if(!child.expanded)
+continue;if(!this._savedChildren)
+this._savedChildren={};this._savedChildren[this._childHashForNode(child)]=child;}},sort:function()
+{this._dataGrid.recursiveSortingEnter();function afterSort()
+{this._saveChildren();this.removeChildren();this._retrievedChildrenRanges=[];function afterPopulate()
+{for(var i=0,l=this.children.length;i<l;++i){var child=this.children[i];if(child.expanded)
+child.sort();}
+this._dataGrid.recursiveSortingLeave();}
+var instanceCount=this._instanceCount;this._instanceCount=0;this._populateChildren(0,instanceCount,afterPopulate.bind(this));}
+this._provider().sortAndRewind(this.comparator(),afterSort.bind(this));},__proto__:WebInspector.DataGridNode.prototype}
+WebInspector.HeapSnapshotGenericObjectNode=function(tree,node)
+{this.snapshotNodeIndex=0;WebInspector.HeapSnapshotGridNode.call(this,tree,false);if(!node)
+return;this._name=node.name;this._type=node.type;this._distance=node.distance;this._shallowSize=node.selfSize;this._retainedSize=node.retainedSize;this.snapshotNodeId=node.id;this.snapshotNodeIndex=node.nodeIndex;if(this._type==="string")
+this._reachableFromWindow=true;else if(this._type==="object"&&this._name.startsWith("Window")){this._name=this.shortenWindowURL(this._name,false);this._reachableFromWindow=true;}else if(node.canBeQueried)
+this._reachableFromWindow=true;if(node.detachedDOMTreeNode)
+this.detachedDOMTreeNode=true;};WebInspector.HeapSnapshotGenericObjectNode.prototype={createCell:function(columnIdentifier)
+{var cell=columnIdentifier!=="object"?this._createValueCell(columnIdentifier):this._createObjectCell();if(this._searchMatched)
+cell.classList.add("highlight");return cell;},_createObjectCell:function()
+{var cell=document.createElement("td");cell.className="object-column";var div=document.createElement("div");div.className="source-code event-properties";div.style.overflow="visible";var data=this.data["object"];if(this._prefixObjectCell)
+this._prefixObjectCell(div,data);var valueSpan=document.createElement("span");valueSpan.className="value console-formatted-"+data.valueStyle;valueSpan.textContent=data.value;div.appendChild(valueSpan);var idSpan=document.createElement("span");idSpan.className="console-formatted-id";idSpan.textContent=" @"+data["nodeId"];div.appendChild(idSpan);if(this._postfixObjectCell)
+this._postfixObjectCell(div,data);cell.appendChild(div);cell.classList.add("disclosure");if(this.depth)
+cell.style.setProperty("padding-left",(this.depth*this.dataGrid.indentWidth)+"px");cell.heapSnapshotNode=this;return cell;},get data()
+{var data=this._emptyData();var value=this._name;var valueStyle="object";switch(this._type){case"concatenated string":case"string":value="\""+value+"\"";valueStyle="string";break;case"regexp":value="/"+value+"/";valueStyle="string";break;case"closure":value="function"+(value?" ":"")+value+"()";valueStyle="function";break;case"number":valueStyle="number";break;case"hidden":valueStyle="null";break;case"array":if(!value)
+value="[]";else
+value+="[]";break;};if(this._reachableFromWindow)
+valueStyle+=" highlight";if(value==="Object")
+value="";if(this.detachedDOMTreeNode)
+valueStyle+=" detached-dom-tree-node";data["object"]={valueStyle:valueStyle,value:value,nodeId:this.snapshotNodeId};data["distance"]=this._distance;data["shallowSize"]=Number.withThousandsSeparator(this._shallowSize);data["retainedSize"]=Number.withThousandsSeparator(this._retainedSize);data["shallowSize-percent"]=this._toPercentString(this._shallowSizePercent);data["retainedSize-percent"]=this._toPercentString(this._retainedSizePercent);return this._enhanceData?this._enhanceData(data):data;},queryObjectContent:function(callback,objectGroupName)
+{function formatResult(error,object)
+{if(!error&&object.type)
+callback(WebInspector.RemoteObject.fromPayload(object),!!error);else
+callback(WebInspector.RemoteObject.fromPrimitiveValue(WebInspector.UIString("Preview is not available")));}
+if(this._type==="string")
+callback(WebInspector.RemoteObject.fromPrimitiveValue(this._name));else
+HeapProfilerAgent.getObjectByHeapObjectId(String(this.snapshotNodeId),objectGroupName,formatResult);},get _retainedSizePercent()
+{return this._retainedSize/this.dataGrid.snapshot.totalSize*100.0;},get _shallowSizePercent()
+{return this._shallowSize/this.dataGrid.snapshot.totalSize*100.0;},updateHasChildren:function()
+{function isEmptyCallback(isEmpty)
+{this.hasChildren=!isEmpty;}
+this._provider().isEmpty(isEmptyCallback.bind(this));},shortenWindowURL:function(fullName,hasObjectId)
+{var startPos=fullName.indexOf("/");var endPos=hasObjectId?fullName.indexOf("@"):fullName.length;if(startPos!==-1&&endPos!==-1){var fullURL=fullName.substring(startPos+1,endPos).trimLeft();var url=fullURL.trimURL();if(url.length>40)
+url=url.trimMiddle(40);return fullName.substr(0,startPos+2)+url+fullName.substr(endPos);}else
+return fullName;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
+WebInspector.HeapSnapshotObjectNode=function(tree,isFromBaseSnapshot,edge,parentGridNode)
+{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,edge.node);this._referenceName=edge.name;this._referenceType=edge.type;this._distance=edge.distance;this.showRetainingEdges=tree.showRetainingEdges;this._isFromBaseSnapshot=isFromBaseSnapshot;this._parentGridNode=parentGridNode;this._cycledWithAncestorGridNode=this._findAncestorWithSameSnapshotNodeId();if(!this._cycledWithAncestorGridNode)
+this.updateHasChildren();}
+WebInspector.HeapSnapshotObjectNode.prototype={createProvider:function()
+{var tree=this._dataGrid;var showHiddenData=WebInspector.settings.showAdvancedHeapSnapshotProperties.get();var snapshot=this._isFromBaseSnapshot?tree.baseSnapshot:tree.snapshot;if(this.showRetainingEdges)
+return snapshot.createRetainingEdgesProvider(this.snapshotNodeIndex,showHiddenData);else
+return snapshot.createEdgesProvider(this.snapshotNodeIndex,showHiddenData);},_findAncestorWithSameSnapshotNodeId:function()
+{var ancestor=this._parentGridNode;while(ancestor){if(ancestor.snapshotNodeId===this.snapshotNodeId)
+return ancestor;ancestor=ancestor._parentGridNode;}
+return null;},_createChildNode:function(item)
+{return new WebInspector.HeapSnapshotObjectNode(this._dataGrid,this._isFromBaseSnapshot,item,this);},_childHashForEntity:function(edge)
+{var prefix=this.showRetainingEdges?edge.node.id+"#":"";return prefix+edge.type+"#"+edge.name;},_childHashForNode:function(childNode)
+{var prefix=this.showRetainingEdges?childNode.snapshotNodeId+"#":"";return prefix+childNode._referenceType+"#"+childNode._referenceName;},comparator:function()
+{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["!edgeName",sortAscending,"retainedSize",false],count:["!edgeName",true,"retainedSize",false],shallowSize:["selfSize",sortAscending,"!edgeName",true],retainedSize:["retainedSize",sortAscending,"!edgeName",true],distance:["distance",sortAscending,"_name",true]}[sortColumnIdentifier]||["!edgeName",true,"retainedSize",false];return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);},_emptyData:function()
+{return{count:"",addedCount:"",removedCount:"",countDelta:"",addedSize:"",removedSize:"",sizeDelta:""};},_enhanceData:function(data)
+{var name=this._referenceName;if(name==="")name="(empty)";var nameClass="name";switch(this._referenceType){case"context":nameClass="console-formatted-number";break;case"internal":case"hidden":nameClass="console-formatted-null";break;case"element":name="["+name+"]";break;}
+data["object"].nameClass=nameClass;data["object"].name=name;data["distance"]=this._distance;return data;},_prefixObjectCell:function(div,data)
+{if(this._cycledWithAncestorGridNode)
+div.className+=" cycled-ancessor-node";var nameSpan=document.createElement("span");nameSpan.className=data.nameClass;nameSpan.textContent=data.name;div.appendChild(nameSpan);var separatorSpan=document.createElement("span");separatorSpan.className="grayed";separatorSpan.textContent=this.showRetainingEdges?" in ":" :: ";div.appendChild(separatorSpan);},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype}
+WebInspector.HeapSnapshotInstanceNode=function(tree,baseSnapshot,snapshot,node)
+{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,node);this._baseSnapshotOrSnapshot=baseSnapshot||snapshot;this._isDeletedNode=!!baseSnapshot;this.updateHasChildren();};WebInspector.HeapSnapshotInstanceNode.prototype={createProvider:function()
+{var showHiddenData=WebInspector.settings.showAdvancedHeapSnapshotProperties.get();return this._baseSnapshotOrSnapshot.createEdgesProvider(this.snapshotNodeIndex,showHiddenData);},_createChildNode:function(item)
+{return new WebInspector.HeapSnapshotObjectNode(this._dataGrid,this._isDeletedNode,item,null);},_childHashForEntity:function(edge)
+{return edge.type+"#"+edge.name;},_childHashForNode:function(childNode)
+{return childNode._referenceType+"#"+childNode._referenceName;},comparator:function()
+{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["!edgeName",sortAscending,"retainedSize",false],distance:["distance",sortAscending,"retainedSize",false],count:["!edgeName",true,"retainedSize",false],addedSize:["selfSize",sortAscending,"!edgeName",true],removedSize:["selfSize",sortAscending,"!edgeName",true],shallowSize:["selfSize",sortAscending,"!edgeName",true],retainedSize:["retainedSize",sortAscending,"!edgeName",true]}[sortColumnIdentifier]||["!edgeName",true,"retainedSize",false];return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);},_emptyData:function()
+{return{count:"",countDelta:"",sizeDelta:""};},_enhanceData:function(data)
+{if(this._isDeletedNode){data["addedCount"]="";data["addedSize"]="";data["removedCount"]="\u2022";data["removedSize"]=Number.withThousandsSeparator(this._shallowSize);}else{data["addedCount"]="\u2022";data["addedSize"]=Number.withThousandsSeparator(this._shallowSize);data["removedCount"]="";data["removedSize"]="";}
+return data;},get isDeletedNode()
+{return this._isDeletedNode;},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype}
+WebInspector.HeapSnapshotConstructorNode=function(tree,className,aggregate,aggregatesKey)
+{WebInspector.HeapSnapshotGridNode.call(this,tree,aggregate.count>0);this._name=className;this._aggregatesKey=aggregatesKey;this._distance=aggregate.distance;this._count=aggregate.count;this._shallowSize=aggregate.self;this._retainedSize=aggregate.maxRet;}
+WebInspector.HeapSnapshotConstructorNode.prototype={createProvider:function()
+{return this._dataGrid.snapshot.createNodesProviderForClass(this._name,this._aggregatesKey)},revealNodeBySnapshotObjectId:function(snapshotObjectId,callback)
+{function didExpand()
+{this._provider().nodePosition(snapshotObjectId,didGetNodePosition.bind(this));}
+function didGetNodePosition(nodePosition)
+{if(nodePosition===-1){this.collapse();callback(false);}else{this._populateChildren(nodePosition,null,didPopulateChildren.bind(this,nodePosition));}}
+function didPopulateChildren(nodePosition)
+{var indexOfFirsChildInRange=0;for(var i=0;i<this._retrievedChildrenRanges.length;i++){var range=this._retrievedChildrenRanges[i];if(range.from<=nodePosition&&nodePosition<range.to){var childIndex=indexOfFirsChildInRange+nodePosition-range.from;var instanceNode=this.children[childIndex];this._dataGrid.highlightNode((instanceNode));callback(true);return;}
+indexOfFirsChildInRange+=range.to-range.from+1;}
+callback(false);}
+this.expandWithoutPopulate(didExpand.bind(this));},createCell:function(columnIdentifier)
+{var cell=columnIdentifier!=="object"?this._createValueCell(columnIdentifier):WebInspector.HeapSnapshotGridNode.prototype.createCell.call(this,columnIdentifier);if(this._searchMatched)
+cell.classList.add("highlight");return cell;},_createChildNode:function(item)
+{return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,null,this._dataGrid.snapshot,item);},comparator:function()
+{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"retainedSize",false],distance:["distance",sortAscending,"retainedSize",false],count:["id",true,"retainedSize",false],shallowSize:["selfSize",sortAscending,"id",true],retainedSize:["retainedSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);},_childHashForEntity:function(node)
+{return node.id;},_childHashForNode:function(childNode)
+{return childNode.snapshotNodeId;},get data()
+{var data={object:this._name};data["count"]=Number.withThousandsSeparator(this._count);data["distance"]=this._distance;data["shallowSize"]=Number.withThousandsSeparator(this._shallowSize);data["retainedSize"]=Number.withThousandsSeparator(this._retainedSize);data["count-percent"]=this._toPercentString(this._countPercent);data["shallowSize-percent"]=this._toPercentString(this._shallowSizePercent);data["retainedSize-percent"]=this._toPercentString(this._retainedSizePercent);return data;},get _countPercent()
+{return this._count/this.dataGrid.snapshot.nodeCount*100.0;},get _retainedSizePercent()
+{return this._retainedSize/this.dataGrid.snapshot.totalSize*100.0;},get _shallowSizePercent()
+{return this._shallowSize/this.dataGrid.snapshot.totalSize*100.0;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
+WebInspector.HeapSnapshotDiffNodesProvider=function(addedNodesProvider,deletedNodesProvider,addedCount,removedCount)
+{this._addedNodesProvider=addedNodesProvider;this._deletedNodesProvider=deletedNodesProvider;this._addedCount=addedCount;this._removedCount=removedCount;}
+WebInspector.HeapSnapshotDiffNodesProvider.prototype={dispose:function()
+{this._addedNodesProvider.dispose();this._deletedNodesProvider.dispose();},isEmpty:function(callback)
+{callback(false);},serializeItemsRange:function(beginPosition,endPosition,callback)
+{function didReceiveAllItems(items)
+{items.totalLength=this._addedCount+this._removedCount;callback(items);}
+function didReceiveDeletedItems(addedItems,items)
+{if(!addedItems.length)
+addedItems.startPosition=this._addedCount+items.startPosition;for(var i=0;i<items.length;i++){items[i].isAddedNotRemoved=false;addedItems.push(items[i]);}
+addedItems.endPosition=this._addedCount+items.endPosition;didReceiveAllItems.call(this,addedItems);}
+function didReceiveAddedItems(items)
+{for(var i=0;i<items.length;i++)
+items[i].isAddedNotRemoved=true;if(items.endPosition<endPosition)
+return this._deletedNodesProvider.serializeItemsRange(0,endPosition-items.endPosition,didReceiveDeletedItems.bind(this,items));items.totalLength=this._addedCount+this._removedCount;didReceiveAllItems.call(this,items);}
+if(beginPosition<this._addedCount)
+this._addedNodesProvider.serializeItemsRange(beginPosition,endPosition,didReceiveAddedItems.bind(this));else
+this._deletedNodesProvider.serializeItemsRange(beginPosition-this._addedCount,endPosition-this._addedCount,didReceiveDeletedItems.bind(this,[]));},sortAndRewind:function(comparator,callback)
+{function afterSort()
+{this._deletedNodesProvider.sortAndRewind(comparator,callback);}
+this._addedNodesProvider.sortAndRewind(comparator,afterSort.bind(this));},__proto__:WebInspector.HeapSnapshotProviderProxy.prototype};WebInspector.HeapSnapshotDiffNode=function(tree,className,diffForClass)
+{WebInspector.HeapSnapshotGridNode.call(this,tree,true);this._name=className;this._addedCount=diffForClass.addedCount;this._removedCount=diffForClass.removedCount;this._countDelta=diffForClass.countDelta;this._addedSize=diffForClass.addedSize;this._removedSize=diffForClass.removedSize;this._sizeDelta=diffForClass.sizeDelta;this._deletedIndexes=diffForClass.deletedIndexes;}
+WebInspector.HeapSnapshotDiffNode.prototype={createProvider:function()
+{var tree=this._dataGrid;return new WebInspector.HeapSnapshotDiffNodesProvider(tree.snapshot.createAddedNodesProvider(tree.baseSnapshot.uid,this._name),tree.baseSnapshot.createDeletedNodesProvider(this._deletedIndexes),this._addedCount,this._removedCount);},_createChildNode:function(item)
+{if(item.isAddedNotRemoved)
+return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,null,this._dataGrid.snapshot,item);else
+return new WebInspector.HeapSnapshotInstanceNode(this._dataGrid,this._dataGrid.baseSnapshot,null,item);},_childHashForEntity:function(node)
+{return node.id;},_childHashForNode:function(childNode)
+{return childNode.snapshotNodeId;},comparator:function()
+{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"selfSize",false],addedCount:["selfSize",sortAscending,"id",true],removedCount:["selfSize",sortAscending,"id",true],countDelta:["selfSize",sortAscending,"id",true],addedSize:["selfSize",sortAscending,"id",true],removedSize:["selfSize",sortAscending,"id",true],sizeDelta:["selfSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);},_signForDelta:function(delta)
+{if(delta===0)
+return"";if(delta>0)
+return"+";else
+return"\u2212";},get data()
+{var data={object:this._name};data["addedCount"]=Number.withThousandsSeparator(this._addedCount);data["removedCount"]=Number.withThousandsSeparator(this._removedCount);data["countDelta"]=this._signForDelta(this._countDelta)+Number.withThousandsSeparator(Math.abs(this._countDelta));data["addedSize"]=Number.withThousandsSeparator(this._addedSize);data["removedSize"]=Number.withThousandsSeparator(this._removedSize);data["sizeDelta"]=this._signForDelta(this._sizeDelta)+Number.withThousandsSeparator(Math.abs(this._sizeDelta));return data;},__proto__:WebInspector.HeapSnapshotGridNode.prototype}
+WebInspector.HeapSnapshotDominatorObjectNode=function(tree,node)
+{WebInspector.HeapSnapshotGenericObjectNode.call(this,tree,node);this.updateHasChildren();};WebInspector.HeapSnapshotDominatorObjectNode.prototype={createProvider:function()
+{return this._dataGrid.snapshot.createNodesProviderForDominator(this.snapshotNodeIndex);},retrieveChildBySnapshotObjectId:function(snapshotObjectId,callback)
+{function didExpand()
+{this._provider().nodePosition(snapshotObjectId,didGetNodePosition.bind(this));}
+function didGetNodePosition(nodePosition)
+{if(nodePosition===-1){this.collapse();callback(null);}else
+this._populateChildren(nodePosition,null,didPopulateChildren.bind(this,nodePosition));}
+function didPopulateChildren(nodePosition)
+{var child=this.childForPosition(nodePosition);callback(child);}
+this.hasChildren=true;this.expandWithoutPopulate(didExpand.bind(this));},_createChildNode:function(item)
+{return new WebInspector.HeapSnapshotDominatorObjectNode(this._dataGrid,item);},_childHashForEntity:function(node)
+{return node.id;},_childHashForNode:function(childNode)
+{return childNode.snapshotNodeId;},comparator:function()
+{var sortAscending=this._dataGrid.isSortOrderAscending();var sortColumnIdentifier=this._dataGrid.sortColumnIdentifier();var sortFields={object:["id",sortAscending,"retainedSize",false],shallowSize:["selfSize",sortAscending,"id",true],retainedSize:["retainedSize",sortAscending,"id",true]}[sortColumnIdentifier];return WebInspector.HeapSnapshotGridNode.createComparator(sortFields);},_emptyData:function()
+{return{};},__proto__:WebInspector.HeapSnapshotGenericObjectNode.prototype};WebInspector.HeapSnapshotView=function(parent,profile)
+{WebInspector.View.call(this);this.element.classList.add("heap-snapshot-view");this.parent=parent;profile.profileType().addEventListener(WebInspector.ProfileType.Events.AddProfileHeader,this._onProfileHeaderAdded,this);if(profile._profileType.id===WebInspector.TrackingHeapSnapshotProfileType.TypeId){this._trackingOverviewGrid=new WebInspector.HeapTrackingOverviewGrid(profile);this._trackingOverviewGrid.addEventListener(WebInspector.HeapTrackingOverviewGrid.IdsRangeChanged,this._onIdsRangeChanged.bind(this));this._trackingOverviewGrid.show(this.element);}
+this.viewsContainer=document.createElement("div");this.viewsContainer.classList.add("views-container");this.element.appendChild(this.viewsContainer);this.containmentView=new WebInspector.View();this.containmentView.element.classList.add("view");this.containmentDataGrid=new WebInspector.HeapSnapshotContainmentDataGrid();this.containmentDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.containmentDataGrid.show(this.containmentView.element);this.containmentDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.constructorsView=new WebInspector.View();this.constructorsView.element.classList.add("view");this.constructorsView.element.appendChild(this._createToolbarWithClassNameFilter());this.constructorsDataGrid=new WebInspector.HeapSnapshotConstructorsDataGrid();this.constructorsDataGrid.element.classList.add("class-view-grid");this.constructorsDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.constructorsDataGrid.show(this.constructorsView.element);this.constructorsDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.dataGrid=(this.constructorsDataGrid);this.currentView=this.constructorsView;this.currentView.show(this.viewsContainer);this.diffView=new WebInspector.View();this.diffView.element.classList.add("view");this.diffView.element.appendChild(this._createToolbarWithClassNameFilter());this.diffDataGrid=new WebInspector.HeapSnapshotDiffDataGrid();this.diffDataGrid.element.classList.add("class-view-grid");this.diffDataGrid.show(this.diffView.element);this.diffDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);this.dominatorView=new WebInspector.View();this.dominatorView.element.classList.add("view");this.dominatorDataGrid=new WebInspector.HeapSnapshotDominatorsDataGrid();this.dominatorDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.dominatorDataGrid.show(this.dominatorView.element);this.dominatorDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);if(WebInspector.HeapSnapshotView.enableAllocationProfiler){this.allocationView=new WebInspector.View();this.allocationView.element.classList.add("view");this.allocationDataGrid=new WebInspector.AllocationDataGrid();this.allocationDataGrid.element.addEventListener("mousedown",this._mouseDownInContentsGrid.bind(this),true);this.allocationDataGrid.show(this.allocationView.element);this.allocationDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._selectionChanged,this);}
+this.retainmentViewHeader=document.createElement("div");this.retainmentViewHeader.classList.add("retainers-view-header");WebInspector.installDragHandle(this.retainmentViewHeader,this._startRetainersHeaderDragging.bind(this),this._retainersHeaderDragging.bind(this),this._endRetainersHeaderDragging.bind(this),"ns-resize");var retainingPathsTitleDiv=document.createElement("div");retainingPathsTitleDiv.className="title";var retainingPathsTitle=document.createElement("span");retainingPathsTitle.textContent=WebInspector.UIString("Object's retaining tree");retainingPathsTitleDiv.appendChild(retainingPathsTitle);this.retainmentViewHeader.appendChild(retainingPathsTitleDiv);this.element.appendChild(this.retainmentViewHeader);this.retainmentView=new WebInspector.View();this.retainmentView.element.classList.add("view");this.retainmentView.element.classList.add("retaining-paths-view");this.retainmentDataGrid=new WebInspector.HeapSnapshotRetainmentDataGrid();this.retainmentDataGrid.show(this.retainmentView.element);this.retainmentDataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._inspectedObjectChanged,this);this.retainmentView.show(this.element);this.retainmentDataGrid.reset();this.viewSelect=new WebInspector.StatusBarComboBox(this._onSelectedViewChanged.bind(this));this.views=[{title:WebInspector.UIString("Summary"),view:this.constructorsView,grid:this.constructorsDataGrid},{title:WebInspector.UIString("Comparison"),view:this.diffView,grid:this.diffDataGrid},{title:WebInspector.UIString("Containment"),view:this.containmentView,grid:this.containmentDataGrid}];if(WebInspector.settings.showAdvancedHeapSnapshotProperties.get())
+this.views.push({title:WebInspector.UIString("Dominators"),view:this.dominatorView,grid:this.dominatorDataGrid});if(WebInspector.HeapSnapshotView.enableAllocationProfiler)
+this.views.push({title:WebInspector.UIString("Allocation"),view:this.allocationView,grid:this.allocationDataGrid});this.views.current=0;for(var i=0;i<this.views.length;++i)
+this.viewSelect.createOption(WebInspector.UIString(this.views[i].title));this._profile=profile;this.baseSelect=new WebInspector.StatusBarComboBox(this._changeBase.bind(this));this.baseSelect.element.classList.add("hidden");this._updateBaseOptions();this.filterSelect=new WebInspector.StatusBarComboBox(this._changeFilter.bind(this));this._updateFilterOptions();this.selectedSizeText=new WebInspector.StatusBarText("");this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.element,this._getHoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),undefined,true);this._refreshView();}
+WebInspector.HeapSnapshotView.enableAllocationProfiler=false;WebInspector.HeapSnapshotView.prototype={_refreshView:function()
+{this.profile.load(profileCallback.bind(this));function profileCallback(heapSnapshotProxy)
+{var list=this._profiles();var profileIndex=list.indexOf(this._profile);this.baseSelect.setSelectedIndex(Math.max(0,profileIndex-1));this.dataGrid.setDataSource(heapSnapshotProxy);}},_onIdsRangeChanged:function(event)
 {var minId=event.data.minId;var maxId=event.data.maxId;this.selectedSizeText.setText(WebInspector.UIString("Selected size: %s",Number.bytesToString(event.data.size)));if(this.constructorsDataGrid.snapshot)
 this.constructorsDataGrid.setSelectionRange(minId,maxId);},dispose:function()
-{this.parent.removeEventListener("profile added",this._onProfileHeaderAdded,this);this.profile.dispose();if(this.baseProfile)
+{this.profile.profileType().removeEventListener(WebInspector.ProfileType.Events.AddProfileHeader,this._onProfileHeaderAdded,this);this.profile.dispose();if(this.baseProfile)
 this.baseProfile.dispose();this.containmentDataGrid.dispose();this.constructorsDataGrid.dispose();this.diffDataGrid.dispose();this.dominatorDataGrid.dispose();this.retainmentDataGrid.dispose();},get statusBarItems()
 {return[this.viewSelect.element,this.baseSelect.element,this.filterSelect.element,this.selectedSizeText.element];},get profile()
-{return this.parent.getProfile(this._profileTypeId,this._profileUid);},get baseProfile()
-{return this.parent.getProfile(this._profileTypeId,this._baseProfileUid);},wasShown:function()
+{return this._profile;},get baseProfile()
+{return this._profile.profileType().getProfile(this._baseProfileUid);},wasShown:function()
 {this.profile.load(profileCallback.bind(this));function profileCallback(){this.profile._wasShown();if(this.baseProfile)
 this.baseProfile.load(function(){});}},willHide:function()
 {this._currentSearchResultIndex=-1;this._popoverHelper.hidePopover();if(this.helpPopover&&this.helpPopover.isShowing())
@@ -1451,12 +967,14 @@
 delete this._searchFinishedCallback;this._currentSearchResultIndex=-1;this._searchResults=[];},performSearch:function(query,finishedCallback)
 {this.searchCanceled();query=query.trim();if(!query)
 return;if(this.currentView!==this.constructorsView&&this.currentView!==this.diffView)
-return;this._searchFinishedCallback=finishedCallback;var nameRegExp=createPlainTextSearchRegex(query,"i");var snapshotNodeId=null;function matchesByName(gridNode){return("_name"in gridNode)&&nameRegExp.test(gridNode._name);}
-function matchesById(gridNode){return("snapshotNodeId"in gridNode)&&gridNode.snapshotNodeId===snapshotNodeId;}
-var matchPredicate;if(query.charAt(0)!=="@")
-matchPredicate=matchesByName;else{snapshotNodeId=parseInt(query.substring(1),10);matchPredicate=matchesById;}
+return;function didHighlight(found)
+{finishedCallback(this,found?1:0);}
+if(query.charAt(0)==="@"){var snapshotNodeId=parseInt(query.substring(1),10);if(!isNaN(snapshotNodeId))
+this.dataGrid.highlightObjectByHeapSnapshotId(String(snapshotNodeId),didHighlight.bind(this));else
+finishedCallback(this,0);return;}
+this._searchFinishedCallback=finishedCallback;var nameRegExp=createPlainTextSearchRegex(query,"i");function matchesByName(gridNode){return("_name"in gridNode)&&nameRegExp.test(gridNode._name);}
 function matchesQuery(gridNode)
-{delete gridNode._searchMatched;if(matchPredicate(gridNode)){gridNode._searchMatched=true;gridNode.refresh();return true;}
+{delete gridNode._searchMatched;if(matchesByName(gridNode)){gridNode._searchMatched=true;gridNode.refresh();return true;}
 return false;}
 var current=this.dataGrid.rootNode().children[0];var depth=0;var info={};const maxDepth=1;while(current){if(matchesQuery(current))
 this._searchResults.push({node:current});current=current.traverseNextNode(false,null,(depth>=maxDepth),info);depth+=info.depthChange;}
@@ -1472,7 +990,7 @@
 return;if(--this._currentSearchResultIndex<0)
 this._currentSearchResultIndex=(this._searchResults.length-1);this._jumpToSearchResult(this._currentSearchResultIndex);},showingFirstSearchResult:function()
 {return(this._currentSearchResultIndex===0);},showingLastSearchResult:function()
-{return(this._searchResults&&this._currentSearchResultIndex===(this._searchResults.length-1));},_jumpToSearchResult:function(index)
+{return(this._searchResults&&this._currentSearchResultIndex===(this._searchResults.length-1));},currentSearchResultIndex:function(){return this._currentSearchResultIndex;},_jumpToSearchResult:function(index)
 {var searchResult=this._searchResults[index];if(!searchResult)
 return;var node=searchResult.node;node.revealAndSelect();},refreshVisibleData:function()
 {var child=this.dataGrid.rootNode().children[0];while(child){child.refresh();child=child.traverseNextNode(false,null,true);}},_changeBase:function()
@@ -1482,9 +1000,9 @@
 return;this._searchFinishedCallback(this,-this._searchResults.length);this.performSearch(this.currentQuery,this._searchFinishedCallback);},_changeFilter:function()
 {var profileIndex=this.filterSelect.selectedIndex()-1;this.dataGrid.filterSelectIndexChanged(this._profiles(),profileIndex);WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.HeapSnapshotFilterChanged,label:this.filterSelect.selectedOption().label});if(!this.currentQuery||!this._searchFinishedCallback||!this._searchResults)
 return;this._searchFinishedCallback(this,-this._searchResults.length);this.performSearch(this.currentQuery,this._searchFinishedCallback);},_createToolbarWithClassNameFilter:function()
-{var toolbar=document.createElement("div");toolbar.addStyleClass("class-view-toolbar");var classNameFilter=document.createElement("input");classNameFilter.addStyleClass("class-name-filter");classNameFilter.setAttribute("placeholder",WebInspector.UIString("Class filter"));classNameFilter.addEventListener("keyup",this._changeNameFilter.bind(this,classNameFilter),false);toolbar.appendChild(classNameFilter);return toolbar;},_changeNameFilter:function(classNameInputElement)
+{var toolbar=document.createElement("div");toolbar.classList.add("class-view-toolbar");var classNameFilter=document.createElement("input");classNameFilter.classList.add("class-name-filter");classNameFilter.setAttribute("placeholder",WebInspector.UIString("Class filter"));classNameFilter.addEventListener("keyup",this._changeNameFilter.bind(this,classNameFilter),false);toolbar.appendChild(classNameFilter);return toolbar;},_changeNameFilter:function(classNameInputElement)
 {var filter=classNameInputElement.value;this.dataGrid.changeNameFilter(filter);},_profiles:function()
-{return this.parent.getProfileType(this._profileTypeId).getProfiles();},populateContextMenu:function(contextMenu,event)
+{return this._profile.profileType().getProfiles();},populateContextMenu:function(contextMenu,event)
 {this.dataGrid.populateContextMenu(this.parent,contextMenu,event);},_selectionChanged:function(event)
 {var selectedNode=event.target.selectedNode;this._setRetainmentDataGridSource(selectedNode);this._inspectedObjectChanged(event);},_inspectedObjectChanged:function(event)
 {var selectedNode=event.target.selectedNode;if(!this.profile.fromFile()&&selectedNode instanceof WebInspector.HeapSnapshotGenericObjectNode)
@@ -1493,7 +1011,7 @@
 this.retainmentDataGrid.setDataSource(nodeItem.isDeletedNode?nodeItem.dataGrid.baseSnapshot:nodeItem.dataGrid.snapshot,nodeItem.snapshotNodeIndex);else
 this.retainmentDataGrid.reset();},_mouseDownInContentsGrid:function(event)
 {if(event.detail<2)
-return;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell||(!cell.hasStyleClass("count-column")&&!cell.hasStyleClass("shallowSize-column")&&!cell.hasStyleClass("retainedSize-column")))
+return;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell||(!cell.classList.contains("count-column")&&!cell.classList.contains("shallowSize-column")&&!cell.classList.contains("retainedSize-column")))
 return;event.consume(true);},changeView:function(viewTitle,callback)
 {var viewIndex=null;for(var i=0;i<this.views.length;++i){if(this.views[i].title===viewTitle){viewIndex=i;break;}}
 if(this.views.current===viewIndex||viewIndex==null){setTimeout(callback,0);return;}
@@ -1512,9 +1030,9 @@
 this.diffDataGrid.setBaseDataSource(baseSnapshotProxy);}},_onSelectedViewChanged:function(event)
 {this._changeView(event.target.selectedIndex);},_updateSelectorsVisibility:function()
 {if(this.currentView===this.diffView)
-this.baseSelect.element.removeStyleClass("hidden");else
-this.baseSelect.element.addStyleClass("hidden");if(this.currentView===this.constructorsView){if(this._trackingOverviewGrid){this._trackingOverviewGrid.element.removeStyleClass("hidden");this._trackingOverviewGrid.update();this.viewsContainer.addStyleClass("reserve-80px-at-top");}
-this.filterSelect.element.removeStyleClass("hidden");}else{this.filterSelect.element.addStyleClass("hidden");if(this._trackingOverviewGrid){this._trackingOverviewGrid.element.addStyleClass("hidden");this.viewsContainer.removeStyleClass("reserve-80px-at-top");}}},_changeView:function(selectedIndex)
+this.baseSelect.element.classList.remove("hidden");else
+this.baseSelect.element.classList.add("hidden");if(this.currentView===this.constructorsView){if(this._trackingOverviewGrid){this._trackingOverviewGrid.element.classList.remove("hidden");this._trackingOverviewGrid.update();this.viewsContainer.classList.add("reserve-80px-at-top");}
+this.filterSelect.element.classList.remove("hidden");}else{this.filterSelect.element.classList.add("hidden");if(this._trackingOverviewGrid){this._trackingOverviewGrid.element.classList.add("hidden");this.viewsContainer.classList.remove("reserve-80px-at-top");}}},_changeView:function(selectedIndex)
 {if(selectedIndex===this.views.current)
 return;this.views.current=selectedIndex;this.currentView.detach();var view=this.views[this.views.current];this.currentView=view.view;this.dataGrid=view.grid;this.currentView.show(this.viewsContainer);this.refreshVisibleData();this.dataGrid.updateWidths();this._updateSelectorsVisibility();this._updateDataSourceAndView();if(!this.currentQuery||!this._searchFinishedCallback||!this._searchResults)
 return;this._searchFinishedCallback(this,-this._searchResults.length);this.performSearch(this.currentQuery,this._searchFinishedCallback);},_getHoverAnchor:function(target)
@@ -1528,7 +1046,7 @@
 {var height=this.retainmentView.element.clientHeight;height+=this._previousDragPosition-event.pageY;this._previousDragPosition=event.pageY;this._updateRetainmentViewHeight(height);event.consume(true);},_endRetainersHeaderDragging:function(event)
 {delete this._previousDragPosition;event.consume();},_updateRetainmentViewHeight:function(height)
 {height=Number.constrain(height,Preferences.minConsoleHeight,this.element.clientHeight-Preferences.minConsoleHeight);this.viewsContainer.style.bottom=(height+this.retainmentViewHeader.clientHeight)+"px";if(this._trackingOverviewGrid&&this.currentView===this.constructorsView)
-this.viewsContainer.addStyleClass("reserve-80px-at-top");this.retainmentView.element.style.height=height+"px";this.retainmentViewHeader.style.bottom=height+"px";this.currentView.doResize();},_updateBaseOptions:function()
+this.viewsContainer.classList.add("reserve-80px-at-top");this.retainmentView.element.style.height=height+"px";this.retainmentViewHeader.style.bottom=height+"px";this.currentView.doResize();},_updateBaseOptions:function()
 {var list=this._profiles();if(this.baseSelect.size()===list.length)
 return;for(var i=this.baseSelect.size(),n=list.length;i<n;++i){var title=list[i].title;this.baseSelect.createOption(title);}},_updateFilterOptions:function()
 {var list=this._profiles();if(this.filterSelect.size()-1===list.length)
@@ -1536,8 +1054,7 @@
 this.filterSelect.createOption(WebInspector.UIString("All objects"));for(var i=this.filterSelect.size()-1,n=list.length;i<n;++i){var title=list[i].title;if(!i)
 title=WebInspector.UIString("Objects allocated before %s",title);else
 title=WebInspector.UIString("Objects allocated between %s and %s",list[i-1].title,title);this.filterSelect.createOption(title);}},_onProfileHeaderAdded:function(event)
-{if(!event.data||event.data.type!==this._profileTypeId)
-return;this._updateBaseOptions();this._updateFilterOptions();},__proto__:WebInspector.View.prototype}
+{this._updateBaseOptions();this._updateFilterOptions();},__proto__:WebInspector.View.prototype}
 WebInspector.HeapProfilerDispatcher=function()
 {this._dispatchers=[];InspectorBackend.registerHeapProfilerDispatcher(this);}
 WebInspector.HeapProfilerDispatcher.prototype={register:function(dispatcher)
@@ -1560,21 +1077,21 @@
 {},lastSeenObjectId:function(lastSeenObjectId,timestamp)
 {},get treeItemTitle()
 {return WebInspector.UIString("HEAP SNAPSHOTS");},get description()
-{return WebInspector.UIString("Heap snapshot profiles show memory distribution among your page's JavaScript objects and related DOM nodes.");},createTemporaryProfile:function(title)
-{title=title||WebInspector.UIString("Snapshotting\u2026");return new WebInspector.HeapProfileHeader(this,title);},createProfile:function(profile)
-{return new WebInspector.HeapProfileHeader(this,profile.title,profile.uid,profile.maxJSObjectId||0);},_takeHeapSnapshot:function(callback)
-{var temporaryProfile=this.findTemporaryProfile();if(!temporaryProfile)
-this.addProfile(this.createTemporaryProfile());HeapProfilerAgent.takeHeapSnapshot(true,callback);},addProfileHeader:function(profileHeader)
-{if(!this.findTemporaryProfile())
-return;var profile=this.createProfile(profileHeader);profile._profileSamples=this._profileSamples;this._profileSamples=null;this.addProfile(profile);},addHeapSnapshotChunk:function(uid,chunk)
-{var profile=this._profilesIdMap[this._makeKey(uid)];if(profile)
+{return WebInspector.UIString("Heap snapshot profiles show memory distribution among your page's JavaScript objects and related DOM nodes.");},createProfileLoadedFromFile:function(title)
+{return new WebInspector.HeapProfileHeader(this,title);},_takeHeapSnapshot:function(callback)
+{if(this.profileBeingRecorded())
+return;this._profileBeingRecorded=new WebInspector.HeapProfileHeader(this,WebInspector.UIString("Snapshotting\u2026"));this.addProfile(this._profileBeingRecorded);HeapProfilerAgent.takeHeapSnapshot(true,callback);},addProfileHeader:function(profileHeader)
+{var profile=this.profileBeingRecorded();if(!profile)
+return;profile.title=profileHeader.title;profile.uid=profileHeader.uid;profile.maxJSObjectId=profileHeader.maxJSObjectId||0;profile.sidebarElement.mainTitle=profile.title;profile.sidebarElement.subtitle="";profile.sidebarElement.wait=false;this._profileSamples=null;this._profileBeingRecorded=null;WebInspector.panels.profiles._showProfile(profile);profile.existingView()._refreshView();},addHeapSnapshotChunk:function(uid,chunk)
+{var profile=this.getProfile(uid);if(profile)
 profile.transferChunk(chunk);},reportHeapSnapshotProgress:function(done,total)
-{var profile=this.findTemporaryProfile();if(profile)
-this.dispatchEventToListeners(WebInspector.ProfileType.Events.ProgressUpdated,{"profile":profile,"done":done,"total":total});},resetProfiles:function()
+{var profile=this.profileBeingRecorded();if(!profile)
+return;profile.sidebarElement.subtitle=WebInspector.UIString("%.0f%",(done/total)*100);profile.sidebarElement.wait=true;},resetProfiles:function()
 {this._reset();},removeProfile:function(profile)
-{WebInspector.ProfileType.prototype.removeProfile.call(this,profile);if(!profile.isTemporary&&!profile.fromFile())
-HeapProfilerAgent.removeProfile(profile.uid);},_snapshotReceived:function(profile)
-{this.dispatchEventToListeners(WebInspector.HeapSnapshotProfileType.SnapshotReceived,profile);},__proto__:WebInspector.ProfileType.prototype}
+{if(this._profileBeingRecorded!==profile&&!profile.fromFile())
+HeapProfilerAgent.removeProfile(profile.uid);WebInspector.ProfileType.prototype.removeProfile.call(this,profile);},_snapshotReceived:function(profile)
+{if(this._profileBeingRecorded===profile)
+this._profileBeingRecorded=null;this.dispatchEventToListeners(WebInspector.HeapSnapshotProfileType.SnapshotReceived,profile);},__proto__:WebInspector.ProfileType.prototype}
 WebInspector.TrackingHeapSnapshotProfileType=function(profilesPanel)
 {WebInspector.ProfileType.call(this,WebInspector.TrackingHeapSnapshotProfileType.TypeId,WebInspector.UIString("Record Heap Allocations"));this._profilesPanel=profilesPanel;WebInspector.HeapProfilerDispatcher._dispatcher.register(this);}
 WebInspector.TrackingHeapSnapshotProfileType.TypeId="HEAP-RECORD";WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate="HeapStatsUpdate";WebInspector.TrackingHeapSnapshotProfileType.TrackingStarted="TrackingStarted";WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped="TrackingStopped";WebInspector.TrackingHeapSnapshotProfileType.prototype={heapStatsUpdate:function(samples)
@@ -1585,57 +1102,68 @@
 {var profileSamples=this._profileSamples;if(!profileSamples)
 return;var currentIndex=Math.max(profileSamples.ids.length,profileSamples.max.length-1);profileSamples.ids[currentIndex]=lastSeenObjectId;if(!profileSamples.max[currentIndex]){profileSamples.max[currentIndex]=0;profileSamples.sizes[currentIndex]=0;}
 profileSamples.timestamps[currentIndex]=timestamp;if(profileSamples.totalTime<timestamp-profileSamples.timestamps[0])
-profileSamples.totalTime*=2;this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate,this._profileSamples);var profile=this.findTemporaryProfile();profile.sidebarElement.wait=true;if(profile.sidebarElement&&!profile.sidebarElement.wait)
+profileSamples.totalTime*=2;this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate,this._profileSamples);var profile=this._profileBeingRecorded;profile.sidebarElement.wait=true;if(profile.sidebarElement&&!profile.sidebarElement.wait)
 profile.sidebarElement.wait=true;},hasTemporaryView:function()
 {return true;},get buttonTooltip()
 {return this._recording?WebInspector.UIString("Stop recording heap profile."):WebInspector.UIString("Start recording heap profile.");},isInstantProfile:function()
 {return false;},buttonClicked:function()
 {return this._toggleRecording();},_startRecordingProfile:function()
-{this._lastSeenIndex=-1;this._profileSamples={'sizes':[],'ids':[],'timestamps':[],'max':[],'totalTime':30000};this._recording=true;HeapProfilerAgent.startTrackingHeapObjects();this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.TrackingStarted);},_stopRecordingProfile:function()
-{HeapProfilerAgent.stopTrackingHeapObjects();HeapProfilerAgent.takeHeapSnapshot(true);this._recording=false;this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped);},_toggleRecording:function()
+{if(this.profileBeingRecorded())
+return;this._profileBeingRecorded=new WebInspector.HeapProfileHeader(this,WebInspector.UIString("Recording\u2026"));this._lastSeenIndex=-1;this._profileSamples={'sizes':[],'ids':[],'timestamps':[],'max':[],'totalTime':30000};this._profileBeingRecorded._profileSamples=this._profileSamples;this._recording=true;this.addProfile(this._profileBeingRecorded);HeapProfilerAgent.startTrackingHeapObjects();this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.TrackingStarted);},_stopRecordingProfile:function()
+{HeapProfilerAgent.stopTrackingHeapObjects(true);this._recording=false;this.dispatchEventToListeners(WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped);},_toggleRecording:function()
 {if(this._recording)
 this._stopRecordingProfile();else
 this._startRecordingProfile();return this._recording;},get treeItemTitle()
 {return WebInspector.UIString("HEAP TIMELINES");},get description()
 {return WebInspector.UIString("Record JavaScript object allocations over time. Use this profile type to isolate memory leaks.");},_reset:function()
 {WebInspector.HeapSnapshotProfileType.prototype._reset.call(this);if(this._recording)
-this._stopRecordingProfile();this._profileSamples=null;this._lastSeenIndex=-1;},createTemporaryProfile:function(title)
-{title=title||WebInspector.UIString("Recording\u2026");return new WebInspector.HeapProfileHeader(this,title);},__proto__:WebInspector.HeapSnapshotProfileType.prototype}
+this._stopRecordingProfile();this._profileSamples=null;this._lastSeenIndex=-1;},removeProfile:function(profile)
+{if(this._profileBeingRecorded===profile){this._stopRecordingProfile();this._profileSamples=null;}
+WebInspector.HeapSnapshotProfileType.prototype.removeProfile.call(this,profile);},__proto__:WebInspector.HeapSnapshotProfileType.prototype}
 WebInspector.HeapProfileHeader=function(type,title,uid,maxJSObjectId)
-{WebInspector.ProfileHeader.call(this,type,title,uid);this.maxJSObjectId=maxJSObjectId;this._receiver=null;this._snapshotProxy=null;this._totalNumberOfChunks=0;this._transferHandler=null;}
+{WebInspector.ProfileHeader.call(this,type,title,uid);this.maxJSObjectId=maxJSObjectId;this._receiver=null;this._snapshotProxy=null;this._totalNumberOfChunks=0;this._transferHandler=null;this._bufferedWriter=null;}
 WebInspector.HeapProfileHeader.prototype={createSidebarTreeElement:function()
-{return new WebInspector.ProfileSidebarTreeElement(this,WebInspector.UIString("Snapshot %d"),"heap-snapshot-sidebar-tree-item");},createView:function(profilesPanel)
+{return new WebInspector.ProfileSidebarTreeElement(this,"heap-snapshot-sidebar-tree-item");},createView:function(profilesPanel)
 {return new WebInspector.HeapSnapshotView(profilesPanel,this);},load:function(callback)
 {if(this.uid===-1)
 return;if(this._snapshotProxy){callback(this._snapshotProxy);return;}
 this._numberOfChunks=0;if(!this._receiver){this._setupWorker();this._transferHandler=new WebInspector.BackendSnapshotLoader(this);this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026");this.sidebarElement.wait=true;this._transferSnapshot();}
-var loaderProxy=(this._receiver);loaderProxy.addConsumer(callback);},_transferSnapshot:function()
+var loaderProxy=(this._receiver);console.assert(loaderProxy);loaderProxy.addConsumer(callback);},_transferSnapshot:function()
 {function finishTransfer()
-{if(this._transferHandler){this._transferHandler.finishTransfer();this._totalNumberOfChunks=this._transferHandler._totalNumberOfChunks;}}
-HeapProfilerAgent.getHeapSnapshot(this.uid,finishTransfer.bind(this));},snapshotConstructorName:function()
+{if(this._transferHandler){this._transferHandler.finishTransfer();this._totalNumberOfChunks=this._transferHandler._totalNumberOfChunks;}
+if(this._bufferedWriter){this._bufferedWriter.close(this._didWriteToTempFile.bind(this));this._bufferedWriter=null;}}
+HeapProfilerAgent.getHeapSnapshot(this.uid,finishTransfer.bind(this));},_didWriteToTempFile:function(tempFile)
+{this._tempFile=tempFile;if(!tempFile)
+this._failedToCreateTempFile=true;if(this._onTempFileReady){this._onTempFileReady();this._onTempFileReady=null;}},snapshotConstructorName:function()
 {return"JSHeapSnapshot";},snapshotProxyConstructor:function()
 {return WebInspector.HeapSnapshotProxy;},_setupWorker:function()
 {function setProfileWait(event)
 {this.sidebarElement.wait=event.data;}
 var worker=new WebInspector.HeapSnapshotWorkerProxy(this._handleWorkerEvent.bind(this));worker.addEventListener("wait",setProfileWait,this);var loaderProxy=worker.createLoader(this.snapshotConstructorName(),this.snapshotProxyConstructor());loaderProxy.addConsumer(this._snapshotReceived.bind(this));this._receiver=loaderProxy;},_handleWorkerEvent:function(eventName,data)
-{if(WebInspector.HeapSnapshotProgress.Event.Update!==eventName)
+{if(WebInspector.HeapSnapshotProgressEvent.Update!==eventName)
 return;this._updateSubtitle(data);},dispose:function()
 {if(this._receiver)
 this._receiver.close();else if(this._snapshotProxy)
-this._snapshotProxy.dispose();if(this._view){var view=this._view;this._view=null;view.dispose();}},_updateSubtitle:function(value)
+this._snapshotProxy.dispose();if(this._view){var view=this._view;this._view=null;view.dispose();}
+this.removeTempFile();},_updateSubtitle:function(value)
 {this.sidebarElement.subtitle=value;},_didCompleteSnapshotTransfer:function()
-{this.sidebarElement.subtitle=Number.bytesToString(this._snapshotProxy.totalSize);this.sidebarElement.wait=false;},transferChunk:function(chunk)
-{this._transferHandler.transferChunk(chunk);},_snapshotReceived:function(snapshotProxy)
+{if(!this._snapshotProxy)
+return;this.sidebarElement.subtitle=Number.bytesToString(this._snapshotProxy.totalSize);this.sidebarElement.wait=false;},transferChunk:function(chunk)
+{if(!this._bufferedWriter)
+this._bufferedWriter=new WebInspector.BufferedTempFileWriter("heap-profiler",this.uid);this._bufferedWriter.write(chunk);this._transferHandler.transferChunk(chunk);},_snapshotReceived:function(snapshotProxy)
 {this._receiver=null;if(snapshotProxy)
-this._snapshotProxy=snapshotProxy;this._didCompleteSnapshotTransfer();var worker=(this._snapshotProxy.worker);this.isTemporary=false;worker.startCheckingForLongRunningCalls();this.notifySnapshotReceived();if(this.fromFile()){function didGetMaxNodeId(id)
+this._snapshotProxy=snapshotProxy;this._didCompleteSnapshotTransfer();var worker=(this._snapshotProxy.worker);worker.startCheckingForLongRunningCalls();this.notifySnapshotReceived();function didGetMaxNodeId(id)
 {this.maxJSObjectId=id;}
-snapshotProxy.maxJsNodeId(didGetMaxNodeId.bind(this));}},notifySnapshotReceived:function()
+if(this.fromFile())
+snapshotProxy.maxJsNodeId(didGetMaxNodeId.bind(this));},notifySnapshotReceived:function()
 {this._profileType._snapshotReceived(this);},_wasShown:function()
 {},canSaveToFile:function()
-{return!this.fromFile()&&!!this._snapshotProxy&&!this._receiver;},saveToFile:function()
-{var fileOutputStream=new WebInspector.FileOutputStream();function onOpen()
-{this._receiver=fileOutputStream;this._transferHandler=new WebInspector.SaveSnapshotHandler(this);this._transferSnapshot();}
-this._fileName=this._fileName||"Heap-"+new Date().toISO8601Compact()+this._profileType.fileExtension();fileOutputStream.open(this._fileName,onOpen.bind(this));},loadFromFile:function(file)
+{return!this.fromFile()&&!this._bufferedWriter&&!this._failedToCreateTempFile;},saveToFile:function()
+{var fileOutputStream=new WebInspector.FileOutputStream();function onOpen(accepted)
+{if(!accepted)
+return;if(this._failedToCreateTempFile){WebInspector.log("Failed to open temp file with heap snapshot",WebInspector.ConsoleMessage.MessageLevel.Error);fileOutputStream.close();}else if(this._tempFile){var delegate=new WebInspector.SaveSnapshotOutputStreamDelegate(this);this._tempFile.writeToOutputSteam(fileOutputStream,delegate);}else{this._onTempFileReady=onOpen.bind(this,accepted);this._updateSaveProgress(0,1);}}
+this._fileName=this._fileName||"Heap-"+new Date().toISO8601Compact()+this._profileType.fileExtension();fileOutputStream.open(this._fileName,onOpen.bind(this));},_updateSaveProgress:function(value,total)
+{var percentValue=((total?(value/total):0)*100).toFixed(0);this._updateSubtitle(WebInspector.UIString("Saving\u2026 %d\%",percentValue));},loadFromFile:function(file)
 {this.sidebarElement.subtitle=WebInspector.UIString("Loading\u2026");this.sidebarElement.wait=true;this._setupWorker();var delegate=new WebInspector.HeapSnapshotLoadFromFileDelegate(this);var fileReader=this._createFileReader(file,delegate);fileReader.start(this._receiver);},_createFileReader:function(file,delegate)
 {return new WebInspector.ChunkedFileReader(file,10000000,delegate);},__proto__:WebInspector.ProfileHeader.prototype}
 WebInspector.SnapshotTransferHandler=function(header,title)
@@ -1645,14 +1173,10 @@
 {},_didTransferChunk:function()
 {this._updateProgress(++this._savedChunks,this._totalNumberOfChunks);},_updateProgress:function(value,total)
 {}}
-WebInspector.SaveSnapshotHandler=function(header)
-{WebInspector.SnapshotTransferHandler.call(this,header,"Saving\u2026 %d\%");this._totalNumberOfChunks=header._totalNumberOfChunks;this._updateProgress(0,this._totalNumberOfChunks);}
-WebInspector.SaveSnapshotHandler.prototype={_updateProgress:function(value,total)
-{var percentValue=((total?(value/total):0)*100).toFixed(0);this._header._updateSubtitle(WebInspector.UIString(this._title,percentValue));if(value===total){this._header._receiver.close();this._header._didCompleteSnapshotTransfer();}},__proto__:WebInspector.SnapshotTransferHandler.prototype}
 WebInspector.BackendSnapshotLoader=function(header)
 {WebInspector.SnapshotTransferHandler.call(this,header,"Loading\u2026 %d\%");}
 WebInspector.BackendSnapshotLoader.prototype={finishTransfer:function()
-{this._header._receiver.close(this._didFinishTransfer.bind(this));this._totalNumberOfChunks=this._numberOfChunks;},_didFinishTransfer:function()
+{this._header._receiver.close(this._didFinishTransfer.bind(this));this._header._receiver=null;this._totalNumberOfChunks=this._numberOfChunks;},_didFinishTransfer:function()
 {console.assert(this._totalNumberOfChunks===this._savedChunks,"Not all chunks were transfered.");},__proto__:WebInspector.SnapshotTransferHandler.prototype}
 WebInspector.HeapSnapshotLoadFromFileDelegate=function(snapshotHeader)
 {this._snapshotHeader=snapshotHeader;}
@@ -1661,8 +1185,15 @@
 {},onTransferFinished:function()
 {},onError:function(reader,e)
 {switch(e.target.error.code){case e.target.error.NOT_FOUND_ERR:this._snapshotHeader._updateSubtitle(WebInspector.UIString("'%s' not found.",reader.fileName()));break;case e.target.error.NOT_READABLE_ERR:this._snapshotHeader._updateSubtitle(WebInspector.UIString("'%s' is not readable",reader.fileName()));break;case e.target.error.ABORT_ERR:break;default:this._snapshotHeader._updateSubtitle(WebInspector.UIString("'%s' error %d",reader.fileName(),e.target.error.code));}}}
+WebInspector.SaveSnapshotOutputStreamDelegate=function(profileHeader)
+{this._profileHeader=profileHeader;}
+WebInspector.SaveSnapshotOutputStreamDelegate.prototype={onTransferStarted:function()
+{this._profileHeader._updateSaveProgress(0,1);},onTransferFinished:function()
+{this._profileHeader._didCompleteSnapshotTransfer();},onChunkTransferred:function(reader)
+{this._profileHeader._updateSaveProgress(reader.loadedSize(),reader.fileSize());},onError:function(reader,event)
+{WebInspector.log("Failed to read heap snapshot from temp file: "+event.message,WebInspector.ConsoleMessage.MessageLevel.Error);this.onTransferFinished();}}
 WebInspector.HeapTrackingOverviewGrid=function(heapProfileHeader)
-{WebInspector.View.call(this);this.registerRequiredCSS("flameChart.css");this.element.id="heap-recording-view";this._overviewContainer=this.element.createChild("div","overview-container");this._overviewGrid=new WebInspector.OverviewGrid("heap-recording");this._overviewCanvas=this._overviewContainer.createChild("canvas","heap-recording-overview-canvas");this._overviewContainer.appendChild(this._overviewGrid.element);this._overviewCalculator=new WebInspector.HeapTrackingOverviewGrid.OverviewCalculator();this._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);this._profileSamples=heapProfileHeader._profileSamples||heapProfileHeader._profileType._profileSamples;if(heapProfileHeader.isTemporary){this._profileType=heapProfileHeader._profileType;this._profileType.addEventListener(WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate,this._onHeapStatsUpdate,this);this._profileType.addEventListener(WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped,this._onStopTracking,this);}
+{WebInspector.View.call(this);this.registerRequiredCSS("flameChart.css");this.element.id="heap-recording-view";this._overviewContainer=this.element.createChild("div","overview-container");this._overviewGrid=new WebInspector.OverviewGrid("heap-recording");this._overviewGrid.element.classList.add("fill");this._overviewCanvas=this._overviewContainer.createChild("canvas","heap-recording-overview-canvas");this._overviewContainer.appendChild(this._overviewGrid.element);this._overviewCalculator=new WebInspector.HeapTrackingOverviewGrid.OverviewCalculator();this._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);this._profileSamples=heapProfileHeader._profileSamples;if(heapProfileHeader.profileType().profileBeingRecorded()===heapProfileHeader){this._profileType=heapProfileHeader._profileType;this._profileType.addEventListener(WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate,this._onHeapStatsUpdate,this);this._profileType.addEventListener(WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped,this._onStopTracking,this);}
 var timestamps=this._profileSamples.timestamps;var totalTime=this._profileSamples.totalTime;this._windowLeft=0.0;this._windowRight=totalTime&&timestamps.length?(timestamps[timestamps.length-1]-timestamps[0])/totalTime:1.0;this._overviewGrid.setWindow(this._windowLeft,this._windowRight);this._yScale=new WebInspector.HeapTrackingOverviewGrid.SmoothScale();this._xScale=new WebInspector.HeapTrackingOverviewGrid.SmoothScale();}
 WebInspector.HeapTrackingOverviewGrid.IdsRangeChanged="IdsRangeChanged";WebInspector.HeapTrackingOverviewGrid.prototype={_onStopTracking:function(event)
 {this._profileType.removeEventListener(WebInspector.TrackingHeapSnapshotProfileType.HeapStatsUpdate,this._onHeapStatsUpdate,this);this._profileType.removeEventListener(WebInspector.TrackingHeapSnapshotProfileType.TrackingStopped,this._onStopTracking,this);},_onHeapStatsUpdate:function(event)
@@ -1701,163 +1232,37 @@
 {}
 WebInspector.HeapTrackingOverviewGrid.OverviewCalculator.prototype={_updateBoundaries:function(chart)
 {this._minimumBoundaries=0;this._maximumBoundaries=chart._profileSamples.totalTime;this._xScaleFactor=chart._overviewContainer.clientWidth/this._maximumBoundaries;},computePosition:function(time)
-{return(time-this._minimumBoundaries)*this._xScaleFactor;},formatTime:function(value)
-{return Number.secondsToString((value+this._minimumBoundaries)/1000);},maximumBoundary:function()
+{return(time-this._minimumBoundaries)*this._xScaleFactor;},formatTime:function(value,hires)
+{return Number.secondsToString((value+this._minimumBoundaries)/1000,hires);},maximumBoundary:function()
 {return this._maximumBoundaries;},minimumBoundary:function()
 {return this._minimumBoundaries;},zeroTime:function()
 {return this._minimumBoundaries;},boundarySpan:function()
-{return this._maximumBoundaries-this._minimumBoundaries;}};WebInspector.HeapSnapshotWorkerDispatcher=function(globalObject,postMessage)
-{this._objects=[];this._global=globalObject;this._postMessage=postMessage;}
-WebInspector.HeapSnapshotWorkerDispatcher.prototype={_findFunction:function(name)
-{var path=name.split(".");var result=this._global;for(var i=0;i<path.length;++i)
-result=result[path[i]];return result;},sendEvent:function(name,data)
-{this._postMessage({eventName:name,data:data});},dispatchMessage:function(event)
-{var data=event.data;var response={callId:data.callId};try{switch(data.disposition){case"create":{var constructorFunction=this._findFunction(data.methodName);this._objects[data.objectId]=new constructorFunction(this);break;}
-case"dispose":{delete this._objects[data.objectId];break;}
-case"getter":{var object=this._objects[data.objectId];var result=object[data.methodName];response.result=result;break;}
-case"factory":{var object=this._objects[data.objectId];var result=object[data.methodName].apply(object,data.methodArguments);if(result)
-this._objects[data.newObjectId]=result;response.result=!!result;break;}
-case"method":{var object=this._objects[data.objectId];response.result=object[data.methodName].apply(object,data.methodArguments);break;}}}catch(e){response.error=e.toString();response.errorCallStack=e.stack;if(data.methodName)
-response.errorMethodName=data.methodName;}
-this._postMessage(response);}};;WebInspector.JSHeapSnapshot=function(profile,progress)
-{this._nodeFlags={canBeQueried:1,detachedDOMTreeNode:2,pageObject:4,visitedMarkerMask:0x0ffff,visitedMarker:0x10000};this._lazyStringCache={};WebInspector.HeapSnapshot.call(this,profile,progress);}
-WebInspector.JSHeapSnapshot.prototype={maxJsNodeId:function()
-{var nodeFieldCount=this._nodeFieldCount;var nodes=this._nodes;var nodesLength=nodes.length;var id=0;for(var nodeIndex=this._nodeIdOffset;nodeIndex<nodesLength;nodeIndex+=nodeFieldCount){var nextId=nodes[nodeIndex];if(nextId%2===0)
-continue;if(id<nodes[nodeIndex])
-id=nodes[nodeIndex];}
-return id;},createNode:function(nodeIndex)
-{return new WebInspector.JSHeapSnapshotNode(this,nodeIndex);},createEdge:function(edges,edgeIndex)
-{return new WebInspector.JSHeapSnapshotEdge(this,edges,edgeIndex);},createRetainingEdge:function(retainedNodeIndex,retainerIndex)
-{return new WebInspector.JSHeapSnapshotRetainerEdge(this,retainedNodeIndex,retainerIndex);},classNodesFilter:function()
-{function filter(node)
-{return node.isUserObject();}
-return filter;},containmentEdgesFilter:function(showHiddenData)
-{function filter(edge){if(edge.isInvisible())
-return false;if(showHiddenData)
-return true;return!edge.isHidden()&&!edge.node().isHidden();}
-return filter;},retainingEdgesFilter:function(showHiddenData)
-{var containmentEdgesFilter=this.containmentEdgesFilter(showHiddenData);function filter(edge)
-{return containmentEdgesFilter(edge)&&!edge.node().isRoot()&&!edge.isWeak();}
-return filter;},dispose:function()
-{WebInspector.HeapSnapshot.prototype.dispose.call(this);delete this._flags;},_markInvisibleEdges:function()
-{for(var iter=this.rootNode().edges();iter.hasNext();iter.next()){var edge=iter.edge;if(!edge.isShortcut())
-continue;var node=edge.node();var propNames={};for(var innerIter=node.edges();innerIter.hasNext();innerIter.next()){var globalObjEdge=innerIter.edge;if(globalObjEdge.isShortcut())
-propNames[globalObjEdge._nameOrIndex()]=true;}
-for(innerIter.rewind();innerIter.hasNext();innerIter.next()){var globalObjEdge=innerIter.edge;if(!globalObjEdge.isShortcut()&&globalObjEdge.node().isHidden()&&globalObjEdge._hasStringName()&&(globalObjEdge._nameOrIndex()in propNames))
-this._containmentEdges[globalObjEdge._edges._start+globalObjEdge.edgeIndex+this._edgeTypeOffset]=this._edgeInvisibleType;}}},_calculateFlags:function()
-{this._flags=new Uint32Array(this.nodeCount);this._markDetachedDOMTreeNodes();this._markQueriableHeapObjects();this._markPageOwnedNodes();},_isUserRoot:function(node)
-{return node.isUserRoot()||node.isDocumentDOMTreesRoot();},forEachRoot:function(action,userRootsOnly)
-{function getChildNodeByName(node,name)
-{for(var iter=node.edges();iter.hasNext();iter.next()){var child=iter.edge.node();if(child.name()===name)
-return child;}
-return null;}
-function getChildNodeByLinkName(node,name)
-{for(var iter=node.edges();iter.hasNext();iter.next()){var edge=iter.edge;if(edge.name()===name)
-return edge.node();}
-return null;}
-var visitedNodes={};function doAction(node)
-{var ordinal=node._ordinal();if(!visitedNodes[ordinal]){action(node);visitedNodes[ordinal]=true;}}
-var gcRoots=getChildNodeByName(this.rootNode(),"(GC roots)");if(!gcRoots)
-return;if(userRootsOnly){for(var iter=this.rootNode().edges();iter.hasNext();iter.next()){var node=iter.edge.node();if(node.isDocumentDOMTreesRoot())
-doAction(node);else if(node.isUserRoot()){var nativeContextNode=getChildNodeByLinkName(node,"native_context");if(nativeContextNode)
-doAction(nativeContextNode);else
-doAction(node);}}}else{for(var iter=gcRoots.edges();iter.hasNext();iter.next()){var subRoot=iter.edge.node();for(var iter2=subRoot.edges();iter2.hasNext();iter2.next())
-doAction(iter2.edge.node());doAction(subRoot);}
-for(var iter=this.rootNode().edges();iter.hasNext();iter.next())
-doAction(iter.edge.node())}},userObjectsMapAndFlag:function()
-{return{map:this._flags,flag:this._nodeFlags.pageObject};},_flagsOfNode:function(node)
-{return this._flags[node.nodeIndex/this._nodeFieldCount];},_markDetachedDOMTreeNodes:function()
-{var flag=this._nodeFlags.detachedDOMTreeNode;var detachedDOMTreesRoot;for(var iter=this.rootNode().edges();iter.hasNext();iter.next()){var node=iter.edge.node();if(node.name()==="(Detached DOM trees)"){detachedDOMTreesRoot=node;break;}}
-if(!detachedDOMTreesRoot)
-return;var detachedDOMTreeRE=/^Detached DOM tree/;for(var iter=detachedDOMTreesRoot.edges();iter.hasNext();iter.next()){var node=iter.edge.node();if(detachedDOMTreeRE.test(node.className())){for(var edgesIter=node.edges();edgesIter.hasNext();edgesIter.next())
-this._flags[edgesIter.edge.node().nodeIndex/this._nodeFieldCount]|=flag;}}},_markQueriableHeapObjects:function()
-{var flag=this._nodeFlags.canBeQueried;var hiddenEdgeType=this._edgeHiddenType;var internalEdgeType=this._edgeInternalType;var invisibleEdgeType=this._edgeInvisibleType;var weakEdgeType=this._edgeWeakType;var edgeToNodeOffset=this._edgeToNodeOffset;var edgeTypeOffset=this._edgeTypeOffset;var edgeFieldsCount=this._edgeFieldsCount;var containmentEdges=this._containmentEdges;var nodes=this._nodes;var nodeCount=this.nodeCount;var nodeFieldCount=this._nodeFieldCount;var firstEdgeIndexes=this._firstEdgeIndexes;var flags=this._flags;var list=[];for(var iter=this.rootNode().edges();iter.hasNext();iter.next()){if(iter.edge.node().isUserRoot())
-list.push(iter.edge.node().nodeIndex/nodeFieldCount);}
-while(list.length){var nodeOrdinal=list.pop();if(flags[nodeOrdinal]&flag)
-continue;flags[nodeOrdinal]|=flag;var beginEdgeIndex=firstEdgeIndexes[nodeOrdinal];var endEdgeIndex=firstEdgeIndexes[nodeOrdinal+1];for(var edgeIndex=beginEdgeIndex;edgeIndex<endEdgeIndex;edgeIndex+=edgeFieldsCount){var childNodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];var childNodeOrdinal=childNodeIndex/nodeFieldCount;if(flags[childNodeOrdinal]&flag)
-continue;var type=containmentEdges[edgeIndex+edgeTypeOffset];if(type===hiddenEdgeType||type===invisibleEdgeType||type===internalEdgeType||type===weakEdgeType)
-continue;list.push(childNodeOrdinal);}}},_markPageOwnedNodes:function()
-{var edgeShortcutType=this._edgeShortcutType;var edgeElementType=this._edgeElementType;var edgeToNodeOffset=this._edgeToNodeOffset;var edgeTypeOffset=this._edgeTypeOffset;var edgeFieldsCount=this._edgeFieldsCount;var edgeWeakType=this._edgeWeakType;var firstEdgeIndexes=this._firstEdgeIndexes;var containmentEdges=this._containmentEdges;var containmentEdgesLength=containmentEdges.length;var nodes=this._nodes;var nodeFieldCount=this._nodeFieldCount;var nodesCount=this.nodeCount;var flags=this._flags;var flag=this._nodeFlags.pageObject;var visitedMarker=this._nodeFlags.visitedMarker;var visitedMarkerMask=this._nodeFlags.visitedMarkerMask;var markerAndFlag=visitedMarker|flag;var nodesToVisit=new Uint32Array(nodesCount);var nodesToVisitLength=0;var rootNodeOrdinal=this._rootNodeIndex/nodeFieldCount;var node=this.rootNode();for(var edgeIndex=firstEdgeIndexes[rootNodeOrdinal],endEdgeIndex=firstEdgeIndexes[rootNodeOrdinal+1];edgeIndex<endEdgeIndex;edgeIndex+=edgeFieldsCount){var edgeType=containmentEdges[edgeIndex+edgeTypeOffset];var nodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];if(edgeType===edgeElementType){node.nodeIndex=nodeIndex;if(!node.isDocumentDOMTreesRoot())
-continue;}else if(edgeType!==edgeShortcutType)
-continue;var nodeOrdinal=nodeIndex/nodeFieldCount;nodesToVisit[nodesToVisitLength++]=nodeOrdinal;flags[nodeOrdinal]|=visitedMarker;}
-while(nodesToVisitLength){var nodeOrdinal=nodesToVisit[--nodesToVisitLength];flags[nodeOrdinal]|=flag;flags[nodeOrdinal]&=visitedMarkerMask;var beginEdgeIndex=firstEdgeIndexes[nodeOrdinal];var endEdgeIndex=firstEdgeIndexes[nodeOrdinal+1];for(var edgeIndex=beginEdgeIndex;edgeIndex<endEdgeIndex;edgeIndex+=edgeFieldsCount){var childNodeIndex=containmentEdges[edgeIndex+edgeToNodeOffset];var childNodeOrdinal=childNodeIndex/nodeFieldCount;if(flags[childNodeOrdinal]&markerAndFlag)
-continue;var type=containmentEdges[edgeIndex+edgeTypeOffset];if(type===edgeWeakType)
-continue;nodesToVisit[nodesToVisitLength++]=childNodeOrdinal;flags[childNodeOrdinal]|=visitedMarker;}}},__proto__:WebInspector.HeapSnapshot.prototype};WebInspector.JSHeapSnapshotNode=function(snapshot,nodeIndex)
-{WebInspector.HeapSnapshotNode.call(this,snapshot,nodeIndex)}
-WebInspector.JSHeapSnapshotNode.prototype={canBeQueried:function()
-{var flags=this._snapshot._flagsOfNode(this);return!!(flags&this._snapshot._nodeFlags.canBeQueried);},isUserObject:function()
-{var flags=this._snapshot._flagsOfNode(this);return!!(flags&this._snapshot._nodeFlags.pageObject);},name:function(){var snapshot=this._snapshot;if(this._type()===snapshot._nodeConsStringType){var string=snapshot._lazyStringCache[this.nodeIndex];if(typeof string==="undefined"){string=this._consStringName();snapshot._lazyStringCache[this.nodeIndex]=string;}
-return string;}
-return WebInspector.HeapSnapshotNode.prototype.name.call(this);},_consStringName:function()
-{var snapshot=this._snapshot;var consStringType=snapshot._nodeConsStringType;var edgeInternalType=snapshot._edgeInternalType;var edgeFieldsCount=snapshot._edgeFieldsCount;var edgeToNodeOffset=snapshot._edgeToNodeOffset;var edgeTypeOffset=snapshot._edgeTypeOffset;var edgeNameOffset=snapshot._edgeNameOffset;var strings=snapshot._strings;var edges=snapshot._containmentEdges;var firstEdgeIndexes=snapshot._firstEdgeIndexes;var nodeFieldCount=snapshot._nodeFieldCount;var nodeTypeOffset=snapshot._nodeTypeOffset;var nodeNameOffset=snapshot._nodeNameOffset;var nodes=snapshot._nodes;var nodesStack=[];nodesStack.push(this.nodeIndex);var name="";while(nodesStack.length&&name.length<1024){var nodeIndex=nodesStack.pop();if(nodes[nodeIndex+nodeTypeOffset]!==consStringType){name+=strings[nodes[nodeIndex+nodeNameOffset]];continue;}
-var nodeOrdinal=nodeIndex/nodeFieldCount;var beginEdgeIndex=firstEdgeIndexes[nodeOrdinal];var endEdgeIndex=firstEdgeIndexes[nodeOrdinal+1];var firstNodeIndex=0;var secondNodeIndex=0;for(var edgeIndex=beginEdgeIndex;edgeIndex<endEdgeIndex&&(!firstNodeIndex||!secondNodeIndex);edgeIndex+=edgeFieldsCount){var edgeType=edges[edgeIndex+edgeTypeOffset];if(edgeType===edgeInternalType){var edgeName=strings[edges[edgeIndex+edgeNameOffset]];if(edgeName==="first")
-firstNodeIndex=edges[edgeIndex+edgeToNodeOffset];else if(edgeName==="second")
-secondNodeIndex=edges[edgeIndex+edgeToNodeOffset];}}
-nodesStack.push(secondNodeIndex);nodesStack.push(firstNodeIndex);}
-return name;},className:function()
-{var type=this.type();switch(type){case"hidden":return"(system)";case"object":case"native":return this.name();case"code":return"(compiled code)";default:return"("+type+")";}},classIndex:function()
-{var snapshot=this._snapshot;var nodes=snapshot._nodes;var type=nodes[this.nodeIndex+snapshot._nodeTypeOffset];;if(type===snapshot._nodeObjectType||type===snapshot._nodeNativeType)
-return nodes[this.nodeIndex+snapshot._nodeNameOffset];return-1-type;},id:function()
-{var snapshot=this._snapshot;return snapshot._nodes[this.nodeIndex+snapshot._nodeIdOffset];},isHidden:function()
-{return this._type()===this._snapshot._nodeHiddenType;},isSynthetic:function()
-{return this._type()===this._snapshot._nodeSyntheticType;},isUserRoot:function()
-{return!this.isSynthetic();},isDocumentDOMTreesRoot:function()
-{return this.isSynthetic()&&this.name()==="(Document DOM trees)";},serialize:function()
-{var result=WebInspector.HeapSnapshotNode.prototype.serialize.call(this);var flags=this._snapshot._flagsOfNode(this);if(flags&this._snapshot._nodeFlags.canBeQueried)
-result.canBeQueried=true;if(flags&this._snapshot._nodeFlags.detachedDOMTreeNode)
-result.detachedDOMTreeNode=true;return result;},__proto__:WebInspector.HeapSnapshotNode.prototype};WebInspector.JSHeapSnapshotEdge=function(snapshot,edges,edgeIndex)
-{WebInspector.HeapSnapshotEdge.call(this,snapshot,edges,edgeIndex);}
-WebInspector.JSHeapSnapshotEdge.prototype={clone:function()
-{return new WebInspector.JSHeapSnapshotEdge(this._snapshot,this._edges,this.edgeIndex);},hasStringName:function()
-{if(!this.isShortcut())
-return this._hasStringName();return isNaN(parseInt(this._name(),10));},isElement:function()
-{return this._type()===this._snapshot._edgeElementType;},isHidden:function()
-{return this._type()===this._snapshot._edgeHiddenType;},isWeak:function()
-{return this._type()===this._snapshot._edgeWeakType;},isInternal:function()
-{return this._type()===this._snapshot._edgeInternalType;},isInvisible:function()
-{return this._type()===this._snapshot._edgeInvisibleType;},isShortcut:function()
-{return this._type()===this._snapshot._edgeShortcutType;},name:function()
-{if(!this.isShortcut())
-return this._name();var numName=parseInt(this._name(),10);return isNaN(numName)?this._name():numName;},toString:function()
-{var name=this.name();switch(this.type()){case"context":return"->"+name;case"element":return"["+name+"]";case"weak":return"[["+name+"]]";case"property":return name.indexOf(" ")===-1?"."+name:"[\""+name+"\"]";case"shortcut":if(typeof name==="string")
-return name.indexOf(" ")===-1?"."+name:"[\""+name+"\"]";else
-return"["+name+"]";case"internal":case"hidden":case"invisible":return"{"+name+"}";};return"?"+name+"?";},_hasStringName:function()
-{return!this.isElement()&&!this.isHidden()&&!this.isWeak();},_name:function()
-{return this._hasStringName()?this._snapshot._strings[this._nameOrIndex()]:this._nameOrIndex();},_nameOrIndex:function()
-{return this._edges.item(this.edgeIndex+this._snapshot._edgeNameOffset);},_type:function()
-{return this._edges.item(this.edgeIndex+this._snapshot._edgeTypeOffset);},__proto__:WebInspector.HeapSnapshotEdge.prototype};WebInspector.JSHeapSnapshotRetainerEdge=function(snapshot,retainedNodeIndex,retainerIndex)
-{WebInspector.HeapSnapshotRetainerEdge.call(this,snapshot,retainedNodeIndex,retainerIndex);}
-WebInspector.JSHeapSnapshotRetainerEdge.prototype={clone:function()
-{return new WebInspector.JSHeapSnapshotRetainerEdge(this._snapshot,this._retainedNodeIndex,this.retainerIndex());},isHidden:function()
-{return this._edge().isHidden();},isInternal:function()
-{return this._edge().isInternal();},isInvisible:function()
-{return this._edge().isInvisible();},isShortcut:function()
-{return this._edge().isShortcut();},isWeak:function()
-{return this._edge().isWeak();},__proto__:WebInspector.HeapSnapshotRetainerEdge.prototype};WebInspector.ProfileLauncherView=function(profilesPanel)
-{WebInspector.View.call(this);this._panel=profilesPanel;this.element.addStyleClass("profile-launcher-view");this.element.addStyleClass("panel-enabler-view");this._contentElement=this.element.createChild("div","profile-launcher-view-content");this._innerContentElement=this._contentElement.createChild("div");this._controlButton=this._contentElement.createChild("button","control-profiling");this._controlButton.addEventListener("click",this._controlButtonClicked.bind(this),false);}
+{return this._maximumBoundaries-this._minimumBoundaries;}};WebInspector.ProfileLauncherView=function(profilesPanel)
+{WebInspector.View.call(this);this._panel=profilesPanel;this.element.classList.add("profile-launcher-view");this.element.classList.add("panel-enabler-view");this._contentElement=this.element.createChild("div","profile-launcher-view-content");this._innerContentElement=this._contentElement.createChild("div");this._controlButton=this._contentElement.createChild("button","control-profiling");this._controlButton.addEventListener("click",this._controlButtonClicked.bind(this),false);}
 WebInspector.ProfileLauncherView.prototype={addProfileType:function(profileType)
 {var descriptionElement=this._innerContentElement.createChild("h1");descriptionElement.textContent=profileType.description;var decorationElement=profileType.decorationElement();if(decorationElement)
 this._innerContentElement.appendChild(decorationElement);this._isInstantProfile=profileType.isInstantProfile();this._isEnabled=profileType.isEnabled();this._profileTypeId=profileType.id;},_controlButtonClicked:function()
 {this._panel.toggleRecordButton();},_updateControls:function()
 {if(this._isEnabled)
 this._controlButton.removeAttribute("disabled");else
-this._controlButton.setAttribute("disabled","");if(this._isInstantProfile){this._controlButton.removeStyleClass("running");this._controlButton.textContent=WebInspector.UIString("Take Snapshot");}else if(this._isProfiling){this._controlButton.addStyleClass("running");this._controlButton.textContent=WebInspector.UIString("Stop");}else{this._controlButton.removeStyleClass("running");this._controlButton.textContent=WebInspector.UIString("Start");}},profileStarted:function()
-{this._isProfiling=true;WebInspector.profileManager.notifyStarted(this._profileTypeId);this._updateControls();},profileFinished:function()
-{this._isProfiling=false;WebInspector.profileManager.notifyStoped(this._profileTypeId);this._updateControls();},updateProfileType:function(profileType)
+this._controlButton.setAttribute("disabled","");if(this._isInstantProfile){this._controlButton.classList.remove("running");this._controlButton.textContent=WebInspector.UIString("Take Snapshot");}else if(this._isProfiling){this._controlButton.classList.add("running");this._controlButton.textContent=WebInspector.UIString("Stop");}else{this._controlButton.classList.remove("running");this._controlButton.textContent=WebInspector.UIString("Start");}},profileStarted:function()
+{this._isProfiling=true;this._updateControls();},profileFinished:function()
+{this._isProfiling=false;this._updateControls();},updateProfileType:function(profileType)
 {this._isInstantProfile=profileType.isInstantProfile();this._isEnabled=profileType.isEnabled();this._profileTypeId=profileType.id;this._updateControls();},__proto__:WebInspector.View.prototype}
 WebInspector.MultiProfileLauncherView=function(profilesPanel)
-{WebInspector.ProfileLauncherView.call(this,profilesPanel);var header=this._innerContentElement.createChild("h1");header.textContent=WebInspector.UIString("Select profiling type");this._profileTypeSelectorForm=this._innerContentElement.createChild("form");this._innerContentElement.createChild("div","flexible-space");}
+{WebInspector.ProfileLauncherView.call(this,profilesPanel);WebInspector.settings.selectedProfileType=WebInspector.settings.createSetting("selectedProfileType","CPU");var header=this._innerContentElement.createChild("h1");header.textContent=WebInspector.UIString("Select profiling type");this._profileTypeSelectorForm=this._innerContentElement.createChild("form");this._innerContentElement.createChild("div","flexible-space");this._typeIdToOptionElement={};}
 WebInspector.MultiProfileLauncherView.EventTypes={ProfileTypeSelected:"profile-type-selected"}
 WebInspector.MultiProfileLauncherView.prototype={addProfileType:function(profileType)
-{var checked=!this._profileTypeSelectorForm.children.length;var labelElement=this._profileTypeSelectorForm.createChild("label");labelElement.textContent=profileType.name;var optionElement=document.createElement("input");labelElement.insertBefore(optionElement,labelElement.firstChild);optionElement.type="radio";optionElement.name="profile-type";optionElement.style.hidden=true;if(checked){optionElement.checked=checked;this.dispatchEventToListeners(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,profileType);}
-optionElement.addEventListener("change",this._profileTypeChanged.bind(this,profileType),false);var descriptionElement=labelElement.createChild("p");descriptionElement.textContent=profileType.description;var decorationElement=profileType.decorationElement();if(decorationElement)
-labelElement.appendChild(decorationElement);},_controlButtonClicked:function()
+{var labelElement=this._profileTypeSelectorForm.createChild("label");labelElement.textContent=profileType.name;var optionElement=document.createElement("input");labelElement.insertBefore(optionElement,labelElement.firstChild);this._typeIdToOptionElement[profileType.id]=optionElement;optionElement.type="radio";optionElement.name="profile-type";optionElement.style.hidden=true;optionElement.addEventListener("change",this._profileTypeChanged.bind(this,profileType),false);var descriptionElement=labelElement.createChild("p");descriptionElement.textContent=profileType.description;var decorationElement=profileType.decorationElement();if(decorationElement)
+labelElement.appendChild(decorationElement);},restoreSelectedProfileType:function()
+{var typeName=WebInspector.settings.selectedProfileType.get();if(!(typeName in this._typeIdToOptionElement))
+typeName=Object.keys(this._typeIdToOptionElement)[0];this._typeIdToOptionElement[typeName].checked=true;this.dispatchEventToListeners(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,this._panel.getProfileType(typeName));},_controlButtonClicked:function()
 {this._panel.toggleRecordButton();},_updateControls:function()
 {WebInspector.ProfileLauncherView.prototype._updateControls.call(this);var items=this._profileTypeSelectorForm.elements;for(var i=0;i<items.length;++i){if(items[i].type==="radio")
 items[i].disabled=this._isProfiling;}},_profileTypeChanged:function(profileType,event)
-{this.dispatchEventToListeners(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,profileType);this._isInstantProfile=profileType.isInstantProfile();this._isEnabled=profileType.isEnabled();this._profileTypeId=profileType.id;this._updateControls();},profileStarted:function()
-{this._isProfiling=true;WebInspector.profileManager.notifyStarted(this._profileTypeId);this._updateControls();},profileFinished:function()
-{this._isProfiling=false;WebInspector.profileManager.notifyStoped(this._profileTypeId);this._updateControls();},__proto__:WebInspector.ProfileLauncherView.prototype};WebInspector.TopDownProfileDataGridNode=function(profileNode,owningTree)
+{this.dispatchEventToListeners(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,profileType);this._isInstantProfile=profileType.isInstantProfile();this._isEnabled=profileType.isEnabled();this._profileTypeId=profileType.id;this._updateControls();WebInspector.settings.selectedProfileType.set(profileType.id);},profileStarted:function()
+{this._isProfiling=true;this._updateControls();},profileFinished:function()
+{this._isProfiling=false;this._updateControls();},__proto__:WebInspector.ProfileLauncherView.prototype};WebInspector.TopDownProfileDataGridNode=function(profileNode,owningTree)
 {var hasChildren=!!(profileNode.children&&profileNode.children.length);WebInspector.ProfileDataGridNode.call(this,profileNode,owningTree,hasChildren);this._remainingChildren=profileNode.children;}
 WebInspector.TopDownProfileDataGridNode.prototype={_sharedPopulate:function()
 {var children=this._remainingChildren;var childrenLength=children.length;for(var i=0;i<childrenLength;++i)
@@ -1876,7 +1281,7 @@
 this.sort(this.lastComparator,true);},restore:function()
 {if(!this._savedChildren)
 return;this.children[0].restorePosition();WebInspector.ProfileDataGridTree.prototype.restore.call(this);},_merge:WebInspector.TopDownProfileDataGridNode.prototype._merge,_sharedPopulate:WebInspector.TopDownProfileDataGridNode.prototype._sharedPopulate,__proto__:WebInspector.ProfileDataGridTree.prototype};WebInspector.CanvasProfileView=function(profile)
-{WebInspector.View.call(this);this.registerRequiredCSS("canvasProfiler.css");this.element.addStyleClass("canvas-profile-view");this._profile=profile;this._traceLogId=profile.traceLogId();this._traceLogPlayer=profile.traceLogPlayer();this._linkifier=new WebInspector.Linkifier();const defaultReplayLogWidthPercent=0.34;this._replayInfoSplitView=new WebInspector.SplitView(true,"canvasProfileViewReplaySplitLocation",defaultReplayLogWidthPercent);this._replayInfoSplitView.setMainElementConstraints(defaultReplayLogWidthPercent,defaultReplayLogWidthPercent);this._replayInfoSplitView.show(this.element);this._imageSplitView=new WebInspector.SplitView(false,"canvasProfileViewSplitLocation",300);this._imageSplitView.show(this._replayInfoSplitView.firstElement());var replayImageContainer=this._imageSplitView.firstElement();replayImageContainer.id="canvas-replay-image-container";this._replayImageElement=replayImageContainer.createChild("img","canvas-replay-image");this._debugInfoElement=replayImageContainer.createChild("div","canvas-debug-info hidden");this._spinnerIcon=replayImageContainer.createChild("img","canvas-spinner-icon hidden");var replayLogContainer=this._imageSplitView.secondElement();var controlsContainer=replayLogContainer.createChild("div","status-bar");var logGridContainer=replayLogContainer.createChild("div","canvas-replay-log");this._createControlButton(controlsContainer,"canvas-replay-first-step",WebInspector.UIString("First call."),this._onReplayFirstStepClick.bind(this));this._createControlButton(controlsContainer,"canvas-replay-prev-step",WebInspector.UIString("Previous call."),this._onReplayStepClick.bind(this,false));this._createControlButton(controlsContainer,"canvas-replay-next-step",WebInspector.UIString("Next call."),this._onReplayStepClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-prev-draw",WebInspector.UIString("Previous drawing call."),this._onReplayDrawingCallClick.bind(this,false));this._createControlButton(controlsContainer,"canvas-replay-next-draw",WebInspector.UIString("Next drawing call."),this._onReplayDrawingCallClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-last-step",WebInspector.UIString("Last call."),this._onReplayLastStepClick.bind(this));this._replayContextSelector=new WebInspector.StatusBarComboBox(this._onReplayContextChanged.bind(this));this._replayContextSelector.createOption(WebInspector.UIString("<screenshot auto>"),WebInspector.UIString("Show screenshot of the last replayed resource."),"");controlsContainer.appendChild(this._replayContextSelector.element);this._installReplayInfoSidebarWidgets(controlsContainer);this._replayStateView=new WebInspector.CanvasReplayStateView(this._traceLogPlayer);this._replayStateView.show(this._replayInfoSplitView.secondElement());this._replayContexts={};var columns=[{title:"#",sortable:false,width:"5%"},{title:WebInspector.UIString("Call"),sortable:false,width:"75%",disclosure:true},{title:WebInspector.UIString("Location"),sortable:false,width:"20%"}];this._logGrid=new WebInspector.DataGrid(columns);this._logGrid.element.addStyleClass("fill");this._logGrid.show(logGridContainer);this._logGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._replayTraceLog,this);this.element.addEventListener("mousedown",this._onMouseClick.bind(this),true);this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.element,this._popoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),this._onHidePopover.bind(this),true);this._popoverHelper.setRemoteObjectFormatter(this._hexNumbersFormatter.bind(this));this._requestTraceLog(0);}
+{WebInspector.View.call(this);this.registerRequiredCSS("canvasProfiler.css");this.element.classList.add("canvas-profile-view");this._profile=profile;this._traceLogId=profile.traceLogId();this._traceLogPlayer=(profile.traceLogPlayer());this._linkifier=new WebInspector.Linkifier();const defaultReplayLogWidthPercent=0.34;this._replayInfoSplitView=new WebInspector.SplitView(true,"canvasProfileViewReplaySplitLocation",defaultReplayLogWidthPercent);this._replayInfoSplitView.setMainElementConstraints(defaultReplayLogWidthPercent,defaultReplayLogWidthPercent);this._replayInfoSplitView.show(this.element);this._imageSplitView=new WebInspector.SplitView(false,"canvasProfileViewSplitLocation",300);this._replayInfoSplitView.setFirstView(this._imageSplitView);var replayImageContainer=this._imageSplitView.firstElement().createChild("div");replayImageContainer.id="canvas-replay-image-container";this._replayImageElement=replayImageContainer.createChild("img","canvas-replay-image");this._debugInfoElement=replayImageContainer.createChild("div","canvas-debug-info hidden");this._spinnerIcon=replayImageContainer.createChild("img","canvas-spinner-icon hidden");var replayLogContainer=this._imageSplitView.secondElement();var controlsContainer=replayLogContainer.createChild("div","status-bar");var logGridContainer=replayLogContainer.createChild("div","canvas-replay-log");this._createControlButton(controlsContainer,"canvas-replay-first-step",WebInspector.UIString("First call."),this._onReplayFirstStepClick.bind(this));this._createControlButton(controlsContainer,"canvas-replay-prev-step",WebInspector.UIString("Previous call."),this._onReplayStepClick.bind(this,false));this._createControlButton(controlsContainer,"canvas-replay-next-step",WebInspector.UIString("Next call."),this._onReplayStepClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-prev-draw",WebInspector.UIString("Previous drawing call."),this._onReplayDrawingCallClick.bind(this,false));this._createControlButton(controlsContainer,"canvas-replay-next-draw",WebInspector.UIString("Next drawing call."),this._onReplayDrawingCallClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-last-step",WebInspector.UIString("Last call."),this._onReplayLastStepClick.bind(this));this._replayContextSelector=new WebInspector.StatusBarComboBox(this._onReplayContextChanged.bind(this));this._replayContextSelector.createOption(WebInspector.UIString("<screenshot auto>"),WebInspector.UIString("Show screenshot of the last replayed resource."),"");controlsContainer.appendChild(this._replayContextSelector.element);this._installReplayInfoSidebarWidgets(controlsContainer);this._replayStateView=new WebInspector.CanvasReplayStateView(this._traceLogPlayer);this._replayInfoSplitView.setSecondView(this._replayStateView);this._replayContexts={};var columns=[{title:"#",sortable:false,width:"5%"},{title:WebInspector.UIString("Call"),sortable:false,width:"75%",disclosure:true},{title:WebInspector.UIString("Location"),sortable:false,width:"20%"}];this._logGrid=new WebInspector.DataGrid(columns);this._logGrid.element.classList.add("fill");this._logGrid.show(logGridContainer);this._logGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,this._replayTraceLog,this);this.element.addEventListener("mousedown",this._onMouseClick.bind(this),true);this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.element,this._popoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),this._onHidePopover.bind(this),true);this._popoverHelper.setRemoteObjectFormatter(this._hexNumbersFormatter.bind(this));this._requestTraceLog(0);}
 WebInspector.CanvasProfileView.TraceLogPollingInterval=500;WebInspector.CanvasProfileView.prototype={dispose:function()
 {this._linkifier.reset();},get statusBarItems()
 {return[];},get profile()
@@ -1913,7 +1318,7 @@
 {if(this._pendingReplayTraceLogEvent)
 return;var index=this._selectedCallIndex();if(index===-1||index===this._lastReplayCallIndex)
 return;this._lastReplayCallIndex=index;this._pendingReplayTraceLogEvent=true;function didReplayTraceLog(resourceState,replayTime)
-{delete this._pendingReplayTraceLogEvent;this._enableWaitIcon(false);this._debugInfoElement.textContent="Replay time: "+Number.secondsToString(replayTime/1000,true);this._onReplayContextChanged();if(index!==this._selectedCallIndex())
+{delete this._pendingReplayTraceLogEvent;this._enableWaitIcon(false);this._debugInfoElement.textContent=WebInspector.UIString("Replay time: %s",Number.secondsToString(replayTime/1000,true));this._onReplayContextChanged();if(index!==this._selectedCallIndex())
 this._replayTraceLog();}
 this._enableWaitIcon(true);this._traceLogPlayer.replayTraceLog(index,didReplayTraceLog.bind(this));},_requestTraceLog:function(offset)
 {function didReceiveTraceLog(traceLog)
@@ -1929,11 +1334,11 @@
 {var lastChild;while((lastChild=node.children.peekLast()))
 node=lastChild;return node;},_appendCallNodes:function(callNodes)
 {var rootNode=this._logGrid.rootNode();var frameNode=rootNode.children.peekLast();if(frameNode&&this._peekLastRecursively(frameNode).call.isFrameEndCall)
-frameNode=null;for(var i=0,n=callNodes.length;i<n;++i){if(!frameNode){var index=rootNode.children.length;var data={};data[0]="";data[1]="Frame #"+(index+1);data[2]="";frameNode=new WebInspector.DataGridNode(data);frameNode.selectable=true;rootNode.appendChild(frameNode);}
+frameNode=null;for(var i=0,n=callNodes.length;i<n;++i){if(!frameNode){var index=rootNode.children.length;var data={};data[0]="";data[1]=WebInspector.UIString("Frame #%d",index+1);data[2]="";frameNode=new WebInspector.DataGridNode(data);frameNode.selectable=true;rootNode.appendChild(frameNode);}
 var nextFrameCallIndex=i+1;while(nextFrameCallIndex<n&&!callNodes[nextFrameCallIndex-1].call.isFrameEndCall)
 ++nextFrameCallIndex;this._appendCallNodesToFrameNode(frameNode,callNodes,i,nextFrameCallIndex);i=nextFrameCallIndex-1;frameNode=null;}},_appendCallNodesToFrameNode:function(frameNode,callNodes,fromIndex,toIndex)
 {var self=this;function appendDrawCallGroup()
-{var index=self._drawCallGroupsCount||0;var data={};data[0]="";data[1]="Draw call group #"+(index+1);data[2]="";var node=new WebInspector.DataGridNode(data);node.selectable=true;self._drawCallGroupsCount=index+1;frameNode.appendChild(node);return node;}
+{var index=self._drawCallGroupsCount||0;var data={};data[0]="";data[1]=WebInspector.UIString("Draw call group #%d",index+1);data[2]="";var node=new WebInspector.DataGridNode(data);node.selectable=true;self._drawCallGroupsCount=index+1;frameNode.appendChild(node);return node;}
 function splitDrawCallGroup(drawCallGroup)
 {var splitIndex=0;var splitNode;while((splitNode=drawCallGroup.children[splitIndex])){if(splitNode.call.isDrawingCall)
 break;++splitIndex;}
@@ -1954,7 +1359,7 @@
 {function showObjectPopover(error,result,resourceState)
 {if(error)
 return;if(!result)
-return;this._popoverAnchorElement=argumentElement.cloneNode(true);this._popoverAnchorElement.addStyleClass("canvas-popover-anchor");this._popoverAnchorElement.addStyleClass("source-frame-eval-expression");argumentElement.parentElement.appendChild(this._popoverAnchorElement);var diffLeft=this._popoverAnchorElement.boxInWindow().x-argumentElement.boxInWindow().x;this._popoverAnchorElement.style.left=this._popoverAnchorElement.offsetLeft-diffLeft+"px";showCallback(WebInspector.RemoteObject.fromPayload(result),false,this._popoverAnchorElement);}
+return;this._popoverAnchorElement=argumentElement.cloneNode(true);this._popoverAnchorElement.classList.add("canvas-popover-anchor");this._popoverAnchorElement.classList.add("source-frame-eval-expression");argumentElement.parentElement.appendChild(this._popoverAnchorElement);var diffLeft=this._popoverAnchorElement.boxInWindow().x-argumentElement.boxInWindow().x;this._popoverAnchorElement.style.left=this._popoverAnchorElement.offsetLeft-diffLeft+"px";showCallback(WebInspector.RemoteObject.fromPayload(result),false,this._popoverAnchorElement);}
 var evalResult=argumentElement.__evalResult;if(evalResult)
 showObjectPopover.call(this,null,evalResult);else{var dataGridNode=this._logGrid.dataGridNodeFromNode(argumentElement);if(!dataGridNode||typeof dataGridNode.index!=="number"){this._popoverHelper.hidePopover();return;}
 var callIndex=dataGridNode.index;var argumentIndex=argumentElement.__argumentIndex;if(typeof argumentIndex!=="number")
@@ -1967,7 +1372,7 @@
 return;var frameNode=rootNode.children[0];while(frameNode.children[0])
 rootNode.appendChild(frameNode.children[0]);rootNode.removeChild(frameNode);},__proto__:WebInspector.View.prototype}
 WebInspector.CanvasProfileType=function()
-{WebInspector.ProfileType.call(this,WebInspector.CanvasProfileType.TypeId,WebInspector.UIString("Capture Canvas Frame"));this._nextProfileUid=1;this._recording=false;this._lastProfileHeader=null;this._capturingModeSelector=new WebInspector.StatusBarComboBox(this._dispatchViewUpdatedEvent.bind(this));this._capturingModeSelector.element.title=WebInspector.UIString("Canvas capture mode.");this._capturingModeSelector.createOption(WebInspector.UIString("Single Frame"),WebInspector.UIString("Capture a single canvas frame."),"");this._capturingModeSelector.createOption(WebInspector.UIString("Consecutive Frames"),WebInspector.UIString("Capture consecutive canvas frames."),"1");this._frameOptions={};this._framesWithCanvases={};this._frameSelector=new WebInspector.StatusBarComboBox(this._dispatchViewUpdatedEvent.bind(this));this._frameSelector.element.title=WebInspector.UIString("Frame containing the canvases to capture.");this._frameSelector.element.addStyleClass("hidden");WebInspector.runtimeModel.contextLists().forEach(this._addFrame,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListAdded,this._frameAdded,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListRemoved,this._frameRemoved,this);this._dispatcher=new WebInspector.CanvasDispatcher(this);this._canvasAgentEnabled=false;this._decorationElement=document.createElement("div");this._decorationElement.className="profile-canvas-decoration";this._updateDecorationElement();}
+{WebInspector.ProfileType.call(this,WebInspector.CanvasProfileType.TypeId,WebInspector.UIString("Capture Canvas Frame"));this._nextProfileUid=1;this._recording=false;this._lastProfileHeader=null;this._capturingModeSelector=new WebInspector.StatusBarComboBox(this._dispatchViewUpdatedEvent.bind(this));this._capturingModeSelector.element.title=WebInspector.UIString("Canvas capture mode.");this._capturingModeSelector.createOption(WebInspector.UIString("Single Frame"),WebInspector.UIString("Capture a single canvas frame."),"");this._capturingModeSelector.createOption(WebInspector.UIString("Consecutive Frames"),WebInspector.UIString("Capture consecutive canvas frames."),"1");this._frameOptions={};this._framesWithCanvases={};this._frameSelector=new WebInspector.StatusBarComboBox(this._dispatchViewUpdatedEvent.bind(this));this._frameSelector.element.title=WebInspector.UIString("Frame containing the canvases to capture.");this._frameSelector.element.classList.add("hidden");WebInspector.runtimeModel.contextLists().forEach(this._addFrame,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListAdded,this._frameAdded,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListRemoved,this._frameRemoved,this);this._dispatcher=new WebInspector.CanvasDispatcher(this);this._canvasAgentEnabled=false;this._decorationElement=document.createElement("div");this._decorationElement.className="profile-canvas-decoration";this._updateDecorationElement();}
 WebInspector.CanvasProfileType.TypeId="CANVAS_PROFILE";WebInspector.CanvasProfileType.prototype={get statusBarItems()
 {return[this._capturingModeSelector.element,this._frameSelector.element];},get buttonTooltip()
 {if(this._isSingleFrameMode())
@@ -1989,14 +1394,11 @@
 {return this._decorationElement;},_reset:function()
 {WebInspector.ProfileType.prototype._reset.call(this);this._nextProfileUid=1;},removeProfile:function(profile)
 {WebInspector.ProfileType.prototype.removeProfile.call(this,profile);if(this._recording&&profile===this._lastProfileHeader)
-this._recording=false;},setRecordingProfile:function(isProfiling)
-{this._recording=isProfiling;},createTemporaryProfile:function(title)
-{title=title||WebInspector.UIString("Capturing\u2026");return new WebInspector.CanvasProfileHeader(this,title);},createProfile:function(profile)
-{return new WebInspector.CanvasProfileHeader(this,profile.title,-1);},_updateDecorationElement:function(forcePageReload)
-{this._decorationElement.removeChildren();this._decorationElement.createChild("div","warning-icon-small");this._decorationElement.appendChild(document.createTextNode(this._canvasAgentEnabled?WebInspector.UIString("Canvas Profiler is enabled."):WebInspector.UIString("Canvas Profiler is disabled.")));var button=this._decorationElement.createChild("button");button.type="button";button.textContent=this._canvasAgentEnabled?WebInspector.UIString("Disable"):WebInspector.UIString("Enable");button.addEventListener("click",this._onProfilerEnableButtonClick.bind(this,!this._canvasAgentEnabled),false);if(forcePageReload){if(this._canvasAgentEnabled){function hasUninstrumentedCanvasesCallback(error,result)
+this._recording=false;},_updateDecorationElement:function(forcePageReload)
+{this._decorationElement.removeChildren();this._decorationElement.createChild("div","warning-icon-small");this._decorationElement.appendChild(document.createTextNode(this._canvasAgentEnabled?WebInspector.UIString("Canvas Profiler is enabled."):WebInspector.UIString("Canvas Profiler is disabled.")));var button=this._decorationElement.createChild("button");button.type="button";button.textContent=this._canvasAgentEnabled?WebInspector.UIString("Disable"):WebInspector.UIString("Enable");button.addEventListener("click",this._onProfilerEnableButtonClick.bind(this,!this._canvasAgentEnabled),false);function hasUninstrumentedCanvasesCallback(error,result)
 {if(error||result)
-PageAgent.reload();}
-CanvasAgent.hasUninstrumentedCanvases(hasUninstrumentedCanvasesCallback.bind(this));}else{for(var frameId in this._framesWithCanvases){if(this._framesWithCanvases.hasOwnProperty(frameId)){PageAgent.reload();break;}}}}},_onProfilerEnableButtonClick:function(enable)
+WebInspector.resourceTreeModel.reloadPage();}
+if(forcePageReload){if(this._canvasAgentEnabled){CanvasAgent.hasUninstrumentedCanvases(hasUninstrumentedCanvasesCallback.bind(this));}else{for(var frameId in this._framesWithCanvases){if(this._framesWithCanvases.hasOwnProperty(frameId)){WebInspector.resourceTreeModel.reloadPage();break;}}}}},_onProfilerEnableButtonClick:function(enable)
 {if(this._canvasAgentEnabled===enable)
 return;function callback(error)
 {if(error)
@@ -2032,7 +1434,7 @@
 {return this._traceLogId;},traceLogPlayer:function()
 {return this._traceLogPlayer;},frameId:function()
 {return this._frameId;},createSidebarTreeElement:function()
-{return new WebInspector.ProfileSidebarTreeElement(this,WebInspector.UIString("Trace Log %d"),"profile-sidebar-tree-item");},createView:function(profilesPanel)
+{return new WebInspector.ProfileSidebarTreeElement(this,"profile-sidebar-tree-item");},createView:function(profilesPanel)
 {return new WebInspector.CanvasProfileView(this);},dispose:function()
 {if(this._traceLogPlayer)
 this._traceLogPlayer.dispose();clearTimeout(this._requestStatusTimer);this._alive=false;},_updateCapturingStatus:function(traceLog)
@@ -2046,11 +1448,11 @@
 WebInspector.CanvasProfileDataGridHelper={createCallArgumentElement:function(callArgument)
 {if(callArgument.enumName)
 return WebInspector.CanvasProfileDataGridHelper.createEnumValueElement(callArgument.enumName,+callArgument.description);var element=document.createElement("span");element.className="canvas-call-argument";var description=callArgument.description;if(callArgument.type==="string"){const maxStringLength=150;element.createTextChild("\"");element.createChild("span","canvas-formatted-string").textContent=description.trimMiddle(maxStringLength);element.createTextChild("\"");element.__suppressPopover=(description.length<=maxStringLength&&!/[\r\n]/.test(description));if(!element.__suppressPopover)
-element.__evalResult=WebInspector.RemoteObject.fromPrimitiveValue(description);}else{var type=callArgument.subtype||callArgument.type;if(type){element.addStyleClass("canvas-formatted-"+type);if(["null","undefined","boolean","number"].indexOf(type)>=0)
+element.__evalResult=WebInspector.RemoteObject.fromPrimitiveValue(description);}else{var type=callArgument.subtype||callArgument.type;if(type){element.classList.add("canvas-formatted-"+type);if(["null","undefined","boolean","number"].indexOf(type)>=0)
 element.__suppressPopover=true;}
 element.textContent=description;if(callArgument.remoteObject)
 element.__evalResult=WebInspector.RemoteObject.fromPayload(callArgument.remoteObject);}
-if(callArgument.resourceId){element.addStyleClass("canvas-formatted-resource");element.__resourceId=callArgument.resourceId;}
+if(callArgument.resourceId){element.classList.add("canvas-formatted-resource");element.__resourceId=callArgument.resourceId;}
 return element;},createEnumValueElement:function(enumName,enumValue)
 {var element=document.createElement("span");element.className="canvas-call-argument canvas-formatted-number";element.textContent=enumName;element.__evalResult=WebInspector.RemoteObject.fromPrimitiveValue(enumValue);return element;}}
 WebInspector.CanvasTraceLogPlayerProxy=function(traceLogId)
@@ -2063,18 +1465,18 @@
 CanvasAgent.getTraceLog(this._traceLogId,startOffset,maxLength,callback.bind(this));},dispose:function()
 {this._currentResourceStates={};CanvasAgent.dropTraceLog(this._traceLogId);this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged);},getResourceState:function(resourceId,userCallback)
 {resourceId=resourceId||this._defaultResourceId;if(!resourceId){userCallback(null);return;}
-if(this._currentResourceStates[resourceId]){userCallback(this._currentResourceStates[resourceId]);return;}
+var effectiveResourceId=(resourceId);if(this._currentResourceStates[effectiveResourceId]){userCallback(this._currentResourceStates[effectiveResourceId]);return;}
 function callback(error,resourceState)
 {if(error||!resourceState){userCallback(null);return;}
-this._currentResourceStates[resourceId]=resourceState;userCallback(resourceState);this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasResourceStateReceived,resourceState);}
-CanvasAgent.getResourceState(this._traceLogId,resourceId,callback.bind(this));},replayTraceLog:function(index,userCallback)
+this._currentResourceStates[effectiveResourceId]=resourceState;userCallback(resourceState);this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasResourceStateReceived,resourceState);}
+CanvasAgent.getResourceState(this._traceLogId,effectiveResourceId,callback.bind(this));},replayTraceLog:function(index,userCallback)
 {function callback(error,resourceState,replayTime)
-{this._currentResourceStates={};if(error||!resourceState){resourceState=null;userCallback(null,replayTime);}else{this._defaultResourceId=resourceState.id;this._currentResourceStates[resourceState.id]=resourceState;userCallback(resourceState,replayTime);}
-this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged);if(resourceState)
+{this._currentResourceStates={};if(error){userCallback(null,replayTime);}else{this._defaultResourceId=resourceState.id;this._currentResourceStates[resourceState.id]=resourceState;userCallback(resourceState,replayTime);}
+this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged);if(!error)
 this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasResourceStateReceived,resourceState);}
 CanvasAgent.replayTraceLog(this._traceLogId,index,callback.bind(this));},clearResourceStates:function()
 {this._currentResourceStates={};this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged);},__proto__:WebInspector.Object.prototype};WebInspector.CanvasReplayStateView=function(traceLogPlayer)
-{WebInspector.View.call(this);this.registerRequiredCSS("canvasProfiler.css");this.element.addStyleClass("canvas-replay-state-view");this._traceLogPlayer=traceLogPlayer;var controlsContainer=this.element.createChild("div","status-bar");this._prevButton=this._createControlButton(controlsContainer,"canvas-replay-state-prev",WebInspector.UIString("Previous resource."),this._onResourceNavigationClick.bind(this,false));this._nextButton=this._createControlButton(controlsContainer,"canvas-replay-state-next",WebInspector.UIString("Next resource."),this._onResourceNavigationClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-state-refresh",WebInspector.UIString("Refresh."),this._onStateRefreshClick.bind(this));this._resourceSelector=new WebInspector.StatusBarComboBox(this._onReplayResourceChanged.bind(this));this._currentOption=this._resourceSelector.createOption(WebInspector.UIString("<auto>"),WebInspector.UIString("Show state of the last replayed resource."),"");controlsContainer.appendChild(this._resourceSelector.element);this._resourceIdToDescription={};this._gridNodesExpandedState={};this._gridScrollPositions={};this._currentResourceId=null;this._prevOptionsStack=[];this._nextOptionsStack=[];this._highlightedGridNodes=[];var columns=[{title:WebInspector.UIString("Name"),sortable:false,width:"50%",disclosure:true},{title:WebInspector.UIString("Value"),sortable:false,width:"50%"}];this._stateGrid=new WebInspector.DataGrid(columns);this._stateGrid.element.addStyleClass("fill");this._stateGrid.show(this.element);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged,this._onReplayResourceChanged,this);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasTraceLogReceived,this._onCanvasTraceLogReceived,this);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasResourceStateReceived,this._onCanvasResourceStateReceived,this);this._updateButtonsEnabledState();}
+{WebInspector.View.call(this);this.registerRequiredCSS("canvasProfiler.css");this.element.classList.add("canvas-replay-state-view");this._traceLogPlayer=traceLogPlayer;var controlsContainer=this.element.createChild("div","status-bar");this._prevButton=this._createControlButton(controlsContainer,"canvas-replay-state-prev",WebInspector.UIString("Previous resource."),this._onResourceNavigationClick.bind(this,false));this._nextButton=this._createControlButton(controlsContainer,"canvas-replay-state-next",WebInspector.UIString("Next resource."),this._onResourceNavigationClick.bind(this,true));this._createControlButton(controlsContainer,"canvas-replay-state-refresh",WebInspector.UIString("Refresh."),this._onStateRefreshClick.bind(this));this._resourceSelector=new WebInspector.StatusBarComboBox(this._onReplayResourceChanged.bind(this));this._currentOption=this._resourceSelector.createOption(WebInspector.UIString("<auto>"),WebInspector.UIString("Show state of the last replayed resource."),"");controlsContainer.appendChild(this._resourceSelector.element);this._resourceIdToDescription={};this._gridNodesExpandedState={};this._gridScrollPositions={};this._currentResourceId=null;this._prevOptionsStack=[];this._nextOptionsStack=[];this._highlightedGridNodes=[];var columns=[{title:WebInspector.UIString("Name"),sortable:false,width:"50%",disclosure:true},{title:WebInspector.UIString("Value"),sortable:false,width:"50%"}];this._stateGrid=new WebInspector.DataGrid(columns);this._stateGrid.element.classList.add("fill");this._stateGrid.show(this.element);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasReplayStateChanged,this._onReplayResourceChanged,this);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasTraceLogReceived,this._onCanvasTraceLogReceived,this);this._traceLogPlayer.addEventListener(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasResourceStateReceived,this._onCanvasResourceStateReceived,this);this._updateButtonsEnabledState();}
 WebInspector.CanvasReplayStateView.prototype={selectResource:function(resourceId)
 {if(resourceId===this._resourceSelector.selectedOption().value)
 return;var option=this._resourceSelector.selectElement().firstChild;for(var index=0;option;++index,option=option.nextSibling){if(resourceId===option.value){this._resourceSelector.setSelectedIndex(index);this._onReplayResourceChanged();break;}}},_createControlButton:function(parent,className,title,clickCallback)
@@ -2107,10 +1509,8 @@
 {if(selectedResourceId!==this._resourceSelector.selectedOption().value)
 return;this._showResourceState(resourceState);}
 this._traceLogPlayer.getResourceState(selectedResourceId,didReceiveResourceState.bind(this));},_onCanvasTraceLogReceived:function(event)
-{var traceLog=(event.data);if(traceLog)
-this._collectResourcesFromTraceLog(traceLog);},_onCanvasResourceStateReceived:function(event)
-{var resourceState=(event.data);if(resourceState)
-this._collectResourcesFromResourceState(resourceState);},_showResourceState:function(resourceState)
+{var traceLog=(event.data);console.assert(traceLog);this._collectResourcesFromTraceLog(traceLog);},_onCanvasResourceStateReceived:function(event)
+{var resourceState=(event.data);console.assert(resourceState);this._collectResourcesFromResourceState(resourceState);},_showResourceState:function(resourceState)
 {this._saveExpandedState();this._saveScrollState();var rootNode=this._stateGrid.rootNode();if(!resourceState){this._currentResourceId=null;this._updateDataGridHighlights([]);rootNode.removeChildren();return;}
 var nodesToHighlight=[];var nameToOldGridNodes={};function populateNameToNodesMap(map,node)
 {if(!node)
@@ -2122,8 +1522,8 @@
 {descriptors=descriptors||[];descriptors.sort(comparator);var oldChildren=nameToOldChildren||{};for(var i=0,n=descriptors.length;i<n;++i){var descriptor=descriptors[i];var childNode=this._createDataGridNode(descriptor);parent.appendChild(childNode);var oldChildrenItem=oldChildren[childNode.name]||{};var oldChildNode=oldChildrenItem.node;if(!oldChildNode||oldChildNode.element.textContent!==childNode.element.textContent)
 nodesToHighlight.push(childNode);appendResourceStateDescriptors.call(this,descriptor.values,childNode,oldChildrenItem.children);}}
 appendResourceStateDescriptors.call(this,resourceState.descriptors,rootNode,nameToOldGridNodes);var shouldHighlightChanges=(this._resourceKindId(this._currentResourceId)===this._resourceKindId(resourceState.id));this._currentResourceId=resourceState.id;this._restoreExpandedState();this._updateDataGridHighlights(shouldHighlightChanges?nodesToHighlight:[]);this._restoreScrollState();},_updateDataGridHighlights:function(nodes)
-{for(var i=0,n=this._highlightedGridNodes.length;i<n;++i){var node=this._highlightedGridNodes[i];node.element.removeStyleClass("canvas-grid-node-highlighted");}
-this._highlightedGridNodes=nodes;for(var i=0,n=this._highlightedGridNodes.length;i<n;++i){var node=this._highlightedGridNodes[i];node.element.addStyleClass("canvas-grid-node-highlighted");node.reveal();}},_resourceKindId:function(resourceId)
+{for(var i=0,n=this._highlightedGridNodes.length;i<n;++i){var node=this._highlightedGridNodes[i];node.element.classList.remove("canvas-grid-node-highlighted");}
+this._highlightedGridNodes=nodes;for(var i=0,n=this._highlightedGridNodes.length;i<n;++i){var node=this._highlightedGridNodes[i];node.element.classList.add("canvas-grid-node-highlighted");node.reveal();}},_resourceKindId:function(resourceId)
 {var description=(resourceId&&this._resourceIdToDescription[resourceId])||"";return description.replace(/\d+/g,"");},_forEachGridNode:function(callback)
 {function processRecursively(node,key)
 {for(var i=0,child;child=node.children[i];++i){var childKey=key+"#"+child.name;callback(child,childKey);processRecursively(child,childKey);}}
diff --git a/resources/inspector/ResourcesPanel.js b/resources/inspector/ResourcesPanel.js
index 5cfd665..1dc11e6 100644
--- a/resources/inspector/ResourcesPanel.js
+++ b/resources/inspector/ResourcesPanel.js
@@ -1,5 +1,5 @@
 WebInspector.ApplicationCacheItemsView=function(model,frameId)
-{WebInspector.View.call(this);this._model=model;this.element.addStyleClass("storage-view");this.element.addStyleClass("table");this.deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this.deleteButton.visible=false;this.deleteButton.addEventListener("click",this._deleteButtonClicked,this);this.connectivityIcon=document.createElement("div");this.connectivityMessage=document.createElement("span");this.connectivityMessage.className="storage-application-cache-connectivity";this.connectivityMessage.textContent="";this.divider=document.createElement("span");this.divider.className="status-bar-item status-bar-divider";this.statusIcon=document.createElement("div");this.statusMessage=document.createElement("span");this.statusMessage.className="storage-application-cache-status";this.statusMessage.textContent="";this._frameId=frameId;this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("No Application Cache information available."));this._emptyView.show(this.element);this._markDirty();var status=this._model.frameManifestStatus(frameId);this.updateStatus(status);this.updateNetworkState(this._model.onLine);this.deleteButton.element.style.display="none";}
+{WebInspector.View.call(this);this._model=model;this.element.classList.add("storage-view");this.element.classList.add("table");this.deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this.deleteButton.visible=false;this.deleteButton.addEventListener("click",this._deleteButtonClicked,this);this.connectivityIcon=document.createElement("div");this.connectivityMessage=document.createElement("span");this.connectivityMessage.className="storage-application-cache-connectivity";this.connectivityMessage.textContent="";this.divider=document.createElement("span");this.divider.className="status-bar-item status-bar-divider";this.statusIcon=document.createElement("div");this.statusMessage=document.createElement("span");this.statusMessage.className="storage-application-cache-status";this.statusMessage.textContent="";this._frameId=frameId;this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("No Application Cache information available."));this._emptyView.show(this.element);this._markDirty();var status=this._model.frameManifestStatus(frameId);this.updateStatus(status);this.updateNetworkState(this._model.onLine);this.deleteButton.element.style.display="none";}
 WebInspector.ApplicationCacheItemsView.prototype={get statusBarItems()
 {return[this.deleteButton.element,this.connectivityIcon,this.connectivityMessage,this.divider,this.statusIcon,this.statusMessage];},wasShown:function()
 {this._maybeUpdate();},willHide:function()
@@ -12,9 +12,9 @@
 {if(isNowOnline){this.connectivityIcon.className="storage-application-cache-connectivity-icon green-ball";this.connectivityMessage.textContent=WebInspector.UIString("Online");}else{this.connectivityIcon.className="storage-application-cache-connectivity-icon red-ball";this.connectivityMessage.textContent=WebInspector.UIString("Offline");}},_update:function()
 {this._model.requestApplicationCache(this._frameId,this._updateCallback.bind(this));},_updateCallback:function(applicationCache)
 {if(!applicationCache||!applicationCache.manifestURL){delete this._manifest;delete this._creationTime;delete this._updateTime;delete this._size;delete this._resources;this._emptyView.show(this.element);this.deleteButton.visible=false;if(this._dataGrid)
-this._dataGrid.element.addStyleClass("hidden");return;}
+this._dataGrid.element.classList.add("hidden");return;}
 this._manifest=applicationCache.manifestURL;this._creationTime=applicationCache.creationTime;this._updateTime=applicationCache.updateTime;this._size=applicationCache.size;this._resources=applicationCache.resources;if(!this._dataGrid)
-this._createDataGrid();this._populateDataGrid();this._dataGrid.autoSizeColumns(20,80);this._dataGrid.element.removeStyleClass("hidden");this._emptyView.detach();this.deleteButton.visible=true;},_createDataGrid:function()
+this._createDataGrid();this._populateDataGrid();this._dataGrid.autoSizeColumns(20,80);this._dataGrid.element.classList.remove("hidden");this._emptyView.detach();this.deleteButton.visible=true;},_createDataGrid:function()
 {var columns=[{title:WebInspector.UIString("Resource"),sort:WebInspector.DataGrid.Order.Ascending,sortable:true},{title:WebInspector.UIString("Type"),sortable:true},{title:WebInspector.UIString("Size"),align:WebInspector.DataGrid.Align.Right,sortable:true}];this._dataGrid=new WebInspector.DataGrid(columns);this._dataGrid.show(this.element);this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._populateDataGrid,this);},_populateDataGrid:function()
 {var selectedResource=this._dataGrid.selectedNode?this._dataGrid.selectedNode.resource:null;var sortDirection=this._dataGrid.isSortOrderAscending()?1:-1;function numberCompare(field,resource1,resource2)
 {return sortDirection*(resource1[field]-resource2[field]);}
@@ -27,7 +27,7 @@
 {if(!this._dataGrid||!this._dataGrid.selectedNode)
 return;this._deleteCallback(this._dataGrid.selectedNode);},_deleteCallback:function(node)
 {},__proto__:WebInspector.View.prototype};WebInspector.DOMStorageItemsView=function(domStorage)
-{WebInspector.View.call(this);this.domStorage=domStorage;this.element.addStyleClass("storage-view");this.element.addStyleClass("table");this.deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this.deleteButton.visible=false;this.deleteButton.addEventListener("click",this._deleteButtonClicked,this);this.refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this.refreshButton.addEventListener("click",this._refreshButtonClicked,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemsCleared,this._domStorageItemsCleared,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemRemoved,this._domStorageItemRemoved,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemAdded,this._domStorageItemAdded,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemUpdated,this._domStorageItemUpdated,this);}
+{WebInspector.View.call(this);this.domStorage=domStorage;this.element.classList.add("storage-view");this.element.classList.add("table");this.deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this.deleteButton.visible=false;this.deleteButton.addEventListener("click",this._deleteButtonClicked,this);this.refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this.refreshButton.addEventListener("click",this._refreshButtonClicked,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemsCleared,this._domStorageItemsCleared,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemRemoved,this._domStorageItemRemoved,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemAdded,this._domStorageItemAdded,this);this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemUpdated,this._domStorageItemUpdated,this);}
 WebInspector.DOMStorageItemsView.prototype={get statusBarItems()
 {return[this.refreshButton.element,this.deleteButton.element];},wasShown:function()
 {this._update();},willHide:function()
@@ -62,7 +62,7 @@
 {if(!node||node.isCreationNode)
 return;if(this.domStorage)
 this.domStorage.removeItem(node.data.key);},__proto__:WebInspector.View.prototype};WebInspector.DatabaseQueryView=function(database)
-{WebInspector.View.call(this);this.database=database;this.element.addStyleClass("storage-view");this.element.addStyleClass("query");this.element.addStyleClass("monospace");this.element.addEventListener("selectstart",this._selectStart.bind(this),false);this._promptElement=document.createElement("div");this._promptElement.className="database-query-prompt";this._promptElement.appendChild(document.createElement("br"));this._promptElement.addEventListener("keydown",this._promptKeyDown.bind(this),true);this.element.appendChild(this._promptElement);this.prompt=new WebInspector.TextPromptWithHistory(this.completions.bind(this)," ");this.prompt.attach(this._promptElement);this.element.addEventListener("click",this._messagesClicked.bind(this),true);}
+{WebInspector.View.call(this);this.database=database;this.element.classList.add("storage-view");this.element.classList.add("query");this.element.classList.add("monospace");this.element.addEventListener("selectstart",this._selectStart.bind(this),false);this._promptElement=document.createElement("div");this._promptElement.className="database-query-prompt";this._promptElement.appendChild(document.createElement("br"));this._promptElement.addEventListener("keydown",this._promptKeyDown.bind(this),true);this.element.appendChild(this._promptElement);this.prompt=new WebInspector.TextPromptWithHistory(this.completions.bind(this)," ");this.prompt.attach(this._promptElement);this.element.addEventListener("click",this._messagesClicked.bind(this),true);}
 WebInspector.DatabaseQueryView.Events={SchemaUpdated:"SchemaUpdated"}
 WebInspector.DatabaseQueryView.prototype={_messagesClicked:function()
 {if(!this.prompt.isCaretInsidePrompt()&&window.getSelection().isCollapsed)
@@ -88,10 +88,10 @@
 this.dispatchEventToListeners(WebInspector.DatabaseQueryView.Events.SchemaUpdated,this.database);},_queryError:function(query,errorMessage)
 {this._appendErrorQueryResult(query,errorMessage);},_appendViewQueryResult:function(query,view)
 {var resultElement=this._appendQueryResult(query);view.show(resultElement);this._promptElement.scrollIntoView(false);},_appendErrorQueryResult:function(query,errorText)
-{var resultElement=this._appendQueryResult(query);resultElement.addStyleClass("error")
+{var resultElement=this._appendQueryResult(query);resultElement.classList.add("error")
 resultElement.textContent=errorText;this._promptElement.scrollIntoView(false);},_appendQueryResult:function(query)
 {var element=document.createElement("div");element.className="database-user-query";this.element.insertBefore(element,this.prompt.proxyElement);var commandTextElement=document.createElement("span");commandTextElement.className="database-query-text";commandTextElement.textContent=query;element.appendChild(commandTextElement);var resultElement=document.createElement("div");resultElement.className="database-query-result";element.appendChild(resultElement);return resultElement;},__proto__:WebInspector.View.prototype};WebInspector.DatabaseTableView=function(database,tableName)
-{WebInspector.View.call(this);this.database=database;this.tableName=tableName;this.element.addStyleClass("storage-view");this.element.addStyleClass("table");this.refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this.refreshButton.addEventListener("click",this._refreshButtonClicked,this);}
+{WebInspector.View.call(this);this.database=database;this.tableName=tableName;this.element.classList.add("storage-view");this.element.classList.add("table");this.refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this.refreshButton.addEventListener("click",this._refreshButtonClicked,this);}
 WebInspector.DatabaseTableView.prototype={wasShown:function()
 {this.update();},get statusBarItems()
 {return[this.refreshButton.element];},_escapeTableName:function(tableName)
@@ -131,13 +131,13 @@
 return;this._metadata=metadata;var data=this.data;if(this._entry.isDirectory)
 data[indexes.Size]=WebInspector.UIString("-");else
 data[indexes.Size]=Number.bytesToString(metadata.size);data[indexes.ModificationTime]=new Date(metadata.modificationTime).toGMTString();this.data=data;},__proto__:WebInspector.DataGridNode.prototype};WebInspector.IDBDatabaseView=function(database)
-{WebInspector.View.call(this);this.registerRequiredCSS("indexedDBViews.css");this.element.addStyleClass("fill");this.element.addStyleClass("indexed-db-database-view");this._headersListElement=this.element.createChild("ol","outline-disclosure");this._headersTreeOutline=new TreeOutline(this._headersListElement);this._headersTreeOutline.expandTreeElementsWhenArrowing=true;this._securityOriginTreeElement=new TreeElement("",null,false);this._securityOriginTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._securityOriginTreeElement);this._nameTreeElement=new TreeElement("",null,false);this._nameTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._nameTreeElement);this._intVersionTreeElement=new TreeElement("",null,false);this._intVersionTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._intVersionTreeElement);this._stringVersionTreeElement=new TreeElement("",null,false);this._stringVersionTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._stringVersionTreeElement);this.update(database);}
+{WebInspector.View.call(this);this.registerRequiredCSS("indexedDBViews.css");this.element.classList.add("fill");this.element.classList.add("indexed-db-database-view");this._headersListElement=this.element.createChild("ol","outline-disclosure");this._headersTreeOutline=new TreeOutline(this._headersListElement);this._headersTreeOutline.expandTreeElementsWhenArrowing=true;this._securityOriginTreeElement=new TreeElement("",null,false);this._securityOriginTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._securityOriginTreeElement);this._nameTreeElement=new TreeElement("",null,false);this._nameTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._nameTreeElement);this._intVersionTreeElement=new TreeElement("",null,false);this._intVersionTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._intVersionTreeElement);this._stringVersionTreeElement=new TreeElement("",null,false);this._stringVersionTreeElement.selectable=false;this._headersTreeOutline.appendChild(this._stringVersionTreeElement);this.update(database);}
 WebInspector.IDBDatabaseView.prototype={_formatHeader:function(name,value)
 {var fragment=document.createDocumentFragment();fragment.createChild("div","attribute-name").textContent=name+":";fragment.createChild("div","attribute-value source-code").textContent=value;return fragment;},_refreshDatabase:function()
 {this._securityOriginTreeElement.title=this._formatHeader(WebInspector.UIString("Security origin"),this._database.databaseId.securityOrigin);this._nameTreeElement.title=this._formatHeader(WebInspector.UIString("Name"),this._database.databaseId.name);this._stringVersionTreeElement.title=this._formatHeader(WebInspector.UIString("String Version"),this._database.version);this._intVersionTreeElement.title=this._formatHeader(WebInspector.UIString("Integer Version"),this._database.intVersion);},update:function(database)
 {this._database=database;this._refreshDatabase();},__proto__:WebInspector.View.prototype}
 WebInspector.IDBDataView=function(model,databaseId,objectStore,index)
-{WebInspector.View.call(this);this.registerRequiredCSS("indexedDBViews.css");this._model=model;this._databaseId=databaseId;this._isIndex=!!index;this.element.addStyleClass("indexed-db-data-view");var editorToolbar=this._createEditorToolbar();this.element.appendChild(editorToolbar);this._dataGridContainer=this.element.createChild("div","fill");this._dataGridContainer.addStyleClass("data-grid-container");this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.addEventListener("click",this._refreshButtonClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear object store"),"clear-storage-status-bar-item");this._clearButton.addEventListener("click",this._clearButtonClicked,this);this._pageSize=50;this._skipCount=0;this.update(objectStore,index);this._entries=[];}
+{WebInspector.View.call(this);this.registerRequiredCSS("indexedDBViews.css");this._model=model;this._databaseId=databaseId;this._isIndex=!!index;this.element.classList.add("indexed-db-data-view");var editorToolbar=this._createEditorToolbar();this.element.appendChild(editorToolbar);this._dataGridContainer=this.element.createChild("div","fill");this._dataGridContainer.classList.add("data-grid-container");this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.addEventListener("click",this._refreshButtonClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear object store"),"clear-storage-status-bar-item");this._clearButton.addEventListener("click",this._clearButtonClicked,this);this._pageSize=50;this._skipCount=0;this.update(objectStore,index);this._entries=[];}
 WebInspector.IDBDataView.prototype={_createDataGrid:function()
 {var keyPath=this._isIndex?this._index.keyPath:this._objectStore.keyPath;var columns=[];columns.push({id:"number",title:WebInspector.UIString("#"),width:"50px"});columns.push({id:"key",titleDOMFragment:this._keyColumnHeaderFragment(WebInspector.UIString("Key"),keyPath)});if(this._isIndex)
 columns.push({id:"primaryKey",titleDOMFragment:this._keyColumnHeaderFragment(WebInspector.UIString("Primary key"),this._objectStore.keyPath)});columns.push({id:"value",title:WebInspector.UIString("Value")});var dataGrid=new WebInspector.DataGrid(columns);return dataGrid;},_keyColumnHeaderFragment:function(prefix,keyPath)
@@ -147,7 +147,7 @@
 keyColumnHeaderFragment.appendChild(document.createTextNode("]"));}else{var keyPathString=(keyPath);keyColumnHeaderFragment.appendChild(this._keyPathStringFragment(keyPathString));}
 keyColumnHeaderFragment.appendChild(document.createTextNode(")"));return keyColumnHeaderFragment;},_keyPathStringFragment:function(keyPathString)
 {var keyPathStringFragment=document.createDocumentFragment();keyPathStringFragment.appendChild(document.createTextNode("\""));var keyPathSpan=keyPathStringFragment.createChild("span","source-code console-formatted-string");keyPathSpan.textContent=keyPathString;keyPathStringFragment.appendChild(document.createTextNode("\""));return keyPathStringFragment;},_createEditorToolbar:function()
-{var editorToolbar=document.createElement("div");editorToolbar.addStyleClass("status-bar");editorToolbar.addStyleClass("data-view-toolbar");this._pageBackButton=editorToolbar.createChild("button","back-button");this._pageBackButton.addStyleClass("status-bar-item");this._pageBackButton.title=WebInspector.UIString("Show previous page.");this._pageBackButton.disabled=true;this._pageBackButton.appendChild(document.createElement("img"));this._pageBackButton.addEventListener("click",this._pageBackButtonClicked.bind(this),false);editorToolbar.appendChild(this._pageBackButton);this._pageForwardButton=editorToolbar.createChild("button","forward-button");this._pageForwardButton.addStyleClass("status-bar-item");this._pageForwardButton.title=WebInspector.UIString("Show next page.");this._pageForwardButton.disabled=true;this._pageForwardButton.appendChild(document.createElement("img"));this._pageForwardButton.addEventListener("click",this._pageForwardButtonClicked.bind(this),false);editorToolbar.appendChild(this._pageForwardButton);this._keyInputElement=editorToolbar.createChild("input","key-input");this._keyInputElement.placeholder=WebInspector.UIString("Start from key");this._keyInputElement.addEventListener("paste",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("cut",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("keypress",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("keydown",this._keyInputChanged.bind(this));return editorToolbar;},_pageBackButtonClicked:function()
+{var editorToolbar=document.createElement("div");editorToolbar.classList.add("status-bar");editorToolbar.classList.add("data-view-toolbar");this._pageBackButton=editorToolbar.createChild("button","back-button");this._pageBackButton.classList.add("status-bar-item");this._pageBackButton.title=WebInspector.UIString("Show previous page.");this._pageBackButton.disabled=true;this._pageBackButton.appendChild(document.createElement("img"));this._pageBackButton.addEventListener("click",this._pageBackButtonClicked.bind(this),false);editorToolbar.appendChild(this._pageBackButton);this._pageForwardButton=editorToolbar.createChild("button","forward-button");this._pageForwardButton.classList.add("status-bar-item");this._pageForwardButton.title=WebInspector.UIString("Show next page.");this._pageForwardButton.disabled=true;this._pageForwardButton.appendChild(document.createElement("img"));this._pageForwardButton.addEventListener("click",this._pageForwardButtonClicked.bind(this),false);editorToolbar.appendChild(this._pageForwardButton);this._keyInputElement=editorToolbar.createChild("input","key-input");this._keyInputElement.placeholder=WebInspector.UIString("Start from key");this._keyInputElement.addEventListener("paste",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("cut",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("keypress",this._keyInputChanged.bind(this));this._keyInputElement.addEventListener("keydown",this._keyInputChanged.bind(this));return editorToolbar;},_pageBackButtonClicked:function()
 {this._skipCount=Math.max(0,this._skipCount-this._pageSize);this._updateData(false);},_pageForwardButtonClicked:function()
 {this._skipCount=this._skipCount+this._pageSize;this._updateData(false);},_keyInputChanged:function()
 {window.setTimeout(this._updateData.bind(this,false),0);},update:function(objectStore,index)
@@ -177,7 +177,7 @@
 {var cell=WebInspector.DataGridNode.prototype.createCell.call(this,columnIdentifier);var value=this.data[columnIdentifier];switch(columnIdentifier){case"value":case"key":case"primaryKey":cell.removeChildren();this._formatValue(cell,value);break;default:}
 return cell;},_formatValue:function(cell,value)
 {var type=value.subtype||value.type;var contents=cell.createChild("div","source-code console-formatted-"+type);switch(type){case"object":case"array":var section=new WebInspector.ObjectPropertiesSection(value,value.description)
-section.editable=false;section.skipProto=true;contents.appendChild(section.element);break;case"string":contents.addStyleClass("primitive-value");contents.appendChild(document.createTextNode("\""+value.description+"\""));break;default:contents.addStyleClass("primitive-value");contents.appendChild(document.createTextNode(value.description));}},__proto__:WebInspector.DataGridNode.prototype};WebInspector.FileContentView=function(file)
+section.editable=false;section.skipProto=true;contents.appendChild(section.element);break;case"string":contents.classList.add("primitive-value");contents.appendChild(document.createTextNode("\""+value.description+"\""));break;default:contents.classList.add("primitive-value");contents.appendChild(document.createTextNode(value.description));}},__proto__:WebInspector.DataGridNode.prototype};WebInspector.FileContentView=function(file)
 {WebInspector.View.call(this);this._innerView=(null);this._file=file;this._content=null;}
 WebInspector.FileContentView.prototype={wasShown:function()
 {if(!this._innerView){if(this._file.isTextFile)
@@ -201,13 +201,13 @@
 {setTimeout(callback.bind(null,[]),0);},updateMetadata:function(metadata)
 {if(this._metadata.modificationTime>=metadata.modificationTime)
 return false;this._metadata=metadata.modificationTime;return true;}};WebInspector.FileSystemView=function(fileSystem)
-{WebInspector.SidebarView.call(this,WebInspector.SidebarView.SidebarPosition.Start,"FileSystemViewSidebarWidth");this.element.addStyleClass("file-system-view");this.element.addStyleClass("storage-view");var directoryTreeElement=this.element.createChild("ol","filesystem-directory-tree");this._directoryTree=new TreeOutline(directoryTreeElement);this.sidebarElement.appendChild(directoryTreeElement);this.sidebarElement.addStyleClass("outline-disclosure");this.sidebarElement.addStyleClass("sidebar");var rootItem=new WebInspector.FileSystemView.EntryTreeElement(this,fileSystem.root);rootItem.expanded=true;this._directoryTree.appendChild(rootItem);this._visibleView=null;this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.visible=true;this._refreshButton.addEventListener("click",this._refresh,this);this._deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this._deleteButton.visible=true;this._deleteButton.addEventListener("click",this._confirmDelete,this);}
+{WebInspector.SidebarView.call(this,WebInspector.SidebarView.SidebarPosition.Start,"FileSystemViewSidebarWidth");this.element.classList.add("file-system-view");this.element.classList.add("storage-view");var directoryTreeElement=this.element.createChild("ol","filesystem-directory-tree");this._directoryTree=new TreeOutline(directoryTreeElement);this.firstElement().appendChild(directoryTreeElement);this.firstElement().classList.add("outline-disclosure","sidebar");var rootItem=new WebInspector.FileSystemView.EntryTreeElement(this,fileSystem.root);rootItem.expanded=true;this._directoryTree.appendChild(rootItem);this._visibleView=null;this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.visible=true;this._refreshButton.addEventListener("click",this._refresh,this);this._deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this._deleteButton.visible=true;this._deleteButton.addEventListener("click",this._confirmDelete,this);}
 WebInspector.FileSystemView.prototype={get statusBarItems()
 {return[this._refreshButton.element,this._deleteButton.element];},get visibleView()
 {return this._visibleView;},showView:function(view)
 {if(this._visibleView===view)
 return;if(this._visibleView)
-this._visibleView.detach();this._visibleView=view;view.show(this.mainElement);},_refresh:function()
+this._visibleView.detach();this._visibleView=view;this.setMainView(view);},_refresh:function()
 {this._directoryTree.children[0].refresh();},_confirmDelete:function()
 {if(confirm(WebInspector.UIString("Are you sure you want to delete the selected entry?")))
 this._delete();},_delete:function()
@@ -218,7 +218,7 @@
 {var selection=this.listItemElement.createChild("div","selection");this.listItemElement.insertBefore(selection,this.listItemElement.firstChild);},onselect:function()
 {if(!this._view){if(this._entry.isDirectory)
 this._view=new WebInspector.DirectoryContentView();else{var file=(this._entry);this._view=new WebInspector.FileContentView(file);}}
-this._fileSystemView.showView(this._view);this.refresh();},onpopulate:function()
+this._fileSystemView.showView(this._view);this.refresh();return false;},onpopulate:function()
 {this.refresh();},_directoryContentReceived:function(errorCode,entries)
 {if(errorCode===FileError.NOT_FOUND_ERR){if(this.parent!==this.treeOutline)
 this.parent.refresh();return;}
@@ -237,8 +237,8 @@
 {this._entry.deleteEntry(this._deletionCompleted.bind(this));},_deletionCompleted:function()
 {if(this._entry!=this._entry.fileSystem.root)
 this.parent.refresh();},__proto__:TreeElement.prototype};WebInspector.ResourcesPanel=function(database)
-{WebInspector.Panel.call(this,"resources");this.registerRequiredCSS("resourcesPanel.css");WebInspector.settings.resourcesLastSelectedItem=WebInspector.settings.createSetting("resourcesLastSelectedItem",{});this.createSidebarViewWithTree();this.sidebarElement.addStyleClass("outline-disclosure");this.sidebarElement.addStyleClass("filter-all");this.sidebarElement.addStyleClass("children");this.sidebarElement.addStyleClass("small");this.sidebarTreeElement.removeStyleClass("sidebar-tree");this.resourcesListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Frames"),"Frames",["frame-storage-tree-item"]);this.sidebarTree.appendChild(this.resourcesListTreeElement);this.databasesListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Web SQL"),"Databases",["database-storage-tree-item"]);this.sidebarTree.appendChild(this.databasesListTreeElement);this.indexedDBListTreeElement=new WebInspector.IndexedDBTreeElement(this);this.sidebarTree.appendChild(this.indexedDBListTreeElement);this.localStorageListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Local Storage"),"LocalStorage",["domstorage-storage-tree-item","local-storage"]);this.sidebarTree.appendChild(this.localStorageListTreeElement);this.sessionStorageListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Session Storage"),"SessionStorage",["domstorage-storage-tree-item","session-storage"]);this.sidebarTree.appendChild(this.sessionStorageListTreeElement);this.cookieListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Cookies"),"Cookies",["cookie-storage-tree-item"]);this.sidebarTree.appendChild(this.cookieListTreeElement);this.applicationCacheListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Application Cache"),"ApplicationCache",["application-cache-storage-tree-item"]);this.sidebarTree.appendChild(this.applicationCacheListTreeElement);if(WebInspector.experimentsSettings.fileSystemInspection.isEnabled()){this.fileSystemListTreeElement=new WebInspector.FileSystemListTreeElement(this);this.sidebarTree.appendChild(this.fileSystemListTreeElement);}
-var mainElement=this.splitView.mainElement;this.storageViews=mainElement.createChild("div","resources-main");var statusBarContainer=mainElement.createChild("div","resources-status-bar");this.storageViewStatusBarItemsContainer=statusBarContainer.createChild("div","status-bar");this.storageViews.addStyleClass("diff-container");this._databaseTableViews=new Map();this._databaseQueryViews=new Map();this._databaseTreeElements=new Map();this._domStorageViews=new Map();this._domStorageTreeElements=new Map();this._cookieViews={};this._domains={};this.sidebarElement.addEventListener("mousemove",this._onmousemove.bind(this),false);this.sidebarElement.addEventListener("mouseout",this._onmouseout.bind(this),false);function viewGetter()
+{WebInspector.Panel.call(this,"resources");this.registerRequiredCSS("resourcesPanel.css");WebInspector.settings.resourcesLastSelectedItem=WebInspector.settings.createSetting("resourcesLastSelectedItem",{});this.createSidebarViewWithTree();this.splitView.sidebarElement().classList.add("outline-disclosure","filter-all","children","small");this.sidebarTreeElement.classList.remove("sidebar-tree");this.resourcesListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Frames"),"Frames",["frame-storage-tree-item"]);this.sidebarTree.appendChild(this.resourcesListTreeElement);this.databasesListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Web SQL"),"Databases",["database-storage-tree-item"]);this.sidebarTree.appendChild(this.databasesListTreeElement);this.indexedDBListTreeElement=new WebInspector.IndexedDBTreeElement(this);this.sidebarTree.appendChild(this.indexedDBListTreeElement);this.localStorageListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Local Storage"),"LocalStorage",["domstorage-storage-tree-item","local-storage"]);this.sidebarTree.appendChild(this.localStorageListTreeElement);this.sessionStorageListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Session Storage"),"SessionStorage",["domstorage-storage-tree-item","session-storage"]);this.sidebarTree.appendChild(this.sessionStorageListTreeElement);this.cookieListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Cookies"),"Cookies",["cookie-storage-tree-item"]);this.sidebarTree.appendChild(this.cookieListTreeElement);this.applicationCacheListTreeElement=new WebInspector.StorageCategoryTreeElement(this,WebInspector.UIString("Application Cache"),"ApplicationCache",["application-cache-storage-tree-item"]);this.sidebarTree.appendChild(this.applicationCacheListTreeElement);if(WebInspector.experimentsSettings.fileSystemInspection.isEnabled()){this.fileSystemListTreeElement=new WebInspector.FileSystemListTreeElement(this);this.sidebarTree.appendChild(this.fileSystemListTreeElement);}
+var mainElement=this.splitView.mainElement();this.storageViews=mainElement.createChild("div","resources-main");var statusBarContainer=mainElement.createChild("div","resources-status-bar");this.storageViewStatusBarItemsContainer=statusBarContainer.createChild("div","status-bar");this.storageViews.classList.add("diff-container");this._databaseTableViews=new Map();this._databaseQueryViews=new Map();this._databaseTreeElements=new Map();this._domStorageViews=new Map();this._domStorageTreeElements=new Map();this._cookieViews={};this._domains={};this.splitView.sidebarElement().addEventListener("mousemove",this._onmousemove.bind(this),false);this.splitView.sidebarElement().addEventListener("mouseout",this._onmouseout.bind(this),false);function viewGetter()
 {return this.visibleView;}
 WebInspector.GoToLineDialog.install(this,viewGetter.bind(this));if(WebInspector.resourceTreeModel.cachedResourcesLoaded())
 this._cachedResourcesLoaded();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._loadEventFired,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded,this._cachedResourcesLoaded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources,this._resetWithFrames,this);WebInspector.databaseModel.databases().forEach(this._addDatabase.bind(this));WebInspector.databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded,this._databaseAdded,this);}
@@ -291,7 +291,7 @@
 {if(database){this._showDatabase(database);this._databaseTreeElements.get(database).select();}},selectDOMStorage:function(domStorage)
 {if(domStorage){this._showDOMStorage(domStorage);this._domStorageTreeElements.get(domStorage).select();}},showAnchorLocation:function(anchor)
 {var resource=WebInspector.resourceForURL(anchor.href);if(!resource)
-return false;this.showResource(resource,anchor.lineNumber);WebInspector.inspectorView.setCurrentPanel(this);return true;},showResource:function(resource,line,column)
+return false;WebInspector.inspectorView.setCurrentPanel(this);this.showResource(resource,anchor.lineNumber);return true;},showResource:function(resource,line,column)
 {var resourceTreeElement=this._findTreeElementForResource(resource);if(resourceTreeElement)
 resourceTreeElement.revealAndSelect(true);if(typeof line==="number"){var view=this._resourceViewForResource(resource);if(view.canHighlightPosition())
 view.highlightPosition(line,column);}
@@ -364,7 +364,7 @@
 {TreeElement.call(this,"",representedObject,hasChildren);this._storagePanel=storagePanel;this._titleText=title;this._iconClasses=iconClasses;this._noIcon=noIcon;}
 WebInspector.BaseStorageTreeElement.prototype={onattach:function()
 {this.listItemElement.removeChildren();if(this._iconClasses){for(var i=0;i<this._iconClasses.length;++i)
-this.listItemElement.addStyleClass(this._iconClasses[i]);}
+this.listItemElement.classList.add(this._iconClasses[i]);}
 var selectionElement=document.createElement("div");selectionElement.className="selection";this.listItemElement.appendChild(selectionElement);if(!this._noIcon){this.imageElement=document.createElement("img");this.imageElement.className="icon";this.listItemElement.appendChild(this.imageElement);}
 this.titleElement=document.createElement("div");this.titleElement.className="base-storage-tree-element-title";this._titleTextNode=document.createTextNode("");this.titleElement.appendChild(this._titleTextNode);this._updateTitle();this._updateSubtitle();this.listItemElement.appendChild(this.titleElement);},get displayName()
 {return this._displayName;},_updateDisplayName:function()
@@ -376,8 +376,8 @@
 return;if(this._subtitleText){if(!this._subtitleElement){this._subtitleElement=document.createElement("span");this._subtitleElement.className="base-storage-tree-element-subtitle";this.titleElement.appendChild(this._subtitleElement);}
 this._subtitleElement.textContent="("+this._subtitleText+")";}else if(this._subtitleElement){this.titleElement.removeChild(this._subtitleElement);delete this._subtitleElement;}},onselect:function(selectedByUser)
 {if(!selectedByUser)
-return;var itemURL=this.itemURL;if(itemURL)
-WebInspector.settings.resourcesLastSelectedItem.set(itemURL);},onreveal:function()
+return false;var itemURL=this.itemURL;if(itemURL)
+WebInspector.settings.resourcesLastSelectedItem.set(itemURL);return false;},onreveal:function()
 {if(this.listItemElement)
 this.listItemElement.scrollIntoViewIfNeeded(false);},get titleText()
 {return this._titleText;},set titleText(titleText)
@@ -388,7 +388,7 @@
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,categoryName,iconClasses,false,noIcon);this._expandedSettingKey="resources"+settingsKey+"Expanded";WebInspector.settings[this._expandedSettingKey]=WebInspector.settings.createSetting(this._expandedSettingKey,settingsKey==="Frames");this._categoryName=categoryName;}
 WebInspector.StorageCategoryTreeElement.prototype={get itemURL()
 {return"category://"+this._categoryName;},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this._categoryName);},onattach:function()
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this._categoryName);return false;},onattach:function()
 {WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);if(WebInspector.settings[this._expandedSettingKey].get())
 this.expand();},onexpand:function()
 {WebInspector.settings[this._expandedSettingKey].set(true);},oncollapse:function()
@@ -398,8 +398,8 @@
 WebInspector.FrameTreeElement.prototype={frameNavigated:function(frame)
 {this.removeChildren();this._frameId=frame.id;this.titleText=frame.name;this.subtitleText=new WebInspector.ParsedURL(frame.url).displayName;this._categoryElements={};this._treeElementForResource={};this._storagePanel.addDocumentURL(frame.url);},get itemURL()
 {return"frame://"+encodeURI(this.displayName);},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this.displayName);this.listItemElement.removeStyleClass("hovered");DOMAgent.hideHighlight();},set hovered(hovered)
-{if(hovered){this.listItemElement.addStyleClass("hovered");DOMAgent.highlightFrame(this._frameId,WebInspector.Color.PageHighlight.Content.toProtocolRGBA(),WebInspector.Color.PageHighlight.ContentOutline.toProtocolRGBA());}else{this.listItemElement.removeStyleClass("hovered");DOMAgent.hideHighlight();}},appendResource:function(resource)
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this.displayName);this.listItemElement.classList.remove("hovered");DOMAgent.hideHighlight();return false;},set hovered(hovered)
+{if(hovered){this.listItemElement.classList.add("hovered");DOMAgent.highlightFrame(this._frameId,WebInspector.Color.PageHighlight.Content.toProtocolRGBA(),WebInspector.Color.PageHighlight.ContentOutline.toProtocolRGBA());}else{this.listItemElement.classList.remove("hovered");DOMAgent.hideHighlight();}},appendResource:function(resource)
 {if(resource.isHidden())
 return;var categoryName=resource.type.name();var categoryElement=resource.type===WebInspector.resourceTypes.Document?this:this._categoryElements[categoryName];if(!categoryElement){categoryElement=new WebInspector.StorageCategoryTreeElement(this._storagePanel,resource.type.categoryTitle(),categoryName,null,true);this._categoryElements[resource.type.name()]=categoryElement;this._insertInPresentationOrder(this,categoryElement);}
 var resourceTreeElement=new WebInspector.FrameResourceTreeElement(this._storagePanel,resource);this._insertInPresentationOrder(categoryElement,resourceTreeElement);this._treeElementForResource[resource.url]=resourceTreeElement;},resourceByURL:function(url)
@@ -421,20 +421,20 @@
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,resource,resource.displayName,["resource-sidebar-tree-item","resources-type-"+resource.type.name()]);this._resource=resource;this._resource.addEventListener(WebInspector.Resource.Events.MessageAdded,this._consoleMessageAdded,this);this._resource.addEventListener(WebInspector.Resource.Events.MessagesCleared,this._consoleMessagesCleared,this);this.tooltip=resource.url;}
 WebInspector.FrameResourceTreeElement.prototype={get itemURL()
 {return this._resource.url;},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showResourceView(this._resource);},ondblclick:function(event)
-{InspectorFrontendHost.openInNewTab(this._resource.url);},onattach:function()
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showResourceView(this._resource);return false;},ondblclick:function(event)
+{InspectorFrontendHost.openInNewTab(this._resource.url);return false;},onattach:function()
 {WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);if(this._resource.type===WebInspector.resourceTypes.Image){var previewImage=document.createElement("img");previewImage.className="image-resource-icon-preview";this._resource.populateImageSource(previewImage);var iconElement=document.createElement("div");iconElement.className="icon";iconElement.appendChild(previewImage);this.listItemElement.replaceChild(iconElement,this.imageElement);}
 this._statusElement=document.createElement("div");this._statusElement.className="status";this.listItemElement.insertBefore(this._statusElement,this.titleElement);this.listItemElement.draggable=true;this.listItemElement.addEventListener("dragstart",this._ondragstart.bind(this),false);this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),true);this._updateErrorsAndWarningsBubbles();},_ondragstart:function(event)
 {event.dataTransfer.setData("text/plain",this._resource.content);event.dataTransfer.effectAllowed="copy";return true;},_handleContextMenuEvent:function(event)
 {var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(this._resource);contextMenu.show();},_setBubbleText:function(x)
 {if(!this._bubbleElement){this._bubbleElement=document.createElement("div");this._bubbleElement.className="bubble";this._statusElement.appendChild(this._bubbleElement);}
 this._bubbleElement.textContent=x;},_resetBubble:function()
-{if(this._bubbleElement){this._bubbleElement.textContent="";this._bubbleElement.removeStyleClass("warning");this._bubbleElement.removeStyleClass("error");}},_updateErrorsAndWarningsBubbles:function()
+{if(this._bubbleElement){this._bubbleElement.textContent="";this._bubbleElement.classList.remove("warning");this._bubbleElement.classList.remove("error");}},_updateErrorsAndWarningsBubbles:function()
 {if(this._storagePanel.currentQuery)
 return;this._resetBubble();if(this._resource.warnings||this._resource.errors)
 this._setBubbleText(this._resource.warnings+this._resource.errors);if(this._resource.warnings)
-this._bubbleElement.addStyleClass("warning");if(this._resource.errors)
-this._bubbleElement.addStyleClass("error");},_consoleMessagesCleared:function()
+this._bubbleElement.classList.add("warning");if(this._resource.errors)
+this._bubbleElement.classList.add("error");},_consoleMessagesCleared:function()
 {if(this._sourceView)
 this._sourceView.clearMessages();this._updateErrorsAndWarningsBubbles();},_consoleMessageAdded:function(event)
 {var msg=event.data;if(this._sourceView)
@@ -446,7 +446,7 @@
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,database.name,["database-storage-tree-item"],true);this._database=database;}
 WebInspector.DatabaseTreeElement.prototype={get itemURL()
 {return"database://"+encodeURI(this._database.name);},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDatabase(this._database);},onexpand:function()
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDatabase(this._database);return false;},onexpand:function()
 {this._updateChildren();},_updateChildren:function()
 {this.removeChildren();function tableNamesCallback(tableNames)
 {var tableNamesLength=tableNames.length;for(var i=0;i<tableNamesLength;++i)
@@ -456,7 +456,7 @@
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,tableName,["database-storage-tree-item"]);this._database=database;this._tableName=tableName;}
 WebInspector.DatabaseTableTreeElement.prototype={get itemURL()
 {return"database://"+encodeURI(this._database.name)+"/"+encodeURI(this._tableName);},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDatabase(this._database,this._tableName);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDatabase(this._database,this._tableName);return false;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.IndexedDBTreeElement=function(storagePanel)
 {WebInspector.StorageCategoryTreeElement.call(this,storagePanel,WebInspector.UIString("IndexedDB"),"IndexedDB",["indexed-db-storage-tree-item"]);}
 WebInspector.IndexedDBTreeElement.prototype={_initialize:function()
@@ -506,7 +506,7 @@
 this._view.update(database);this._updateTooltip();},_updateTooltip:function()
 {this.tooltip=WebInspector.UIString("Version")+": "+this._database.version;},onselect:function(selectedByUser)
 {WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);if(!this._view)
-this._view=new WebInspector.IDBDatabaseView(this._database);this._storagePanel.showIndexedDB(this._view);},_objectStoreRemoved:function(objectStoreName)
+this._view=new WebInspector.IDBDatabaseView(this._database);this._storagePanel.showIndexedDB(this._view);return false;},_objectStoreRemoved:function(objectStoreName)
 {var objectStoreTreeElement=this._idbObjectStoreTreeElements[objectStoreName];objectStoreTreeElement.clear();this.removeChild(objectStoreTreeElement);delete this._idbObjectStoreTreeElements[objectStoreName];},clear:function()
 {for(var objectStoreName in this._idbObjectStoreTreeElements)
 this._objectStoreRemoved(objectStoreName);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
@@ -529,7 +529,7 @@
 {var keyPathString=this._objectStore.keyPathString;var tooltipString=keyPathString!==null?(WebInspector.UIString("Key path: ")+keyPathString):"";if(this._objectStore.autoIncrement)
 tooltipString+="\n"+WebInspector.UIString("autoIncrement");this.tooltip=tooltipString},onselect:function(selectedByUser)
 {WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);if(!this._view)
-this._view=new WebInspector.IDBDataView(this._model,this._databaseId,this._objectStore,null);this._storagePanel.showIndexedDB(this._view);},_indexRemoved:function(indexName)
+this._view=new WebInspector.IDBDataView(this._model,this._databaseId,this._objectStore,null);this._storagePanel.showIndexedDB(this._view);return false;},_indexRemoved:function(indexName)
 {var indexTreeElement=this._idbIndexTreeElements[indexName];indexTreeElement.clear();this.removeChild(indexTreeElement);delete this._idbIndexTreeElements[indexName];},clear:function()
 {for(var indexName in this._idbIndexTreeElements)
 this._indexRemoved(indexName);if(this._view)
@@ -544,14 +544,14 @@
 tooltipLines.push(WebInspector.UIString("unique"));if(this._index.multiEntry)
 tooltipLines.push(WebInspector.UIString("multiEntry"));this.tooltip=tooltipLines.join("\n");},onselect:function(selectedByUser)
 {WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);if(!this._view)
-this._view=new WebInspector.IDBDataView(this._model,this._databaseId,this._objectStore,this._index);this._storagePanel.showIndexedDB(this._view);},clear:function()
+this._view=new WebInspector.IDBDataView(this._model,this._databaseId,this._objectStore,this._index);this._storagePanel.showIndexedDB(this._view);return false;},clear:function()
 {if(this._view)
 this._view.clear();},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.DOMStorageTreeElement=function(storagePanel,domStorage,className)
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,domStorage.securityOrigin?domStorage.securityOrigin:WebInspector.UIString("Local Files"),["domstorage-storage-tree-item",className]);this._domStorage=domStorage;}
 WebInspector.DOMStorageTreeElement.prototype={get itemURL()
 {return"storage://"+this._domStorage.securityOrigin+"/"+(this._domStorage.isLocalStorage?"local":"session");},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDOMStorage(this._domStorage);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel._showDOMStorage(this._domStorage);return false;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.CookieTreeElement=function(storagePanel,cookieDomain)
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,cookieDomain?cookieDomain:WebInspector.UIString("Local Files"),["cookie-storage-tree-item"]);this._cookieDomain=cookieDomain;}
 WebInspector.CookieTreeElement.prototype={get itemURL()
@@ -559,13 +559,13 @@
 {WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),true);},_handleContextMenuEvent:function(event)
 {var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("Clear"),this._clearCookies.bind(this));contextMenu.show();},_clearCookies:function(domain)
 {this._storagePanel.clearCookies(this._cookieDomain);},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCookies(this,this._cookieDomain);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCookies(this,this._cookieDomain);return false;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.ApplicationCacheManifestTreeElement=function(storagePanel,manifestURL)
 {var title=new WebInspector.ParsedURL(manifestURL).displayName;WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,title,["application-cache-storage-tree-item"]);this.tooltip=manifestURL;this._manifestURL=manifestURL;}
 WebInspector.ApplicationCacheManifestTreeElement.prototype={get itemURL()
 {return"appcache://"+this._manifestURL;},get manifestURL()
 {return this._manifestURL;},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this._manifestURL);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showCategoryView(this._manifestURL);return false;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.ApplicationCacheFrameTreeElement=function(storagePanel,frameId,manifestURL)
 {WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,"",["frame-storage-tree-item"]);this._frameId=frameId;this._manifestURL=manifestURL;this._refreshTitles();}
 WebInspector.ApplicationCacheFrameTreeElement.prototype={get itemURL()
@@ -575,16 +575,16 @@
 {var frame=WebInspector.resourceTreeModel.frameForId(this._frameId);if(!frame){this.subtitleText=WebInspector.UIString("new frame");return;}
 this.titleText=frame.name;this.subtitleText=new WebInspector.ParsedURL(frame.url).displayName;},frameNavigated:function()
 {this._refreshTitles();},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showApplicationCache(this._frameId);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._storagePanel.showApplicationCache(this._frameId);return false;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.FileSystemTreeElement=function(storagePanel,fileSystem)
 {var displayName=fileSystem.type+" - "+fileSystem.origin;WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,displayName,["file-system-storage-tree-item"]);this._fileSystem=fileSystem;}
 WebInspector.FileSystemTreeElement.prototype={get fileSystemName()
 {return this._fileSystem.name;},get itemURL()
 {return"filesystem://"+this._fileSystem.name;},onselect:function(selectedByUser)
-{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._fileSystemView=new WebInspector.FileSystemView(this._fileSystem);this._storagePanel.showFileSystem(this._fileSystemView);},clear:function()
+{WebInspector.BaseStorageTreeElement.prototype.onselect.call(this,selectedByUser);this._fileSystemView=new WebInspector.FileSystemView(this._fileSystem);this._storagePanel.showFileSystem(this._fileSystemView);return false;},clear:function()
 {if(this.fileSystemView&&this._storagePanel.visibleView===this.fileSystemView)
 this._storagePanel.closeVisibleView();},__proto__:WebInspector.BaseStorageTreeElement.prototype}
 WebInspector.StorageCategoryView=function()
-{WebInspector.View.call(this);this.element.addStyleClass("storage-view");this._emptyView=new WebInspector.EmptyView("");this._emptyView.show(this.element);}
+{WebInspector.View.call(this);this.element.classList.add("storage-view");this._emptyView=new WebInspector.EmptyView("");this._emptyView.show(this.element);}
 WebInspector.StorageCategoryView.prototype={setText:function(text)
 {this._emptyView.text=text;},__proto__:WebInspector.View.prototype}
\ No newline at end of file
diff --git a/resources/inspector/ScriptFormatterWorker.js b/resources/inspector/ScriptFormatterWorker.js
index 2c87bc9..1654837 100644
--- a/resources/inspector/ScriptFormatterWorker.js
+++ b/resources/inspector/ScriptFormatterWorker.js
@@ -48,6 +48,9 @@
 {return!this.lastIndexOf(substring,0);}
 String.prototype.endsWith=function(substring)
 {return this.indexOf(substring,this.length-substring.length)!==-1;}
+String.prototype.hashCode=function()
+{var result=0;for(var i=0;i<this.length;++i)
+result=result*3+this.charCodeAt(i);return result;}
 String.naturalOrderComparator=function(a,b)
 {var chunk=/^\d+|^\D+/;var chunka,chunkb,anum,bnum;while(1){if(a){if(!b)
 return 1;}else{if(b)
@@ -101,7 +104,15 @@
 if(leftBound===0&&rightBound===(this.length-1)&&sortWindowLeft===0&&sortWindowRight>=rightBound)
 this.sort(comparator);else
 quickSortRange(this,comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight);return this;}}
-Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
+Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"stableSort",{value:function(comparator)
+{function defaultComparator(a,b)
+{return a<b?-1:(a>b?1:0);}
+comparator=comparator||defaultComparator;var indices=new Array(this.length);for(var i=0;i<this.length;++i)
+indices[i]=i;var self=this;function indexComparator(a,b)
+{var result=comparator(self[a],self[b]);return result?result:a-b;}
+indices.sort(indexComparator);for(var i=0;i<this.length;++i){if(indices[i]<0||i===indices[i])
+continue;var cyclical=i;var saved=this[i];while(true){var next=indices[cyclical];indices[cyclical]=-1;if(next===i){this[cyclical]=saved;break;}else{this[cyclical]=this[next];cyclical=next;}}}
+return this;}});Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
 {if(k<0||k>=this.length)
 return;if(!comparator)
 comparator=function(a,b){return a-b;}
@@ -124,7 +135,15 @@
 {var index=this.lowerBound(value,comparator);return index<this.length&&comparator(value,this[index])===0?index:-1;}});Object.defineProperty(Array.prototype,"select",{value:function(field)
 {var result=new Array(this.length);for(var i=0;i<this.length;++i)
 result[i]=this[i][field];return result;}});Object.defineProperty(Array.prototype,"peekLast",{value:function()
-{return this[this.length-1];}});function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
+{return this[this.length-1];}});(function(){function mergeOrIntersect(array1,array2,comparator,mergeNotIntersect)
+{var result=[];var i=0;var j=0;while(i<array1.length||j<array2.length){if(i===array1.length){result=result.concat(array2.slice(j));j=array2.length;}else if(j===array2.length){result=result.concat(array1.slice(i));i=array1.length;}else{var compareValue=comparator(array1[i],array2[j])
+if(compareValue<0){if(mergeNotIntersect)
+result.push(array1[i]);++i;}else if(compareValue>0){if(mergeNotIntersect)
+result.push(array2[j]);++j;}else{result.push(array1[i]);++i;++j;}}}
+return result;}
+Object.defineProperty(Array.prototype,"intersectOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,false);}});Object.defineProperty(Array.prototype,"mergeOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,true);}});}());function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
 {if(insertionIndexAfter)
 return list.upperBound(object,comparator);else
 return list.lowerBound(object,comparator);}
@@ -257,7 +276,7 @@
 var _importedScripts={};function importScript(scriptName)
 {if(_importedScripts[scriptName])
 return;var xhr=new XMLHttpRequest();_importedScripts[scriptName]=true;xhr.open("GET",scriptName,false);xhr.send(null);if(!xhr.responseText)
-throw"empty response arrived for script '"+scriptName+"'";var sourceURL=WebInspector.ParsedURL.completeURL(window.location.href,scriptName);window.eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
+throw"empty response arrived for script '"+scriptName+"'";var baseUrl=location.href;baseUrl=baseUrl.substring(0,baseUrl.lastIndexOf("/"));var sourceURL=baseUrl+"/"+scriptName;eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
 var loadScript=importScript;function CallbackBarrier()
 {this._pendingIncomingCallbacksCount=0;}
 CallbackBarrier.prototype={createCallback:function(userCallback)
@@ -266,19 +285,21 @@
 this._outgoingCallback();},_incomingCallback:function(userCallback)
 {console.assert(this._pendingIncomingCallbacksCount>0);if(userCallback){var args=Array.prototype.slice.call(arguments,1);userCallback.apply(null,args);}
 if(!--this._pendingIncomingCallbacksCount&&this._outgoingCallback)
-this._outgoingCallback();}};(function(window){window.CodeMirror={};function splitLines(string){return string.split(/\r?\n|\r/);};function StringStream(string){this.pos=this.start=0;this.string=string;}
+this._outgoingCallback();}};(function(window){window.CodeMirror={};(function(){"use strict";function splitLines(string){return string.split(/\r?\n|\r/);};function StringStream(string){this.pos=this.start=0;this.string=string;this.lineStart=0;}
 StringStream.prototype={eol:function(){return this.pos>=this.string.length;},sol:function(){return this.pos==0;},peek:function(){return this.string.charAt(this.pos)||null;},next:function(){if(this.pos<this.string.length)
 return this.string.charAt(this.pos++);},eat:function(match){var ch=this.string.charAt(this.pos);if(typeof match=="string")var ok=ch==match;else var ok=ch&&(match.test?match.test(ch):match(ch));if(ok){++this.pos;return ch;}},eatWhile:function(match){var start=this.pos;while(this.eat(match)){}
-return this.pos>start;},eatSpace:function(){var start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;},skipToEnd:function(){this.pos=this.string.length;},skipTo:function(ch){var found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}},backUp:function(n){this.pos-=n;},column:function(){return this.start;},indentation:function(){return 0;},match:function(pattern,consume,caseInsensitive){if(typeof pattern=="string"){var cased=function(str){return caseInsensitive?str.toLowerCase():str;};var substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}}else{var match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}},current:function(){return this.string.slice(this.start,this.pos);}};CodeMirror.StringStream=StringStream;CodeMirror.startState=function(mode,a1,a2){return mode.startState?mode.startState(a1,a2):true;};var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){modes[name]=mode;};CodeMirror.defineMIME=function(mime,spec){mimeModes[mime]=spec;};CodeMirror.defineMode("null",function(){return{token:function(stream){stream.skipToEnd();}};});CodeMirror.defineMIME("text/plain","null");CodeMirror.getMode=function(options,spec){if(typeof spec=="string"&&mimeModes.hasOwnProperty(spec))
-spec=mimeModes[spec];if(typeof spec=="string")
-var mname=spec,config={};else if(spec!=null)
-var mname=spec.name,config=spec;var mfactory=modes[mname];if(!mfactory)throw new Error("Unknown mode: "+spec);return mfactory(options,config||{});};}(this));;CodeMirror.defineMode("css",function(config){return CodeMirror.getMode(config,"text/css");});CodeMirror.defineMode("css-base",function(config,parserConfig){"use strict";var indentUnit=config.indentUnit,hooks=parserConfig.hooks||{},atMediaTypes=parserConfig.atMediaTypes||{},atMediaFeatures=parserConfig.atMediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},allowNested=!!parserConfig.allowNested,type=null;function ret(style,tp){type=tp;return style;}
+return this.pos>start;},eatSpace:function(){var start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;},skipToEnd:function(){this.pos=this.string.length;},skipTo:function(ch){var found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}},backUp:function(n){this.pos-=n;},column:function(){return this.start-this.lineStart;},indentation:function(){return 0;},match:function(pattern,consume,caseInsensitive){if(typeof pattern=="string"){var cased=function(str){return caseInsensitive?str.toLowerCase():str;};var substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}}else{var match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}},current:function(){return this.string.slice(this.start,this.pos);},hideFirstChars:function(n,inner){this.lineStart+=n;try{return inner();}
+finally{this.lineStart-=n;}}};CodeMirror.StringStream=StringStream;CodeMirror.startState=function(mode,a1,a2){return mode.startState?mode.startState(a1,a2):true;};var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){modes[name]=mode;};CodeMirror.defineMIME=function(mime,spec){mimeModes[mime]=spec;};CodeMirror.resolveMode=function(spec){if(typeof spec=="string"&&mimeModes.hasOwnProperty(spec)){spec=mimeModes[spec];}else if(spec&&typeof spec.name=="string"&&mimeModes.hasOwnProperty(spec.name)){spec=mimeModes[spec.name];}
+if(typeof spec=="string")return{name:spec};else return spec||{name:"null"};};CodeMirror.getMode=function(options,spec){spec=CodeMirror.resolveMode(spec);var mfactory=modes[spec.name];if(!mfactory)throw new Error("Unknown mode: "+spec);return mfactory(options,spec);};CodeMirror.registerHelper=CodeMirror.registerGlobalHelper=Math.min;CodeMirror.defineMode("null",function(){return{token:function(stream){stream.skipToEnd();}};});CodeMirror.defineMIME("text/plain","null");CodeMirror.runMode=function(string,modespec,callback,options){var mode=CodeMirror.getMode({indentUnit:2},modespec);if(callback.nodeType==1){var tabSize=(options&&options.tabSize)||4;var node=callback,col=0;node.innerHTML="";callback=function(text,style){if(text=="\n"){node.appendChild(document.createElement("br"));col=0;return;}
+var content="";for(var pos=0;;){var idx=text.indexOf("\t",pos);if(idx==-1){content+=text.slice(pos);col+=text.length-pos;break;}else{col+=idx-pos;content+=text.slice(pos,idx);var size=tabSize-col%tabSize;col+=size;for(var i=0;i<size;++i)content+=" ";pos=idx+1;}}
+if(style){var sp=node.appendChild(document.createElement("span"));sp.className="cm-"+style.replace(/ +/g," cm-");sp.appendChild(document.createTextNode(content));}else{node.appendChild(document.createTextNode(content));}};}
+var lines=splitLines(string),state=(options&&options.state)||CodeMirror.startState(mode);for(var i=0,e=lines.length;i<e;++i){if(i)callback("\n");var stream=new CodeMirror.StringStream(lines[i]);while(!stream.eol()){var style=mode.token(stream,state);callback(stream.current(),style,i,stream.start,state);stream.start=stream.pos;}}};})();}(this));CodeMirror.defineMode("css",function(config,parserConfig){"use strict";if(!parserConfig.propertyKeywords)parserConfig=CodeMirror.resolveMode("text/css");var indentUnit=config.indentUnit||config.tabSize||2,hooks=parserConfig.hooks||{},atMediaTypes=parserConfig.atMediaTypes||{},atMediaFeatures=parserConfig.atMediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},allowNested=!!parserConfig.allowNested,type=null;function ret(style,tp){type=tp;return style;}
 function tokenBase(stream,state){var ch=stream.next();if(hooks[ch]){var result=hooks[ch](stream,state);if(result!==false)return result;}
 if(ch=="@"){stream.eatWhile(/[\w\\\-]/);return ret("def",stream.current());}
 else if(ch=="=")ret(null,"compare");else if((ch=="~"||ch=="|")&&stream.eat("="))return ret(null,"compare");else if(ch=="\""||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}
 else if(ch=="#"){stream.eatWhile(/[\w\\\-]/);return ret("atom","hash");}
 else if(ch=="!"){stream.match(/^\s*\w*/);return ret("keyword","important");}
-else if(/\d/.test(ch)){stream.eatWhile(/[\w.%]/);return ret("number","unit");}
+else if(/\d/.test(ch)||ch=="."&&stream.eat(/\d/)){stream.eatWhile(/[\w.%]/);return ret("number","unit");}
 else if(ch==="-"){if(/\d/.test(stream.peek())){stream.eatWhile(/[\w.%]/);return ret("number","unit");}else if(stream.match(/^[^-]+-/)){return ret("meta","meta");}}
 else if(/[,+>*\/]/.test(ch)){return ret(null,"select-op");}
 else if(ch=="."&&stream.match(/^-?[_a-z][_a-z0-9-]*/i)){return ret("qualifier","qualifier");}
@@ -294,47 +315,48 @@
 state.tokenize=tokenString(")",true);else
 state.tokenize=tokenBase;return ret(null,"(");}
 return{startState:function(base){return{tokenize:tokenBase,baseIndent:base||0,stack:[],lastToken:null};},token:function(stream,state){state.tokenize=state.tokenize||tokenBase;if(state.tokenize==tokenBase&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(style&&typeof style!="string")style=ret(style[0],style[1]);var context=state.stack[state.stack.length-1];if(style=="variable"){if(type=="variable-definition")state.stack.push("propertyValue");return state.lastToken="variable-2";}else if(style=="property"){var word=stream.current().toLowerCase();if(context=="propertyValue"){if(valueKeywords.hasOwnProperty(word)){style="string-2";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else{style="variable-2";}}else if(context=="rule"){if(!propertyKeywords.hasOwnProperty(word)){style+=" error";}}else if(context=="block"){if(propertyKeywords.hasOwnProperty(word)){style="property";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else if(valueKeywords.hasOwnProperty(word)){style="string-2";}else{style="tag";}}else if(!context||context=="@media{"){style="tag";}else if(context=="@media"){if(atMediaTypes[stream.current()]){style="attribute";}else if(/^(only|not)$/.test(word)){style="keyword";}else if(word=="and"){style="error";}else if(atMediaFeatures.hasOwnProperty(word)){style="error";}else{style="attribute error";}}else if(context=="@mediaType"){if(atMediaTypes.hasOwnProperty(word)){style="attribute";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style="error";}}else if(context=="@mediaType("){if(propertyKeywords.hasOwnProperty(word)){}else if(atMediaTypes.hasOwnProperty(word)){style="error";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style+=" error";}}else if(context=="@import"){style="tag";}else{style="error";}}else if(style=="atom"){if(!context||context=="@media{"||context=="block"){style="builtin";}else if(context=="propertyValue"){if(!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())){style+=" error";}}else{style="error";}}else if(context=="@media"&&type=="{"){style="error";}
-if(type=="{"){if(context=="@media"||context=="@mediaType"){state.stack.pop();state.stack[state.stack.length-1]="@media{";}
+if(type=="{"){if(context=="@media"||context=="@mediaType"){state.stack[state.stack.length-1]="@media{";}
 else{var newContext=allowNested?"block":"rule";state.stack.push(newContext);}}
-else if(type=="}"){var lastState=state.stack[state.stack.length-1];if(lastState=="interpolation")style="operator";state.stack.pop();if(context=="propertyValue")state.stack.pop();}
+else if(type=="}"){if(context=="interpolation")style="operator";while(state.stack.length){var removed=state.stack.pop();if(removed.indexOf("{")>-1||removed=="block"||removed=="rule"){break;}}}
 else if(type=="interpolation")state.stack.push("interpolation");else if(type=="@media")state.stack.push("@media");else if(type=="@import")state.stack.push("@import");else if(context=="@media"&&/\b(keyword|attribute)\b/.test(style))
-state.stack.push("@mediaType");else if(context=="@mediaType"&&stream.current()==",")state.stack.pop();else if(context=="@mediaType"&&type=="(")state.stack.push("@mediaType(");else if(context=="@mediaType("&&type==")")state.stack.pop();else if(type==":"&&state.lastToken=="property")state.stack.push("propertyValue");else if(context=="propertyValue"&&type==";")state.stack.pop();else if(context=="@import"&&type==";")state.stack.pop();return state.lastToken=style;},indent:function(state,textAfter){var n=state.stack.length;if(/^\}/.test(textAfter))
-n-=state.stack[state.stack.length-1]=="propertyValue"?2:1;return state.baseIndent+n*indentUnit;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/"};});(function(){function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;}
+state.stack[state.stack.length-1]="@mediaType";else if(context=="@mediaType"&&stream.current()==",")
+state.stack[state.stack.length-1]="@media";else if(type=="("){if(context=="@media"||context=="@mediaType"){state.stack[state.stack.length-1]="@mediaType";state.stack.push("@mediaType(");}
+else state.stack.push("(");}
+else if(type==")"){while(state.stack.length){var removed=state.stack.pop();if(removed.indexOf("(")>-1){break;}}}
+else if(type==":"&&state.lastToken=="property")state.stack.push("propertyValue");else if(context=="propertyValue"&&type==";")state.stack.pop();else if(context=="@import"&&type==";")state.stack.pop();return state.lastToken=style;},indent:function(state,textAfter){var n=state.stack.length;if(/^\}/.test(textAfter))
+n-=state.stack[n-1]=="propertyValue"?2:1;return state.baseIndent+n*indentUnit;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"};});(function(){function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;}
 return keys;}
-var atMediaTypes=keySet(["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"]);var atMediaFeatures=keySet(["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"]);var propertyKeywords=keySet(["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid-cell","grid-column","grid-column-align","grid-column-sizing","grid-column-span","grid-columns","grid-flow","grid-row","grid-row-align","grid-row-sizing","grid-row-span","grid-rows","grid-template","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-shadow","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-profile","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","writing-mode"]);var colorKeywords=keySet(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);var valueKeywords=keySet(["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","overlay","overline","padding","padding-box","painted","paused","persian","plus-darker","plus-lighter","pointer","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"]);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;}
+var atMediaTypes=keySet(["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"]);var atMediaFeatures=keySet(["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"]);var propertyKeywords=keySet(["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid-cell","grid-column","grid-column-align","grid-column-sizing","grid-column-span","grid-columns","grid-flow","grid-row","grid-row-align","grid-row-sizing","grid-row-span","grid-rows","grid-template","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-inside","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","zoom","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-profile","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","writing-mode"]);var colorKeywords=keySet(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);var valueKeywords=keySet(["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","keep-all","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"]);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;}
 maybeEnd=(ch=="*");}
 return["comment","comment"];}
 CodeMirror.defineMIME("text/css",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,hooks:{"<":function(stream,state){function tokenSGMLComment(stream,state){var dashes=0,ch;while((ch=stream.next())!=null){if(dashes>=2&&ch==">"){state.tokenize=null;break;}
 dashes=(ch=="-")?dashes+1:0;}
 return["comment","comment"];}
 if(stream.eat("!")){state.tokenize=tokenSGMLComment;return tokenSGMLComment(stream,state);}},"/":function(stream,state){if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}
-return false;}},name:"css-base"});CodeMirror.defineMIME("text/x-scss",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,allowNested:true,hooks:{"$":function(stream){stream.match(/^[\w-]+/);if(stream.peek()==":"){return["variable","variable-definition"];}
-return["variable","variable"];},"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"#":function(stream){if(stream.eat("{")){return["operator","interpolation"];}else{stream.eatWhile(/[\w\\\-]/);return["atom","hash"];}}},name:"css-base"});})();;CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var jsonMode=parserConfig.json;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};}
-var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this")};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"class":kw("class"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"super":kw("super"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}}
-return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;function chain(stream,state,f){state.tokenize=f;return f(stream,state);}
-function nextUntilUnescaped(stream,end){var escaped=false,next;while((next=stream.next())!=null){if(next==end&&!escaped)
+return false;}},name:"css"});CodeMirror.defineMIME("text/x-scss",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,allowNested:true,hooks:{":":function(stream){if(stream.match(/\s*{/)){return[null,"{"];}
+return false;},"$":function(stream){stream.match(/^[\w-]+/);if(stream.peek()==":"){return["variable","variable-definition"];}
+return["variable","variable"];},",":function(stream,state){if(state.stack[state.stack.length-1]=="propertyValue"&&stream.match(/^ *\$/,false)){return["operator",";"];}},"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"#":function(stream){if(stream.eat("{")){return["operator","interpolation"];}else{stream.eatWhile(/[\w\\\-]/);return["atom","hash"];}}},name:"css"});})();;CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var statementIndent=parserConfig.statementIndent;var jsonMode=parserConfig.json;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};}
+var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this"),"module":kw("module"),"class":kw("class"),"super":kw("atom"),"yield":C,"export":kw("export"),"import":kw("import"),"extends":C};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}}
+return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;function nextUntilUnescaped(stream,end){var escaped=false,next;while((next=stream.next())!=null){if(next==end&&!escaped)
 return false;escaped=!escaped&&next=="\\";}
 return escaped;}
 var type,content;function ret(tp,style,cont){type=tp;content=cont;return style;}
-function jsTokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'")
-return chain(stream,state,jsTokenString(ch));else if(/[\[\]{}\(\),;\:\.]/.test(ch))
-return ret(ch);else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");}
-else if(/\d/.test(ch)||ch=="-"&&stream.eat(/\d/)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");}
-else if(ch=="/"){if(stream.eat("*")){return chain(stream,state,jsTokenComment);}
-else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");}
-else if(state.lastType=="operator"||state.lastType=="keyword c"||/^[\[{}\(,;:]$/.test(state.lastType)){nextUntilUnescaped(stream,"/");stream.eatWhile(/[gimy]/);return ret("regexp","string-2");}
-else{stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}}
-else if(ch=="#"){stream.skipToEnd();return ret("error","error");}
-else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}
-else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}}
-function jsTokenString(quote){return function(stream,state){if(!nextUntilUnescaped(stream,quote))
-state.tokenize=jsTokenBase;return ret("string","string");};}
-function jsTokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=jsTokenBase;break;}
+function tokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}else if(ch=="."&&stream.match(/^\d+(?:[eE][+\-]?\d+)?/)){return ret("number","number");}else if(ch=="."&&stream.match("..")){return ret("spread","meta");}else if(/[\[\]{}\(\),;\:\.]/.test(ch)){return ret(ch);}else if(ch=="="&&stream.eat(">")){return ret("=>");}else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");}else if(/\d/.test(ch)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");}else if(ch=="/"){if(stream.eat("*")){state.tokenize=tokenComment;return tokenComment(stream,state);}else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");}else if(state.lastType=="operator"||state.lastType=="keyword c"||state.lastType=="sof"||/^[\[{}\(,;:]$/.test(state.lastType)){nextUntilUnescaped(stream,"/");stream.eatWhile(/[gimy]/);return ret("regexp","string-2");}else{stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}}else if(ch=="`"){state.tokenize=tokenQuasi;return tokenQuasi(stream,state);}else if(ch=="#"){stream.skipToEnd();return ret("error","error");}else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}}
+function tokenString(quote){return function(stream,state){if(!nextUntilUnescaped(stream,quote))
+state.tokenize=tokenBase;return ret("string","string");};}
+function tokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=tokenBase;break;}
 maybeEnd=(ch=="*");}
 return ret("comment","comment");}
+function tokenQuasi(stream,state){var escaped=false,next;while((next=stream.next())!=null){if(!escaped&&(next=="`"||next=="$"&&stream.eat("{"))){state.tokenize=tokenBase;break;}
+escaped=!escaped&&next=="\\";}
+return ret("quasi","string-2",stream.current());}
+var brackets="([{}])";function findFatArrow(stream,state){if(state.fatArrowAt)state.fatArrowAt=null;var arrow=stream.string.indexOf("=>",stream.start);if(arrow<0)return;var depth=0,sawSomething=false;for(var pos=arrow-1;pos>=0;--pos){var ch=stream.string.charAt(pos);var bracket=brackets.indexOf(ch);if(bracket>=0&&bracket<3){if(!depth){++pos;break;}
+if(--depth==0)break;}else if(bracket>=3&&bracket<6){++depth;}else if(/[$\w]/.test(ch)){sawSomething=true;}else if(sawSomething&&!depth){++pos;break;}}
+if(sawSomething&&!depth)state.fatArrowAt=pos;}
 var atomicTypes={"atom":true,"number":true,"variable":true,"string":true,"regexp":true,"this":true};function JSLexical(indented,column,type,align,prev,info){this.indented=indented;this.column=column;this.type=type;this.prev=prev;this.info=info;if(align!=null)this.align=align;}
 function inScope(state,varname){for(var v=state.localVars;v;v=v.next)
-if(v.name==varname)return true;}
+if(v.name==varname)return true;for(var cx=state.context;cx;cx=cx.prev){for(var v=cx.vars;v;v=v.next)
+if(v.name==varname)return true;}}
 function parseJS(state,style,type,content,stream){var cc=state.cc;cx.state=state;cx.stream=stream;cx.marked=null,cx.cc=cc;if(!state.lexical.hasOwnProperty("align"))
 state.lexical.align=true;while(true){var combinator=cc.length?cc.pop():jsonMode?expression:statement;if(combinator(type,content)){while(cc.length&&cc[cc.length-1].lex)
 cc.pop()();if(cx.marked)return cx.marked;if(type=="variable"&&inScope(state,content))return"variable-2";return style;}}}
@@ -342,54 +364,82 @@
 function cont(){pass.apply(null,arguments);return true;}
 function register(varname){function inList(list){for(var v=list;v;v=v.next)
 if(v.name==varname)return true;return false;}
-var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;state.globalVars={name:varname,next:state.globalVars};}}
+var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;if(parserConfig.globalVars)
+state.globalVars={name:varname,next:state.globalVars};}}
 var defaultVars={name:"this",next:{name:"arguments"}};function pushcontext(){cx.state.context={prev:cx.state.context,vars:cx.state.localVars};cx.state.localVars=defaultVars;}
 function popcontext(){cx.state.localVars=cx.state.context.vars;cx.state.context=cx.state.context.prev;}
-function pushlex(type,info){var result=function(){var state=cx.state;state.lexical=new JSLexical(state.indented,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;}
+function pushlex(type,info){var result=function(){var state=cx.state,indent=state.indented;if(state.lexical.type=="stat")indent=state.lexical.indented;state.lexical=new JSLexical(indent,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;}
 function poplex(){var state=cx.state;if(state.lexical.prev){if(state.lexical.type==")")
 state.indented=state.lexical.indented;state.lexical=state.lexical.prev;}}
 poplex.lex=true;function expect(wanted){return function(type){if(type==wanted)return cont();else if(wanted==";")return pass();else return cont(arguments.callee);};}
-function statement(type){if(type=="var")return cont(pushlex("vardef"),vardef1,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if")return cont(pushlex("form"),expression,statement,poplex,maybeelse(cx.state.indented));if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),expect("("),pushlex(")"),forspec1,expect(")"),poplex,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);return pass(pushlex("stat"),expression,expect(";"),poplex);}
-function expression(type){return expressionInner(type,maybeoperatorComma);}
-function expressionNoComma(type){return expressionInner(type,maybeoperatorNoComma);}
-function expressionInner(type,maybeop){if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef);if(type=="keyword c")return cont(maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,expect(")"),poplex,maybeop);if(type=="operator")return cont(expression);if(type=="[")return cont(pushlex("]"),commasep(expressionNoComma,"]"),poplex,maybeop);if(type=="{")return cont(pushlex("}"),commasep(objprop,"}"),poplex,maybeop);return cont();}
+function statement(type,value){if(type=="var")return cont(pushlex("vardef",value.length),vardef,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if")return cont(pushlex("form"),expression,statement,poplex,maybeelse);if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),forspec,poplex,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);if(type=="module")return cont(pushlex("form"),pushcontext,afterModule,popcontext,poplex);if(type=="class")return cont(pushlex("form"),className,objlit,poplex);if(type=="export")return cont(pushlex("form"),afterExport,poplex);if(type=="import")return cont(pushlex("form"),afterImport,poplex);return pass(pushlex("stat"),expression,expect(";"),poplex);}
+function expression(type){return expressionInner(type,false);}
+function expressionNoComma(type){return expressionInner(type,true);}
+function expressionInner(type,noComma){if(cx.state.fatArrowAt==cx.stream.start){var body=noComma?arrowBodyNoComma:arrowBody;if(type=="(")return cont(pushcontext,commasep(pattern,")"),expect("=>"),body,popcontext);else if(type=="variable")return pass(pushcontext,pattern,expect("=>"),body,popcontext);}
+var maybeop=noComma?maybeoperatorNoComma:maybeoperatorComma;if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef);if(type=="keyword c")return cont(noComma?maybeexpressionNoComma:maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,comprehension,expect(")"),poplex,maybeop);if(type=="operator"||type=="spread")return cont(noComma?expressionNoComma:expression);if(type=="[")return cont(pushlex("]"),expressionNoComma,maybeArrayComprehension,poplex,maybeop);if(type=="{")return cont(commasep(objprop,"}"),maybeop);return cont();}
 function maybeexpression(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expression);}
-function maybeoperatorComma(type,value){if(type==",")return pass();return maybeoperatorNoComma(type,value,maybeoperatorComma);}
-function maybeoperatorNoComma(type,value,me){if(!me)me=maybeoperatorNoComma;if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expression);return cont(expression);}
-if(type==";")return;if(type=="(")return cont(pushlex(")","call"),commasep(expressionNoComma,")"),poplex,me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),expression,expect("]"),poplex,me);}
+function maybeexpressionNoComma(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expressionNoComma);}
+function maybeoperatorComma(type,value){if(type==",")return cont(expression);return maybeoperatorNoComma(type,value,false);}
+function maybeoperatorNoComma(type,value,noComma){var me=noComma==false?maybeoperatorComma:maybeoperatorNoComma;var expr=noComma==false?expression:expressionNoComma;if(value=="=>")return cont(pushcontext,noComma?arrowBodyNoComma:arrowBody,popcontext);if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expr);return cont(expr);}
+if(type=="quasi"){cx.cc.push(me);return quasi(value);}
+if(type==";")return;if(type=="(")return cont(commasep(expressionNoComma,")","call"),me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),maybeexpression,expect("]"),poplex,me);}
+function quasi(value){if(!value)debugger;if(value.slice(value.length-2)!="${")return cont();return cont(expression,continueQuasi);}
+function continueQuasi(type){if(type=="}"){cx.marked="string-2";cx.state.tokenize=tokenQuasi;return cont();}}
+function arrowBody(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expression);}
+function arrowBodyNoComma(type){findFatArrow(cx.stream,cx.state);if(type=="{")return pass(statement);return pass(expressionNoComma);}
 function maybelabel(type){if(type==":")return cont(poplex,statement);return pass(maybeoperatorComma,expect(";"),poplex);}
 function property(type){if(type=="variable"){cx.marked="property";return cont();}}
-function objprop(type,value){if(type=="variable"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);}else if(type=="number"||type=="string"){cx.marked=type+" property";}
-if(atomicTypes.hasOwnProperty(type))return cont(expect(":"),expressionNoComma);}
-function getterSetter(type){if(type==":")return cont(expression);if(type!="variable")return cont(expect(":"),expression);cx.marked="property";return cont(functiondef);}
-function commasep(what,end){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);}
+function objprop(type,value){if(type=="variable"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);}else if(type=="number"||type=="string"){cx.marked=type+" property";}else if(type=="["){return cont(expression,expect("]"),afterprop);}
+if(atomicTypes.hasOwnProperty(type))return cont(afterprop);}
+function getterSetter(type){if(type!="variable")return pass(afterprop);cx.marked="property";return cont(functiondef);}
+function afterprop(type){if(type==":")return cont(expressionNoComma);if(type=="(")return pass(functiondef);}
+function commasep(what,end,info){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);}
 if(type==end)return cont();return cont(expect(end));}
-return function(type){if(type==end)return cont();else return pass(what,proceed);};}
+return function(type){if(type==end)return cont();if(info===false)return pass(what,proceed);return pass(pushlex(end,info),what,proceed,poplex);};}
 function block(type){if(type=="}")return cont();return pass(statement,block);}
-function maybetype(type){if(type==":")return cont(typedef);return pass();}
-function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();}
-return pass();}
-function vardef1(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype,vardef2):cont(vardef2);}
-return pass();}
-function vardef2(type,value){if(value=="=")return cont(expressionNoComma,vardef2);if(type==",")return cont(vardef1);}
-function maybeelse(indent){return function(type,value){if(type=="keyword b"&&value=="else"){cx.state.lexical=new JSLexical(indent,0,"form",null,cx.state.lexical);return cont(statement,poplex);}
-return pass();};}
-function forspec1(type){if(type=="var")return cont(vardef1,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybein);return pass(expression,expect(";"),forspec2);}
-function formaybein(_type,value){if(value=="in")return cont(expression);return cont(maybeoperatorComma,forspec2);}
-function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in")return cont(expression);return pass(expression,expect(";"),forspec3);}
+function maybetype(type){if(isTS&&type==":")return cont(typedef);}
+function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();}}
+function vardef(){return pass(pattern,maybetype,maybeAssign,vardefCont);}
+function pattern(type,value){if(type=="variable"){register(value);return cont();}
+if(type=="[")return cont(commasep(pattern,"]"));if(type=="{")return cont(commasep(proppattern,"}"));}
+function proppattern(type,value){if(type=="variable"&&!cx.stream.match(/^\s*:/,false)){register(value);return cont(maybeAssign);}
+if(type=="variable")cx.marked="property";return cont(expect(":"),pattern,maybeAssign);}
+function maybeAssign(_type,value){if(value=="=")return cont(expressionNoComma);}
+function vardefCont(type){if(type==",")return cont(vardef);}
+function maybeelse(type,value){if(type=="keyword b"&&value=="else")return cont(pushlex("form"),statement,poplex);}
+function forspec(type){if(type=="(")return cont(pushlex(")"),forspec1,expect(")"));}
+function forspec1(type){if(type=="var")return cont(vardef,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybeinof);return pass(expression,expect(";"),forspec2);}
+function formaybeinof(_type,value){if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
+return cont(maybeoperatorComma,forspec2);}
+function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression);}
+return pass(expression,expect(";"),forspec3);}
 function forspec3(type){if(type!=")")cont(expression);}
-function functiondef(type,value){if(type=="variable"){register(value);return cont(functiondef);}
-if(type=="(")return cont(pushlex(")"),pushcontext,commasep(funarg,")"),poplex,statement,popcontext);}
-function funarg(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype):cont();}}
-return{startState:function(basecolumn){return{tokenize:jsTokenBase,lastType:null,cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,globalVars:parserConfig.globalVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align"))
-state.lexical.align=false;state.indented=stream.indentation();}
-if(state.tokenize!=jsTokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==jsTokenComment)return CodeMirror.Pass;if(state.tokenize!=jsTokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(parserConfig.statementIndent!=null){if(type==")"&&lexical.prev&&lexical.prev.type=="stat")lexical=lexical.prev;if(lexical.type=="stat")return lexical.indented+parserConfig.statementIndent;}
-if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?4:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat")
-return lexical.indented+(state.lastType=="operator"||state.lastType==","?indentUnit:0);else if(lexical.info=="switch"&&!closing)
-return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",jsonMode:jsonMode};});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});;CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag||true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var alignCDATA=parserConfig.alignCDATA;var tagName,type;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);}
-var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{var isClose=stream.eat("/");tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/)))tagName+=c;if(!tagName)return"error";type=isClose?"closeTag":"openTag";state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");}
+function functiondef(type,value){if(value=="*"){cx.marked="keyword";return cont(functiondef);}
+if(type=="variable"){register(value);return cont(functiondef);}
+if(type=="(")return cont(pushcontext,commasep(funarg,")"),statement,popcontext);}
+function funarg(type){if(type=="spread")return cont(funarg);return pass(pattern,maybetype);}
+function className(type,value){if(type=="variable"){register(value);return cont(classNameAfter);}}
+function classNameAfter(_type,value){if(value=="extends")return cont(expression);}
+function objlit(type){if(type=="{")return cont(commasep(objprop,"}"));}
+function afterModule(type,value){if(type=="string")return cont(statement);if(type=="variable"){register(value);return cont(maybeFrom);}}
+function afterExport(_type,value){if(value=="*"){cx.marked="keyword";return cont(maybeFrom,expect(";"));}
+if(value=="default"){cx.marked="keyword";return cont(expression,expect(";"));}
+return pass(statement);}
+function afterImport(type){if(type=="string")return cont();return pass(importSpec,maybeFrom);}
+function importSpec(type,value){if(type=="{")return cont(commasep(importSpec,"}"));if(type=="variable")register(value);return cont();}
+function maybeFrom(_type,value){if(value=="from"){cx.marked="keyword";return cont(expression);}}
+function maybeArrayComprehension(type){if(type=="for")return pass(comprehension);if(type==",")return cont(commasep(expressionNoComma,"]",false));return pass(commasep(expressionNoComma,"]",false));}
+function comprehension(type){if(type=="for")return cont(forspec,comprehension);if(type=="if")return cont(expression,comprehension);}
+return{startState:function(basecolumn){var state={tokenize:tokenBase,lastType:"sof",cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};if(parserConfig.globalVars)state.globalVars=parserConfig.globalVars;return state;},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align"))
+state.lexical.align=false;state.indented=stream.indentation();findFatArrow(stream,state);}
+if(state.tokenize!=tokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==tokenComment)return CodeMirror.Pass;if(state.tokenize!=tokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;for(var i=state.cc.length-1;i>=0;--i){var c=state.cc[i];if(c==poplex)lexical=lexical.prev;else if(c!=maybeelse)break;}
+if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;if(statementIndent&&lexical.type==")"&&lexical.prev.type=="stat")
+lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?lexical.info+1:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat")
+return lexical.indented+(state.lastType=="operator"||state.lastType==","?statementIndent||indentUnit:0);else if(lexical.info=="switch"&&!closing&&parserConfig.doubleIndentSwitch!=false)
+return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",fold:"brace",helperType:jsonMode?"json":"javascript",jsonMode:jsonMode};});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});;CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag||true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var alignCDATA=parserConfig.alignCDATA;var tagName,type;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);}
+var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{var isClose=stream.eat("/");tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/)))tagName+=c;if(!tagName)return"tag error";type=isClose?"closeTag":"openTag";state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");}
 return ok?"atom":"error";}else{stream.eatWhile(/[^&<]/);return null;}}
-function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){return"error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\']/);return"word";}}
+function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){state.tokenize=inText;var next=state.tokenize(stream,state);return next?next+" error":"error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\']/);return"word";}}
 function inAttribute(quote){var closure=function(stream,state){while(!stream.eol()){if(stream.next()==quote){state.tokenize=inTag;break;}}
 return"string";};closure.isInAttribute=true;return closure;}
 function inBlock(style,terminator){return function(stream,state){while(!stream.eol()){if(stream.match(terminator)){state.tokenize=inText;break;}
@@ -422,7 +472,8 @@
 function attvaluemaybe(type){if(type=="string")return cont(attvaluemaybe);else return pass();}
 return{startState:function(){return{tokenize:inText,cc:[],indented:0,startOfLine:true,tagName:null,tagStart:null,context:null};},token:function(stream,state){if(!state.tagName&&stream.sol()){state.startOfLine=true;state.indented=stream.indentation();}
 if(stream.eatSpace())return null;setStyle=type=tagName=null;var style=state.tokenize(stream,state);state.type=type;if((style||type)&&style!="comment"){curState=state;curStream=stream;while(true){var comb=state.cc.pop()||element;if(comb(type||style))break;}}
-state.startOfLine=false;return setStyle||style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){return state.stringStartCol+1;}
+state.startOfLine=false;if(setStyle)
+style=setStyle=="error"?style+" error":setStyle;return style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){return state.stringStartCol+1;}
 if((state.tokenize!=inTag&&state.tokenize!=inText)||context&&context.noIndent)
 return fullLine?fullLine.match(/^(\s*)/)[0].length:0;if(state.tagName){if(multilineTagIndentPastTag)
 return state.tagStart+state.tagName.length+2;else
@@ -434,7 +485,7 @@
 scriptTypes.push({matches:/./,mode:CodeMirror.getMode(config,"text/plain")});function html(stream,state){var tagName=state.htmlState.tagName;var style=htmlMode.token(stream,state.htmlState);if(tagName=="script"&&/\btag\b/.test(style)&&stream.current()==">"){var scriptType=stream.string.slice(Math.max(0,stream.pos-100),stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);scriptType=scriptType?scriptType[1]:"";if(scriptType&&/[\"\']/.test(scriptType.charAt(0)))scriptType=scriptType.slice(1,scriptType.length-1);for(var i=0;i<scriptTypes.length;++i){var tp=scriptTypes[i];if(typeof tp.matches=="string"?scriptType==tp.matches:tp.matches.test(scriptType)){if(tp.mode){state.token=script;state.localMode=tp.mode;state.localState=tp.mode.startState&&tp.mode.startState(htmlMode.indent(state.htmlState,""));}
 break;}}}else if(tagName=="style"&&/\btag\b/.test(style)&&stream.current()==">"){state.token=css;state.localMode=cssMode;state.localState=cssMode.startState(htmlMode.indent(state.htmlState,""));}
 return style;}
-function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur[0]);}
+function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur);}
 return style;}
 function script(stream,state){if(stream.match(/^<\/\s*script\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
 return maybeBackup(stream,/<\/\s*script\s*>/,state.localMode.token(stream,state.localState));}
@@ -456,25 +507,25 @@
 {var oldModeName=modeName+"-old";if(CodeMirror.modes[oldModeName])
 return;CodeMirror.defineMode(oldModeName,CodeMirror.modes[modeName]);CodeMirror.defineMode(modeName,modeConstructor);function modeConstructor(config,parserConfig)
 {var innerConfig={};for(var i in parserConfig)
-innerConfig[i]=parserConfig[i];innerConfig.name=oldModeName;var codeMirrorMode=CodeMirror.getMode(config,innerConfig);codeMirrorMode.name=modeName;codeMirrorMode.token=tokenOverride.bind(this,codeMirrorMode.token);return codeMirrorMode;}
+innerConfig[i]=parserConfig[i];innerConfig.name=oldModeName;var codeMirrorMode=CodeMirror.getMode(config,innerConfig);codeMirrorMode.name=modeName;codeMirrorMode.token=tokenOverride.bind(null,codeMirrorMode.token);return codeMirrorMode;}
 function tokenOverride(superToken,stream,state)
 {var token=superToken(stream,state);return token?tokenPrefix+token:token;}}}
-WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("css-base","css-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("javascript","js-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("xml","xml-");;var onmessage=function(event){if(!event.data.method)
-return;FormatterWorker[event.data.method](event.data.params);};FormatterWorker.format=function(params)
+WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("css","css-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("javascript","js-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("xml","xml-");;var FormatterParameters;var onmessage=function(event){var data=(event.data);if(!data.method)
+return;FormatterWorker[data.method](data.params);};FormatterWorker.format=function(params)
 {var indentString=params.indentString||"    ";var result={};if(params.mimeType==="text/html"){var formatter=new FormatterWorker.HTMLFormatter(indentString);result=formatter.format(params.content);}else if(params.mimeType==="text/css"){result.mapping={original:[0],formatted:[0]};result.content=FormatterWorker._formatCSS(params.content,result.mapping,0,0,indentString);}else{result.mapping={original:[0],formatted:[0]};result.content=FormatterWorker._formatScript(params.content,result.mapping,0,0,indentString);}
 postMessage(result);}
 FormatterWorker._chunkCount=function(totalLength,chunkSize)
 {if(totalLength<=chunkSize)
 return 1;var remainder=totalLength%chunkSize;var partialLength=totalLength-remainder;return(partialLength/chunkSize)+(remainder?1:0);}
 FormatterWorker.outline=function(params)
-{const chunkSize=100000;const totalLength=params.content.length;const lines=params.content.split("\n");const chunkCount=FormatterWorker._chunkCount(totalLength,chunkSize);var outlineChunk=[];var previousIdentifier=null;var previousToken=null;var previousTokenType=null;var currentChunk=1;var processedChunkCharacters=0;var addedFunction=false;var isReadingArguments=false;var argumentsText="";var currentFunction=null;var tokenizer=WebInspector.CodeMirrorUtils.createTokenizer("text/javascript");for(var i=0;i<lines.length;++i){var line=lines[i];function processToken(tokenValue,tokenType,column,newColumn)
-{tokenType=tokenType?WebInspector.CodeMirrorUtils.convertTokenType(tokenType):null;if(tokenType==="javascript-ident"){previousIdentifier=tokenValue;if(tokenValue&&previousToken==="function"){currentFunction={line:i,column:column,name:tokenValue};addedFunction=true;previousIdentifier=null;}}else if(tokenType==="javascript-keyword"){if(tokenValue==="function"){if(previousIdentifier&&(previousToken==="="||previousToken===":")){currentFunction={line:i,column:column,name:previousIdentifier};addedFunction=true;previousIdentifier=null;}}}else if(tokenValue==="."&&previousTokenType==="javascript-ident")
+{const chunkSize=100000;const totalLength=params.content.length;const lines=params.content.split("\n");const chunkCount=FormatterWorker._chunkCount(totalLength,chunkSize);var outlineChunk=[];var previousIdentifier=null;var previousToken=null;var previousTokenType=null;var currentChunk=1;var processedChunkCharacters=0;var addedFunction=false;var isReadingArguments=false;var argumentsText="";var currentFunction=null;var tokenizer=WebInspector.CodeMirrorUtils.createTokenizer("text/javascript");for(var i=0;i<lines.length;++i){var line=lines[i];tokenizer(line,processToken);}
+function processToken(tokenValue,tokenType,column,newColumn)
+{var convertedType=tokenType?WebInspector.CodeMirrorUtils.convertTokenType(tokenType):null;if(convertedType==="javascript-ident"){previousIdentifier=tokenValue;if(tokenValue&&previousToken==="function"){currentFunction={line:i,column:column,name:tokenValue};addedFunction=true;previousIdentifier=null;}}else if(convertedType==="javascript-keyword"){if(tokenValue==="function"){if(previousIdentifier&&(previousToken==="="||previousToken===":")){currentFunction={line:i,column:column,name:previousIdentifier};addedFunction=true;previousIdentifier=null;}}}else if(tokenValue==="."&&previousTokenType==="javascript-ident")
 previousIdentifier+=".";else if(tokenValue==="("&&addedFunction)
 isReadingArguments=true;if(isReadingArguments&&tokenValue)
 argumentsText+=tokenValue;if(tokenValue===")"&&isReadingArguments){addedFunction=false;isReadingArguments=false;currentFunction.arguments=argumentsText.replace(/,[\r\n\s]*/g,", ").replace(/([^,])[\r\n\s]+/g,"$1");argumentsText="";outlineChunk.push(currentFunction);}
-if(tokenValue.trim().length){previousToken=tokenValue;previousTokenType=tokenType;}
+if(tokenValue.trim().length){previousToken=tokenValue;previousTokenType=convertedType;}
 processedChunkCharacters+=newColumn-column;if(processedChunkCharacters>=chunkSize){postMessage({chunk:outlineChunk,total:chunkCount,index:currentChunk++});outlineChunk=[];processedChunkCharacters=0;}}
-tokenizer(line,processToken);}
 postMessage({chunk:outlineChunk,total:chunkCount,index:chunkCount});}
 FormatterWorker._formatScript=function(content,mapping,offset,formattedOffset,indentString)
 {var formattedContent;try{var tokenizer=new FormatterWorker.JavaScriptTokenizer(content);var builder=new FormatterWorker.JavaScriptFormattedContentBuilder(tokenizer.content(),mapping,offset,formattedOffset,indentString);var formatter=new FormatterWorker.JavaScriptFormatter(tokenizer,builder);formatter.format();formattedContent=builder.content();}catch(e){formattedContent=content;}
diff --git a/resources/inspector/SourcesPanel.js b/resources/inspector/SourcesPanel.js
index d5c2a58..82ad758 100644
--- a/resources/inspector/SourcesPanel.js
+++ b/resources/inspector/SourcesPanel.js
@@ -4,7 +4,7 @@
 WebInspector.JavaScriptBreakpointsSidebarPane.prototype={_emptyElementContextMenu:function(event)
 {var contextMenu=new WebInspector.ContextMenu(event);var breakpointActive=WebInspector.debuggerModel.breakpointsActive();var breakpointActiveTitle=breakpointActive?WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Deactivate breakpoints":"Deactivate Breakpoints"):WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Activate breakpoints":"Activate Breakpoints");contextMenu.appendItem(breakpointActiveTitle,WebInspector.debuggerModel.setBreakpointsActive.bind(WebInspector.debuggerModel,!breakpointActive));contextMenu.show();},_breakpointAdded:function(event)
 {this._breakpointRemoved(event);var breakpoint=(event.data.breakpoint);var uiLocation=(event.data.uiLocation);this._addBreakpoint(breakpoint,uiLocation);},_addBreakpoint:function(breakpoint,uiLocation)
-{var element=document.createElement("li");element.addStyleClass("cursor-pointer");element.addEventListener("contextmenu",this._breakpointContextMenu.bind(this,breakpoint),true);element.addEventListener("click",this._breakpointClicked.bind(this,uiLocation),false);var checkbox=document.createElement("input");checkbox.className="checkbox-elem";checkbox.type="checkbox";checkbox.checked=breakpoint.enabled();checkbox.addEventListener("click",this._breakpointCheckboxClicked.bind(this,breakpoint),false);element.appendChild(checkbox);var labelElement=document.createTextNode(uiLocation.linkText());element.appendChild(labelElement);var snippetElement=document.createElement("div");snippetElement.className="source-text monospace";element.appendChild(snippetElement);function didRequestContent(content)
+{var element=document.createElement("li");element.classList.add("cursor-pointer");element.addEventListener("contextmenu",this._breakpointContextMenu.bind(this,breakpoint),true);element.addEventListener("click",this._breakpointClicked.bind(this,uiLocation),false);var checkbox=document.createElement("input");checkbox.className="checkbox-elem";checkbox.type="checkbox";checkbox.checked=breakpoint.enabled();checkbox.addEventListener("click",this._breakpointCheckboxClicked.bind(this,breakpoint),false);element.appendChild(checkbox);var labelElement=document.createTextNode(uiLocation.linkText());element.appendChild(labelElement);var snippetElement=document.createElement("div");snippetElement.className="source-text monospace";element.appendChild(snippetElement);function didRequestContent(content)
 {var lineEndings=content.lineEndings();if(uiLocation.lineNumber<lineEndings.length)
 snippetElement.textContent=content.substring(lineEndings[uiLocation.lineNumber-1],lineEndings[uiLocation.lineNumber]);}
 uiLocation.uiSourceCode.requestContent(didRequestContent.bind(this));element._data=uiLocation;var currentElement=this.listElement.firstChild;while(currentElement){if(currentElement._data&&this._compareBreakpoints(currentElement._data,element._data)>0)
@@ -13,8 +13,8 @@
 {var breakpoint=(event.data.breakpoint);var uiLocation=(event.data.uiLocation);var breakpointItem=this._items.get(breakpoint);if(!breakpointItem)
 return;this._items.remove(breakpoint);this._removeListElement(breakpointItem.element);},highlightBreakpoint:function(breakpoint)
 {var breakpointItem=this._items.get(breakpoint);if(!breakpointItem)
-return;breakpointItem.element.addStyleClass("breakpoint-hit");this._highlightedBreakpointItem=breakpointItem;},clearBreakpointHighlight:function()
-{if(this._highlightedBreakpointItem){this._highlightedBreakpointItem.element.removeStyleClass("breakpoint-hit");delete this._highlightedBreakpointItem;}},_breakpointClicked:function(uiLocation,event)
+return;breakpointItem.element.classList.add("breakpoint-hit");this._highlightedBreakpointItem=breakpointItem;},clearBreakpointHighlight:function()
+{if(this._highlightedBreakpointItem){this._highlightedBreakpointItem.element.classList.remove("breakpoint-hit");delete this._highlightedBreakpointItem;}},_breakpointClicked:function(uiLocation,event)
 {this._showSourceLineDelegate(uiLocation.uiSourceCode,uiLocation.lineNumber);},_breakpointCheckboxClicked:function(breakpoint,event)
 {event.consume();breakpoint.setEnabled(event.target.checked);},_breakpointContextMenu:function(breakpoint,event)
 {var breakpoints=this._items.values();var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove breakpoint":"Remove Breakpoint"),breakpoint.remove.bind(breakpoint));if(breakpoints.length>1){var removeAllTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove all breakpoints":"Remove All Breakpoints");contextMenu.appendItem(removeAllTitle,this._breakpointManager.removeAllBreakpoints.bind(this._breakpointManager));}
@@ -44,7 +44,7 @@
 {if(url in this._breakpointElements)
 return;var element=document.createElement("li");element._url=url;element.addEventListener("contextmenu",this._contextMenu.bind(this,url),true);var checkboxElement=document.createElement("input");checkboxElement.className="checkbox-elem";checkboxElement.type="checkbox";checkboxElement.checked=enabled;checkboxElement.addEventListener("click",this._checkboxClicked.bind(this,url),false);element._checkboxElement=checkboxElement;element.appendChild(checkboxElement);var labelElement=document.createElement("span");if(!url)
 labelElement.textContent=WebInspector.UIString("Any XHR");else
-labelElement.textContent=WebInspector.UIString("URL contains \"%s\"",url);labelElement.addStyleClass("cursor-auto");labelElement.addEventListener("dblclick",this._labelClicked.bind(this,url),false);element.appendChild(labelElement);var currentElement=this.listElement.firstChild;while(currentElement){if(currentElement._url&&currentElement._url<element._url)
+labelElement.textContent=WebInspector.UIString("URL contains \"%s\"",url);labelElement.classList.add("cursor-auto");labelElement.addEventListener("dblclick",this._labelClicked.bind(this,url),false);element.appendChild(labelElement);var currentElement=this.listElement.firstChild;while(currentElement){if(currentElement._url&&currentElement._url<element._url)
 break;currentElement=currentElement.nextSibling;}
 this._addListElement(element,currentElement);this._breakpointElements[url]=element;if(enabled)
 DOMDebuggerAgent.setXHRBreakpoint(url);},_removeBreakpoint:function(url)
@@ -60,25 +60,25 @@
 {if(event.target.checked)
 DOMDebuggerAgent.setXHRBreakpoint(url);else
 DOMDebuggerAgent.removeXHRBreakpoint(url);this._saveBreakpoints();},_labelClicked:function(url)
-{var element=this._breakpointElements[url];var inputElement=document.createElement("span");inputElement.className="breakpoint-condition editing";inputElement.textContent=url;this.listElement.insertBefore(inputElement,element);element.addStyleClass("hidden");function finishEditing(accept,e,text)
+{var element=this._breakpointElements[url];var inputElement=document.createElement("span");inputElement.className="breakpoint-condition editing";inputElement.textContent=url;this.listElement.insertBefore(inputElement,element);element.classList.add("hidden");function finishEditing(accept,e,text)
 {this._removeListElement(inputElement);if(accept){this._removeBreakpoint(url);this._setBreakpoint(text,element._checkboxElement.checked);this._saveBreakpoints();}else
-element.removeStyleClass("hidden");}
+element.classList.remove("hidden");}
 WebInspector.startEditing(inputElement,new WebInspector.EditingConfig(finishEditing.bind(this,true),finishEditing.bind(this,false)));},highlightBreakpoint:function(url)
 {var element=this._breakpointElements[url];if(!element)
-return;this.expand();element.addStyleClass("breakpoint-hit");this._highlightedElement=element;},clearBreakpointHighlight:function()
-{if(this._highlightedElement){this._highlightedElement.removeStyleClass("breakpoint-hit");delete this._highlightedElement;}},_saveBreakpoints:function()
+return;this.expand();element.classList.add("breakpoint-hit");this._highlightedElement=element;},clearBreakpointHighlight:function()
+{if(this._highlightedElement){this._highlightedElement.classList.remove("breakpoint-hit");delete this._highlightedElement;}},_saveBreakpoints:function()
 {var breakpoints=[];for(var url in this._breakpointElements)
 breakpoints.push({url:url,enabled:this._breakpointElements[url]._checkboxElement.checked});WebInspector.settings.xhrBreakpoints.set(breakpoints);},_restoreBreakpoints:function()
 {var breakpoints=WebInspector.settings.xhrBreakpoints.get();for(var i=0;i<breakpoints.length;++i){var breakpoint=breakpoints[i];if(breakpoint&&typeof breakpoint.url==="string")
 this._setBreakpoint(breakpoint.url,breakpoint.enabled);}},__proto__:WebInspector.NativeBreakpointsSidebarPane.prototype}
 WebInspector.EventListenerBreakpointsSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Event Listener Breakpoints"));this.registerRequiredCSS("breakpointsList.css");this.categoriesElement=document.createElement("ol");this.categoriesElement.tabIndex=0;this.categoriesElement.addStyleClass("properties-tree");this.categoriesElement.addStyleClass("event-listener-breakpoints");this.categoriesTreeOutline=new TreeOutline(this.categoriesElement);this.bodyElement.appendChild(this.categoriesElement);this._breakpointItems={};this._createCategory(WebInspector.UIString("Animation"),false,["requestAnimationFrame","cancelAnimationFrame","animationFrameFired"]);this._createCategory(WebInspector.UIString("Control"),true,["resize","scroll","zoom","focus","blur","select","change","submit","reset"]);this._createCategory(WebInspector.UIString("Clipboard"),true,["copy","cut","paste","beforecopy","beforecut","beforepaste"]);this._createCategory(WebInspector.UIString("DOM Mutation"),true,["DOMActivate","DOMFocusIn","DOMFocusOut","DOMAttrModified","DOMCharacterDataModified","DOMNodeInserted","DOMNodeInsertedIntoDocument","DOMNodeRemoved","DOMNodeRemovedFromDocument","DOMSubtreeModified","DOMContentLoaded"]);this._createCategory(WebInspector.UIString("Device"),true,["deviceorientation","devicemotion"]);this._createCategory(WebInspector.UIString("Keyboard"),true,["keydown","keyup","keypress","input"]);this._createCategory(WebInspector.UIString("Load"),true,["load","unload","abort","error","hashchange"]);this._createCategory(WebInspector.UIString("Mouse"),true,["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","mousewheel"]);this._createCategory(WebInspector.UIString("Timer"),false,["setTimer","clearTimer","timerFired"]);this._createCategory(WebInspector.UIString("Touch"),true,["touchstart","touchmove","touchend","touchcancel"]);this._createCategory(WebInspector.UIString("WebGL"),false,["webglErrorFired","webglWarningFired"]);this._restoreBreakpoints();}
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Event Listener Breakpoints"));this.registerRequiredCSS("breakpointsList.css");this.categoriesElement=document.createElement("ol");this.categoriesElement.tabIndex=0;this.categoriesElement.classList.add("properties-tree");this.categoriesElement.classList.add("event-listener-breakpoints");this.categoriesTreeOutline=new TreeOutline(this.categoriesElement);this.bodyElement.appendChild(this.categoriesElement);this._breakpointItems={};this._createCategory(WebInspector.UIString("Animation"),false,["requestAnimationFrame","cancelAnimationFrame","animationFrameFired"]);this._createCategory(WebInspector.UIString("Control"),true,["resize","scroll","zoom","focus","blur","select","change","submit","reset"]);this._createCategory(WebInspector.UIString("Clipboard"),true,["copy","cut","paste","beforecopy","beforecut","beforepaste"]);this._createCategory(WebInspector.UIString("DOM Mutation"),true,["DOMActivate","DOMFocusIn","DOMFocusOut","DOMAttrModified","DOMCharacterDataModified","DOMNodeInserted","DOMNodeInsertedIntoDocument","DOMNodeRemoved","DOMNodeRemovedFromDocument","DOMSubtreeModified","DOMContentLoaded"]);this._createCategory(WebInspector.UIString("Device"),true,["deviceorientation","devicemotion"]);this._createCategory(WebInspector.UIString("Keyboard"),true,["keydown","keyup","keypress","input"]);this._createCategory(WebInspector.UIString("Load"),true,["load","beforeunload","unload","abort","error","hashchange","popstate"]);this._createCategory(WebInspector.UIString("Mouse"),true,["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout","mousewheel"]);this._createCategory(WebInspector.UIString("Timer"),false,["setTimer","clearTimer","timerFired"]);this._createCategory(WebInspector.UIString("Touch"),true,["touchstart","touchmove","touchend","touchcancel"]);this._createCategory(WebInspector.UIString("WebGL"),false,["webglErrorFired","webglWarningFired"]);this._restoreBreakpoints();}
 WebInspector.EventListenerBreakpointsSidebarPane.categotyListener="listener:";WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation="instrumentation:";WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI=function(eventName,auxData)
 {if(!WebInspector.EventListenerBreakpointsSidebarPane._eventNamesForUI){WebInspector.EventListenerBreakpointsSidebarPane._eventNamesForUI={"instrumentation:setTimer":WebInspector.UIString("Set Timer"),"instrumentation:clearTimer":WebInspector.UIString("Clear Timer"),"instrumentation:timerFired":WebInspector.UIString("Timer Fired"),"instrumentation:requestAnimationFrame":WebInspector.UIString("Request Animation Frame"),"instrumentation:cancelAnimationFrame":WebInspector.UIString("Cancel Animation Frame"),"instrumentation:animationFrameFired":WebInspector.UIString("Animation Frame Fired"),"instrumentation:webglErrorFired":WebInspector.UIString("WebGL Error Fired"),"instrumentation:webglWarningFired":WebInspector.UIString("WebGL Warning Fired")};}
 if(auxData){if(eventName==="instrumentation:webglErrorFired"&&auxData["webglErrorName"]){var errorName=auxData["webglErrorName"];errorName=errorName.replace(/^.*(0x[0-9a-f]+).*$/i,"$1");return WebInspector.UIString("WebGL Error Fired (%s)",errorName);}}
 return WebInspector.EventListenerBreakpointsSidebarPane._eventNamesForUI[eventName]||eventName.substring(eventName.indexOf(":")+1);}
 WebInspector.EventListenerBreakpointsSidebarPane.prototype={_createCategory:function(name,isDOMEvent,eventNames)
-{var categoryItem={};categoryItem.element=new TreeElement(name);this.categoriesTreeOutline.appendChild(categoryItem.element);categoryItem.element.listItemElement.addStyleClass("event-category");categoryItem.element.selectable=true;categoryItem.checkbox=this._createCheckbox(categoryItem.element);categoryItem.checkbox.addEventListener("click",this._categoryCheckboxClicked.bind(this,categoryItem),true);categoryItem.children={};for(var i=0;i<eventNames.length;++i){var eventName=(isDOMEvent?WebInspector.EventListenerBreakpointsSidebarPane.categotyListener:WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation)+eventNames[i];var breakpointItem={};var title=WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI(eventName);breakpointItem.element=new TreeElement(title);categoryItem.element.appendChild(breakpointItem.element);var hitMarker=document.createElement("div");hitMarker.className="breakpoint-hit-marker";breakpointItem.element.listItemElement.appendChild(hitMarker);breakpointItem.element.listItemElement.addStyleClass("source-code");breakpointItem.element.selectable=false;breakpointItem.checkbox=this._createCheckbox(breakpointItem.element);breakpointItem.checkbox.addEventListener("click",this._breakpointCheckboxClicked.bind(this,eventName),true);breakpointItem.parent=categoryItem;this._breakpointItems[eventName]=breakpointItem;categoryItem.children[eventName]=breakpointItem;}},_createCheckbox:function(treeElement)
+{var categoryItem={};categoryItem.element=new TreeElement(name);this.categoriesTreeOutline.appendChild(categoryItem.element);categoryItem.element.listItemElement.classList.add("event-category");categoryItem.element.selectable=true;categoryItem.checkbox=this._createCheckbox(categoryItem.element);categoryItem.checkbox.addEventListener("click",this._categoryCheckboxClicked.bind(this,categoryItem),true);categoryItem.children={};for(var i=0;i<eventNames.length;++i){var eventName=(isDOMEvent?WebInspector.EventListenerBreakpointsSidebarPane.categotyListener:WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation)+eventNames[i];var breakpointItem={};var title=WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI(eventName);breakpointItem.element=new TreeElement(title);categoryItem.element.appendChild(breakpointItem.element);var hitMarker=document.createElement("div");hitMarker.className="breakpoint-hit-marker";breakpointItem.element.listItemElement.appendChild(hitMarker);breakpointItem.element.listItemElement.classList.add("source-code");breakpointItem.element.selectable=false;breakpointItem.checkbox=this._createCheckbox(breakpointItem.element);breakpointItem.checkbox.addEventListener("click",this._breakpointCheckboxClicked.bind(this,eventName),true);breakpointItem.parent=categoryItem;this._breakpointItems[eventName]=breakpointItem;categoryItem.children[eventName]=breakpointItem;}},_createCheckbox:function(treeElement)
 {var checkbox=document.createElement("input");checkbox.className="checkbox-elem";checkbox.type="checkbox";treeElement.listItemElement.insertBefore(checkbox,treeElement.listItemElement.firstChild);return checkbox;},_categoryCheckboxClicked:function(categoryItem)
 {var checked=categoryItem.checkbox.checked;for(var eventName in categoryItem.children){var breakpointItem=categoryItem.children[eventName];if(breakpointItem.checkbox.checked===checked)
 continue;if(checked)
@@ -101,45 +101,106 @@
 hasDisabled=true;}
 categoryItem.checkbox.checked=hasEnabled;categoryItem.checkbox.indeterminate=hasEnabled&&hasDisabled;},highlightBreakpoint:function(eventName)
 {var breakpointItem=this._breakpointItems[eventName];if(!breakpointItem)
-return;this.expand();breakpointItem.parent.element.expand();breakpointItem.element.listItemElement.addStyleClass("breakpoint-hit");this._highlightedElement=breakpointItem.element.listItemElement;},clearBreakpointHighlight:function()
-{if(this._highlightedElement){this._highlightedElement.removeStyleClass("breakpoint-hit");delete this._highlightedElement;}},_saveBreakpoints:function()
+return;this.expand();breakpointItem.parent.element.expand();breakpointItem.element.listItemElement.classList.add("breakpoint-hit");this._highlightedElement=breakpointItem.element.listItemElement;},clearBreakpointHighlight:function()
+{if(this._highlightedElement){this._highlightedElement.classList.remove("breakpoint-hit");delete this._highlightedElement;}},_saveBreakpoints:function()
 {var breakpoints=[];for(var eventName in this._breakpointItems){if(this._breakpointItems[eventName].checkbox.checked)
 breakpoints.push({eventName:eventName});}
 WebInspector.settings.eventListenerBreakpoints.set(breakpoints);},_restoreBreakpoints:function()
 {var breakpoints=WebInspector.settings.eventListenerBreakpoints.get();for(var i=0;i<breakpoints.length;++i){var breakpoint=breakpoints[i];if(breakpoint&&typeof breakpoint.eventName==="string")
 this._setBreakpoint(breakpoint.eventName);}},__proto__:WebInspector.SidebarPane.prototype};WebInspector.CallStackSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Call Stack"));this._model=WebInspector.debuggerModel;this.bodyElement.addEventListener("keydown",this._keyDown.bind(this),true);this.bodyElement.tabIndex=0;}
-WebInspector.CallStackSidebarPane.Events={CallFrameSelected:"CallFrameSelected"}
-WebInspector.CallStackSidebarPane.prototype={update:function(callFrames)
-{this.bodyElement.removeChildren();delete this._statusMessageElement;this.placards=[];if(!callFrames){var infoElement=document.createElement("div");infoElement.className="info";infoElement.textContent=WebInspector.UIString("Not Paused");this.bodyElement.appendChild(infoElement);return;}
-for(var i=0;i<callFrames.length;++i){var callFrame=callFrames[i];var placard=new WebInspector.CallStackSidebarPane.Placard(callFrame,this);placard.element.addEventListener("click",this._placardSelected.bind(this,placard),false);this.placards.push(placard);this.bodyElement.appendChild(placard.element);}},setSelectedCallFrame:function(x)
-{for(var i=0;i<this.placards.length;++i){var placard=this.placards[i];placard.selected=(placard._callFrame===x);}},_selectNextCallFrameOnStack:function(event)
-{var index=this._selectedCallFrameIndex();if(index==-1)
-return true;this._selectedPlacardByIndex(index+1);return true;},_selectPreviousCallFrameOnStack:function(event)
-{var index=this._selectedCallFrameIndex();if(index==-1)
-return true;this._selectedPlacardByIndex(index-1);return true;},_selectedPlacardByIndex:function(index)
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Call Stack"));this.bodyElement.addEventListener("keydown",this._keyDown.bind(this),true);this.bodyElement.tabIndex=0;var asyncCheckbox=this.titleElement.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Async"),WebInspector.settings.enableAsyncStackTraces,true,undefined,WebInspector.UIString("Capture async stack traces")));asyncCheckbox.classList.add("scripts-callstack-async");asyncCheckbox.addEventListener("click",consumeEvent,false);WebInspector.settings.enableAsyncStackTraces.addChangeListener(this._asyncStackTracesStateChanged,this);}
+WebInspector.CallStackSidebarPane.Events={CallFrameRestarted:"CallFrameRestarted",CallFrameSelected:"CallFrameSelected"}
+WebInspector.CallStackSidebarPane.prototype={update:function(callFrames,asyncStackTrace)
+{this.bodyElement.removeChildren();delete this._statusMessageElement;this.placards=[];if(!callFrames){var infoElement=this.bodyElement.createChild("div","info");infoElement.textContent=WebInspector.UIString("Not Paused");return;}
+this._appendSidebarPlacards(callFrames);while(asyncStackTrace){var title="["+(asyncStackTrace.description||WebInspector.UIString("Async Call"))+"]";var asyncPlacard=new WebInspector.Placard(title,"");this.bodyElement.appendChild(asyncPlacard.element);this._appendSidebarPlacards(asyncStackTrace.callFrames,asyncPlacard);asyncStackTrace=asyncStackTrace.asyncStackTrace;}},_appendSidebarPlacards:function(callFrames,asyncPlacard)
+{for(var i=0,n=callFrames.length;i<n;++i){var placard=new WebInspector.CallStackSidebarPane.Placard(callFrames[i],asyncPlacard);placard.element.addEventListener("click",this._placardSelected.bind(this,placard),false);placard.element.addEventListener("contextmenu",this._placardContextMenu.bind(this,placard),true);if(!i&&asyncPlacard){asyncPlacard.element.addEventListener("click",this._placardSelected.bind(this,placard),false);asyncPlacard.element.addEventListener("contextmenu",this._placardContextMenu.bind(this,placard),true);}
+this.placards.push(placard);this.bodyElement.appendChild(placard.element);}},_placardContextMenu:function(placard,event)
+{var contextMenu=new WebInspector.ContextMenu(event);if(!placard._callFrame.isAsync())
+contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Restart frame":"Restart Frame"),this._restartFrame.bind(this,placard));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy stack trace":"Copy Stack Trace"),this._copyStackTrace.bind(this));contextMenu.show();},_restartFrame:function(placard)
+{placard._callFrame.restart();this.dispatchEventToListeners(WebInspector.CallStackSidebarPane.Events.CallFrameRestarted,placard._callFrame);},_asyncStackTracesStateChanged:function()
+{var enabled=WebInspector.settings.enableAsyncStackTraces.get();if(!enabled&&this.placards)
+this._removeAsyncPlacards();},_removeAsyncPlacards:function()
+{var shouldSelectTopFrame=false;var lastSyncPlacardIndex=-1;for(var i=0;i<this.placards.length;++i){var placard=this.placards[i];if(placard._asyncPlacard){if(placard.selected)
+shouldSelectTopFrame=true;placard._asyncPlacard.element.remove();placard.element.remove();}else{lastSyncPlacardIndex=i;}}
+this.placards.length=lastSyncPlacardIndex+1;if(shouldSelectTopFrame)
+this._selectPlacardByIndex(0);},setSelectedCallFrame:function(x)
+{for(var i=0;i<this.placards.length;++i){var placard=this.placards[i];placard.selected=(placard._callFrame===x);}},_selectNextCallFrameOnStack:function()
+{var index=this._selectedCallFrameIndex();if(index===-1)
+return false;return this._selectPlacardByIndex(index+1);},_selectPreviousCallFrameOnStack:function()
+{var index=this._selectedCallFrameIndex();if(index===-1)
+return false;return this._selectPlacardByIndex(index-1);},_selectPlacardByIndex:function(index)
 {if(index<0||index>=this.placards.length)
-return;this._placardSelected(this.placards[index])},_selectedCallFrameIndex:function()
-{if(!this._model.selectedCallFrame())
-return-1;for(var i=0;i<this.placards.length;++i){var placard=this.placards[i];if(placard._callFrame===this._model.selectedCallFrame())
+return false;this._placardSelected(this.placards[index]);return true;},_selectedCallFrameIndex:function()
+{var selectedCallFrame=WebInspector.debuggerModel.selectedCallFrame();if(!selectedCallFrame)
+return-1;for(var i=0;i<this.placards.length;++i){var placard=this.placards[i];if(placard._callFrame===selectedCallFrame)
 return i;}
 return-1;},_placardSelected:function(placard)
-{this.dispatchEventToListeners(WebInspector.CallStackSidebarPane.Events.CallFrameSelected,placard._callFrame);},_copyStackTrace:function()
-{var text="";for(var i=0;i<this.placards.length;++i)
-text+=this.placards[i].title+" ("+this.placards[i].subtitle+")\n";InspectorFrontendHost.copyText(text);},registerShortcuts:function(registerShortcutDelegate)
-{registerShortcutDelegate(WebInspector.SourcesPanelDescriptor.ShortcutKeys.NextCallFrame,this._selectNextCallFrameOnStack.bind(this));registerShortcutDelegate(WebInspector.SourcesPanelDescriptor.ShortcutKeys.PrevCallFrame,this._selectPreviousCallFrameOnStack.bind(this));},setStatus:function(status)
-{if(!this._statusMessageElement){this._statusMessageElement=document.createElement("div");this._statusMessageElement.className="info";this.bodyElement.appendChild(this._statusMessageElement);}
-if(typeof status==="string")
-this._statusMessageElement.textContent=status;else{this._statusMessageElement.removeChildren();this._statusMessageElement.appendChild(status);}},_keyDown:function(event)
+{placard.element.scrollIntoViewIfNeeded();this.dispatchEventToListeners(WebInspector.CallStackSidebarPane.Events.CallFrameSelected,placard._callFrame);},_copyStackTrace:function()
+{var text="";for(var i=0;i<this.placards.length;++i){if(i&&this.placards[i]._asyncPlacard!==this.placards[i-1]._asyncPlacard)
+text+=this.placards[i]._asyncPlacard.title+"\n";text+=this.placards[i].title+" ("+this.placards[i].subtitle+")\n";}
+InspectorFrontendHost.copyText(text);},registerShortcuts:function(registerShortcutDelegate)
+{registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.NextCallFrame,this._selectNextCallFrameOnStack.bind(this));registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.PrevCallFrame,this._selectPreviousCallFrameOnStack.bind(this));},setStatus:function(status)
+{if(!this._statusMessageElement)
+this._statusMessageElement=this.bodyElement.createChild("div","info");if(typeof status==="string"){this._statusMessageElement.textContent=status;}else{this._statusMessageElement.removeChildren();this._statusMessageElement.appendChild(status);}},_keyDown:function(event)
 {if(event.altKey||event.shiftKey||event.metaKey||event.ctrlKey)
-return;if(event.keyIdentifier==="Up"){this._selectPreviousCallFrameOnStack();event.consume();}else if(event.keyIdentifier==="Down"){this._selectNextCallFrameOnStack();event.consume();}},__proto__:WebInspector.SidebarPane.prototype}
-WebInspector.CallStackSidebarPane.Placard=function(callFrame,pane)
-{WebInspector.Placard.call(this,callFrame.functionName||WebInspector.UIString("(anonymous function)"),"");callFrame.createLiveLocation(this._update.bind(this));this.element.addEventListener("contextmenu",this._placardContextMenu.bind(this),true);this._callFrame=callFrame;this._pane=pane;}
+return;if(event.keyIdentifier==="Up"&&this._selectPreviousCallFrameOnStack()||event.keyIdentifier==="Down"&&this._selectNextCallFrameOnStack())
+event.consume(true);},__proto__:WebInspector.SidebarPane.prototype}
+WebInspector.CallStackSidebarPane.Placard=function(callFrame,asyncPlacard)
+{WebInspector.Placard.call(this,callFrame.functionName||WebInspector.UIString("(anonymous function)"),"");callFrame.createLiveLocation(this._update.bind(this));this._callFrame=callFrame;this._asyncPlacard=asyncPlacard;}
 WebInspector.CallStackSidebarPane.Placard.prototype={_update:function(uiLocation)
-{this.subtitle=uiLocation.linkText().trimMiddle(100);},_placardContextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);if(WebInspector.debuggerModel.canSetScriptSource()){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Restart frame":"Restart Frame"),this._restartFrame.bind(this));contextMenu.appendSeparator();}
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy stack trace":"Copy Stack Trace"),this._pane._copyStackTrace.bind(this._pane));contextMenu.show();},_restartFrame:function()
-{this._callFrame.restart(undefined);},__proto__:WebInspector.Placard.prototype};WebInspector.FilePathScoreFunction=function(query)
+{this.subtitle=uiLocation.linkText().trimMiddle(100);},__proto__:WebInspector.Placard.prototype};WebInspector.HistoryEntry=function(){}
+WebInspector.HistoryEntry.prototype={valid:function(){},reveal:function(){}};WebInspector.SimpleHistoryManager=function(historyDepth)
+{this._entries=[];this._activeEntryIndex=-1;this._coalescingReadonly=0;this._historyDepth=historyDepth;}
+WebInspector.SimpleHistoryManager.prototype={readOnlyLock:function()
+{++this._coalescingReadonly;},releaseReadOnlyLock:function()
+{--this._coalescingReadonly;},readOnly:function()
+{return!!this._coalescingReadonly;},filterOut:function(filterOutCallback)
+{if(this.readOnly())
+return;var filteredEntries=[];var removedBeforeActiveEntry=0;for(var i=0;i<this._entries.length;++i){if(!filterOutCallback(this._entries[i])){filteredEntries.push(this._entries[i]);}else if(i<=this._activeEntryIndex)
+++removedBeforeActiveEntry;}
+this._entries=filteredEntries;this._activeEntryIndex=Math.max(0,this._activeEntryIndex-removedBeforeActiveEntry);},empty:function()
+{return!this._entries.length;},active:function()
+{return this.empty()?null:this._entries[this._activeEntryIndex];},push:function(entry)
+{if(this.readOnly())
+return;if(!this.empty())
+this._entries.splice(this._activeEntryIndex+1);this._entries.push(entry);if(this._entries.length>this._historyDepth)
+this._entries.shift();this._activeEntryIndex=this._entries.length-1;},rollback:function()
+{if(this.empty())
+return false;var revealIndex=this._activeEntryIndex-1;while(revealIndex>=0&&!this._entries[revealIndex].valid())
+--revealIndex;if(revealIndex<0)
+return false;this.readOnlyLock();this._entries[revealIndex].reveal();this.releaseReadOnlyLock();this._activeEntryIndex=revealIndex;return true;},rollover:function()
+{var revealIndex=this._activeEntryIndex+1;while(revealIndex<this._entries.length&&!this._entries[revealIndex].valid())
+++revealIndex;if(revealIndex>=this._entries.length)
+return false;this.readOnlyLock();this._entries[revealIndex].reveal();this.releaseReadOnlyLock();this._activeEntryIndex=revealIndex;return true;},};;WebInspector.EditingLocationHistoryManager=function(sourcesPanel,currentSourceFrameCallback)
+{this._sourcesPanel=sourcesPanel;this._historyManager=new WebInspector.SimpleHistoryManager(WebInspector.EditingLocationHistoryManager.HistoryDepth);this._currentSourceFrameCallback=currentSourceFrameCallback;}
+WebInspector.EditingLocationHistoryManager.HistoryDepth=20;WebInspector.EditingLocationHistoryManager.prototype={trackSourceFrameCursorJumps:function(sourceFrame)
+{sourceFrame.addEventListener(WebInspector.SourceFrame.Events.JumpHappened,this._onJumpHappened.bind(this));},_onJumpHappened:function(event)
+{if(event.data.from)
+this._updateActiveState(event.data.from);if(event.data.to)
+this._pushActiveState(event.data.to);},rollback:function()
+{this._historyManager.rollback();},rollover:function()
+{this._historyManager.rollover();},updateCurrentState:function()
+{var sourceFrame=this._currentSourceFrameCallback();if(!sourceFrame)
+return;this._updateActiveState(sourceFrame.textEditor.selection());},pushNewState:function()
+{var sourceFrame=this._currentSourceFrameCallback();if(!sourceFrame)
+return;this._pushActiveState(sourceFrame.textEditor.selection());},_updateActiveState:function(selection)
+{var active=this._historyManager.active();if(!active)
+return;var sourceFrame=this._currentSourceFrameCallback();if(!sourceFrame)
+return;var entry=new WebInspector.EditingLocationHistoryEntry(this._sourcesPanel,this,sourceFrame,selection);active.merge(entry);},_pushActiveState:function(selection)
+{var sourceFrame=this._currentSourceFrameCallback();if(!sourceFrame)
+return;var entry=new WebInspector.EditingLocationHistoryEntry(this._sourcesPanel,this,sourceFrame,selection);this._historyManager.push(entry);},removeHistoryForSourceCode:function(uiSourceCode)
+{function filterOut(entry)
+{return entry._projectId===uiSourceCode.project().id()&&entry._path===uiSourceCode.path();}
+this._historyManager.filterOut(filterOut);},}
+WebInspector.EditingLocationHistoryEntry=function(sourcesPanel,editingLocationManager,sourceFrame,selection)
+{this._sourcesPanel=sourcesPanel;this._editingLocationManager=editingLocationManager;var uiSourceCode=sourceFrame.uiSourceCode();this._projectId=uiSourceCode.project().id();this._path=uiSourceCode.path();var position=this._positionFromSelection(selection);this._positionHandle=sourceFrame.textEditor.textEditorPositionHandle(position.lineNumber,position.columnNumber);}
+WebInspector.EditingLocationHistoryEntry.prototype={merge:function(entry)
+{if(this._projectId!==entry._projectId||this._path!==entry._path)
+return;this._positionHandle=entry._positionHandle;},_positionFromSelection:function(selection)
+{return{lineNumber:selection.endLine,columnNumber:selection.endColumn};},valid:function()
+{var position=this._positionHandle.resolve();var uiSourceCode=WebInspector.workspace.project(this._projectId).uiSourceCode(this._path);return!!(position&&uiSourceCode);},reveal:function()
+{var position=this._positionHandle.resolve();var uiSourceCode=WebInspector.workspace.project(this._projectId).uiSourceCode(this._path);if(!position||!uiSourceCode)
+return;this._editingLocationManager.updateCurrentState();this._sourcesPanel.showUISourceCode(uiSourceCode,position.lineNumber,position.columnNumber);}};;WebInspector.FilePathScoreFunction=function(query)
 {this._query=query;this._queryUpperCase=query.toUpperCase();this._score=null;this._sequence=null;this._dataUpperCase="";this._fileNameIndex=0;}
 WebInspector.FilePathScoreFunction.filterRegex=function(query)
 {const toEscape=String.regexSpecialCharacters();var regexString="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(toEscape.indexOf(c)!==-1)
@@ -149,7 +210,7 @@
 WebInspector.FilePathScoreFunction.prototype={score:function(data,matchIndexes)
 {if(!data||!this._query)
 return 0;var n=this._query.length;var m=data.length;if(!this._score||this._score.length<n*m){this._score=new Int32Array(n*m*2);this._sequence=new Int32Array(n*m*2);}
-var score=this._score;var sequence=this._sequence;this._dataUpperCase=data.toUpperCase();this._fileNameIndex=data.lastIndexOf("/");for(var i=0;i<n;++i){for(var j=0;j<m;++j){var skipCharScore=j===0?0:score[i*m+j-1];var prevCharScore=i===0||j===0?0:score[(i-1)*m+j-1];var consecutiveMatch=i===0||j===0?0:sequence[(i-1)*m+j-1];var pickCharScore=this._match(this._query,data,i,j,consecutiveMatch);if(pickCharScore&&prevCharScore+pickCharScore>skipCharScore){sequence[i*m+j]=consecutiveMatch+1;score[i*m+j]=(prevCharScore+pickCharScore);}else{sequence[i*m+j]=0;score[i*m+j]=skipCharScore;}}}
+var score=this._score;var sequence=(this._sequence);this._dataUpperCase=data.toUpperCase();this._fileNameIndex=data.lastIndexOf("/");for(var i=0;i<n;++i){for(var j=0;j<m;++j){var skipCharScore=j===0?0:score[i*m+j-1];var prevCharScore=i===0||j===0?0:score[(i-1)*m+j-1];var consecutiveMatch=i===0||j===0?0:sequence[(i-1)*m+j-1];var pickCharScore=this._match(this._query,data,i,j,consecutiveMatch);if(pickCharScore&&prevCharScore+pickCharScore>skipCharScore){sequence[i*m+j]=consecutiveMatch+1;score[i*m+j]=(prevCharScore+pickCharScore);}else{sequence[i*m+j]=0;score[i*m+j]=skipCharScore;}}}
 if(matchIndexes)
 this._restoreMatchIndexes(sequence,n,m,matchIndexes);return score[n*m-1];},_testWordStart:function(data,j)
 {var prevChar=data.charAt(j-1);return j===0||prevChar==="_"||prevChar==="-"||prevChar==="/"||(data[j-1]!==this._dataUpperCase[j-1]&&data[j]===this._dataUpperCase[j]);},_restoreMatchIndexes:function(sequence,n,m,out)
@@ -169,7 +230,7 @@
 return 0;if(!consecutiveMatch)
 return this._singleCharScore(query,data,i,j);else
 return this._sequenceCharScore(query,data,i,j-consecutiveMatch,consecutiveMatch);},};WebInspector.FilteredItemSelectionDialog=function(delegate)
-{WebInspector.DialogDelegate.call(this);var xhr=new XMLHttpRequest();xhr.open("GET","filteredItemSelectionDialog.css",false);xhr.send(null);this.element=document.createElement("div");this.element.className="filtered-item-list-dialog";this.element.addEventListener("keydown",this._onKeyDown.bind(this),false);var styleElement=this.element.createChild("style");styleElement.type="text/css";styleElement.textContent=xhr.responseText;this._promptElement=this.element.createChild("input","monospace");this._promptElement.addEventListener("input",this._onInput.bind(this),false);this._promptElement.type="text";this._promptElement.setAttribute("spellcheck","false");this._filteredItems=[];this._viewportControl=new WebInspector.ViewportControl(this);this._itemElementsContainer=this._viewportControl.element;this._itemElementsContainer.addStyleClass("container");this._itemElementsContainer.addStyleClass("monospace");this._itemElementsContainer.addEventListener("click",this._onClick.bind(this),false);this.element.appendChild(this._itemElementsContainer);this._delegate=delegate;this._delegate.setRefreshCallback(this._itemsLoaded.bind(this));this._itemsLoaded();this._shouldShowMatchingItems=true;}
+{WebInspector.DialogDelegate.call(this);var xhr=new XMLHttpRequest();xhr.open("GET","filteredItemSelectionDialog.css",false);xhr.send(null);this.element=document.createElement("div");this.element.className="filtered-item-list-dialog";this.element.addEventListener("keydown",this._onKeyDown.bind(this),false);var styleElement=this.element.createChild("style");styleElement.type="text/css";styleElement.textContent=xhr.responseText;this._promptElement=this.element.createChild("input","monospace");this._promptElement.addEventListener("input",this._onInput.bind(this),false);this._promptElement.type="text";this._promptElement.setAttribute("spellcheck","false");this._filteredItems=[];this._viewportControl=new WebInspector.ViewportControl(this);this._itemElementsContainer=this._viewportControl.element;this._itemElementsContainer.classList.add("container");this._itemElementsContainer.classList.add("monospace");this._itemElementsContainer.addEventListener("click",this._onClick.bind(this),false);this.element.appendChild(this._itemElementsContainer);this._delegate=delegate;this._delegate.setRefreshCallback(this._itemsLoaded.bind(this));this._itemsLoaded();this._shouldShowMatchingItems=true;}
 WebInspector.FilteredItemSelectionDialog.prototype={position:function(element,relativeToElement)
 {const minWidth=500;const minHeight=204;var width=Math.max(relativeToElement.offsetWidth*2/3,minWidth);var height=Math.max(relativeToElement.offsetHeight*2/3,minHeight);this.element.style.width=width+"px";const shadowPadding=20;element.positionAt(relativeToElement.totalOffsetLeft()+Math.max((relativeToElement.offsetWidth-width-2*shadowPadding)/2,shadowPadding),relativeToElement.totalOffsetTop()+Math.max((relativeToElement.offsetHeight-height-2*shadowPadding)/2,shadowPadding));this._dialogHeight=height;this._updateShowMatchingItems();},focus:function()
 {WebInspector.setCurrentFocusElement(this._promptElement);if(this._filteredItems.length&&this._viewportControl.lastVisibleIndex()===-1)
@@ -206,13 +267,13 @@
 {if(this._filterTimer)
 return;this._filterTimer=setTimeout(this._filterItems.bind(this),0);},_updateSelection:function(index,makeLast)
 {var element=this._viewportControl.renderedElementAt(this._selectedIndexInFiltered);if(element)
-element.removeStyleClass("selected");this._viewportControl.scrollItemIntoView(index,makeLast);this._selectedIndexInFiltered=index;element=this._viewportControl.renderedElementAt(index);if(element)
-element.addStyleClass("selected");},_onClick:function(event)
+element.classList.remove("selected");this._viewportControl.scrollItemIntoView(index,makeLast);this._selectedIndexInFiltered=index;element=this._viewportControl.renderedElementAt(index);if(element)
+element.classList.add("selected");},_onClick:function(event)
 {var itemElement=event.target.enclosingNodeOrSelfWithClass("filtered-item-list-dialog-item");if(!itemElement)
 return;this._delegate.selectItem(itemElement._index,this._promptElement.value.trim());WebInspector.Dialog.hide();},itemCount:function()
 {return this._filteredItems.length;},itemElement:function(index)
 {var delegateIndex=this._filteredItems[index];var element=this._createItemElement(delegateIndex);if(index===this._selectedIndexInFiltered)
-element.addStyleClass("selected");return element;},__proto__:WebInspector.DialogDelegate.prototype}
+element.classList.add("selected");return element;},__proto__:WebInspector.DialogDelegate.prototype}
 WebInspector.SelectionDialogContentProvider=function()
 {}
 WebInspector.SelectionDialogContentProvider.prototype={setRefreshCallback:function(refreshCallback)
@@ -225,7 +286,7 @@
 {if(!query)
 return false;function rangesForMatch(text,query)
 {var sm=new difflib.SequenceMatcher(query,text);var opcodes=sm.get_opcodes();var ranges=[];for(var i=0;i<opcodes.length;++i){var opcode=opcodes[i];if(opcode[0]==="equal")
-ranges.push({offset:opcode[3],length:opcode[4]-opcode[3]});else if(opcode[0]!=="insert")
+ranges.push(new WebInspector.SourceRange(opcode[3],opcode[4]-opcode[3]));else if(opcode[0]!=="insert")
 return null;}
 return ranges;}
 var text=element.textContent;var ranges=rangesForMatch(text,query);if(!ranges)
@@ -235,11 +296,11 @@
 {this._refreshCallback();},rewriteQuery:function(query)
 {return query;},dispose:function()
 {}}
-WebInspector.JavaScriptOutlineDialog=function(view,contentProvider)
-{WebInspector.SelectionDialogContentProvider.call(this);this._functionItems=[];this._view=view;contentProvider.requestContent(this._contentAvailable.bind(this));}
-WebInspector.JavaScriptOutlineDialog.show=function(view,contentProvider)
+WebInspector.JavaScriptOutlineDialog=function(view,contentProvider,selectItemCallback)
+{WebInspector.SelectionDialogContentProvider.call(this);this._functionItems=[];this._view=view;this._selectItemCallback=selectItemCallback;contentProvider.requestContent(this._contentAvailable.bind(this));}
+WebInspector.JavaScriptOutlineDialog.show=function(view,contentProvider,selectItemCallback)
 {if(WebInspector.Dialog.currentInstance())
-return null;var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(new WebInspector.JavaScriptOutlineDialog(view,contentProvider));WebInspector.Dialog.show(view.element,filteredItemSelectionDialog);}
+return null;var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(new WebInspector.JavaScriptOutlineDialog(view,contentProvider,selectItemCallback));WebInspector.Dialog.show(view.element,filteredItemSelectionDialog);}
 WebInspector.JavaScriptOutlineDialog.prototype={_contentAvailable:function(content)
 {this._outlineWorker=new Worker("ScriptFormatterWorker.js");this._outlineWorker.onmessage=this._didBuildOutlineChunk.bind(this);const method="outline";this._outlineWorker.postMessage({method:method,params:{content:content}});},_didBuildOutlineChunk:function(event)
 {var data=event.data;var chunk=data["chunk"];for(var i=0;i<chunk.length;++i)
@@ -250,7 +311,7 @@
 {var item=this._functionItems[itemIndex];return-item.line;},renderItem:function(itemIndex,query,titleElement,subtitleElement)
 {var item=this._functionItems[itemIndex];titleElement.textContent=item.name+(item.arguments?item.arguments:"");this.highlightRanges(titleElement,query);subtitleElement.textContent=":"+(item.line+1);},selectItem:function(itemIndex,promptValue)
 {var lineNumber=this._functionItems[itemIndex].line;if(!isNaN(lineNumber)&&lineNumber>=0)
-this._view.highlightPosition(lineNumber,this._functionItems[itemIndex].column);this._view.focus();},dispose:function()
+this._selectItemCallback(lineNumber,this._functionItems[itemIndex].column);},dispose:function()
 {if(this._outlineWorker){this._outlineWorker.terminate();delete this._outlineWorker;}},__proto__:WebInspector.SelectionDialogContentProvider.prototype}
 WebInspector.SelectUISourceCodeDialog=function(defaultScores)
 {WebInspector.SelectionDialogContentProvider.call(this);this._uiSourceCodes=[];var projects=WebInspector.workspace.projects().filter(this.filterProject.bind(this));for(var i=0;i<projects.length;++i)
@@ -296,7 +357,8 @@
 {if(WebInspector.Dialog.currentInstance())
 return;var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(new WebInspector.SelectUISourceCodeForProjectTypeDialog(type,callback));filteredItemSelectionDialog.setQuery(name);filteredItemSelectionDialog.renderAsTwoRows();WebInspector.Dialog.show(relativeToElement,filteredItemSelectionDialog);};WebInspector.UISourceCodeFrame=function(uiSourceCode)
 {this._uiSourceCode=uiSourceCode;WebInspector.SourceFrame.call(this,this._uiSourceCode);WebInspector.settings.textEditorAutocompletion.addChangeListener(this._enableAutocompletionIfNeeded,this);this._enableAutocompletionIfNeeded();this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._onFormattedChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._onWorkingCopyChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._onWorkingCopyCommitted,this);this._updateStyle();}
-WebInspector.UISourceCodeFrame.prototype={_enableAutocompletionIfNeeded:function()
+WebInspector.UISourceCodeFrame.prototype={uiSourceCode:function()
+{return this._uiSourceCode;},_enableAutocompletionIfNeeded:function()
 {this.textEditor.setCompletionDictionary(WebInspector.settings.textEditorAutocompletion.get()?new WebInspector.SampleCompletionDictionary():null);},wasShown:function()
 {WebInspector.SourceFrame.prototype.wasShown.call(this);this._boundWindowFocused=this._windowFocused.bind(this);window.addEventListener("focus",this._boundWindowFocused,false);this._checkContentUpdated();},willHide:function()
 {WebInspector.SourceFrame.prototype.willHide.call(this);window.removeEventListener("focus",this._boundWindowFocused,false);delete this._boundWindowFocused;this._uiSourceCode.removeWorkingCopyGetter();},canEditSource:function()
@@ -310,8 +372,8 @@
 return;this._muteSourceCodeEvents=true;if(this._textEditor.isClean())
 this._uiSourceCode.resetWorkingCopy();else
 this._uiSourceCode.setWorkingCopyGetter(this._textEditor.text.bind(this._textEditor));delete this._muteSourceCodeEvents;},_didEditContent:function(error)
-{if(error){WebInspector.log(error,WebInspector.ConsoleMessage.MessageLevel.Error,true);return;}},_onFormattedChanged:function(event)
-{var content=(event.data.content);this._textEditor.setReadOnly(this._uiSourceCode.formatted());var selection=this._textEditor.selection();this._innerSetContent(content);var start=null;var end=null;if(this._uiSourceCode.formatted()){start=event.data.newFormatter.originalToFormatted(selection.startLine,selection.startColumn);end=event.data.newFormatter.originalToFormatted(selection.endLine,selection.endColumn);}else{start=event.data.oldFormatter.formattedToOriginal(selection.startLine,selection.startColumn);end=event.data.oldFormatter.formattedToOriginal(selection.endLine,selection.endColumn);}
+{if(error){WebInspector.log(error,WebInspector.ConsoleMessage.MessageLevel.Error,true);return;}},beforeFormattedChange:function(){},_onFormattedChanged:function(event)
+{this.beforeFormattedChange();var content=(event.data.content);this._textEditor.setReadOnly(this._uiSourceCode.formatted());var selection=this._textEditor.selection();this._innerSetContent(content);var start=null;var end=null;if(this._uiSourceCode.formatted()){start=event.data.newFormatter.originalToFormatted(selection.startLine,selection.startColumn);end=event.data.newFormatter.originalToFormatted(selection.endLine,selection.endColumn);}else{start=event.data.oldFormatter.formattedToOriginal(selection.startLine,selection.startColumn);end=event.data.oldFormatter.formattedToOriginal(selection.endLine,selection.endColumn);}
 this.textEditor.setSelection(new WebInspector.TextRange(start[0],start[1],end[0],end[1]));this.textEditor.revealLine(start[0]);},_onWorkingCopyChanged:function(event)
 {if(this._muteSourceCodeEvents)
 return;this._innerSetContent(this._uiSourceCode.workingCopy());this.onUISourceCodeContentChanged();},_onWorkingCopyCommitted:function(event)
@@ -323,13 +385,13 @@
 {WebInspector.SourceFrame.prototype.populateTextAreaContextMenu.call(this,contextMenu,lineNumber);contextMenu.appendApplicableItems(this._uiSourceCode);contextMenu.appendSeparator();},dispose:function()
 {this.detach();},__proto__:WebInspector.SourceFrame.prototype};WebInspector.JavaScriptSourceFrame=function(scriptsPanel,uiSourceCode)
 {this._scriptsPanel=scriptsPanel;this._breakpointManager=WebInspector.breakpointManager;this._uiSourceCode=uiSourceCode;WebInspector.UISourceCodeFrame.call(this,uiSourceCode);if(uiSourceCode.project().type()===WebInspector.projectTypes.Debugger)
-this.element.addStyleClass("source-frame-debugger-script");this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.textEditor.element,this._getPopoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),this._onHidePopover.bind(this),true);this.textEditor.element.addEventListener("keydown",this._onKeyDown.bind(this),true);this.textEditor.addEventListener(WebInspector.TextEditor.Events.GutterClick,this._handleGutterClick.bind(this),this);this.textEditor.element.addEventListener("mousedown",this._onMouseDownAndClick.bind(this,true),true);this.textEditor.element.addEventListener("click",this._onMouseDownAndClick.bind(this,false),true);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointAdded,this._breakpointAdded,this);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointRemoved,this._breakpointRemoved,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageAdded,this._consoleMessageAdded,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageRemoved,this._consoleMessageRemoved,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessagesCleared,this._consoleMessagesCleared,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged,this._onSourceMappingChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._registerShortcuts();this._updateScriptFile();}
+this.element.classList.add("source-frame-debugger-script");this._popoverHelper=new WebInspector.ObjectPopoverHelper(this.textEditor.element,this._getPopoverAnchor.bind(this),this._resolveObjectForPopover.bind(this),this._onHidePopover.bind(this),true);this.textEditor.element.addEventListener("keydown",this._onKeyDown.bind(this),true);this.textEditor.addEventListener(WebInspector.TextEditor.Events.GutterClick,this._handleGutterClick.bind(this),this);this.textEditor.element.addEventListener("mousedown",this._onMouseDownAndClick.bind(this,true),true);this.textEditor.element.addEventListener("click",this._onMouseDownAndClick.bind(this,false),true);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointAdded,this._breakpointAdded,this);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointRemoved,this._breakpointRemoved,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageAdded,this._consoleMessageAdded,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessageRemoved,this._consoleMessageRemoved,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.ConsoleMessagesCleared,this._consoleMessagesCleared,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged,this._onSourceMappingChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._registerShortcuts();this._updateScriptFile();}
 WebInspector.JavaScriptSourceFrame.prototype={_registerShortcuts:function()
-{var shortcutKeys=WebInspector.SourcesPanelDescriptor.ShortcutKeys;for(var i=0;i<shortcutKeys.EvaluateSelectionInConsole.length;++i){var keyDescriptor=shortcutKeys.EvaluateSelectionInConsole[i];this.addShortcut(keyDescriptor.key,this._evaluateSelectionInConsole.bind(this));}
+{var shortcutKeys=WebInspector.ShortcutsScreen.SourcesPanelShortcuts;for(var i=0;i<shortcutKeys.EvaluateSelectionInConsole.length;++i){var keyDescriptor=shortcutKeys.EvaluateSelectionInConsole[i];this.addShortcut(keyDescriptor.key,this._evaluateSelectionInConsole.bind(this));}
 for(var i=0;i<shortcutKeys.AddSelectionToWatch.length;++i){var keyDescriptor=shortcutKeys.AddSelectionToWatch[i];this.addShortcut(keyDescriptor.key,this._addCurrentSelectionToWatch.bind(this));}},_addCurrentSelectionToWatch:function()
 {var textSelection=this.textEditor.selection();if(textSelection&&!textSelection.isEmpty())
 this._innerAddToWatch(this.textEditor.copyRange(textSelection));},_innerAddToWatch:function(expression)
-{this._scriptsPanel.addToWatch(expression);},_evaluateSelectionInConsole:function(event)
+{this._scriptsPanel.addToWatch(expression);},_evaluateSelectionInConsole:function()
 {var selection=this.textEditor.selection();if(!selection||selection.isEmpty())
 return false;WebInspector.evaluateInConsole(this.textEditor.copyRange(selection));return true;},wasShown:function()
 {WebInspector.UISourceCodeFrame.prototype.wasShown.call(this);},willHide:function()
@@ -338,9 +400,9 @@
 {contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Continue to here":"Continue to Here"),this._continueToLine.bind(this,lineNumber));var breakpoint=this._breakpointManager.findBreakpoint(this._uiSourceCode,lineNumber);if(!breakpoint){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add breakpoint":"Add Breakpoint"),this._setBreakpoint.bind(this,lineNumber,"",true));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add conditional breakpoint…":"Add Conditional Breakpoint…"),this._editBreakpointCondition.bind(this,lineNumber));}else{contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove breakpoint":"Remove Breakpoint"),breakpoint.remove.bind(breakpoint));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Edit breakpoint…":"Edit Breakpoint…"),this._editBreakpointCondition.bind(this,lineNumber,breakpoint));if(breakpoint.enabled())
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Disable breakpoint":"Disable Breakpoint"),breakpoint.setEnabled.bind(breakpoint,false));else
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Enable breakpoint":"Enable Breakpoint"),breakpoint.setEnabled.bind(breakpoint,true));}},populateTextAreaContextMenu:function(contextMenu,lineNumber)
-{var textSelection=this.textEditor.selection();if(textSelection&&!textSelection.isEmpty()){var selection=this.textEditor.copyRange(textSelection);var addToWatchLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add to watch":"Add to Watch");contextMenu.appendItem(addToWatchLabel,this._innerAddToWatch.bind(this,selection));var evaluateLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Evaluate in console":"Evaluate in Console");contextMenu.appendItem(evaluateLabel,WebInspector.evaluateInConsole.bind(WebInspector,selection));contextMenu.appendSeparator();}else if(!this._uiSourceCode.isEditable()&&this._uiSourceCode.contentType()===WebInspector.resourceTypes.Script){function liveEdit(event)
+{var textSelection=this.textEditor.selection();if(textSelection&&!textSelection.isEmpty()){var selection=this.textEditor.copyRange(textSelection);var addToWatchLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add to watch":"Add to Watch");contextMenu.appendItem(addToWatchLabel,this._innerAddToWatch.bind(this,selection));var evaluateLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Evaluate in console":"Evaluate in Console");contextMenu.appendItem(evaluateLabel,WebInspector.evaluateInConsole.bind(WebInspector,selection));contextMenu.appendSeparator();}else if(!this._uiSourceCode.isEditable()&&this._uiSourceCode.contentType()===WebInspector.resourceTypes.Script){var liveEditLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Live edit":"Live Edit");contextMenu.appendItem(liveEditLabel,liveEdit.bind(this));contextMenu.appendSeparator();}
+function liveEdit()
 {var liveEditUISourceCode=WebInspector.liveEditSupport.uiSourceCodeForLiveEdit(this._uiSourceCode);this._scriptsPanel.showUISourceCode(liveEditUISourceCode,lineNumber)}
-var liveEditLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Live edit":"Live Edit");contextMenu.appendItem(liveEditLabel,liveEdit.bind(this));contextMenu.appendSeparator();}
 WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu.call(this,contextMenu,lineNumber);},_workingCopyChanged:function(event)
 {if(this._supportsEnabledBreakpointsWhileEditing()||this._scriptFile)
 return;if(this._uiSourceCode.isDirty())
@@ -370,11 +432,11 @@
 return null;var lineNumber=textPosition.startLine;var line=this.textEditor.line(lineNumber);var tokenContent=line.substring(token.startColumn,token.endColumn+1);if(token.type!=="javascript-ident"&&(token.type!=="javascript-keyword"||tokenContent!=="this"))
 return null;var leftCorner=this.textEditor.cursorPositionToCoordinates(lineNumber,token.startColumn);var rightCorner=this.textEditor.cursorPositionToCoordinates(lineNumber,token.endColumn+1);var anchorBox=new AnchorBox(leftCorner.x,leftCorner.y,rightCorner.x-leftCorner.x,leftCorner.height);anchorBox.highlight={lineNumber:lineNumber,startColumn:token.startColumn,endColumn:token.endColumn};return anchorBox;},_resolveObjectForPopover:function(anchorBox,showCallback,objectGroupName)
 {function showObjectPopover(result,wasThrown)
-{if(!WebInspector.debuggerModel.isPaused()){this._popoverHelper.hidePopover();return;}
+{if(!WebInspector.debuggerModel.isPaused()||!result){this._popoverHelper.hidePopover();return;}
 this._popoverAnchorBox=anchorBox;showCallback(WebInspector.RemoteObject.fromPayload(result),wasThrown,this._popoverAnchorBox);if(this._popoverAnchorBox){var highlightRange=new WebInspector.TextRange(lineNumber,startHighlight,lineNumber,endHighlight);this._popoverAnchorBox._highlightDescriptor=this.textEditor.highlightRange(highlightRange,"source-frame-eval-expression");}}
 if(!WebInspector.debuggerModel.isPaused()){this._popoverHelper.hidePopover();return;}
-var lineNumber=anchorBox.highlight.lineNumber;var startHighlight=anchorBox.highlight.startColumn;var endHighlight=anchorBox.highlight.endColumn;var line=this.textEditor.line(lineNumber);if(!anchorBox.forSelection){while(startHighlight>1&&line.charAt(startHighlight-1)==='.')
-startHighlight=this.textEditor.tokenAtTextPosition(lineNumber,startHighlight-2).startColumn;}
+var lineNumber=anchorBox.highlight.lineNumber;var startHighlight=anchorBox.highlight.startColumn;var endHighlight=anchorBox.highlight.endColumn;var line=this.textEditor.line(lineNumber);if(!anchorBox.forSelection){while(startHighlight>1&&line.charAt(startHighlight-1)==='.'){var token=this.textEditor.tokenAtTextPosition(lineNumber,startHighlight-2);if(!token){this._popoverHelper.hidePopover();return;}
+startHighlight=token.startColumn;}}
 var evaluationText=line.substring(startHighlight,endHighlight+1);var selectedCallFrame=WebInspector.debuggerModel.selectedCallFrame();selectedCallFrame.evaluate(evaluationText,objectGroupName,false,true,false,false,showObjectPopover.bind(this));},_onHidePopover:function()
 {if(!this._popoverAnchorBox)
 return;if(this._popoverAnchorBox._highlightDescriptor)
@@ -390,11 +452,12 @@
 this._setBreakpoint(lineNumber,newText,true);}
 var config=new WebInspector.EditingConfig(finishEditing.bind(this,true),finishEditing.bind(this,false));WebInspector.startEditing(this._conditionEditorElement,config);this._conditionEditorElement.value=breakpoint?breakpoint.condition():"";this._conditionEditorElement.select();},_createConditionElement:function(lineNumber)
 {var conditionElement=document.createElement("div");conditionElement.className="source-frame-breakpoint-condition";var labelElement=document.createElement("label");labelElement.className="source-frame-breakpoint-message";labelElement.htmlFor="source-frame-breakpoint-condition";labelElement.appendChild(document.createTextNode(WebInspector.UIString("The breakpoint on line %d will stop only if this expression is true:",lineNumber)));conditionElement.appendChild(labelElement);var editorElement=document.createElement("input");editorElement.id="source-frame-breakpoint-condition";editorElement.className="monospace";editorElement.type="text";conditionElement.appendChild(editorElement);this._conditionEditorElement=editorElement;return conditionElement;},setExecutionLine:function(lineNumber,callFrame)
-{this._executionLineNumber=lineNumber;this._executionCallFrame=callFrame;if(this.loaded){this.textEditor.setExecutionLine(lineNumber);if(WebInspector.experimentsSettings.stepIntoSelection.isEnabled()){function locationsCallback(locations)
+{this._executionLineNumber=lineNumber;this._executionCallFrame=callFrame;if(this.loaded){this.textEditor.setExecutionLine(lineNumber);if(WebInspector.experimentsSettings.stepIntoSelection.isEnabled())
+callFrame.getStepIntoLocations(locationsCallback.bind(this));}
+function locationsCallback(locations)
 {if(this._executionCallFrame!==callFrame||this._stepIntoMarkup)
 return;this._stepIntoMarkup=WebInspector.JavaScriptSourceFrame.StepIntoMarkup.create(this,locations);if(this._stepIntoMarkup)
-this._stepIntoMarkup.show();}
-callFrame.getStepIntoLocations(locationsCallback.bind(this));}}},clearExecutionLine:function()
+this._stepIntoMarkup.show();}},clearExecutionLine:function()
 {if(this._stepIntoMarkup){this._stepIntoMarkup.dispose();delete this._stepIntoMarkup;}
 if(this.loaded&&typeof this._executionLineNumber==="number")
 this.textEditor.clearExecutionLine();delete this._executionLineNumber;delete this._executionCallFrame;},_lineNumberAfterEditing:function(lineNumber,oldRange,newRange)
@@ -424,7 +487,8 @@
 {if(this._scriptFile){this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.DidMergeToVM,this._didMergeToVM,this);this._scriptFile.removeEventListener(WebInspector.ScriptFile.Events.DidDivergeFromVM,this._didDivergeFromVM,this);if(this._muted&&!this._uiSourceCode.isDirty())
 this._restoreBreakpointsAfterEditing();}
 this._scriptFile=this._uiSourceCode.scriptFile();if(this._scriptFile){this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidMergeToVM,this._didMergeToVM,this);this._scriptFile.addEventListener(WebInspector.ScriptFile.Events.DidDivergeFromVM,this._didDivergeFromVM,this);if(this.loaded)
-this._scriptFile.checkMapping();}},onTextEditorContentLoaded:function()
+this._scriptFile.checkMapping();}},beforeFormattedChange:function()
+{this.clearExecutionLine();},onTextEditorContentLoaded:function()
 {if(typeof this._executionLineNumber==="number")
 this.setExecutionLine(this._executionLineNumber,this._executionCallFrame);var breakpointLocations=this._breakpointManager.breakpointLocationsForUISourceCode(this._uiSourceCode);for(var i=0;i<breakpointLocations.length;++i)
 this._breakpointAdded({data:breakpointLocations[i]});var messages=this._uiSourceCode.consoleMessages();for(var i=0;i<messages.length;++i){var message=messages[i];this.addMessageToSource(message.lineNumber,message.originalMessage);}
@@ -477,7 +541,7 @@
 return locationA.lineNumber-locationB.lineNumber;};;WebInspector.CSSSourceFrame=function(uiSourceCode)
 {WebInspector.UISourceCodeFrame.call(this,uiSourceCode);this._registerShortcuts();}
 WebInspector.CSSSourceFrame.prototype={_registerShortcuts:function()
-{var shortcutKeys=WebInspector.SourcesPanelDescriptor.ShortcutKeys;for(var i=0;i<shortcutKeys.IncreaseCSSUnitByOne.length;++i)
+{var shortcutKeys=WebInspector.ShortcutsScreen.SourcesPanelShortcuts;for(var i=0;i<shortcutKeys.IncreaseCSSUnitByOne.length;++i)
 this.addShortcut(shortcutKeys.IncreaseCSSUnitByOne[i].key,this._handleUnitModification.bind(this,1));for(var i=0;i<shortcutKeys.DecreaseCSSUnitByOne.length;++i)
 this.addShortcut(shortcutKeys.DecreaseCSSUnitByOne[i].key,this._handleUnitModification.bind(this,-1));for(var i=0;i<shortcutKeys.IncreaseCSSUnitByTen.length;++i)
 this.addShortcut(shortcutKeys.IncreaseCSSUnitByTen[i].key,this._handleUnitModification.bind(this,10));for(var i=0;i<shortcutKeys.DecreaseCSSUnitByTen.length;++i)
@@ -490,7 +554,7 @@
 if(token.type!=="css-number")
 return false;var cssUnitRange=new WebInspector.TextRange(selection.startLine,token.startColumn,selection.startLine,token.endColumn+1);var cssUnitText=this.textEditor.copyRange(cssUnitRange);var newUnitText=this._modifyUnit(cssUnitText,change);if(!newUnitText)
 return false;this.textEditor.editRange(cssUnitRange,newUnitText);selection.startColumn=token.startColumn;selection.endColumn=selection.startColumn+newUnitText.length;this.textEditor.setSelection(selection);return true;},__proto__:WebInspector.UISourceCodeFrame.prototype};WebInspector.NavigatorOverlayController=function(parentSidebarView,navigatorView,editorView)
-{this._parentSidebarView=parentSidebarView;this._navigatorView=navigatorView;this._editorView=editorView;this._navigatorSidebarResizeWidgetElement=this._navigatorView.element.createChild("div","resizer-widget");this._parentSidebarView.installResizer(this._navigatorSidebarResizeWidgetElement);this._navigatorShowHideButton=new WebInspector.StatusBarButton(WebInspector.UIString("Hide navigator"),"left-sidebar-show-hide-button scripts-navigator-show-hide-button",3);this._navigatorShowHideButton.state="left";this._navigatorShowHideButton.addEventListener("click",this._toggleNavigator,this);parentSidebarView.mainElement.appendChild(this._navigatorShowHideButton.element);WebInspector.settings.navigatorHidden=WebInspector.settings.createSetting("navigatorHidden",true);if(WebInspector.settings.navigatorHidden.get())
+{this._parentSidebarView=parentSidebarView;this._navigatorView=navigatorView;this._editorView=editorView;this._navigatorSidebarResizeWidgetElement=this._navigatorView.element.createChild("div","resizer-widget");this._parentSidebarView.installResizer(this._navigatorSidebarResizeWidgetElement);this._navigatorShowHideButton=new WebInspector.StatusBarButton(WebInspector.UIString("Hide navigator"),"left-sidebar-show-hide-button scripts-navigator-show-hide-button",3);this._navigatorShowHideButton.state="left";this._navigatorShowHideButton.addEventListener("click",this._toggleNavigator,this);parentSidebarView.mainElement().appendChild(this._navigatorShowHideButton.element);WebInspector.settings.navigatorHidden=WebInspector.settings.createSetting("navigatorHidden",true);if(WebInspector.settings.navigatorHidden.get())
 this._toggleNavigator();}
 WebInspector.NavigatorOverlayController.prototype={wasShown:function()
 {window.setTimeout(this._maybeShowNavigatorOverlay.bind(this),0);},_maybeShowNavigatorOverlay:function()
@@ -500,10 +564,10 @@
 this._pinNavigator();else if(this._navigatorShowHideButton.state==="right")
 this.showNavigatorOverlay();else
 this._hidePinnedNavigator();},_hidePinnedNavigator:function()
-{this._navigatorShowHideButton.state="right";this._navigatorShowHideButton.title=WebInspector.UIString("Show navigator");this._parentSidebarView.element.appendChild(this._navigatorShowHideButton.element);this._editorView.element.addStyleClass("navigator-hidden");this._navigatorSidebarResizeWidgetElement.addStyleClass("hidden");this._parentSidebarView.hideSidebarElement();this._navigatorView.detach();this._editorView.focus();WebInspector.settings.navigatorWasOnceHidden.set(true);WebInspector.settings.navigatorHidden.set(true);},_pinNavigator:function()
-{this._navigatorShowHideButton.state="left";this._navigatorShowHideButton.title=WebInspector.UIString("Hide navigator");this._editorView.element.removeStyleClass("navigator-hidden");this._navigatorSidebarResizeWidgetElement.removeStyleClass("hidden");this._editorView.element.appendChild(this._navigatorShowHideButton.element);this._innerHideNavigatorOverlay();this._parentSidebarView.showSidebarElement();this._navigatorView.show(this._parentSidebarView.sidebarElement);this._navigatorView.focus();WebInspector.settings.navigatorHidden.set(false);},showNavigatorOverlay:function()
+{this._navigatorShowHideButton.state="right";this._navigatorShowHideButton.title=WebInspector.UIString("Show navigator");this._parentSidebarView.element.appendChild(this._navigatorShowHideButton.element);this._editorView.element.classList.add("navigator-hidden");this._navigatorSidebarResizeWidgetElement.classList.add("hidden");this._parentSidebarView.hideSidebarElement();this._navigatorView.detach();this._editorView.focus();WebInspector.settings.navigatorWasOnceHidden.set(true);WebInspector.settings.navigatorHidden.set(true);},_pinNavigator:function()
+{this._navigatorShowHideButton.state="left";this._navigatorShowHideButton.title=WebInspector.UIString("Hide navigator");this._editorView.element.classList.remove("navigator-hidden");this._navigatorSidebarResizeWidgetElement.classList.remove("hidden");this._editorView.element.appendChild(this._navigatorShowHideButton.element);this._innerHideNavigatorOverlay();this._parentSidebarView.showSidebarElement();this._parentSidebarView.setSidebarView(this._navigatorView);this._navigatorView.focus();WebInspector.settings.navigatorHidden.set(false);},showNavigatorOverlay:function()
 {if(this._navigatorShowHideButton.state==="overlay")
-return;this._navigatorShowHideButton.state="overlay";this._navigatorShowHideButton.title=WebInspector.UIString("Pin navigator");this._sidebarOverlay=new WebInspector.SidebarOverlay(this._navigatorView,"scriptsPanelNavigatorOverlayWidth",Preferences.minScriptsSidebarWidth);this._boundKeyDown=this._keyDown.bind(this);this._sidebarOverlay.element.addEventListener("keydown",this._boundKeyDown,false);var navigatorOverlayResizeWidgetElement=document.createElement("div");navigatorOverlayResizeWidgetElement.addStyleClass("resizer-widget");this._sidebarOverlay.resizerWidgetElement=navigatorOverlayResizeWidgetElement;this._navigatorView.element.appendChild(this._navigatorShowHideButton.element);this._boundContainingElementFocused=this._containingElementFocused.bind(this);this._parentSidebarView.element.addEventListener("mousedown",this._boundContainingElementFocused,false);this._sidebarOverlay.show(this._parentSidebarView.element);this._navigatorView.focus();},_keyDown:function(event)
+return;this._navigatorShowHideButton.state="overlay";this._navigatorShowHideButton.title=WebInspector.UIString("Pin navigator");this._sidebarOverlay=new WebInspector.SidebarOverlay(this._navigatorView,"scriptsPanelNavigatorOverlayWidth",Preferences.minScriptsSidebarWidth);this._boundKeyDown=this._keyDown.bind(this);this._sidebarOverlay.element.addEventListener("keydown",this._boundKeyDown,false);var navigatorOverlayResizeWidgetElement=document.createElement("div");navigatorOverlayResizeWidgetElement.classList.add("resizer-widget");this._sidebarOverlay.resizerWidgetElement=navigatorOverlayResizeWidgetElement;this._navigatorView.element.appendChild(this._navigatorShowHideButton.element);this._boundContainingElementFocused=this._containingElementFocused.bind(this);this._parentSidebarView.element.addEventListener("mousedown",this._boundContainingElementFocused,false);this._sidebarOverlay.show(this._parentSidebarView.element);this._navigatorView.focus();},_keyDown:function(event)
 {if(event.handled)
 return;if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code){this.hideNavigatorOverlay();event.consume(true);}},hideNavigatorOverlay:function()
 {if(this._navigatorShowHideButton.state!=="overlay")
@@ -513,7 +577,7 @@
 this.hideNavigatorOverlay();},isNavigatorPinned:function()
 {return this._navigatorShowHideButton.state==="left";},isNavigatorHidden:function()
 {return this._navigatorShowHideButton.state==="right";}};WebInspector.NavigatorView=function()
-{WebInspector.View.call(this);this.registerRequiredCSS("navigatorView.css");var scriptsTreeElement=document.createElement("ol");this._scriptsTree=new WebInspector.NavigatorTreeOutline(scriptsTreeElement);this._scriptsTree.childrenListElement.addEventListener("keypress",this._treeKeyPress.bind(this),true);var scriptsOutlineElement=document.createElement("div");scriptsOutlineElement.addStyleClass("outline-disclosure");scriptsOutlineElement.addStyleClass("navigator");scriptsOutlineElement.appendChild(scriptsTreeElement);this.element.addStyleClass("fill");this.element.addStyleClass("navigator-container");this.element.appendChild(scriptsOutlineElement);this.setDefaultFocusedElement(this._scriptsTree.element);this._uiSourceCodeNodes=new Map();this._subfolderNodes=new Map();this._rootNode=new WebInspector.NavigatorRootTreeNode(this);this._rootNode.populate();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._inspectedURLChanged,this);this.element.addEventListener("contextmenu",this.handleContextMenu.bind(this),false);}
+{WebInspector.View.call(this);this.registerRequiredCSS("navigatorView.css");var scriptsTreeElement=document.createElement("ol");this._scriptsTree=new WebInspector.NavigatorTreeOutline(scriptsTreeElement);this._scriptsTree.childrenListElement.addEventListener("keypress",this._treeKeyPress.bind(this),true);var scriptsOutlineElement=document.createElement("div");scriptsOutlineElement.classList.add("outline-disclosure");scriptsOutlineElement.classList.add("navigator");scriptsOutlineElement.appendChild(scriptsTreeElement);this.element.classList.add("fill");this.element.classList.add("navigator-container");this.element.appendChild(scriptsOutlineElement);this.setDefaultFocusedElement(this._scriptsTree.element);this._uiSourceCodeNodes=new Map();this._subfolderNodes=new Map();this._rootNode=new WebInspector.NavigatorRootTreeNode(this);this._rootNode.populate();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._inspectedURLChanged,this);this.element.addEventListener("contextmenu",this.handleContextMenu.bind(this),false);}
 WebInspector.NavigatorView.Events={ItemSelected:"ItemSelected",ItemSearchStarted:"ItemSearchStarted",ItemRenamingRequested:"ItemRenamingRequested",ItemCreationRequested:"ItemCreationRequested"}
 WebInspector.NavigatorView.iconClassForType=function(type)
 {if(type===WebInspector.NavigatorTreeOutline.Types.Domain)
@@ -533,7 +597,7 @@
 return folderNode;var parentNode=projectNode;var index=folderPath.lastIndexOf("/");if(index!==-1)
 parentNode=this._folderNode(projectNode,folderPath.substring(0,index));var name=folderPath.substring(index+1);folderNode=new WebInspector.NavigatorFolderTreeNode(this,null,name,WebInspector.NavigatorTreeOutline.Types.Folder,folderPath,name);subfolderNodes.put(folderPath,folderNode);parentNode.appendChild(folderNode);return folderNode;},revealUISourceCode:function(uiSourceCode,select)
 {var node=this._uiSourceCodeNodes.get(uiSourceCode);if(!node)
-return null;if(this._scriptsTree.selectedTreeElement)
+return;if(this._scriptsTree.selectedTreeElement)
 this._scriptsTree.selectedTreeElement.deselect();this._lastSelectedUISourceCode=uiSourceCode;node.reveal(select);},_sourceSelected:function(uiSourceCode,focusSource)
 {this._lastSelectedUISourceCode=uiSourceCode;var data={uiSourceCode:uiSourceCode,focusSource:focusSource};this.dispatchEventToListeners(WebInspector.NavigatorView.Events.ItemSelected,data);},sourceDeleted:function(uiSourceCode)
 {},removeUISourceCode:function(uiSourceCode)
@@ -544,7 +608,7 @@
 {var node=this._uiSourceCodeNodes.get(uiSourceCode);node.updateIcon();},requestRename:function(uiSourceCode)
 {this.dispatchEventToListeners(WebInspector.SourcesNavigator.Events.ItemRenamingRequested,uiSourceCode);},rename:function(uiSourceCode,callback)
 {var node=this._uiSourceCodeNodes.get(uiSourceCode);if(!node)
-return null;node.rename(callback);},reset:function()
+return;node.rename(callback);},reset:function()
 {var nodes=this._uiSourceCodeNodes.values();for(var i=0;i<nodes.length;++i)
 nodes[i].dispose();this._scriptsTree.removeChildren();this._uiSourceCodeNodes.clear();this._subfolderNodes.clear();this._rootNode.reset();},handleContextMenu:function(event)
 {var contextMenu=new WebInspector.ContextMenu(event);this._appendAddFolderItem(contextMenu);contextMenu.show();},_appendAddFolderItem:function(contextMenu)
@@ -559,10 +623,10 @@
 {var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(uiSourceCode);contextMenu.appendSeparator();var project=uiSourceCode.project();var path=uiSourceCode.parentPath();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Refresh parent":"Refresh Parent"),this._handleContextMenuRefresh.bind(this,project,path));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Duplicate file":"Duplicate File"),this._handleContextMenuCreate.bind(this,project,path,uiSourceCode));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Exclude parent folder":"Exclude Parent Folder"),this._handleContextMenuExclude.bind(this,project,path));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Delete file":"Delete File"),this._handleContextMenuDelete.bind(this,uiSourceCode));contextMenu.appendSeparator();this._appendAddFolderItem(contextMenu);contextMenu.show();},handleFolderContextMenu:function(event,node)
 {var contextMenu=new WebInspector.ContextMenu(event);var path="/";var projectNode=node;while(projectNode.parent!==this._rootNode){path="/"+projectNode.id+path;projectNode=projectNode.parent;}
 var project=projectNode._project;if(project.type()===WebInspector.projectTypes.FileSystem){contextMenu.appendItem(WebInspector.UIString("Refresh"),this._handleContextMenuRefresh.bind(this,project,path));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"New file":"New File"),this._handleContextMenuCreate.bind(this,project,path));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Exclude folder":"Exclude Folder"),this._handleContextMenuExclude.bind(this,project,path));}
-contextMenu.appendSeparator();this._appendAddFolderItem(contextMenu);if(project.type()===WebInspector.projectTypes.FileSystem&&node===projectNode){function removeFolder()
+contextMenu.appendSeparator();this._appendAddFolderItem(contextMenu);function removeFolder()
 {var shouldRemove=window.confirm(WebInspector.UIString("Are you sure you want to remove this folder?"));if(shouldRemove)
 project.remove();}
-var removeFolderLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove folder from workspace":"Remove Folder from Workspace");contextMenu.appendItem(removeFolderLabel,removeFolder);}
+if(project.type()===WebInspector.projectTypes.FileSystem&&node===projectNode){var removeFolderLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove folder from workspace":"Remove Folder from Workspace");contextMenu.appendItem(removeFolderLabel,removeFolder);}
 contextMenu.show();},_treeKeyPress:function(event)
 {if(WebInspector.isBeingEdited(this._scriptsTree.childrenListElement))
 return;var searchText=String.fromCharCode(event.charCode);if(searchText.trim()!==searchText)
@@ -589,12 +653,12 @@
 {this._type=type;TreeElement.call(this,"",null,hasChildren);this._titleText=title;this._iconClasses=iconClasses;this._noIcon=noIcon;}
 WebInspector.BaseNavigatorTreeElement.prototype={onattach:function()
 {this.listItemElement.removeChildren();if(this._iconClasses){for(var i=0;i<this._iconClasses.length;++i)
-this.listItemElement.addStyleClass(this._iconClasses[i]);}
+this.listItemElement.classList.add(this._iconClasses[i]);}
 var selectionElement=document.createElement("div");selectionElement.className="selection";this.listItemElement.appendChild(selectionElement);if(!this._noIcon){this.imageElement=document.createElement("img");this.imageElement.className="icon";this.listItemElement.appendChild(this.imageElement);}
 this.titleElement=document.createElement("div");this.titleElement.className="base-navigator-tree-element-title";this._titleTextNode=document.createTextNode("");this._titleTextNode.textContent=this._titleText;this.titleElement.appendChild(this._titleTextNode);this.listItemElement.appendChild(this.titleElement);},updateIconClasses:function(iconClasses)
 {for(var i=0;i<this._iconClasses.length;++i)
-this.listItemElement.removeStyleClass(this._iconClasses[i]);this._iconClasses=iconClasses;for(var i=0;i<this._iconClasses.length;++i)
-this.listItemElement.addStyleClass(this._iconClasses[i]);},onreveal:function()
+this.listItemElement.classList.remove(this._iconClasses[i]);this._iconClasses=iconClasses;for(var i=0;i<this._iconClasses.length;++i)
+this.listItemElement.classList.add(this._iconClasses[i]);},onreveal:function()
 {if(this.listItemElement)
 this.listItemElement.scrollIntoViewIfNeeded(true);},get titleText()
 {return this._titleText;},set titleText(titleText)
@@ -610,7 +674,7 @@
 {this._node=node;var paths=[];while(node&&!node.isRoot()){paths.push(node._title);node=node.parent;}
 paths.reverse();this.tooltip=paths.join("/");},_handleContextMenuEvent:function(event)
 {if(!this._node)
-return;this.select();this._navigatorView.handleFolderContextMenu(event,this._node);},__proto__:WebInspector.BaseNavigatorTreeElement.prototype}
+return;this.select();this._navigatorView.handleFolderContextMenu((event),this._node);},__proto__:WebInspector.BaseNavigatorTreeElement.prototype}
 WebInspector.NavigatorSourceTreeElement=function(navigatorView,uiSourceCode,title)
 {this._navigatorView=navigatorView;this._uiSourceCode=uiSourceCode;WebInspector.BaseNavigatorTreeElement.call(this,WebInspector.NavigatorTreeOutline.Types.UISourceCode,title,this._calculateIconClasses(),false);this.tooltip=uiSourceCode.originURL();}
 WebInspector.NavigatorSourceTreeElement.prototype={get uiSourceCode()
@@ -630,7 +694,7 @@
 {event.dataTransfer.setData("text/plain",this._warmedUpContent);event.dataTransfer.effectAllowed="copy";return true;},onspace:function()
 {this._navigatorView._sourceSelected(this.uiSourceCode,true);return true;},_onclick:function(event)
 {this._navigatorView._sourceSelected(this.uiSourceCode,false);},ondblclick:function(event)
-{var middleClick=event.button===1;this._navigatorView._sourceSelected(this.uiSourceCode,!middleClick);},onenter:function()
+{var middleClick=event.button===1;this._navigatorView._sourceSelected(this.uiSourceCode,!middleClick);return false;},onenter:function()
 {this._navigatorView._sourceSelected(this.uiSourceCode,true);return true;},ondelete:function()
 {this._navigatorView.sourceDeleted(this.uiSourceCode);return true;},_handleContextMenuEvent:function(event)
 {this.select();this._navigatorView.handleFileContextMenu(event,this._uiSourceCode);},__proto__:WebInspector.BaseNavigatorTreeElement.prototype}
@@ -650,7 +714,7 @@
 this.treeElement().removeChild(node.treeElement());},isPopulated:function()
 {return this._populated;},isEmpty:function()
 {return!this._children.size();},child:function(id)
-{return this._children.get(id);},children:function()
+{return this._children.get(id)||null;},children:function()
 {return this._children.values();},appendChild:function(node)
 {this._children.put(node.id,node);node.parent=this;this.didAddChild(node);},removeChild:function(node)
 {this.willRemoveChild(node);this._children.remove(node.id);delete node.parent;node.dispose();},reset:function()
@@ -719,7 +783,7 @@
 this._treeElement.appendChild(node.treeElement());},willRemoveChild:function(node)
 {if(node._isMerged||!this.isPopulated())
 return;this._treeElement.removeChild(node._treeElement);},__proto__:WebInspector.NavigatorTreeNode.prototype};WebInspector.RevisionHistoryView=function()
-{WebInspector.View.call(this);this.registerRequiredCSS("revisionHistory.css");this.element.addStyleClass("revision-history-drawer");this.element.addStyleClass("fill");this.element.addStyleClass("outline-disclosure");this._uiSourceCodeItems=new Map();var olElement=this.element.createChild("ol");this._treeOutline=new TreeOutline(olElement);function populateRevisions(uiSourceCode)
+{WebInspector.View.call(this);this.registerRequiredCSS("revisionHistory.css");this.element.classList.add("revision-history-drawer");this.element.classList.add("fill");this.element.classList.add("outline-disclosure");this._uiSourceCodeItems=new Map();var olElement=this.element.createChild("ol");this._treeOutline=new TreeOutline(olElement);function populateRevisions(uiSourceCode)
 {if(uiSourceCode.history.length)
 this._createUISourceCodeItem(uiSourceCode);}
 WebInspector.workspace.uiSourceCodes().forEach(populateRevisions.bind(this));WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeContentCommitted,this._revisionAdded,this);WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved,this._uiSourceCodeRemoved,this);WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._projectWillReset,this);}
@@ -742,11 +806,11 @@
 {var project=event.data;project.uiSourceCodes().forEach(this._removeUISourceCode.bind(this));},__proto__:WebInspector.View.prototype}
 WebInspector.RevisionHistoryTreeElement=function(revision,baseRevision,allowRevert)
 {TreeElement.call(this,revision.timestamp.toLocaleTimeString(),null,true);this.selectable=false;this._revision=revision;this._baseRevision=baseRevision;this._revertElement=document.createElement("span");this._revertElement.className="revision-history-link";this._revertElement.textContent=WebInspector.UIString("apply revision content");this._revertElement.addEventListener("click",this._revision.revertToThis.bind(this._revision),false);if(!allowRevert)
-this._revertElement.addStyleClass("hidden");}
+this._revertElement.classList.add("hidden");}
 WebInspector.RevisionHistoryTreeElement.prototype={onattach:function()
-{this.listItemElement.addStyleClass("revision-history-revision");},onexpand:function()
+{this.listItemElement.classList.add("revision-history-revision");},onexpand:function()
 {this.listItemElement.appendChild(this._revertElement);if(this._wasExpandedOnce)
-return;this._wasExpandedOnce=true;this.childrenListElement.addStyleClass("source-code");if(this._baseRevision)
+return;this._wasExpandedOnce=true;this.childrenListElement.classList.add("source-code");if(this._baseRevision)
 this._baseRevision.requestContent(step1.bind(this));else
 this._revision.uiSourceCode.requestOriginalContent(step1.bind(this));function step1(baseContent)
 {this._revision.requestContent(step2.bind(this,baseContent));}
@@ -757,9 +821,9 @@
 this._createLine(null,null,"    \u2026","separator");lastWasSeparator=true;}}}}},oncollapse:function()
 {this._revertElement.remove();},_createLine:function(baseLineNumber,newLineNumber,lineContent,changeType)
 {var child=new TreeElement("",null,false);child.selectable=false;this.appendChild(child);var lineElement=document.createElement("span");function appendLineNumber(lineNumber)
-{var numberString=lineNumber!==null?numberToStringWithSpacesPadding(lineNumber+1,4):"    ";var lineNumberSpan=document.createElement("span");lineNumberSpan.addStyleClass("webkit-line-number");lineNumberSpan.textContent=numberString;child.listItemElement.appendChild(lineNumberSpan);}
-appendLineNumber(baseLineNumber);appendLineNumber(newLineNumber);var contentSpan=document.createElement("span");contentSpan.textContent=lineContent;child.listItemElement.appendChild(contentSpan);child.listItemElement.addStyleClass("revision-history-line");child.listItemElement.addStyleClass("revision-history-line-"+changeType);},allowRevert:function()
-{this._revertElement.removeStyleClass("hidden");},__proto__:TreeElement.prototype};WebInspector.ScopeChainSidebarPane=function()
+{var numberString=lineNumber!==null?numberToStringWithSpacesPadding(lineNumber+1,4):"    ";var lineNumberSpan=document.createElement("span");lineNumberSpan.classList.add("webkit-line-number");lineNumberSpan.textContent=numberString;child.listItemElement.appendChild(lineNumberSpan);}
+appendLineNumber(baseLineNumber);appendLineNumber(newLineNumber);var contentSpan=document.createElement("span");contentSpan.textContent=lineContent;child.listItemElement.appendChild(contentSpan);child.listItemElement.classList.add("revision-history-line");child.listItemElement.classList.add("revision-history-line-"+changeType);},allowRevert:function()
+{this._revertElement.classList.remove("hidden");},__proto__:TreeElement.prototype};WebInspector.ScopeChainSidebarPane=function()
 {WebInspector.SidebarPane.call(this,WebInspector.UIString("Scope Variables"));this._sections=[];this._expandedSections={};this._expandedProperties=[];}
 WebInspector.ScopeChainSidebarPane.prototype={update:function(callFrame)
 {this.bodyElement.removeChildren();if(!callFrame){var infoElement=document.createElement("div");infoElement.className="info";infoElement.textContent=WebInspector.UIString("Not Paused");this.bodyElement.appendChild(infoElement);return;}
@@ -767,14 +831,14 @@
 continue;if(section.expanded)
 this._expandedSections[section.title]=true;else
 delete this._expandedSections[section.title];}
-this._sections=[];var foundLocalScope=false;var scopeChain=callFrame.scopeChain;for(var i=0;i<scopeChain.length;++i){var scope=scopeChain[i];var title=null;var subtitle=scope.object.description;var emptyPlaceholder=null;var extraProperties=null;var declarativeScope;switch(scope.type){case"local":foundLocalScope=true;title=WebInspector.UIString("Local");emptyPlaceholder=WebInspector.UIString("No Variables");subtitle=null;if(callFrame.this)
-extraProperties=[new WebInspector.RemoteObjectProperty("this",WebInspector.RemoteObject.fromPayload(callFrame.this))];if(i==0){var details=WebInspector.debuggerModel.debuggerPausedDetails();var exception=details.reason===WebInspector.DebuggerModel.BreakReason.Exception?details.auxData:0;if(exception){extraProperties=extraProperties||[];var exceptionObject=(exception);extraProperties.push(new WebInspector.RemoteObjectProperty("<exception>",WebInspector.RemoteObject.fromPayload(exceptionObject)));}}
-declarativeScope=true;break;case"closure":title=WebInspector.UIString("Closure");emptyPlaceholder=WebInspector.UIString("No Variables");subtitle=null;declarativeScope=true;break;case"catch":title=WebInspector.UIString("Catch");subtitle=null;declarativeScope=true;break;case"with":title=WebInspector.UIString("With Block");declarativeScope=false;break;case"global":title=WebInspector.UIString("Global");declarativeScope=false;break;}
+this._sections=[];var foundLocalScope=false;var scopeChain=callFrame.scopeChain;for(var i=0;i<scopeChain.length;++i){var scope=scopeChain[i];var title=null;var subtitle=scope.object.description;var emptyPlaceholder=null;var extraProperties=[];var declarativeScope;switch(scope.type){case DebuggerAgent.ScopeType.Local:foundLocalScope=true;title=WebInspector.UIString("Local");emptyPlaceholder=WebInspector.UIString("No Variables");subtitle=undefined;if(callFrame.this)
+extraProperties.push(new WebInspector.RemoteObjectProperty("this",WebInspector.RemoteObject.fromPayload(callFrame.this)));if(i==0){var details=WebInspector.debuggerModel.debuggerPausedDetails();var exception=details.reason===WebInspector.DebuggerModel.BreakReason.Exception?details.auxData:0;if(exception){var exceptionObject=(exception);extraProperties.push(new WebInspector.RemoteObjectProperty("<exception>",WebInspector.RemoteObject.fromPayload(exceptionObject)));}
+if(callFrame.returnValue)
+extraProperties.push(new WebInspector.RemoteObjectProperty("<return>",WebInspector.RemoteObject.fromPayload(callFrame.returnValue)));}
+declarativeScope=true;break;case DebuggerAgent.ScopeType.Closure:title=WebInspector.UIString("Closure");emptyPlaceholder=WebInspector.UIString("No Variables");subtitle=undefined;declarativeScope=true;break;case DebuggerAgent.ScopeType.Catch:title=WebInspector.UIString("Catch");subtitle=undefined;declarativeScope=true;break;case DebuggerAgent.ScopeType.With:title=WebInspector.UIString("With Block");declarativeScope=false;break;case DebuggerAgent.ScopeType.Global:title=WebInspector.UIString("Global");declarativeScope=false;break;}
 if(!title||title===subtitle)
-subtitle=null;var scopeRef;if(declarativeScope)
-scopeRef=new WebInspector.ScopeRef(i,callFrame.id,undefined);else
-scopeRef=undefined;var section=new WebInspector.ObjectPropertiesSection(WebInspector.ScopeRemoteObject.fromPayload(scope.object,scopeRef),title,subtitle,emptyPlaceholder,true,extraProperties,WebInspector.ScopeVariableTreeElement);section.editInSelectedCallFrameWhenPaused=true;section.pane=this;if(scope.type==="global")
-section.expanded=false;else if(!foundLocalScope||scope.type==="local"||title in this._expandedSections)
+subtitle=undefined;var scopeRef=declarativeScope?new WebInspector.ScopeRef(i,callFrame.id,undefined):undefined;var scopeObject=WebInspector.ScopeRemoteObject.fromPayload(scope.object,scopeRef);var section=new WebInspector.ObjectPropertiesSection(scopeObject,title,subtitle,emptyPlaceholder,true,extraProperties,WebInspector.ScopeVariableTreeElement);section.editInSelectedCallFrameWhenPaused=true;section.pane=this;if(scope.type===DebuggerAgent.ScopeType.Global)
+section.expanded=false;else if(!foundLocalScope||scope.type===DebuggerAgent.ScopeType.Local||title in this._expandedSections)
 section.expanded=true;this._sections.push(section);this.bodyElement.appendChild(section.element);}},__proto__:WebInspector.SidebarPane.prototype}
 WebInspector.ScopeVariableTreeElement=function(property)
 {WebInspector.ObjectPropertyTreeElement.call(this,property);}
@@ -785,7 +849,7 @@
 {delete this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier];},get propertyIdentifier()
 {if("_propertyIdentifier"in this)
 return this._propertyIdentifier;var section=this.treeOutline.section;this._propertyIdentifier=section.title+":"+(section.subtitle?section.subtitle+":":"")+this.propertyPath();return this._propertyIdentifier;},__proto__:WebInspector.ObjectPropertyTreeElement.prototype};WebInspector.SourcesNavigator=function()
-{WebInspector.Object.call(this);this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.shrinkableTabs=true;this._tabbedPane.element.addStyleClass("navigator-tabbed-pane");this._sourcesView=new WebInspector.NavigatorView();this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._contentScriptsView=new WebInspector.NavigatorView();this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._snippetsView=new WebInspector.SnippetsNavigatorView();this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.SourcesTab,WebInspector.UIString("Sources"),this._sourcesView);this._tabbedPane.selectTab(WebInspector.SourcesNavigator.SourcesTab);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.ContentScriptsTab,WebInspector.UIString("Content scripts"),this._contentScriptsView);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.SnippetsTab,WebInspector.UIString("Snippets"),this._snippetsView);}
+{WebInspector.Object.call(this);this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.shrinkableTabs=true;this._tabbedPane.element.classList.add("navigator-tabbed-pane");this._sourcesView=new WebInspector.NavigatorView();this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._sourcesView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._contentScriptsView=new WebInspector.NavigatorView();this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._contentScriptsView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._snippetsView=new WebInspector.SnippetsNavigatorView();this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemSelected,this._sourceSelected,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemSearchStarted,this._itemSearchStarted,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._snippetsView.addEventListener(WebInspector.NavigatorView.Events.ItemCreationRequested,this._itemCreationRequested,this);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.SourcesTab,WebInspector.UIString("Sources"),this._sourcesView);this._tabbedPane.selectTab(WebInspector.SourcesNavigator.SourcesTab);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.ContentScriptsTab,WebInspector.UIString("Content scripts"),this._contentScriptsView);this._tabbedPane.appendTab(WebInspector.SourcesNavigator.SnippetsTab,WebInspector.UIString("Snippets"),this._snippetsView);}
 WebInspector.SourcesNavigator.Events={SourceSelected:"SourceSelected",ItemCreationRequested:"ItemCreationRequested",ItemRenamingRequested:"ItemRenamingRequested",ItemSearchStarted:"ItemSearchStarted",}
 WebInspector.SourcesNavigator.SourcesTab="sources";WebInspector.SourcesNavigator.ContentScriptsTab="contentScripts";WebInspector.SourcesNavigator.SnippetsTab="snippets";WebInspector.SourcesNavigator.prototype={get view()
 {return this._tabbedPane;},_navigatorViewForUISourceCode:function(uiSourceCode)
@@ -814,27 +878,41 @@
 {if(uiSourceCode.project().type()!==WebInspector.projectTypes.Snippets)
 return;uiSourceCode.project().deleteFile(uiSourceCode.path());},_handleCreateSnippet:function()
 {var data={};data.project=WebInspector.scriptSnippetModel.project();data.path="";this.dispatchEventToListeners(WebInspector.NavigatorView.Events.ItemCreationRequested,data);},sourceDeleted:function(uiSourceCode)
-{this._handleRemoveSnippet(uiSourceCode);},__proto__:WebInspector.NavigatorView.prototype};WebInspector.SourcesSearchScope=function(workspace)
-{WebInspector.SearchScope.call(this)
-this._searchId=0;this._workspace=workspace;}
+{this._handleRemoveSnippet(uiSourceCode);},__proto__:WebInspector.NavigatorView.prototype};WebInspector.SourcesSearchScope=function()
+{this._searchId=0;this._workspace=WebInspector.workspace;}
 WebInspector.SourcesSearchScope.prototype={performIndexing:function(progress,indexingFinishedCallback)
 {this.stopSearch();function filterOutServiceProjects(project)
 {return!project.isServiceProject();}
 var projects=this._workspace.projects().filter(filterOutServiceProjects);var barrier=new CallbackBarrier();var compositeProgress=new WebInspector.CompositeProgress(progress);progress.addEventListener(WebInspector.Progress.Events.Canceled,indexingCanceled.bind(this));for(var i=0;i<projects.length;++i){var project=projects[i];var projectProgress=compositeProgress.createSubProgress(project.uiSourceCodes().length);project.indexContent(projectProgress,barrier.createCallback());}
 barrier.callWhenDone(indexingFinishedCallback.bind(this,true));function indexingCanceled()
 {indexingFinishedCallback(false);progress.done();}},performSearch:function(searchConfig,progress,searchResultCallback,searchFinishedCallback)
-{this.stopSearch();function filterOutServiceProjects(project)
+{this.stopSearch();this._searchResultCallback=searchResultCallback;this._searchFinishedCallback=searchFinishedCallback;this._searchConfig=searchConfig;function filterOutServiceProjects(project)
 {return!project.isServiceProject();}
-var projects=this._workspace.projects().filter(filterOutServiceProjects);var barrier=new CallbackBarrier();var compositeProgress=new WebInspector.CompositeProgress(progress);for(var i=0;i<projects.length;++i){var project=projects[i];var projectProgress=compositeProgress.createSubProgress(project.uiSourceCodes().length);var callback=barrier.createCallback(searchCallbackWrapper.bind(this,this._searchId,project));project.searchInContent(searchConfig.query,!searchConfig.ignoreCase,searchConfig.isRegex,projectProgress,callback);}
-barrier.callWhenDone(searchFinishedCallback.bind(this,true));function searchCallbackWrapper(searchId,project,searchMatches)
-{if(searchId!==this._searchId){searchFinishedCallback(false);return;}
-var paths=searchMatches.keys();for(var i=0;i<paths.length;++i){var uiSourceCode=project.uiSourceCode(paths[i]);var searchResult=new WebInspector.FileBasedSearchResultsPane.SearchResult(uiSourceCode,searchMatches.get(paths[i]));searchResultCallback(searchResult);}}},stopSearch:function()
+var projects=this._workspace.projects().filter(filterOutServiceProjects);var barrier=new CallbackBarrier();var compositeProgress=new WebInspector.CompositeProgress(progress);for(var i=0;i<projects.length;++i){var project=projects[i];var weight=project.uiSourceCodes().length;var projectProgress=new WebInspector.CompositeProgress(compositeProgress.createSubProgress(weight));var findMatchingFilesProgress=projectProgress.createSubProgress();var searchContentProgress=projectProgress.createSubProgress();var barrierCallback=barrier.createCallback();var callback=this._processMatchingFilesForProject.bind(this,this._searchId,project,searchContentProgress,barrierCallback);project.findFilesMatchingSearchRequest(searchConfig.queries(),searchConfig.fileQueries(),!searchConfig.ignoreCase,searchConfig.isRegex,findMatchingFilesProgress,callback);}
+barrier.callWhenDone(this._searchFinishedCallback.bind(this,true));},_processMatchingFilesForProject:function(searchId,project,progress,callback,files)
+{if(searchId!==this._searchId){this._searchFinishedCallback(false);return;}
+if(!files.length){progress.done();callback();return;}
+progress.setTotalWork(files.length);var fileIndex=0;var maxFileContentRequests=20;var callbacksLeft=0;for(var i=0;i<maxFileContentRequests&&i<files.length;++i)
+scheduleSearchInNextFileOrFinish.call(this);function searchInNextFile(path)
+{var uiSourceCode=project.uiSourceCode(path);if(!uiSourceCode){--callbacksLeft;progress.worked(1);scheduleSearchInNextFileOrFinish.call(this);return;}
+uiSourceCode.requestContent(contentLoaded.bind(this,path));}
+function scheduleSearchInNextFileOrFinish()
+{if(fileIndex>=files.length){if(!callbacksLeft){progress.done();callback();return;}
+return;}
+++callbacksLeft;var path=files[fileIndex++];setTimeout(searchInNextFile.bind(this,path),0);}
+function contentLoaded(path,content)
+{function matchesComparator(a,b)
+{return a.lineNumber-b.lineNumber;}
+progress.worked(1);var matches=[];var queries=this._searchConfig.queries();if(content!==null){for(var i=0;i<queries.length;++i){var nextMatches=WebInspector.ContentProvider.performSearchInContent(content,queries[i],!this._searchConfig.ignoreCase,this._searchConfig.isRegex)
+matches=matches.mergeOrdered(nextMatches,matchesComparator);}}
+var uiSourceCode=project.uiSourceCode(path);if(matches&&uiSourceCode){var searchResult=new WebInspector.FileBasedSearchResultsPane.SearchResult(uiSourceCode,matches);this._searchResultCallback(searchResult);}
+--callbacksLeft;scheduleSearchInNextFileOrFinish.call(this);}},stopSearch:function()
 {++this._searchId;},createSearchResultsPane:function(searchConfig)
-{return new WebInspector.FileBasedSearchResultsPane(searchConfig);},__proto__:WebInspector.SearchScope.prototype};WebInspector.StyleSheetOutlineDialog=function(view,uiSourceCode)
-{WebInspector.SelectionDialogContentProvider.call(this);this._rules=[];this._view=view;this._uiSourceCode=uiSourceCode;this._requestItems();}
-WebInspector.StyleSheetOutlineDialog.show=function(view,uiSourceCode)
+{return new WebInspector.FileBasedSearchResultsPane(searchConfig);}};WebInspector.StyleSheetOutlineDialog=function(view,uiSourceCode,selectItemCallback)
+{WebInspector.SelectionDialogContentProvider.call(this);this._selectItemCallback=selectItemCallback;this._rules=[];this._view=view;this._uiSourceCode=uiSourceCode;this._requestItems();}
+WebInspector.StyleSheetOutlineDialog.show=function(view,uiSourceCode,selectItemCallback)
 {if(WebInspector.Dialog.currentInstance())
-return null;var delegate=new WebInspector.StyleSheetOutlineDialog(view,uiSourceCode);var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(delegate);WebInspector.Dialog.show(view.element,filteredItemSelectionDialog);}
+return null;var delegate=new WebInspector.StyleSheetOutlineDialog(view,uiSourceCode,selectItemCallback);var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(delegate);WebInspector.Dialog.show(view.element,filteredItemSelectionDialog);}
 WebInspector.StyleSheetOutlineDialog.prototype={itemCount:function()
 {return this._rules.length;},itemKeyAt:function(itemIndex)
 {return this._rules[itemIndex].selectorText;},itemScoreAt:function(itemIndex,query)
@@ -847,7 +925,7 @@
 {if(!styleSheet)
 return;this._rules=styleSheet.rules;this.refresh();}},selectItem:function(itemIndex,promptValue)
 {var rule=this._rules[itemIndex];var lineNumber=rule.rawLocation.lineNumber;if(!isNaN(lineNumber)&&lineNumber>=0)
-this._view.highlightPosition(lineNumber,rule.rawLocation.columnNumber);this._view.focus();},__proto__:WebInspector.SelectionDialogContentProvider.prototype};WebInspector.TabbedEditorContainerDelegate=function(){}
+this._selectItemCallback(lineNumber,rule.rawLocation.columnNumber);},__proto__:WebInspector.SelectionDialogContentProvider.prototype};WebInspector.TabbedEditorContainerDelegate=function(){}
 WebInspector.TabbedEditorContainerDelegate.prototype={viewForFile:function(uiSourceCode){}}
 WebInspector.TabbedEditorContainer=function(delegate,settingName,placeholderText)
 {WebInspector.Object.call(this);this._delegate=delegate;this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.setPlaceholderText(placeholderText);this._tabbedPane.setTabDelegate(new WebInspector.EditorContainerTabDelegate(this));this._tabbedPane.closeableTabs=true;this._tabbedPane.element.id="sources-editor-container-tabbed-pane";this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabClosed,this._tabClosed,this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabIds=new Map();this._files={};this._previouslyViewedFilesSetting=WebInspector.settings.createSetting(settingName,[]);this._history=WebInspector.TabbedEditorContainer.History.fromObject(this._previouslyViewedFilesSetting.get());}
@@ -869,7 +947,7 @@
 {var range=(event.data);this._history.updateSelectionRange(this._currentFile.uri(),range);this._history.save(this._previouslyViewedFilesSetting);},_innerShowFile:function(uiSourceCode,userGesture)
 {if(this._currentFile===uiSourceCode)
 return;this._removeScrollAndSelectionListeners();this._currentFile=uiSourceCode;var tabId=this._tabIds.get(uiSourceCode)||this._appendFileTab(uiSourceCode,userGesture);this._tabbedPane.selectTab(tabId,userGesture);if(userGesture)
-this._editorSelectedByUserAction();this._currentView=this.visibleView;this._addScrollAndSelectionListeners();this.dispatchEventToListeners(WebInspector.TabbedEditorContainer.Events.EditorSelected,this._currentFile);},_titleForFile:function(uiSourceCode)
+this._editorSelectedByUserAction();this._currentView=this.visibleView;this._addScrollAndSelectionListeners();var eventData={currentFile:this._currentFile,userGesture:userGesture};this.dispatchEventToListeners(WebInspector.TabbedEditorContainer.Events.EditorSelected,eventData);},_titleForFile:function(uiSourceCode)
 {var maxDisplayNameLength=30;var title=uiSourceCode.displayName(true).trimMiddle(maxDisplayNameLength);if(uiSourceCode.isDirty()||uiSourceCode.hasUnsavedCommittedChanges())
 title+="*";return title;},_maybeCloseTab:function(id,nextTabId)
 {var uiSourceCode=this._files[id];var shouldPrompt=uiSourceCode.isDirty()&&uiSourceCode.project().canSetFileContent();if(!shouldPrompt||confirm(WebInspector.UIString("Are you sure you want to close unsaved file: %s?",uiSourceCode.name()))){uiSourceCode.resetWorkingCopy();if(nextTabId)
@@ -921,10 +999,10 @@
 WebInspector.TabbedEditorContainer.HistoryItem=function(url,selectionRange,scrollLineNumber)
 {this.url=url;this._isSerializable=url.length<WebInspector.TabbedEditorContainer.HistoryItem.serializableUrlLengthLimit;this.selectionRange=selectionRange;this.scrollLineNumber=scrollLineNumber;}
 WebInspector.TabbedEditorContainer.HistoryItem.serializableUrlLengthLimit=4096;WebInspector.TabbedEditorContainer.HistoryItem.fromObject=function(serializedHistoryItem)
-{var selectionRange=serializedHistoryItem.selectionRange?WebInspector.TextRange.fromObject(serializedHistoryItem.selectionRange):null;return new WebInspector.TabbedEditorContainer.HistoryItem(serializedHistoryItem.url,selectionRange,serializedHistoryItem.scrollLineNumber);}
+{var selectionRange=serializedHistoryItem.selectionRange?WebInspector.TextRange.fromObject(serializedHistoryItem.selectionRange):undefined;return new WebInspector.TabbedEditorContainer.HistoryItem(serializedHistoryItem.url,selectionRange,serializedHistoryItem.scrollLineNumber);}
 WebInspector.TabbedEditorContainer.HistoryItem.prototype={serializeToObject:function()
 {if(!this._isSerializable)
-return null;var serializedHistoryItem={};serializedHistoryItem.url=this.url;serializedHistoryItem.selectionRange=this.selectionRange;serializedHistoryItem.scrollLineNumber=this.scrollLineNumber;return serializedHistoryItem;},__proto__:WebInspector.Object.prototype}
+return null;var serializedHistoryItem={};serializedHistoryItem.url=this.url;serializedHistoryItem.selectionRange=this.selectionRange;serializedHistoryItem.scrollLineNumber=this.scrollLineNumber;return serializedHistoryItem;}}
 WebInspector.TabbedEditorContainer.History=function(items)
 {this._items=items;this._rebuildItemIndex();}
 WebInspector.TabbedEditorContainer.History.fromObject=function(serializedHistory)
@@ -950,7 +1028,7 @@
 break;}
 return serializedHistory;},_urls:function()
 {var result=[];for(var i=0;i<this._items.length;++i)
-result.push(this._items[i].url);return result;},__proto__:WebInspector.Object.prototype}
+result.push(this._items[i].url);return result;}}
 WebInspector.EditorContainerTabDelegate=function(editorContainer)
 {this._editorContainer=editorContainer;}
 WebInspector.EditorContainerTabDelegate.prototype={closeTabs:function(tabbedPane,ids)
@@ -966,7 +1044,7 @@
 {event.consume();this.expand();this.section.addNewExpressionAndEdit();},_refreshButtonClicked:function(event)
 {event.consume();this.refreshExpressions();},__proto__:WebInspector.SidebarPane.prototype}
 WebInspector.WatchExpressionsSection=function()
-{this._watchObjectGroupId="watch-group";WebInspector.ObjectPropertiesSection.call(this,WebInspector.RemoteObject.fromPrimitiveValue(""));this.treeElementConstructor=WebInspector.WatchedPropertyTreeElement;this._expandedExpressions={};this._expandedProperties={};this.emptyElement=document.createElement("div");this.emptyElement.className="info";this.emptyElement.textContent=WebInspector.UIString("No Watch Expressions");this.watchExpressions=WebInspector.settings.watchExpressions.get();this.headerElement.className="hidden";this.editable=true;this.expanded=true;this.propertiesElement.addStyleClass("watch-expressions");this.element.addEventListener("mousemove",this._mouseMove.bind(this),true);this.element.addEventListener("mouseout",this._mouseOut.bind(this),true);this.element.addEventListener("dblclick",this._sectionDoubleClick.bind(this),false);this.emptyElement.addEventListener("contextmenu",this._emptyElementContextMenu.bind(this),false);}
+{this._watchObjectGroupId="watch-group";WebInspector.ObjectPropertiesSection.call(this,WebInspector.RemoteObject.fromPrimitiveValue(""));this.treeElementConstructor=WebInspector.WatchedPropertyTreeElement;this._expandedExpressions={};this._expandedProperties={};this.emptyElement=document.createElement("div");this.emptyElement.className="info";this.emptyElement.textContent=WebInspector.UIString("No Watch Expressions");this.watchExpressions=WebInspector.settings.watchExpressions.get();this.headerElement.className="hidden";this.editable=true;this.expanded=true;this.propertiesElement.classList.add("watch-expressions");this.element.addEventListener("mousemove",this._mouseMove.bind(this),true);this.element.addEventListener("mouseout",this._mouseOut.bind(this),true);this.element.addEventListener("dblclick",this._sectionDoubleClick.bind(this),false);this.emptyElement.addEventListener("contextmenu",this._emptyElementContextMenu.bind(this),false);}
 WebInspector.WatchExpressionsSection.NewWatchExpression="\xA0";WebInspector.WatchExpressionsSection.prototype={update:function(e)
 {if(e)
 e.consume();function appendResult(expression,watchIndex,result,wasThrown)
@@ -993,20 +1071,21 @@
 this.watchExpressions[element.property.watchIndex]=value;this.saveExpressions();this.update();},_deleteAllExpressions:function()
 {this.watchExpressions=[];this.saveExpressions();this.update();},findAddedTreeElement:function()
 {var children=this.propertiesTreeOutline.children;for(var i=0;i<children.length;++i){if(children[i].property.name===WebInspector.WatchExpressionsSection.NewWatchExpression)
-return children[i];}},saveExpressions:function()
+return children[i];}
+return null;},saveExpressions:function()
 {var toSave=[];for(var i=0;i<this.watchExpressions.length;i++)
 if(this.watchExpressions[i])
 toSave.push(this.watchExpressions[i]);WebInspector.settings.watchExpressions.set(toSave);return toSave.length;},_mouseMove:function(e)
 {if(this.propertiesElement.firstChild)
 this._updateHoveredElement(e.pageY);},_mouseOut:function()
-{if(this._hoveredElement){this._hoveredElement.removeStyleClass("hovered");delete this._hoveredElement;}
+{if(this._hoveredElement){this._hoveredElement.classList.remove("hovered");delete this._hoveredElement;}
 delete this._lastMouseMovePageY;},_updateHoveredElement:function(pageY)
 {var candidateElement=this.propertiesElement.firstChild;while(true){var next=candidateElement.nextSibling;while(next&&!next.clientHeight)
 next=next.nextSibling;if(!next||next.totalOffsetTop()>pageY)
 break;candidateElement=next;}
 if(this._hoveredElement!==candidateElement){if(this._hoveredElement)
-this._hoveredElement.removeStyleClass("hovered");if(candidateElement)
-candidateElement.addStyleClass("hovered");this._hoveredElement=candidateElement;}
+this._hoveredElement.classList.remove("hovered");if(candidateElement)
+candidateElement.classList.add("hovered");this._hoveredElement=candidateElement;}
 this._lastMouseMovePageY=pageY;},_emptyElementContextMenu:function(event)
 {var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add watch expression":"Add Watch Expression"),this.addNewExpressionAndEdit.bind(this));contextMenu.show();},__proto__:WebInspector.ObjectPropertiesSection.prototype}
 WebInspector.WatchExpressionsSection.CompareProperties=function(propertyA,propertyB)
@@ -1022,8 +1101,8 @@
 {WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this);if(this.treeOutline.section._expandedExpressions[this._expression()])
 this.expanded=true;},_expression:function()
 {return this.property.name;},update:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.update.call(this);if(this.property.wasThrown){this.valueElement.textContent=WebInspector.UIString("<not available>");this.listItemElement.addStyleClass("dimmed");}else
-this.listItemElement.removeStyleClass("dimmed");var deleteButton=document.createElement("input");deleteButton.type="button";deleteButton.title=WebInspector.UIString("Delete watch expression.");deleteButton.addStyleClass("enabled-button");deleteButton.addStyleClass("delete-button");deleteButton.addEventListener("click",this._deleteButtonClicked.bind(this),false);this.listItemElement.addEventListener("contextmenu",this._contextMenu.bind(this),false);this.listItemElement.insertBefore(deleteButton,this.listItemElement.firstChild);},populateContextMenu:function(contextMenu)
+{WebInspector.ObjectPropertyTreeElement.prototype.update.call(this);if(this.property.wasThrown){this.valueElement.textContent=WebInspector.UIString("<not available>");this.listItemElement.classList.add("dimmed");}else
+this.listItemElement.classList.remove("dimmed");var deleteButton=document.createElement("input");deleteButton.type="button";deleteButton.title=WebInspector.UIString("Delete watch expression.");deleteButton.classList.add("enabled-button");deleteButton.classList.add("delete-button");deleteButton.addEventListener("click",this._deleteButtonClicked.bind(this),false);this.listItemElement.addEventListener("contextmenu",this._contextMenu.bind(this),false);this.listItemElement.insertBefore(deleteButton,this.listItemElement.firstChild);},populateContextMenu:function(contextMenu)
 {if(!this.isEditing()){contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add watch expression":"Add Watch Expression"),this.treeOutline.section.addNewExpressionAndEdit.bind(this.treeOutline.section));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Delete watch expression":"Delete Watch Expression"),this._deleteButtonClicked.bind(this));}
 if(this.treeOutline.section.watchExpressions.length>1)
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Delete all watch expressions":"Delete All Watch Expressions"),this._deleteAllButtonClicked.bind(this));},_contextMenu:function(event)
@@ -1045,8 +1124,8 @@
 {WebInspector.ObjectPropertyTreeElement.prototype.oncollapse.call(this);delete this.treeOutline.section._expandedProperties[this.propertyPath()];},__proto__:WebInspector.ObjectPropertyTreeElement.prototype};WebInspector.Worker=function(id,url,shared)
 {this.id=id;this.url=url;this.shared=shared;}
 WebInspector.WorkersSidebarPane=function(workerManager)
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Workers"));this._enableWorkersCheckbox=new WebInspector.Checkbox(WebInspector.UIString("Pause on start"),"sidebar-label",WebInspector.UIString("Automatically attach to new workers and pause them. Enabling this option will force opening inspector for all new workers."));this._enableWorkersCheckbox.element.id="pause-workers-checkbox";this.bodyElement.appendChild(this._enableWorkersCheckbox.element);this._enableWorkersCheckbox.addEventListener(this._autoattachToWorkersClicked.bind(this));this._enableWorkersCheckbox.checked=false;var note=this.bodyElement.createChild("div");note.id="shared-workers-list";note.addStyleClass("sidebar-label")
-note.textContent=WebInspector.UIString("Shared workers can be inspected in the Task Manager");var separator=this.bodyElement.createChild("div","sidebar-separator");separator.textContent=WebInspector.UIString("Dedicated worker inspectors");this._workerListElement=document.createElement("ol");this._workerListElement.tabIndex=0;this._workerListElement.addStyleClass("properties-tree");this._workerListElement.addStyleClass("sidebar-label");this.bodyElement.appendChild(this._workerListElement);this._idToWorkerItem={};this._workerManager=workerManager;workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerAdded,this._workerAdded,this);workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerRemoved,this._workerRemoved,this);workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkersCleared,this._workersCleared,this);}
+{WebInspector.SidebarPane.call(this,WebInspector.UIString("Workers"));this._enableWorkersCheckbox=new WebInspector.Checkbox(WebInspector.UIString("Pause on start"),"sidebar-label",WebInspector.UIString("Automatically attach to new workers and pause them. Enabling this option will force opening inspector for all new workers."));this._enableWorkersCheckbox.element.id="pause-workers-checkbox";this.bodyElement.appendChild(this._enableWorkersCheckbox.element);this._enableWorkersCheckbox.addEventListener(this._autoattachToWorkersClicked.bind(this));this._enableWorkersCheckbox.checked=false;var note=this.bodyElement.createChild("div");note.id="shared-workers-list";note.classList.add("sidebar-label")
+note.textContent=WebInspector.UIString("Shared workers can be inspected in the Task Manager");var separator=this.bodyElement.createChild("div","sidebar-separator");separator.textContent=WebInspector.UIString("Dedicated worker inspectors");this._workerListElement=document.createElement("ol");this._workerListElement.tabIndex=0;this._workerListElement.classList.add("properties-tree");this._workerListElement.classList.add("sidebar-label");this.bodyElement.appendChild(this._workerListElement);this._idToWorkerItem={};this._workerManager=workerManager;workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerAdded,this._workerAdded,this);workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerRemoved,this._workerRemoved,this);workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkersCleared,this._workersCleared,this);}
 WebInspector.WorkersSidebarPane.prototype={_workerAdded:function(event)
 {this._addWorker(event.data.workerId,event.data.url,event.data.inspectorConnected);},_workerRemoved:function(event)
 {this._idToWorkerItem[event.data].remove();delete this._idToWorkerItem[event.data];},_workersCleared:function(event)
@@ -1055,34 +1134,45 @@
 {event.preventDefault();this._workerManager.openWorkerInspector(workerId);},_autoattachToWorkersClicked:function(event)
 {WorkerAgent.setAutoconnectToWorkers(this._enableWorkersCheckbox.checked);},__proto__:WebInspector.SidebarPane.prototype};WebInspector.SourcesPanel=function(workspaceForTest)
 {WebInspector.Panel.call(this,"sources");this.registerRequiredCSS("sourcesPanel.css");this.registerRequiredCSS("textPrompt.css");WebInspector.settings.navigatorWasOnceHidden=WebInspector.settings.createSetting("navigatorWasOnceHidden",false);WebInspector.settings.debuggerSidebarHidden=WebInspector.settings.createSetting("debuggerSidebarHidden",false);WebInspector.settings.showEditorInDrawer=WebInspector.settings.createSetting("showEditorInDrawer",true);this._workspace=workspaceForTest||WebInspector.workspace;function viewGetter()
-{return this.visibleView;}
-WebInspector.GoToLineDialog.install(this,viewGetter.bind(this));var helpSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Sources Panel"));this.debugToolbar=this._createDebugToolbar();const initialDebugSidebarWidth=225;const minimumDebugSidebarWidthPercent=0.5;this.createSidebarView(this.element,WebInspector.SidebarView.SidebarPosition.End,initialDebugSidebarWidth);this.splitView.element.id="scripts-split-view";this.splitView.setSidebarElementConstraints(Preferences.minScriptsSidebarWidth);this.splitView.setMainElementConstraints(minimumDebugSidebarWidthPercent);const initialNavigatorWidth=225;const minimumViewsContainerWidthPercent=0.5;this.editorView=new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start,"scriptsPanelNavigatorSidebarWidth",initialNavigatorWidth);this.editorView.element.id="scripts-editor-split-view";this.editorView.element.tabIndex=0;this.editorView.setSidebarElementConstraints(Preferences.minScriptsSidebarWidth);this.editorView.setMainElementConstraints(minimumViewsContainerWidthPercent);this.editorView.show(this.splitView.mainElement);this._navigator=new WebInspector.SourcesNavigator();this._navigator.view.show(this.editorView.sidebarElement);var tabbedEditorPlaceholderText=WebInspector.isMac()?WebInspector.UIString("Hit Cmd+O to open a file"):WebInspector.UIString("Hit Ctrl+O to open a file");this.editorView.mainElement.addStyleClass("vbox");this.editorView.sidebarElement.addStyleClass("vbox");this.sourcesView=new WebInspector.SourcesView();this._editorContainer=new WebInspector.TabbedEditorContainer(this,"previouslyViewedFiles",tabbedEditorPlaceholderText);this._editorContainer.show(this.sourcesView.element);this._editorFooterElement=this.sourcesView.element.createChild("div","inspector-footer status-bar hidden");this._navigatorController=new WebInspector.NavigatorOverlayController(this.editorView,this._navigator.view,this._editorContainer.view);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.SourceSelected,this._sourceSelected,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemSearchStarted,this._itemSearchStarted,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemCreationRequested,this._itemCreationRequested,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._editorContainer.addEventListener(WebInspector.TabbedEditorContainer.Events.EditorSelected,this._editorSelected,this);this._editorContainer.addEventListener(WebInspector.TabbedEditorContainer.Events.EditorClosed,this._editorClosed,this);this._debugSidebarResizeWidgetElement=this.splitView.mainElement.createChild("div","resizer-widget");this._debugSidebarResizeWidgetElement.id="scripts-debug-sidebar-resizer-widget";this.splitView.installResizer(this._debugSidebarResizeWidgetElement);this.sidebarPanes={};this.sidebarPanes.watchExpressions=new WebInspector.WatchExpressionsSidebarPane();this.sidebarPanes.callstack=new WebInspector.CallStackSidebarPane();this.sidebarPanes.callstack.addEventListener(WebInspector.CallStackSidebarPane.Events.CallFrameSelected,this._callFrameSelectedInSidebar.bind(this));this.sidebarPanes.scopechain=new WebInspector.ScopeChainSidebarPane();this.sidebarPanes.jsBreakpoints=new WebInspector.JavaScriptBreakpointsSidebarPane(WebInspector.breakpointManager,this._showSourceLocation.bind(this));this.sidebarPanes.domBreakpoints=WebInspector.domBreakpointsSidebarPane.createProxy(this);this.sidebarPanes.xhrBreakpoints=new WebInspector.XHRBreakpointsSidebarPane();this.sidebarPanes.eventListenerBreakpoints=new WebInspector.EventListenerBreakpointsSidebarPane();if(Capabilities.canInspectWorkers&&!WebInspector.WorkerManager.isWorkerFrontend()){WorkerAgent.enable();this.sidebarPanes.workerList=new WebInspector.WorkersSidebarPane(WebInspector.workerManager);}
-this.sidebarPanes.callstack.registerShortcuts(this.registerShortcuts.bind(this));this.registerShortcuts(WebInspector.SourcesPanelDescriptor.ShortcutKeys.GoToMember,this._showOutlineDialog.bind(this));this.registerShortcuts(WebInspector.SourcesPanelDescriptor.ShortcutKeys.ToggleBreakpoint,this._toggleBreakpoint.bind(this));this._extensionSidebarPanes=[];this._toggleFormatSourceButton=new WebInspector.StatusBarButton(WebInspector.UIString("Pretty print"),"sources-toggle-pretty-print-status-bar-item");this._toggleFormatSourceButton.toggled=false;this._toggleFormatSourceButton.addEventListener("click",this._toggleFormatSource,this);this._scriptViewStatusBarItemsContainer=document.createElement("div");this._scriptViewStatusBarItemsContainer.className="inline-block";this._scriptViewStatusBarTextContainer=document.createElement("div");this._scriptViewStatusBarTextContainer.className="inline-block";var statusBarContainerElement=this.sourcesView.element.createChild("div","sources-status-bar");statusBarContainerElement.appendChild(this._toggleFormatSourceButton.element);statusBarContainerElement.appendChild(this._scriptViewStatusBarItemsContainer);statusBarContainerElement.appendChild(this._scriptViewStatusBarTextContainer);this._installDebuggerSidebarController();WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._dockSideChanged.bind(this));WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(this._dockSideChanged.bind(this));this._dockSideChanged();this._sourceFramesByUISourceCode=new Map();this._updateDebuggerButtons();this._pauseOnExceptionStateChanged();if(WebInspector.debuggerModel.isPaused())
-this._showDebuggerPausedDetails();WebInspector.settings.pauseOnExceptionStateString.addChangeListener(this._pauseOnExceptionStateChanged,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled,this._debuggerWasEnabled,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasDisabled,this._debuggerWasDisabled,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPaused,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerResumed,this._debuggerResumed,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.CallFrameSelected,this._callFrameSelected,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ConsoleCommandEvaluatedInSelectedCallFrame,this._consoleCommandEvaluatedInSelectedCallFrame,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointsActiveStateChanged,this._breakpointsActiveStateChanged,this);WebInspector.startBatchUpdate();this._workspace.uiSourceCodes().forEach(this._addUISourceCode.bind(this));WebInspector.endBatchUpdate();this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved,this._uiSourceCodeRemoved,this);this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._projectWillReset.bind(this),this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);WebInspector.advancedSearchController.registerSearchScope(new WebInspector.SourcesSearchScope(this._workspace));this._boundOnKeyUp=this._onKeyUp.bind(this);this._boundOnKeyDown=this._onKeyDown.bind(this);}
-WebInspector.SourcesPanel.prototype={defaultFocusedElement:function()
+{return this;}
+WebInspector.GoToLineDialog.install(this,viewGetter.bind(this));var helpSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Sources Panel"));this.debugToolbar=this._createDebugToolbar();const initialDebugSidebarWidth=225;const minimumDebugSidebarWidthPercent=0.5;this.createSidebarView(this.element,WebInspector.SidebarView.SidebarPosition.End,initialDebugSidebarWidth);this.splitView.element.id="scripts-split-view";this.splitView.setSidebarElementConstraints(Preferences.minScriptsSidebarWidth);this.splitView.setMainElementConstraints(minimumDebugSidebarWidthPercent);const initialNavigatorWidth=225;const minimumViewsContainerWidthPercent=0.5;this.editorView=new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start,"scriptsPanelNavigatorSidebarWidth",initialNavigatorWidth);this.editorView.element.id="scripts-editor-split-view";this.editorView.element.tabIndex=0;this.editorView.setSidebarElementConstraints(Preferences.minScriptsSidebarWidth);this.editorView.setMainElementConstraints(minimumViewsContainerWidthPercent);this.splitView.setMainView(this.editorView);this._navigator=new WebInspector.SourcesNavigator();this.editorView.setSidebarView(this._navigator.view);var tabbedEditorPlaceholderText=WebInspector.isMac()?WebInspector.UIString("Hit Cmd+O to open a file"):WebInspector.UIString("Hit Ctrl+O to open a file");this.editorView.mainElement().classList.add("vbox");this.editorView.sidebarElement().classList.add("vbox");this.sourcesView=new WebInspector.SourcesView();this._searchableView=new WebInspector.SearchableView(this);this._searchableView.setMinimalSearchQuerySize(0);this._searchableView.show(this.sourcesView.element);this._editorContainer=new WebInspector.TabbedEditorContainer(this,"previouslyViewedFiles",tabbedEditorPlaceholderText);this._editorContainer.show(this._searchableView.element);this._navigatorController=new WebInspector.NavigatorOverlayController(this.editorView,this._navigator.view,this._editorContainer.view);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.SourceSelected,this._sourceSelected,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemSearchStarted,this._itemSearchStarted,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemCreationRequested,this._itemCreationRequested,this);this._navigator.addEventListener(WebInspector.SourcesNavigator.Events.ItemRenamingRequested,this._itemRenamingRequested,this);this._editorContainer.addEventListener(WebInspector.TabbedEditorContainer.Events.EditorSelected,this._editorSelected,this);this._editorContainer.addEventListener(WebInspector.TabbedEditorContainer.Events.EditorClosed,this._editorClosed,this);this._debugSidebarResizeWidgetElement=document.createElementWithClass("div","resizer-widget");this._debugSidebarResizeWidgetElement.id="scripts-debug-sidebar-resizer-widget";this.splitView.installResizer(this._debugSidebarResizeWidgetElement);this.sidebarPanes={};this.sidebarPanes.watchExpressions=new WebInspector.WatchExpressionsSidebarPane();this.sidebarPanes.callstack=new WebInspector.CallStackSidebarPane();this.sidebarPanes.callstack.addEventListener(WebInspector.CallStackSidebarPane.Events.CallFrameSelected,this._callFrameSelectedInSidebar.bind(this));this.sidebarPanes.callstack.addEventListener(WebInspector.CallStackSidebarPane.Events.CallFrameRestarted,this._callFrameRestartedInSidebar.bind(this));this.sidebarPanes.scopechain=new WebInspector.ScopeChainSidebarPane();this.sidebarPanes.jsBreakpoints=new WebInspector.JavaScriptBreakpointsSidebarPane(WebInspector.breakpointManager,this._showSourceLocation.bind(this));this.sidebarPanes.domBreakpoints=WebInspector.domBreakpointsSidebarPane.createProxy(this);this.sidebarPanes.xhrBreakpoints=new WebInspector.XHRBreakpointsSidebarPane();this.sidebarPanes.eventListenerBreakpoints=new WebInspector.EventListenerBreakpointsSidebarPane();if(Capabilities.canInspectWorkers&&!WebInspector.WorkerManager.isWorkerFrontend()){WorkerAgent.enable();this.sidebarPanes.workerList=new WebInspector.WorkersSidebarPane(WebInspector.workerManager);}
+function currentSourceFrame()
+{var uiSourceCode=this.currentUISourceCode();if(!uiSourceCode)
+return null;return this._sourceFramesByUISourceCode.get(uiSourceCode);}
+this._historyManager=new WebInspector.EditingLocationHistoryManager(this,currentSourceFrame.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.JumpToPreviousLocation,this._onJumpToPreviousLocation.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.JumpToNextLocation,this._onJumpToNextLocation.bind(this));this.sidebarPanes.callstack.registerShortcuts(this.registerShortcuts.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.GoToMember,this._showOutlineDialog.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.ToggleBreakpoint,this._toggleBreakpoint.bind(this));this._extensionSidebarPanes=[];this._toggleFormatSourceButton=new WebInspector.StatusBarButton(WebInspector.UIString("Pretty print"),"sources-toggle-pretty-print-status-bar-item");this._toggleFormatSourceButton.toggled=false;this._toggleFormatSourceButton.addEventListener("click",this._toggleFormatSource,this);this._scriptViewStatusBarItemsContainer=document.createElement("div");this._scriptViewStatusBarItemsContainer.className="inline-block";this._scriptViewStatusBarTextContainer=document.createElement("div");this._scriptViewStatusBarTextContainer.className="inline-block";this._statusBarContainerElement=this.sourcesView.element.createChild("div","sources-status-bar");this._statusBarContainerElement.appendChild(this._toggleFormatSourceButton.element);this._statusBarContainerElement.appendChild(this._scriptViewStatusBarItemsContainer);this._statusBarContainerElement.appendChild(this._scriptViewStatusBarTextContainer);this._installDebuggerSidebarController();WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._dockSideChanged.bind(this));WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(this._dockSideChanged.bind(this));this._dockSideChanged();this._sourceFramesByUISourceCode=new Map();this._updateDebuggerButtons();this._pauseOnExceptionStateChanged();if(WebInspector.debuggerModel.isPaused())
+this._showDebuggerPausedDetails();WebInspector.settings.pauseOnExceptionStateString.addChangeListener(this._pauseOnExceptionStateChanged,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled,this._debuggerWasEnabled,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasDisabled,this._debuggerWasDisabled,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPaused,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerResumed,this._debuggerResumed,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.CallFrameSelected,this._callFrameSelected,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ConsoleCommandEvaluatedInSelectedCallFrame,this._consoleCommandEvaluatedInSelectedCallFrame,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointsActiveStateChanged,this._breakpointsActiveStateChanged,this);WebInspector.startBatchUpdate();this._workspace.uiSourceCodes().forEach(this._addUISourceCode.bind(this));WebInspector.endBatchUpdate();this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved,this._uiSourceCodeRemoved,this);this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._projectWillReset.bind(this),this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);this._boundOnKeyUp=this._onKeyUp.bind(this);this._boundOnKeyDown=this._onKeyDown.bind(this);function handleBeforeUnload(event)
+{if(event.returnValue)
+return;var unsavedSourceCodes=WebInspector.workspace.unsavedSourceCodes();if(!unsavedSourceCodes.length)
+return;event.returnValue=WebInspector.UIString("DevTools have unsaved changes that will be permanently lost.");WebInspector.showPanel("sources");for(var i=0;i<unsavedSourceCodes.length;++i)
+WebInspector.panels.sources.showUISourceCode(unsavedSourceCodes[i]);}
+window.addEventListener("beforeunload",handleBeforeUnload.bind(this),true);}
+WebInspector.SourcesPanel.PauseOnExceptionsStates=[WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions,WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnUncaughtExceptions,WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnAllExceptions];WebInspector.SourcesPanel.prototype={_onJumpToPreviousLocation:function(event)
+{this._historyManager.rollback();return true;},_onJumpToNextLocation:function(event)
+{this._historyManager.rollover();return true;},defaultFocusedElement:function()
 {return this._editorContainer.view.defaultFocusedElement()||this._navigator.view.defaultFocusedElement();},get paused()
 {return this._paused;},wasShown:function()
-{WebInspector.inspectorView.closeViewInDrawer("editor");this.sourcesView.show(this.editorView.mainElement);WebInspector.Panel.prototype.wasShown.call(this);this._navigatorController.wasShown();this.element.addEventListener("keydown",this._boundOnKeyDown,false);this.element.addEventListener("keyup",this._boundOnKeyUp,false);},willHide:function()
-{this.element.removeEventListener("keydown",this._boundOnKeyDown,false);this.element.removeEventListener("keyup",this._boundOnKeyUp,false);WebInspector.Panel.prototype.willHide.call(this);},_uiSourceCodeAdded:function(event)
+{WebInspector.inspectorView.closeViewInDrawer("editor");this.editorView.setMainView(this.sourcesView);WebInspector.Panel.prototype.wasShown.call(this);this._navigatorController.wasShown();this.element.addEventListener("keydown",this._boundOnKeyDown,false);this.element.addEventListener("keyup",this._boundOnKeyUp,false);},willHide:function()
+{this.element.removeEventListener("keydown",this._boundOnKeyDown,false);this.element.removeEventListener("keyup",this._boundOnKeyUp,false);WebInspector.Panel.prototype.willHide.call(this);},searchableView:function()
+{return this._searchableView;},_uiSourceCodeAdded:function(event)
 {var uiSourceCode=(event.data);this._addUISourceCode(uiSourceCode);},_addUISourceCode:function(uiSourceCode)
 {if(this._toggleFormatSourceButton.toggled)
 uiSourceCode.setFormatted(true);if(uiSourceCode.project().isServiceProject())
 return;this._navigator.addUISourceCode(uiSourceCode);this._editorContainer.addUISourceCode(uiSourceCode);var currentUISourceCode=this._currentUISourceCode;if(currentUISourceCode&&currentUISourceCode.project().isServiceProject()&&currentUISourceCode!==uiSourceCode&&currentUISourceCode.url===uiSourceCode.url){this._showFile(uiSourceCode);this._editorContainer.removeUISourceCode(currentUISourceCode);}},_uiSourceCodeRemoved:function(event)
 {var uiSourceCode=(event.data);this._removeUISourceCodes([uiSourceCode]);},_removeUISourceCodes:function(uiSourceCodes)
-{for(var i=0;i<uiSourceCodes.length;++i){this._navigator.removeUISourceCode(uiSourceCodes[i]);this._removeSourceFrame(uiSourceCodes[i]);}
+{for(var i=0;i<uiSourceCodes.length;++i){this._navigator.removeUISourceCode(uiSourceCodes[i]);this._removeSourceFrame(uiSourceCodes[i]);this._historyManager.removeHistoryForSourceCode(uiSourceCodes[i]);}
 this._editorContainer.removeUISourceCodes(uiSourceCodes);},_consoleCommandEvaluatedInSelectedCallFrame:function(event)
 {this.sidebarPanes.scopechain.update(WebInspector.debuggerModel.selectedCallFrame());},_debuggerPaused:function()
 {WebInspector.inspectorView.setCurrentPanel(this);this._showDebuggerPausedDetails();},_showDebuggerPausedDetails:function()
-{var details=WebInspector.debuggerModel.debuggerPausedDetails();this._paused=true;this._waitingToPause=false;this._stepping=false;this._updateDebuggerButtons();this.sidebarPanes.callstack.update(details.callFrames);if(details.reason===WebInspector.DebuggerModel.BreakReason.DOM){WebInspector.domBreakpointsSidebarPane.highlightBreakpoint(details.auxData);function didCreateBreakpointHitStatusMessage(element)
+{var details=WebInspector.debuggerModel.debuggerPausedDetails();this._paused=true;this._waitingToPause=false;this._stepping=false;this._updateDebuggerButtons();this.sidebarPanes.callstack.update(details.callFrames,details.asyncStackTrace);function didCreateBreakpointHitStatusMessage(element)
 {this.sidebarPanes.callstack.setStatus(element);}
-WebInspector.domBreakpointsSidebarPane.createBreakpointHitStatusMessage(details.auxData,didCreateBreakpointHitStatusMessage.bind(this));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.EventListener){var eventName=details.auxData.eventName;this.sidebarPanes.eventListenerBreakpoints.highlightBreakpoint(details.auxData.eventName);var eventNameForUI=WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI(eventName,details.auxData);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a \"%s\" Event Listener.",eventNameForUI));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.XHR){this.sidebarPanes.xhrBreakpoints.highlightBreakpoint(details.auxData["breakpointURL"]);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a XMLHttpRequest."));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.Exception)
+function didGetUILocation(uiLocation)
+{var breakpoint=WebInspector.breakpointManager.findBreakpoint(uiLocation.uiSourceCode,uiLocation.lineNumber);if(!breakpoint)
+return;this.sidebarPanes.jsBreakpoints.highlightBreakpoint(breakpoint);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a JavaScript breakpoint."));}
+if(details.reason===WebInspector.DebuggerModel.BreakReason.DOM){WebInspector.domBreakpointsSidebarPane.highlightBreakpoint(details.auxData);WebInspector.domBreakpointsSidebarPane.createBreakpointHitStatusMessage(details.auxData,didCreateBreakpointHitStatusMessage.bind(this));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.EventListener){var eventName=details.auxData.eventName;this.sidebarPanes.eventListenerBreakpoints.highlightBreakpoint(details.auxData.eventName);var eventNameForUI=WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI(eventName,details.auxData);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a \"%s\" Event Listener.",eventNameForUI));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.XHR){this.sidebarPanes.xhrBreakpoints.highlightBreakpoint(details.auxData["breakpointURL"]);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a XMLHttpRequest."));}else if(details.reason===WebInspector.DebuggerModel.BreakReason.Exception)
 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on exception: '%s'.",details.auxData.description));else if(details.reason===WebInspector.DebuggerModel.BreakReason.Assert)
 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on assertion."));else if(details.reason===WebInspector.DebuggerModel.BreakReason.CSPViolation)
 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a script blocked due to Content Security Policy directive: \"%s\".",details.auxData["directiveText"]));else if(details.reason===WebInspector.DebuggerModel.BreakReason.DebugCommand)
-this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a debugged function"));else{function didGetUILocation(uiLocation)
-{var breakpoint=WebInspector.breakpointManager.findBreakpoint(uiLocation.uiSourceCode,uiLocation.lineNumber);if(!breakpoint)
-return;this.sidebarPanes.jsBreakpoints.highlightBreakpoint(breakpoint);this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a JavaScript breakpoint."));}
-if(details.callFrames.length)
+this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a debugged function"));else{if(details.callFrames.length)
 details.callFrames[0].createLiveLocation(didGetUILocation.bind(this));else
 console.warn("ScriptsPanel paused, but callFrames.length is zero.");}
 this._enableDebuggerSidebar(true);this._toggleDebuggerSidebarButton.setEnabled(false);window.focus();InspectorFrontendHost.bringToFront();},_debuggerResumed:function()
@@ -1106,15 +1196,15 @@
 {return this._currentUISourceCode;},showUILocation:function(uiLocation,forceShowInPanel)
 {this._showSourceLocation(uiLocation.uiSourceCode,uiLocation.lineNumber,uiLocation.columnNumber,forceShowInPanel);},_canShowEditorInDrawer:function()
 {return WebInspector.experimentsSettings.showEditorInDrawer.isEnabled()&&WebInspector.settings.showEditorInDrawer.get();},_showSourceLocation:function(uiSourceCode,lineNumber,columnNumber,forceShowInPanel)
-{this._showEditor(forceShowInPanel);var sourceFrame=this._showFile(uiSourceCode);if(typeof lineNumber==="number")
-sourceFrame.highlightPosition(lineNumber,columnNumber);sourceFrame.focus();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.OpenSourceLink,url:uiSourceCode.originURL(),lineNumber:lineNumber});},_showFile:function(uiSourceCode)
+{this._showEditor(forceShowInPanel);this._historyManager.updateCurrentState();var sourceFrame=this._showFile(uiSourceCode);if(typeof lineNumber==="number")
+sourceFrame.highlightPosition(lineNumber,columnNumber);this._historyManager.pushNewState();sourceFrame.focus();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.OpenSourceLink,url:uiSourceCode.originURL(),lineNumber:lineNumber});},_showFile:function(uiSourceCode)
 {var sourceFrame=this._getOrCreateSourceFrame(uiSourceCode);if(this._currentUISourceCode===uiSourceCode)
 return sourceFrame;this._currentUISourceCode=uiSourceCode;if(!uiSourceCode.project().isServiceProject())
 this._navigator.revealUISourceCode(uiSourceCode,true);this._editorContainer.showFile(uiSourceCode);this._updateScriptViewStatusBarItems();if(this._currentUISourceCode.project().type()===WebInspector.projectTypes.Snippets)
-this._runSnippetButton.element.removeStyleClass("hidden");else
-this._runSnippetButton.element.addStyleClass("hidden");return sourceFrame;},_createSourceFrame:function(uiSourceCode)
+this._runSnippetButton.element.classList.remove("hidden");else
+this._runSnippetButton.element.classList.add("hidden");return sourceFrame;},_createSourceFrame:function(uiSourceCode)
 {var sourceFrame;switch(uiSourceCode.contentType()){case WebInspector.resourceTypes.Script:sourceFrame=new WebInspector.JavaScriptSourceFrame(this,uiSourceCode);break;case WebInspector.resourceTypes.Document:sourceFrame=new WebInspector.JavaScriptSourceFrame(this,uiSourceCode);break;case WebInspector.resourceTypes.Stylesheet:sourceFrame=new WebInspector.CSSSourceFrame(uiSourceCode);break;default:sourceFrame=new WebInspector.UISourceCodeFrame(uiSourceCode);break;}
-sourceFrame.setHighlighterType(uiSourceCode.highlighterType());this._sourceFramesByUISourceCode.put(uiSourceCode,sourceFrame);return sourceFrame;},_getOrCreateSourceFrame:function(uiSourceCode)
+sourceFrame.setHighlighterType(uiSourceCode.highlighterType());this._sourceFramesByUISourceCode.put(uiSourceCode,sourceFrame);this._historyManager.trackSourceFrameCursorJumps(sourceFrame);return sourceFrame;},_getOrCreateSourceFrame:function(uiSourceCode)
 {return this._sourceFramesByUISourceCode.get(uiSourceCode)||this._createSourceFrame(uiSourceCode);},_sourceFrameMatchesUISourceCode:function(sourceFrame,uiSourceCode)
 {switch(uiSourceCode.contentType()){case WebInspector.resourceTypes.Script:case WebInspector.resourceTypes.Document:return sourceFrame instanceof WebInspector.JavaScriptSourceFrame;case WebInspector.resourceTypes.Stylesheet:return sourceFrame instanceof WebInspector.CSSSourceFrame;default:return!(sourceFrame instanceof WebInspector.JavaScriptSourceFrame);}},_recreateSourceFrameIfNeeded:function(uiSourceCode)
 {var oldSourceFrame=this._sourceFramesByUISourceCode.get(uiSourceCode);if(!oldSourceFrame)
@@ -1126,33 +1216,49 @@
 this._executionSourceFrame.clearExecutionLine();delete this._executionSourceFrame;},_setExecutionLine:function(uiLocation)
 {var callFrame=WebInspector.debuggerModel.selectedCallFrame()
 var sourceFrame=this._getOrCreateSourceFrame(uiLocation.uiSourceCode);sourceFrame.setExecutionLine(uiLocation.lineNumber,callFrame);this._executionSourceFrame=sourceFrame;},_executionLineChanged:function(uiLocation)
-{this._clearCurrentExecutionLine();this._setExecutionLine(uiLocation);var uiSourceCode=uiLocation.uiSourceCode;var scriptFile=this._currentUISourceCode?this._currentUISourceCode.scriptFile():null;if(this._skipExecutionLineRevealing)
-return;this._skipExecutionLineRevealing=true;var sourceFrame=this._showFile(uiSourceCode);sourceFrame.revealLine(uiLocation.lineNumber);if(sourceFrame.canEditSource())
+{this._historyManager.updateCurrentState();this._clearCurrentExecutionLine();this._setExecutionLine(uiLocation);var uiSourceCode=uiLocation.uiSourceCode;var scriptFile=this._currentUISourceCode?this._currentUISourceCode.scriptFile():null;if(this._skipExecutionLineRevealing)
+return;this._skipExecutionLineRevealing=true;var sourceFrame=this._showFile(uiSourceCode);sourceFrame.revealLine(uiLocation.lineNumber);this._historyManager.pushNewState();if(sourceFrame.canEditSource())
 sourceFrame.setSelection(WebInspector.TextRange.createFromLocation(uiLocation.lineNumber,0));sourceFrame.focus();},_callFrameSelected:function(event)
 {var callFrame=event.data;if(!callFrame)
 return;this.sidebarPanes.scopechain.update(callFrame);this.sidebarPanes.watchExpressions.refreshExpressions();this.sidebarPanes.callstack.setSelectedCallFrame(callFrame);callFrame.createLiveLocation(this._executionLineChanged.bind(this));},_editorClosed:function(event)
-{this._navigatorController.hideNavigatorOverlay();var uiSourceCode=(event.data);if(this._currentUISourceCode===uiSourceCode)
-delete this._currentUISourceCode;this._updateScriptViewStatusBarItems();WebInspector.searchController.resetSearch();},_editorSelected:function(event)
-{var uiSourceCode=(event.data);var sourceFrame=this._showFile(uiSourceCode);this._navigatorController.hideNavigatorOverlay();if(!this._navigatorController.isNavigatorPinned())
-sourceFrame.focus();WebInspector.searchController.resetSearch();},_sourceSelected:function(event)
-{var uiSourceCode=(event.data.uiSourceCode);var sourceFrame=this._showFile(uiSourceCode);this._navigatorController.hideNavigatorOverlay();if(sourceFrame&&(!this._navigatorController.isNavigatorPinned()||event.data.focusSource))
+{this._navigatorController.hideNavigatorOverlay();var uiSourceCode=(event.data);this._historyManager.removeHistoryForSourceCode(uiSourceCode);if(this._currentUISourceCode===uiSourceCode)
+delete this._currentUISourceCode;this._updateScriptViewStatusBarItems();this._searchableView.resetSearch();},_editorSelected:function(event)
+{var uiSourceCode=(event.data.currentFile);var shouldUseHistoryManager=uiSourceCode!==this._currentUISourceCode&&event.data.userGesture;if(shouldUseHistoryManager)
+this._historyManager.updateCurrentState();var sourceFrame=this._showFile(uiSourceCode);if(shouldUseHistoryManager)
+this._historyManager.pushNewState();this._navigatorController.hideNavigatorOverlay();if(!this._navigatorController.isNavigatorPinned())
+sourceFrame.focus();this._searchableView.setReplaceable(!!sourceFrame&&sourceFrame.canEditSource());this._searchableView.resetSearch();},_sourceSelected:function(event)
+{var uiSourceCode=(event.data.uiSourceCode);var shouldUseHistoryManager=uiSourceCode!==this._currentUISourceCode;if(shouldUseHistoryManager)
+this._historyManager.updateCurrentState();var sourceFrame=this._showFile(uiSourceCode);if(shouldUseHistoryManager)
+this._historyManager.pushNewState();this._navigatorController.hideNavigatorOverlay();if(sourceFrame&&(!this._navigatorController.isNavigatorPinned()||event.data.focusSource))
 sourceFrame.focus();},_itemSearchStarted:function(event)
-{var searchText=(event.data);WebInspector.OpenResourceDialog.show(this,this.editorView.mainElement,searchText);},_pauseOnExceptionStateChanged:function()
-{var pauseOnExceptionsState=WebInspector.settings.pauseOnExceptionStateString.get();switch(pauseOnExceptionsState){case WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions:this._pauseOnExceptionButton.title=WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions.");break;case WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnAllExceptions:this._pauseOnExceptionButton.title=WebInspector.UIString("Pause on all exceptions.\nClick to Pause on uncaught exceptions.");break;case WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnUncaughtExceptions:this._pauseOnExceptionButton.title=WebInspector.UIString("Pause on uncaught exceptions.\nClick to Not pause on exceptions.");break;}
-this._pauseOnExceptionButton.state=pauseOnExceptionsState;},_updateDebuggerButtons:function()
+{var searchText=(event.data);WebInspector.OpenResourceDialog.show(this,this.editorView.mainElement(),searchText);},_createPauseOnExceptionOptions:function()
+{this._pauseOnExceptionButton.title=this._pauseOnExceptionStateTitle(this._pauseOnExceptionButton.state);var excludedOption=this._pauseOnExceptionButton.state;var pauseStates=WebInspector.SourcesPanel.PauseOnExceptionsStates.slice(0);var options=[];for(var i=0;i<pauseStates.length;++i){if(pauseStates[i]===excludedOption)
+continue;var button=new WebInspector.StatusBarButton("","scripts-pause-on-exceptions-status-bar-item",3);button.addEventListener("click",this._togglePauseOnExceptions,this);button.state=pauseStates[i];button.title=this._pauseOnExceptionStateTitle(pauseStates[i]);options.push(button);}
+return options;},_pauseOnExceptionStateChanged:function()
+{var state=WebInspector.settings.pauseOnExceptionStateString.get();var nextState;if(state===WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions)
+nextState=WebInspector.settings.lastPauseOnExceptionState.get();else
+nextState=WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions;this._pauseOnExceptionButton.title=this._pauseOnExceptionStateTitle(state,nextState);this._pauseOnExceptionButton.state=state;},_pauseOnExceptionStateTitle:function(state,nextState)
+{var states=WebInspector.DebuggerModel.PauseOnExceptionsState;var stateDescription;if(state===states.DontPauseOnExceptions){stateDescription=WebInspector.UIString("Don't pause on exceptions.");}else if(state===states.PauseOnAllExceptions){stateDescription=WebInspector.UIString("Pause on exceptions, including caught exceptions.");}else if(state===states.PauseOnUncaughtExceptions){stateDescription=WebInspector.UIString("Pause on exceptions.");}else{throw"Unexpected state: "+state;}
+var nextStateDescription;if(nextState===states.DontPauseOnExceptions){nextStateDescription=WebInspector.UIString("Click to Not pause on exceptions.");}else if(nextState===states.PauseOnAllExceptions){nextStateDescription=WebInspector.UIString("Click to Pause on exceptions, including caught exceptions.");}else if(nextState===states.PauseOnUncaughtExceptions){nextStateDescription=WebInspector.UIString("Click to Pause on exceptions.");}
+return nextState?String.sprintf("%s\n%s",stateDescription,nextStateDescription):stateDescription;},_updateDebuggerButtons:function()
 {if(this._paused){this._updateButtonTitle(this._pauseButton,WebInspector.UIString("Resume script execution (%s)."))
 this._pauseButton.state=true;this._pauseButton.setLongClickOptionsEnabled((function(){return[this._longResumeButton]}).bind(this));this._pauseButton.setEnabled(true);this._stepOverButton.setEnabled(true);this._stepIntoButton.setEnabled(true);this._stepOutButton.setEnabled(true);}else{this._updateButtonTitle(this._pauseButton,WebInspector.UIString("Pause script execution (%s)."))
 this._pauseButton.state=false;this._pauseButton.setLongClickOptionsEnabled(null);this._pauseButton.setEnabled(!this._waitingToPause);this._stepOverButton.setEnabled(false);this._stepIntoButton.setEnabled(false);this._stepOutButton.setEnabled(false);}},_clearInterface:function()
-{this.sidebarPanes.callstack.update(null);this.sidebarPanes.scopechain.update(null);this.sidebarPanes.jsBreakpoints.clearBreakpointHighlight();WebInspector.domBreakpointsSidebarPane.clearBreakpointHighlight();this.sidebarPanes.eventListenerBreakpoints.clearBreakpointHighlight();this.sidebarPanes.xhrBreakpoints.clearBreakpointHighlight();this._clearCurrentExecutionLine();this._updateDebuggerButtons();},_togglePauseOnExceptions:function()
-{var nextStateMap={};var stateEnum=WebInspector.DebuggerModel.PauseOnExceptionsState;nextStateMap[stateEnum.DontPauseOnExceptions]=stateEnum.PauseOnAllExceptions;nextStateMap[stateEnum.PauseOnAllExceptions]=stateEnum.PauseOnUncaughtExceptions;nextStateMap[stateEnum.PauseOnUncaughtExceptions]=stateEnum.DontPauseOnExceptions;WebInspector.settings.pauseOnExceptionStateString.set(nextStateMap[this._pauseOnExceptionButton.state]);},_runSnippet:function(event)
+{this.sidebarPanes.callstack.update(null,null);this.sidebarPanes.scopechain.update(null);this.sidebarPanes.jsBreakpoints.clearBreakpointHighlight();WebInspector.domBreakpointsSidebarPane.clearBreakpointHighlight();this.sidebarPanes.eventListenerBreakpoints.clearBreakpointHighlight();this.sidebarPanes.xhrBreakpoints.clearBreakpointHighlight();this._clearCurrentExecutionLine();this._updateDebuggerButtons();},_togglePauseOnExceptions:function(e)
+{var target=(e.target);var state=(target.state);var toggle=!e.data;var stateEnum=WebInspector.DebuggerModel.PauseOnExceptionsState;if(toggle){if(state!==stateEnum.DontPauseOnExceptions)
+state=stateEnum.DontPauseOnExceptions
+else
+state=WebInspector.settings.lastPauseOnExceptionState.get();}
+if(state!==stateEnum.DontPauseOnExceptions)
+WebInspector.settings.lastPauseOnExceptionState.set(state);WebInspector.settings.pauseOnExceptionStateString.set(state);},_runSnippet:function()
 {if(this._currentUISourceCode.project().type()!==WebInspector.projectTypes.Snippets)
-return false;WebInspector.scriptSnippetModel.evaluateScriptSnippet(this._currentUISourceCode);return true;},_togglePause:function(event)
+return false;WebInspector.scriptSnippetModel.evaluateScriptSnippet(this._currentUISourceCode);return true;},_togglePause:function()
 {if(this._paused){delete this._skipExecutionLineRevealing;this._paused=false;this._waitingToPause=false;WebInspector.debuggerModel.resume();}else{this._stepping=false;this._waitingToPause=true;WebInspector.debuggerModel.skipAllPauses(false);DebuggerAgent.pause();}
-this._clearInterface();return true;},_longResume:function(event)
+this._clearInterface();return true;},_longResume:function()
 {if(!this._paused)
-return true;this._paused=false;this._waitingToPause=false;WebInspector.debuggerModel.skipAllPausesUntilReloadOrTimeout(500);WebInspector.debuggerModel.resume();this._clearInterface();return true;},_stepOverClicked:function(event)
+return true;this._paused=false;this._waitingToPause=false;WebInspector.debuggerModel.skipAllPausesUntilReloadOrTimeout(500);WebInspector.debuggerModel.resume();this._clearInterface();return true;},_stepOverClicked:function()
 {if(!this._paused)
-return true;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepOver();return true;},_stepIntoClicked:function(event)
+return true;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepOver();return true;},_stepIntoClicked:function()
 {if(!this._paused)
 return true;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepInto();return true;},_stepIntoSelectionClicked:function(event)
 {if(!this._paused)
@@ -1160,39 +1266,40 @@
 stepIntoMarkup.iterateSelection(event.shiftKey);}
 return true;},doStepIntoSelection:function(rawLocation)
 {if(!this._paused)
-return;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepIntoSelection(rawLocation);},_stepOutClicked:function(event)
+return;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepIntoSelection(rawLocation);},_stepOutClicked:function()
 {if(!this._paused)
 return true;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.stepOut();return true;},_callFrameSelectedInSidebar:function(event)
-{var callFrame=(event.data);delete this._skipExecutionLineRevealing;WebInspector.debuggerModel.setSelectedCallFrame(callFrame);},continueToLocation:function(rawLocation)
+{var callFrame=(event.data);delete this._skipExecutionLineRevealing;WebInspector.debuggerModel.setSelectedCallFrame(callFrame);},_callFrameRestartedInSidebar:function()
+{delete this._skipExecutionLineRevealing;},continueToLocation:function(rawLocation)
 {if(!this._paused)
 return;delete this._skipExecutionLineRevealing;this._paused=false;this._stepping=true;this._clearInterface();WebInspector.debuggerModel.continueToLocation(rawLocation);},_toggleBreakpointsClicked:function(event)
 {WebInspector.debuggerModel.setBreakpointsActive(!WebInspector.debuggerModel.breakpointsActive());},_breakpointsActiveStateChanged:function(event)
-{var active=event.data;this._toggleBreakpointsButton.toggled=!active;if(active){this._toggleBreakpointsButton.title=WebInspector.UIString("Deactivate breakpoints.");WebInspector.inspectorView.element.removeStyleClass("breakpoints-deactivated");this.sidebarPanes.jsBreakpoints.listElement.removeStyleClass("breakpoints-list-deactivated");}else{this._toggleBreakpointsButton.title=WebInspector.UIString("Activate breakpoints.");WebInspector.inspectorView.element.addStyleClass("breakpoints-deactivated");this.sidebarPanes.jsBreakpoints.listElement.addStyleClass("breakpoints-list-deactivated");}},_createDebugToolbar:function()
-{var debugToolbar=document.createElement("div");debugToolbar.className="status-bar";debugToolbar.id="scripts-debug-toolbar";var title,handler;var platformSpecificModifier=WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta;title=WebInspector.UIString("Run snippet (%s).");handler=this._runSnippet.bind(this);this._runSnippetButton=this._createButtonAndRegisterShortcuts("scripts-run-snippet",title,handler,WebInspector.SourcesPanelDescriptor.ShortcutKeys.RunSnippet);debugToolbar.appendChild(this._runSnippetButton.element);this._runSnippetButton.element.addStyleClass("hidden");handler=this._togglePause.bind(this);this._pauseButton=this._createButtonAndRegisterShortcuts("scripts-pause","",handler,WebInspector.SourcesPanelDescriptor.ShortcutKeys.PauseContinue);debugToolbar.appendChild(this._pauseButton.element);title=WebInspector.UIString("Resume with all pauses blocked for 500 ms");this._longResumeButton=new WebInspector.StatusBarButton(title,"scripts-long-resume");this._longResumeButton.addEventListener("click",this._longResume.bind(this),this);title=WebInspector.UIString("Step over next function call (%s).");handler=this._stepOverClicked.bind(this);this._stepOverButton=this._createButtonAndRegisterShortcuts("scripts-step-over",title,handler,WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepOver);debugToolbar.appendChild(this._stepOverButton.element);title=WebInspector.UIString("Step into next function call (%s).");handler=this._stepIntoClicked.bind(this);this._stepIntoButton=this._createButtonAndRegisterShortcuts("scripts-step-into",title,handler,WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepInto);debugToolbar.appendChild(this._stepIntoButton.element);this.registerShortcuts(WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepIntoSelection,this._stepIntoSelectionClicked.bind(this))
-title=WebInspector.UIString("Step out of current function (%s).");handler=this._stepOutClicked.bind(this);this._stepOutButton=this._createButtonAndRegisterShortcuts("scripts-step-out",title,handler,WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepOut);debugToolbar.appendChild(this._stepOutButton.element);this._toggleBreakpointsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Deactivate breakpoints."),"scripts-toggle-breakpoints");this._toggleBreakpointsButton.toggled=false;this._toggleBreakpointsButton.addEventListener("click",this._toggleBreakpointsClicked,this);debugToolbar.appendChild(this._toggleBreakpointsButton.element);this._pauseOnExceptionButton=new WebInspector.StatusBarButton("","scripts-pause-on-exceptions-status-bar-item",3);this._pauseOnExceptionButton.addEventListener("click",this._togglePauseOnExceptions,this);debugToolbar.appendChild(this._pauseOnExceptionButton.element);return debugToolbar;},_updateButtonTitle:function(button,buttonTitle)
+{var active=event.data;this._toggleBreakpointsButton.toggled=!active;if(active){this._toggleBreakpointsButton.title=WebInspector.UIString("Deactivate breakpoints.");this._editorContainer.view.element.classList.remove("breakpoints-deactivated");this.sidebarPanes.jsBreakpoints.listElement.classList.remove("breakpoints-list-deactivated");}else{this._toggleBreakpointsButton.title=WebInspector.UIString("Activate breakpoints.");this._editorContainer.view.element.classList.add("breakpoints-deactivated");this.sidebarPanes.jsBreakpoints.listElement.classList.add("breakpoints-list-deactivated");}},_createDebugToolbar:function()
+{var debugToolbar=document.createElement("div");debugToolbar.className="status-bar";debugToolbar.id="scripts-debug-toolbar";var title,handler;var platformSpecificModifier=WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta;title=WebInspector.UIString("Run snippet (%s).");handler=this._runSnippet.bind(this);this._runSnippetButton=this._createButtonAndRegisterShortcuts("scripts-run-snippet",title,handler,WebInspector.ShortcutsScreen.SourcesPanelShortcuts.RunSnippet);debugToolbar.appendChild(this._runSnippetButton.element);this._runSnippetButton.element.classList.add("hidden");handler=this._togglePause.bind(this);this._pauseButton=this._createButtonAndRegisterShortcuts("scripts-pause","",handler,WebInspector.ShortcutsScreen.SourcesPanelShortcuts.PauseContinue);debugToolbar.appendChild(this._pauseButton.element);title=WebInspector.UIString("Resume with all pauses blocked for 500 ms");this._longResumeButton=new WebInspector.StatusBarButton(title,"scripts-long-resume");this._longResumeButton.addEventListener("click",this._longResume.bind(this),this);title=WebInspector.UIString("Step over next function call (%s).");handler=this._stepOverClicked.bind(this);this._stepOverButton=this._createButtonAndRegisterShortcuts("scripts-step-over",title,handler,WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepOver);debugToolbar.appendChild(this._stepOverButton.element);title=WebInspector.UIString("Step into next function call (%s).");handler=this._stepIntoClicked.bind(this);this._stepIntoButton=this._createButtonAndRegisterShortcuts("scripts-step-into",title,handler,WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepInto);debugToolbar.appendChild(this._stepIntoButton.element);this.registerShortcuts(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepIntoSelection,this._stepIntoSelectionClicked.bind(this))
+title=WebInspector.UIString("Step out of current function (%s).");handler=this._stepOutClicked.bind(this);this._stepOutButton=this._createButtonAndRegisterShortcuts("scripts-step-out",title,handler,WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepOut);debugToolbar.appendChild(this._stepOutButton.element);this._toggleBreakpointsButton=new WebInspector.StatusBarButton(WebInspector.UIString("Deactivate breakpoints."),"scripts-toggle-breakpoints");this._toggleBreakpointsButton.toggled=false;this._toggleBreakpointsButton.addEventListener("click",this._toggleBreakpointsClicked,this);debugToolbar.appendChild(this._toggleBreakpointsButton.element);this._pauseOnExceptionButton=new WebInspector.StatusBarButton("","scripts-pause-on-exceptions-status-bar-item",3);this._pauseOnExceptionButton.addEventListener("click",this._togglePauseOnExceptions,this);this._pauseOnExceptionButton.setLongClickOptionsEnabled(this._createPauseOnExceptionOptions.bind(this));debugToolbar.appendChild(this._pauseOnExceptionButton.element);return debugToolbar;},_updateButtonTitle:function(button,buttonTitle)
 {var hasShortcuts=button.shortcuts&&button.shortcuts.length;if(hasShortcuts)
 button.title=String.vsprintf(buttonTitle,[button.shortcuts[0].name]);else
 button.title=buttonTitle;},_createButtonAndRegisterShortcuts:function(buttonId,buttonTitle,handler,shortcuts)
 {var button=new WebInspector.StatusBarButton(buttonTitle,buttonId);button.element.addEventListener("click",handler,false);button.shortcuts=shortcuts;this._updateButtonTitle(button,buttonTitle);this.registerShortcuts(shortcuts,handler);return button;},searchCanceled:function()
 {if(this._searchView)
 this._searchView.searchCanceled();delete this._searchView;delete this._searchQuery;},performSearch:function(query,shouldJump)
-{WebInspector.searchController.updateSearchMatchesCount(0,this);if(!this.visibleView)
+{this._searchableView.updateSearchMatchesCount(0);if(!this.visibleView)
 return;this._searchView=this.visibleView;this._searchQuery=query;function finishedCallback(view,searchMatches)
 {if(!searchMatches)
-return;WebInspector.searchController.updateSearchMatchesCount(searchMatches,this);}
+return;this._searchableView.updateSearchMatchesCount(searchMatches);}
 function currentMatchChanged(currentMatchIndex)
-{WebInspector.searchController.updateCurrentMatchIndex(currentMatchIndex,this);}
-this._searchView.performSearch(query,shouldJump,finishedCallback.bind(this),currentMatchChanged.bind(this));},minimalSearchQuerySize:function()
-{return 0;},jumpToNextSearchResult:function()
+{this._searchableView.updateCurrentMatchIndex(currentMatchIndex);}
+function searchResultsChanged()
+{this._searchableView.cancelSearch();}
+this._searchView.performSearch(query,shouldJump,finishedCallback.bind(this),currentMatchChanged.bind(this),searchResultsChanged.bind(this));},jumpToNextSearchResult:function()
 {if(!this._searchView)
 return;if(this._searchView!==this.visibleView){this.performSearch(this._searchQuery,true);return;}
-this._searchView.jumpToNextSearchResult();return true;},jumpToPreviousSearchResult:function()
+this._searchView.jumpToNextSearchResult();},jumpToPreviousSearchResult:function()
 {if(!this._searchView)
 return;if(this._searchView!==this.visibleView){this.performSearch(this._searchQuery,true);if(this._searchView)
 this._searchView.jumpToLastSearchResult();return;}
-this._searchView.jumpToPreviousSearchResult();},canSearchAndReplace:function()
-{var view=(this.visibleView);return!!view&&view.canEditSource();},replaceSelectionWith:function(text)
-{var view=(this.visibleView);view.replaceSearchMatchWith(text);},replaceAllWith:function(query,text)
+this._searchView.jumpToPreviousSearchResult();},replaceSelectionWith:function(text)
+{var view=(this.visibleView);view.replaceSelectionWith(text);},replaceAllWith:function(query,text)
 {var view=(this.visibleView);view.replaceAllWith(query,text);},_onKeyDown:function(event)
 {if(event.keyCode!==WebInspector.KeyboardShortcut.Keys.CtrlOrMeta.code)
 return;if(!this._paused||!this._executionSourceFrame)
@@ -1209,17 +1316,19 @@
 return false;if(sourceFrame instanceof WebInspector.JavaScriptSourceFrame){var javaScriptSourceFrame=(sourceFrame);javaScriptSourceFrame.toggleBreakpointOnCurrentLine();return true;}
 return false;},_showOutlineDialog:function(event)
 {var uiSourceCode=this._editorContainer.currentFile();if(!uiSourceCode)
-return false;switch(uiSourceCode.contentType()){case WebInspector.resourceTypes.Document:case WebInspector.resourceTypes.Script:WebInspector.JavaScriptOutlineDialog.show(this.visibleView,uiSourceCode);return true;case WebInspector.resourceTypes.Stylesheet:WebInspector.StyleSheetOutlineDialog.show(this.visibleView,uiSourceCode);return true;}
+return false;switch(uiSourceCode.contentType()){case WebInspector.resourceTypes.Document:case WebInspector.resourceTypes.Script:WebInspector.JavaScriptOutlineDialog.show(this.visibleView,uiSourceCode,this.highlightPosition.bind(this));return true;case WebInspector.resourceTypes.Stylesheet:WebInspector.StyleSheetOutlineDialog.show(this.visibleView,uiSourceCode,this.highlightPosition.bind(this));return true;}
 return false;},_installDebuggerSidebarController:function()
-{this._toggleDebuggerSidebarButton=new WebInspector.StatusBarButton("","right-sidebar-show-hide-button scripts-debugger-show-hide-button",3);this._toggleDebuggerSidebarButton.addEventListener("click",clickHandler,this);this.editorView.element.appendChild(this._toggleDebuggerSidebarButton.element);this._enableDebuggerSidebar(!WebInspector.settings.debuggerSidebarHidden.get());function clickHandler()
+{this._toggleDebuggerSidebarButton=new WebInspector.StatusBarButton("","right-sidebar-show-hide-button scripts-debugger-show-hide-button",3);this._toggleDebuggerSidebarButton.addEventListener("click",clickHandler,this);if(this.splitView.isVertical()){this.editorView.element.appendChild(this._toggleDebuggerSidebarButton.element);this.splitView.mainElement().appendChild(this._debugSidebarResizeWidgetElement);}else{this._statusBarContainerElement.appendChild(this._debugSidebarResizeWidgetElement);this._statusBarContainerElement.appendChild(this._toggleDebuggerSidebarButton.element);}
+this._enableDebuggerSidebar(!WebInspector.settings.debuggerSidebarHidden.get());function clickHandler()
 {this._enableDebuggerSidebar(this._toggleDebuggerSidebarButton.state==="left");}},_enableDebuggerSidebar:function(show)
 {this._toggleDebuggerSidebarButton.state=show?"right":"left";this._toggleDebuggerSidebarButton.title=show?WebInspector.UIString("Hide debugger"):WebInspector.UIString("Show debugger");if(show)
 this.splitView.showSidebarElement();else
 this.splitView.hideSidebarElement();this._debugSidebarResizeWidgetElement.enableStyleClass("hidden",!show);WebInspector.settings.debuggerSidebarHidden.set(!show);},_itemCreationRequested:function(event)
-{var project=event.data.project;var path=event.data.path;var uiSourceCodeToCopy=event.data.uiSourceCode;var filePath;var shouldHideNavigator;var uiSourceCode;if(uiSourceCodeToCopy){function contentLoaded(content)
+{var project=event.data.project;var path=event.data.path;var uiSourceCodeToCopy=event.data.uiSourceCode;var filePath;var shouldHideNavigator;var uiSourceCode;function contentLoaded(content)
 {createFile.call(this,content||"");}
-uiSourceCodeToCopy.requestContent(contentLoaded.bind(this));}else{createFile.call(this);}
-function createFile(content)
+if(uiSourceCodeToCopy)
+uiSourceCodeToCopy.requestContent(contentLoaded.bind(this));else
+createFile.call(this);function createFile(content)
 {project.createFile(path,null,content||"",fileCreated.bind(this));}
 function fileCreated(path)
 {if(!path)
@@ -1235,20 +1344,20 @@
 this._navigatorController.hideNavigatorOverlay();this._recreateSourceFrameIfNeeded(uiSourceCode);this._navigator.updateIcon(uiSourceCode);this._showSourceLocation(uiSourceCode);}},_showLocalHistory:function(uiSourceCode)
 {WebInspector.RevisionHistoryView.showHistory(uiSourceCode);},appendApplicableItems:function(event,contextMenu,target)
 {this._appendUISourceCodeItems(contextMenu,target);this._appendFunctionItems(contextMenu,target);},_mapFileSystemToNetwork:function(uiSourceCode)
-{WebInspector.SelectUISourceCodeForProjectTypeDialog.show(uiSourceCode.name(),WebInspector.projectTypes.Network,mapFileSystemToNetwork.bind(this),this.editorView.mainElement)
+{WebInspector.SelectUISourceCodeForProjectTypeDialog.show(uiSourceCode.name(),WebInspector.projectTypes.Network,mapFileSystemToNetwork.bind(this),this.editorView.mainElement())
 function mapFileSystemToNetwork(networkUISourceCode)
 {this._workspace.addMapping(networkUISourceCode,uiSourceCode,WebInspector.fileSystemWorkspaceProvider);}},_removeNetworkMapping:function(uiSourceCode)
 {if(confirm(WebInspector.UIString("Are you sure you want to remove network mapping?")))
 this._workspace.removeMapping(uiSourceCode);},_mapNetworkToFileSystem:function(networkUISourceCode)
-{WebInspector.SelectUISourceCodeForProjectTypeDialog.show(networkUISourceCode.name(),WebInspector.projectTypes.FileSystem,mapNetworkToFileSystem.bind(this),this.editorView.mainElement)
+{WebInspector.SelectUISourceCodeForProjectTypeDialog.show(networkUISourceCode.name(),WebInspector.projectTypes.FileSystem,mapNetworkToFileSystem.bind(this),this.editorView.mainElement())
 function mapNetworkToFileSystem(uiSourceCode)
 {this._workspace.addMapping(networkUISourceCode,uiSourceCode,WebInspector.fileSystemWorkspaceProvider);}},_appendUISourceCodeMappingItems:function(contextMenu,uiSourceCode)
 {if(uiSourceCode.project().type()===WebInspector.projectTypes.FileSystem){var hasMappings=!!uiSourceCode.url;if(!hasMappings)
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Map to network resource\u2026":"Map to Network Resource\u2026"),this._mapFileSystemToNetwork.bind(this,uiSourceCode));else
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove network mapping":"Remove Network Mapping"),this._removeNetworkMapping.bind(this,uiSourceCode));}
-if(uiSourceCode.project().type()===WebInspector.projectTypes.Network){function filterProject(project)
+function filterProject(project)
 {return project.type()===WebInspector.projectTypes.FileSystem;}
-if(!this._workspace.projects().filter(filterProject).length)
+if(uiSourceCode.project().type()===WebInspector.projectTypes.Network){if(!this._workspace.projects().filter(filterProject).length)
 return;if(this._workspace.uiSourceCodeForURL(uiSourceCode.url)===uiSourceCode)
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Map to file system resource\u2026":"Map to File System Resource\u2026"),this._mapNetworkToFileSystem.bind(this,uiSourceCode));}},_appendUISourceCodeItems:function(contextMenu,target)
 {if(!(target instanceof WebInspector.UISourceCode))
@@ -1258,29 +1367,44 @@
 return;var remoteObject=(target);if(remoteObject.type!=="function")
 return;function didGetDetails(error,response)
 {if(error){console.error(error);return;}
-WebInspector.inspectorView.setCurrentPanel(this);var uiLocation=WebInspector.debuggerModel.rawLocationToUILocation(response.location);this._showSourceLocation(uiLocation.uiSourceCode,uiLocation.lineNumber,uiLocation.columnNumber);}
+var uiLocation=WebInspector.debuggerModel.rawLocationToUILocation(response.location);if(!uiLocation)
+return;this.showUILocation(uiLocation,true);}
 function revealFunction()
 {DebuggerAgent.getFunctionDetails(remoteObject.objectId,didGetDetails.bind(this));}
 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Show function definition":"Show Function Definition"),revealFunction.bind(this));},showGoToSourceDialog:function()
 {var uiSourceCodes=this._editorContainer.historyUISourceCodes();var defaultScores=new Map();for(var i=1;i<uiSourceCodes.length;++i)
-defaultScores.put(uiSourceCodes[i],uiSourceCodes.length-i);WebInspector.OpenResourceDialog.show(this,this.editorView.mainElement,undefined,defaultScores);},_dockSideChanged:function()
+defaultScores.put(uiSourceCodes[i],uiSourceCodes.length-i);WebInspector.OpenResourceDialog.show(this,this.editorView.mainElement(),undefined,defaultScores);},_dockSideChanged:function()
 {var dockSide=WebInspector.dockController.dockSide();var vertically=dockSide===WebInspector.DockController.State.DockedToRight&&WebInspector.settings.splitVerticallyWhenDockedToRight.get();this._splitVertically(vertically);},_splitVertically:function(vertically)
 {if(this.sidebarPaneView&&vertically===!this.splitView.isVertical())
 return;if(this.sidebarPaneView)
-this.sidebarPaneView.detach();this.splitView.setVertical(!vertically);if(!vertically){this.sidebarPaneView=new WebInspector.SidebarPaneStack();for(var pane in this.sidebarPanes)
-this.sidebarPaneView.addPane(this.sidebarPanes[pane]);this._extensionSidebarPanesContainer=this.sidebarPaneView;this.sidebarElement.appendChild(this.debugToolbar);}else{this._enableDebuggerSidebar(true);this.sidebarPaneView=new WebInspector.SplitView(true,this.name+"PanelSplitSidebarRatio",0.5);var group1=new WebInspector.SidebarPaneStack();group1.show(this.sidebarPaneView.firstElement());group1.element.id="scripts-sidebar-stack-pane";group1.addPane(this.sidebarPanes.callstack);group1.addPane(this.sidebarPanes.jsBreakpoints);group1.addPane(this.sidebarPanes.domBreakpoints);group1.addPane(this.sidebarPanes.xhrBreakpoints);group1.addPane(this.sidebarPanes.eventListenerBreakpoints);if(this.sidebarPanes.workerList)
-group1.addPane(this.sidebarPanes.workerList);var group2=new WebInspector.SidebarTabbedPane();group2.show(this.sidebarPaneView.secondElement());group2.addPane(this.sidebarPanes.scopechain);group2.addPane(this.sidebarPanes.watchExpressions);this._extensionSidebarPanesContainer=group2;this.sidebarPaneView.firstElement().appendChild(this.debugToolbar);}
+this.sidebarPaneView.detach();this.splitView.setVertical(!vertically);if(!vertically){this.splitView.uninstallResizer(this._statusBarContainerElement);this.sidebarPaneView=new WebInspector.SidebarPaneStack();for(var pane in this.sidebarPanes)
+this.sidebarPaneView.addPane(this.sidebarPanes[pane]);this._extensionSidebarPanesContainer=this.sidebarPaneView;this.splitView.sidebarElement().appendChild(this.debugToolbar);this.editorView.element.appendChild(this._toggleDebuggerSidebarButton.element);this.splitView.mainElement().appendChild(this._debugSidebarResizeWidgetElement);}else{this.splitView.installResizer(this._statusBarContainerElement);this.sidebarPaneView=new WebInspector.SplitView(true,this.name+"PanelSplitSidebarRatio",0.5);var group1=new WebInspector.SidebarPaneStack();this.sidebarPaneView.setFirstView(group1);group1.element.id="scripts-sidebar-stack-pane";group1.addPane(this.sidebarPanes.callstack);group1.addPane(this.sidebarPanes.jsBreakpoints);group1.addPane(this.sidebarPanes.domBreakpoints);group1.addPane(this.sidebarPanes.xhrBreakpoints);group1.addPane(this.sidebarPanes.eventListenerBreakpoints);if(this.sidebarPanes.workerList)
+group1.addPane(this.sidebarPanes.workerList);var group2=new WebInspector.SidebarTabbedPane();this.sidebarPaneView.setSecondView(group2);group2.addPane(this.sidebarPanes.scopechain);group2.addPane(this.sidebarPanes.watchExpressions);this._extensionSidebarPanesContainer=group2;this.sidebarPaneView.firstElement().appendChild(this.debugToolbar);this._statusBarContainerElement.appendChild(this._debugSidebarResizeWidgetElement);this._statusBarContainerElement.appendChild(this._toggleDebuggerSidebarButton.element)}
 for(var i=0;i<this._extensionSidebarPanes.length;++i)
-this._extensionSidebarPanesContainer.addPane(this._extensionSidebarPanes[i]);this.sidebarPaneView.element.id="scripts-debug-sidebar-contents";this.sidebarPaneView.show(this.splitView.sidebarElement);this.sidebarPanes.scopechain.expand();this.sidebarPanes.jsBreakpoints.expand();this.sidebarPanes.callstack.expand();if(WebInspector.settings.watchExpressions.get().length>0)
-this.sidebarPanes.watchExpressions.expand();},canSetFooterElement:function()
-{return true;},setFooterElement:function(element)
-{if(element){this._editorFooterElement.removeStyleClass("hidden");this._editorFooterElement.appendChild(element);}else{this._editorFooterElement.addStyleClass("hidden");this._editorFooterElement.removeChildren();}
-this.doResize();},addExtensionSidebarPane:function(id,pane)
+this._extensionSidebarPanesContainer.addPane(this._extensionSidebarPanes[i]);this.sidebarPaneView.element.id="scripts-debug-sidebar-contents";this.splitView.setSidebarView(this.sidebarPaneView);this.sidebarPanes.scopechain.expand();this.sidebarPanes.jsBreakpoints.expand();this.sidebarPanes.callstack.expand();if(WebInspector.settings.watchExpressions.get().length>0)
+this.sidebarPanes.watchExpressions.expand();},canHighlightPosition:function()
+{return this.visibleView&&this.visibleView.canHighlightPosition();},highlightPosition:function(line,column)
+{if(!this.canHighlightPosition())
+return;this._historyManager.updateCurrentState();this.visibleView.highlightPosition(line,column);this._historyManager.pushNewState();},addExtensionSidebarPane:function(id,pane)
 {this._extensionSidebarPanes.push(pane);this._extensionSidebarPanesContainer.addPane(pane);this.setHideOnDetach();},get tabbedEditorContainer()
 {return this._editorContainer;},__proto__:WebInspector.Panel.prototype}
 WebInspector.SourcesView=function()
-{WebInspector.View.call(this);this.registerRequiredCSS("sourcesView.css");this.element.id="sources-panel-sources-view";this.element.addStyleClass("vbox");}
-WebInspector.SourcesView.prototype={__proto__:WebInspector.View.prototype}
+{WebInspector.View.call(this);this.registerRequiredCSS("sourcesView.css");this.element.id="sources-panel-sources-view";this.element.classList.add("vbox");this.element.addEventListener("dragenter",this._onDragEnter.bind(this),true);this.element.addEventListener("dragover",this._onDragOver.bind(this),true);}
+WebInspector.SourcesView.dragAndDropFilesType="Files";WebInspector.SourcesView.prototype={_onDragEnter:function(event)
+{if(event.dataTransfer.types.indexOf(WebInspector.SourcesView.dragAndDropFilesType)===-1)
+return;event.consume(true);},_onDragOver:function(event)
+{if(event.dataTransfer.types.indexOf(WebInspector.SourcesView.dragAndDropFilesType)===-1)
+return;event.consume(true);if(this._dragMaskElement)
+return;this._dragMaskElement=this.element.createChild("div","fill drag-mask");this._dragMaskElement.addEventListener("drop",this._onDrop.bind(this),true);this._dragMaskElement.addEventListener("dragleave",this._onDragLeave.bind(this),true);},_onDrop:function(event)
+{event.consume(true);this._removeMask();var items=(event.dataTransfer.items);if(!items.length)
+return;var entry=items[0].webkitGetAsEntry();if(!entry.isDirectory)
+return;InspectorFrontendHost.upgradeDraggedFileSystemPermissions(entry.filesystem);},_onDragLeave:function(event)
+{event.consume(true);this._removeMask();},_removeMask:function()
+{this._dragMaskElement.remove();delete this._dragMaskElement;},__proto__:WebInspector.View.prototype}
 WebInspector.DrawerEditorView=function()
-{WebInspector.View.call(this);this.element.id="drawer-editor-view";this.element.addStyleClass("vbox");}
-WebInspector.DrawerEditorView.prototype={__proto__:WebInspector.View.prototype}
\ No newline at end of file
+{WebInspector.View.call(this);this.element.id="drawer-editor-view";this.element.classList.add("vbox");}
+WebInspector.DrawerEditorView.prototype={__proto__:WebInspector.View.prototype}
+WebInspector.SourcesPanel.ContextMenuProvider=function()
+{}
+WebInspector.SourcesPanel.ContextMenuProvider.prototype={appendApplicableItems:function(event,contextMenu,target)
+{WebInspector.panel("sources").appendApplicableItems(event,contextMenu,target);}}
\ No newline at end of file
diff --git a/resources/inspector/TempStorageSharedWorker.js b/resources/inspector/TempStorageSharedWorker.js
new file mode 100644
index 0000000..21225af
--- /dev/null
+++ b/resources/inspector/TempStorageSharedWorker.js
@@ -0,0 +1,33 @@
+var ports=[];var isTempStorageCleared=false;var tempStorageError;self.onconnect=function(event)
+{var newPort=(event.ports[0]);if(isTempStorageCleared){notifyTempStorageCleared(newPort);return;}
+newPort.onmessage=handleMessage;newPort.onerror=handleError;ports.push(newPort);if(ports.length===1)
+clearTempStorage();}
+function clearTempStorage()
+{function didFail(e)
+{tempStorageError="Failed to clear temp storage: "+e.message+" "+e.name;console.error(tempStorageError);didClearTempStorage();}
+function didGetFS(fs)
+{fs.root.createReader().readEntries(didReadEntries,didFail);}
+function didReadEntries(entries)
+{var remainingEntries=entries.length;if(!remainingEntries){didClearTempStorage();return;}
+function didDeleteEntry()
+{if(!--remainingEntries)
+didClearTempStorage();}
+function failedToDeleteEntry(e)
+{tempStorageError="Failed to delete entry: "+e.message+" "+e.name;console.error(tempStorageError);didDeleteEntry();}
+for(var i=0;i<entries.length;i++){var entry=entries[i];if(entry.isFile)
+entry.remove(didDeleteEntry,failedToDeleteEntry);else
+entry.removeRecursively(didDeleteEntry,failedToDeleteEntry);}}
+self.webkitRequestFileSystem(self.TEMPORARY,10,didGetFS,didFail);}
+function didClearTempStorage()
+{isTempStorageCleared=true;for(var i=0;i<ports.length;i++)
+notifyTempStorageCleared(ports[i]);ports=null;}
+function notifyTempStorageCleared(port)
+{port.postMessage({type:"tempStorageCleared",error:tempStorageError});}
+function handleMessage(event)
+{if(event.data.type==="disconnect")
+removePort(event.target);}
+function handleError(event)
+{console.error("Error: "+event.data);removePort(event.target);}
+function removePort(port)
+{if(!ports)
+return;var index=ports.indexOf(port);ports.splice(index,1);}
\ No newline at end of file
diff --git a/resources/inspector/TimelinePanel.js b/resources/inspector/TimelinePanel.js
index a52713e..0471af2 100644
--- a/resources/inspector/TimelinePanel.js
+++ b/resources/inspector/TimelinePanel.js
@@ -1,5 +1,5 @@
-WebInspector.MemoryStatistics=function(timelinePanel,model,sidebarWidth)
-{this._timelinePanel=timelinePanel;this._counters=[];model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);this._containerAnchor=timelinePanel.element.lastChild;this._memorySidebarView=new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start,undefined,sidebarWidth);this._memorySidebarView.sidebarElement.addStyleClass("sidebar");this._memorySidebarView.element.id="memory-graphs-container";this._memorySidebarView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this._sidebarResized.bind(this));this._canvasContainer=this._memorySidebarView.mainElement;this._canvasContainer.id="memory-graphs-canvas-container";this._createCurrentValuesBar();this._canvas=this._canvasContainer.createChild("canvas");this._canvas.id="memory-counters-graph";this._lastMarkerXPosition=0;this._canvas.addEventListener("mouseover",this._onMouseOver.bind(this),true);this._canvas.addEventListener("mousemove",this._onMouseMove.bind(this),true);this._canvas.addEventListener("mouseout",this._onMouseOut.bind(this),true);this._canvas.addEventListener("click",this._onClick.bind(this),true);this._timelineGrid=new WebInspector.TimelineGrid();this._canvasContainer.appendChild(this._timelineGrid.dividersElement);this._memorySidebarView.sidebarElement.createChild("div","sidebar-tree sidebar-tree-section").textContent=WebInspector.UIString("COUNTERS");this._counterUI=this._createCounterUIList();}
+WebInspector.MemoryStatistics=function(timelineView,model)
+{WebInspector.View.call(this);this._timelineView=timelineView;this.element.classList.add("fill");this._counters=[];model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);this._memorySidebarView=new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start,undefined);this._memorySidebarView.element.id="memory-graphs-container";this._memorySidebarView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this._sidebarResized.bind(this));this._canvasContainer=this._memorySidebarView.mainElement();this._canvasContainer.id="memory-graphs-canvas-container";this._createCurrentValuesBar();this._canvas=this._canvasContainer.createChild("canvas","fill");this._canvas.id="memory-counters-graph";this._lastMarkerXPosition=0;this._canvas.addEventListener("mouseover",this._onMouseOver.bind(this),true);this._canvas.addEventListener("mousemove",this._onMouseMove.bind(this),true);this._canvas.addEventListener("mouseout",this._onMouseOut.bind(this),true);this._canvas.addEventListener("click",this._onClick.bind(this),true);this._timelineGrid=new WebInspector.TimelineGrid();this._canvasContainer.appendChild(this._timelineGrid.dividersElement);this._memorySidebarView.sidebarElement().createChild("div","sidebar-tree sidebar-tree-section").textContent=WebInspector.UIString("COUNTERS");this._counterUI=this._createCounterUIList();this._memorySidebarView.show(this.element);}
 WebInspector.MemoryStatistics.Counter=function(time)
 {this.time=time;}
 WebInspector.SwatchCheckbox=function(title,color)
@@ -12,34 +12,30 @@
 this._swatch.style.backgroundColor="";},_toggleCheckbox:function(event)
 {this.checked=!this.checked;this.dispatchEventToListeners(WebInspector.SwatchCheckbox.Events.Changed);},__proto__:WebInspector.Object.prototype}
 WebInspector.CounterUIBase=function(memoryCountersPane,title,graphColor,valueGetter)
-{this._memoryCountersPane=memoryCountersPane;this.valueGetter=valueGetter;var container=memoryCountersPane._memorySidebarView.sidebarElement.createChild("div","memory-counter-sidebar-info");var swatchColor=graphColor;this._swatch=new WebInspector.SwatchCheckbox(WebInspector.UIString(title),swatchColor);this._swatch.addEventListener(WebInspector.SwatchCheckbox.Events.Changed,this._toggleCounterGraph.bind(this));container.appendChild(this._swatch.element);this._value=null;this.graphColor=graphColor;this.strokeColor=graphColor;this.graphYValues=[];}
+{this._memoryCountersPane=memoryCountersPane;this.valueGetter=valueGetter;var container=memoryCountersPane._memorySidebarView.sidebarElement().createChild("div","memory-counter-sidebar-info");var swatchColor=graphColor;this._swatch=new WebInspector.SwatchCheckbox(WebInspector.UIString(title),swatchColor);this._swatch.addEventListener(WebInspector.SwatchCheckbox.Events.Changed,this._toggleCounterGraph.bind(this));container.appendChild(this._swatch.element);this._value=null;this.graphColor=graphColor;this.strokeColor=graphColor;this.graphYValues=[];}
 WebInspector.CounterUIBase.prototype={_toggleCounterGraph:function(event)
 {if(this._swatch.checked)
-this._value.removeStyleClass("hidden");else
-this._value.addStyleClass("hidden");this._memoryCountersPane.refresh();},updateCurrentValue:function(countersEntry)
+this._value.classList.remove("hidden");else
+this._value.classList.add("hidden");this._memoryCountersPane.refresh();},updateCurrentValue:function(countersEntry)
 {this._value.textContent=Number.bytesToString(this.valueGetter(countersEntry));},clearCurrentValueAndMarker:function(ctx)
 {this._value.textContent="";},get visible()
 {return this._swatch.checked;},}
 WebInspector.MemoryStatistics.prototype={_createCurrentValuesBar:function()
 {throw new Error("Not implemented");},_createCounterUIList:function()
 {throw new Error("Not implemented");},_onRecordsCleared:function()
-{this._counters=[];},setMainTimelineGrid:function(timelineGrid)
-{this._mainTimelineGrid=timelineGrid;},height:function()
-{return this._memorySidebarView.element.offsetHeight;},setHeight:function(height)
-{this._memorySidebarView.element.style.flexBasis=height+"px";this._updateSize();},setSidebarWidth:function(width)
-{if(this._ignoreSidebarResize)
-return;this._ignoreSidebarResize=true;this._memorySidebarView.setSidebarWidth(width);this._ignoreSidebarResize=false;},_sidebarResized:function(event)
-{if(this._ignoreSidebarResize)
-return;this._ignoreSidebarResize=true;this._timelinePanel.splitView.setSidebarWidth(event.data);this._ignoreSidebarResize=false;},_canvasHeight:function()
-{throw new Error("Not implemented");},_updateSize:function()
-{var width=this._mainTimelineGrid.dividersElement.offsetWidth+1;this._canvasContainer.style.width=width+"px";var height=this._canvasHeight();this._canvas.width=width;this._canvas.height=height;},_onRecordAdded:function(event)
-{throw new Error("Not implemented");},_draw:function()
+{this._counters=[];},height:function()
+{return this._memorySidebarView.element.offsetHeight;},setSidebarWidth:function(width)
+{this._memorySidebarView.setSidebarWidth(width);},_sidebarResized:function(event)
+{this.dispatchEventToListeners(WebInspector.TimelineView.Events.SidebarResized,(event.data));this.onResize();},_canvasHeight:function()
+{throw new Error("Not implemented");},onResize:function()
+{var width=this._canvasContainer.offsetWidth+1;this._canvas.style.width=width+"px";this._timelineGrid.dividersElement.style.width=width+"px";var parentElement=this._canvas.parentElement;this._canvas.width=width;this._canvas.height=parentElement.clientHeight-15;this.refresh();},_onRecordAdded:function(event)
+{throw new Error("Not implemented");},draw:function()
 {this._calculateVisibleIndexes();this._calculateXValues();this._clear();this._setVerticalClip(10,this._canvas.height-20);},_calculateVisibleIndexes:function()
-{var calculator=this._timelinePanel.calculator;var start=calculator.minimumBoundary()*1000;var end=calculator.maximumBoundary()*1000;function comparator(value,sample)
+{var calculator=this._timelineView.calculator;var start=calculator.minimumBoundary()*1000;var end=calculator.maximumBoundary()*1000;function comparator(value,sample)
 {return value-sample.time;}
 this._minimumIndex=Number.constrain(this._counters.upperBound(start,comparator)-1,0,this._counters.length-1);this._maximumIndex=Number.constrain(this._counters.lowerBound(end,comparator),0,this._counters.length-1);this._minTime=start;this._maxTime=end;},_onClick:function(event)
 {var x=event.x-event.target.offsetParent.offsetLeft;var i=this._recordIndexAt(x);var counter=this._counters[i];if(counter)
-this._timelinePanel.revealRecordAt(counter.time/1000);},_onMouseOut:function(event)
+this._timelineView.revealRecordAt(counter.time/1000);},_onMouseOut:function(event)
 {delete this._markerXPosition;var ctx=this._canvas.getContext("2d");this._clearCurrentValueAndMarker(ctx);},_clearCurrentValueAndMarker:function(ctx)
 {for(var i=0;i<this._counterUI.length;i++)
 this._counterUI[i].clearCurrentValueAndMarker(ctx);},_onMouseOver:function(event)
@@ -57,26 +53,23 @@
 i--;return i;},_highlightCurrentPositionOnGraphs:function(x,index)
 {var ctx=this._canvas.getContext("2d");this._restoreImageUnderMarker(ctx);this._drawMarker(ctx,x,index);},_restoreImageUnderMarker:function(ctx)
 {throw new Error("Not implemented");},_drawMarker:function(ctx,x,index)
-{throw new Error("Not implemented");},visible:function()
-{return this._memorySidebarView.isShowing();},show:function()
-{var anchor=(this._containerAnchor.nextSibling);var savedSidebarSize=this._timelinePanel.splitView.sidebarWidth();this._memorySidebarView.show(this._timelinePanel.element,anchor);if(savedSidebarSize>0){this.setSidebarWidth(savedSidebarSize);this._timelinePanel.splitView.setSidebarWidth(savedSidebarSize);}
-this._updateSize();this._refreshDividers();setTimeout(this._draw.bind(this),0);},refresh:function()
-{this._updateSize();this._refreshDividers();this._draw();this._refreshCurrentValues();},hide:function()
-{this._memorySidebarView.detach();},_refreshDividers:function()
-{this._timelineGrid.updateDividers(this._timelinePanel.calculator);},_setVerticalClip:function(originY,height)
+{throw new Error("Not implemented");},refresh:function()
+{this._timelineGrid.updateDividers(this._timelineView.calculator);this.draw();this._refreshCurrentValues();},_setVerticalClip:function(originY,height)
 {this._originY=originY;this._clippedHeight=height;},_calculateXValues:function()
 {if(!this._counters.length)
 return;var width=this._canvas.width;var xFactor=width/(this._maxTime-this._minTime);this._counters[this._minimumIndex].x=0;for(var i=this._minimumIndex+1;i<this._maximumIndex;i++)
-this._counters[i].x=xFactor*(this._counters[i].time-this._minTime);this._counters[this._maximumIndex].x=width;},_clear:function(){var ctx=this._canvas.getContext("2d");ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);this._discardImageUnderMarker();},_discardImageUnderMarker:function()
-{throw new Error("Not implemented");}};WebInspector.DOMCountersGraph=function(timelinePanel,model,sidebarWidth)
-{WebInspector.MemoryStatistics.call(this,timelinePanel,model,sidebarWidth);}
-WebInspector.DOMCounterUI=function(memoryCountersPane,title,currentValueLabel,rgb,valueGetter)
-{var swatchColor="rgb("+rgb.join(",")+")";WebInspector.CounterUIBase.call(this,memoryCountersPane,title,swatchColor,valueGetter)
-this._range=this._swatch.element.createChild("span");this._value=memoryCountersPane._currentValuesBar.createChild("span","memory-counter-value");this._value.style.color=swatchColor;this._currentValueLabel=currentValueLabel;this.graphColor="rgba("+rgb.join(",")+",0.8)";this.graphYValues=[];}
-WebInspector.DOMCountersGraph.Counter=function(time,documentCount,nodeCount,listenerCount)
-{WebInspector.MemoryStatistics.Counter.call(this,time);this.documentCount=documentCount;this.nodeCount=nodeCount;this.listenerCount=listenerCount;}
-WebInspector.DOMCounterUI.prototype={setRange:function(minValue,maxValue)
-{this._range.textContent=WebInspector.UIString("[ %d - %d ]",minValue,maxValue);},updateCurrentValue:function(countersEntry)
+this._counters[i].x=xFactor*(this._counters[i].time-this._minTime);this._counters[this._maximumIndex].x=width;},_clear:function()
+{var ctx=this._canvas.getContext("2d");ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);this._discardImageUnderMarker();},_discardImageUnderMarker:function()
+{throw new Error("Not implemented");},__proto__:WebInspector.View.prototype};WebInspector.CountersGraph=function(timelineView,model)
+{WebInspector.MemoryStatistics.call(this,timelineView,model);}
+WebInspector.CounterUI=function(memoryCountersPane,title,currentValueLabel,color,valueGetter)
+{WebInspector.CounterUIBase.call(this,memoryCountersPane,title,color,valueGetter)
+this._range=this._swatch.element.createChild("span");this._value=memoryCountersPane._currentValuesBar.createChild("span","memory-counter-value");this._value.style.color=color;this._currentValueLabel=currentValueLabel;this.graphColor=color;this.graphYValues=[];}
+WebInspector.CountersGraph.Counter=function(time,documentCount,nodeCount,listenerCount,usedGPUMemoryKBytes)
+{WebInspector.MemoryStatistics.Counter.call(this,time);this.documentCount=documentCount;this.nodeCount=nodeCount;this.listenerCount=listenerCount;this.usedGPUMemoryKBytes=usedGPUMemoryKBytes;}
+WebInspector.CountersGraph.Counter.prototype={__proto__:WebInspector.MemoryStatistics.Counter.prototype}
+WebInspector.CounterUI.prototype={setRange:function(minValue,maxValue)
+{this._range.textContent=WebInspector.UIString("[%d:%d]",minValue,maxValue);},updateCurrentValue:function(countersEntry)
 {this._value.textContent=WebInspector.UIString(this._currentValueLabel,this.valueGetter(countersEntry));},clearCurrentValueAndMarker:function(ctx)
 {this._value.textContent="";this.restoreImageUnderMarker(ctx);},saveImageUnderMarker:function(ctx,x,y,radius)
 {const w=radius+1;var imageData=ctx.getImageData(x-w,y-w,2*w,2*w);this._imageUnderMarker={x:x-w,y:y-w,imageData:imageData};},restoreImageUnderMarker:function(ctx)
@@ -84,44 +77,61 @@
 return;if(this._imageUnderMarker)
 ctx.putImageData(this._imageUnderMarker.imageData,this._imageUnderMarker.x,this._imageUnderMarker.y);this.discardImageUnderMarker();},discardImageUnderMarker:function()
 {delete this._imageUnderMarker;},__proto__:WebInspector.CounterUIBase.prototype}
-WebInspector.DOMCountersGraph.prototype={_createCurrentValuesBar:function()
-{this._currentValuesBar=this._canvasContainer.createChild("div");this._currentValuesBar.id="counter-values-bar";this._canvasContainer.addStyleClass("dom-counters");},_createCounterUIList:function()
+WebInspector.CountersGraph.prototype={_createCurrentValuesBar:function()
+{this._currentValuesBar=this._canvasContainer.createChild("div");this._currentValuesBar.id="counter-values-bar";this._canvasContainer.classList.add("dom-counters");},resizeElement:function()
+{return this._currentValuesBar;},_createCounterUIList:function()
 {function getDocumentCount(entry)
 {return entry.documentCount;}
 function getNodeCount(entry)
 {return entry.nodeCount;}
 function getListenerCount(entry)
 {return entry.listenerCount;}
-return[new WebInspector.DOMCounterUI(this,"Document Count","Documents: %d",[100,0,0],getDocumentCount),new WebInspector.DOMCounterUI(this,"DOM Node Count","Nodes: %d",[0,100,0],getNodeCount),new WebInspector.DOMCounterUI(this,"Event Listener Count","Listeners: %d",[0,0,100],getListenerCount)];},_canvasHeight:function()
-{return this._canvasContainer.offsetHeight-this._currentValuesBar.offsetHeight;},_onRecordAdded:function(event)
-{function addStatistics(record)
+function getUsedGPUMemoryKBytes(entry)
+{return entry.usedGPUMemoryKBytes;}
+var counterUIs=[new WebInspector.CounterUI(this,"Documents","Documents: %d","#d00",getDocumentCount),new WebInspector.CounterUI(this,"Nodes","Nodes: %d","#0a0",getNodeCount),new WebInspector.CounterUI(this,"Listeners","Listeners: %d","#00d",getListenerCount)];if(WebInspector.experimentsSettings.gpuTimeline.isEnabled())
+counterUIs.push(new WebInspector.CounterUI(this,"GPU Memory","GPU Memory [KB]: %d","#c0c",getUsedGPUMemoryKBytes));return counterUIs;},_onRecordAdded:function(event)
+{function findInsertionLocation(array,item,comparator)
+{var index=array.length;while(index>0&&comparator(array[index-1],item)>0)
+--index;return index;}
+function addStatistics(record)
 {var counters=record["counters"];if(!counters)
-return;this._counters.push(new WebInspector.DOMCountersGraph.Counter(record.endTime||record.startTime,counters["documents"],counters["nodes"],counters["jsEventListeners"]));}
-WebInspector.TimelinePresentationModel.forAllRecords([event.data],null,addStatistics.bind(this));},_draw:function()
-{WebInspector.MemoryStatistics.prototype._draw.call(this);for(var i=0;i<this._counterUI.length;i++)
+return;var time=record.endTime||record.startTime;var counter=new WebInspector.CountersGraph.Counter(time,counters["documents"],counters["nodes"],counters["jsEventListeners"],counters["gpuMemoryUsedKB"]);function compare(record,time)
+{return record.time-time;}
+var index=findInsertionLocation(this._counters,time,compare);this._counters.splice(index,0,counter);if("gpuMemoryUsedKB"in counters){for(var i=index-1;i>=0&&typeof this._counters[i].usedGPUMemoryKBytes==="undefined";--i){}
+var usedGPUMemoryKBytes=this._counters[i>=0?i:index].usedGPUMemoryKBytes;for(i=Math.max(i,0);i<index;++i)
+this._counters[i].usedGPUMemoryKBytes=usedGPUMemoryKBytes;var copyFrom=index>0?index-1:index+1;if(copyFrom<this._counters.length){this._counters[index].documentCount=this._counters[copyFrom].documentCount;this._counters[index].nodeCount=this._counters[copyFrom].nodeCount;this._counters[index].listenerCount=this._counters[copyFrom].listenerCount;}else{this._counters[index].documentCount=0;this._counters[index].nodeCount=0;this._counters[index].listenerCount=0;}}}
+WebInspector.TimelinePresentationModel.forAllRecords([event.data],null,addStatistics.bind(this));},draw:function()
+{WebInspector.MemoryStatistics.prototype.draw.call(this);for(var i=0;i<this._counterUI.length;i++)
 this._drawGraph(this._counterUI[i]);},_restoreImageUnderMarker:function(ctx)
 {for(var i=0;i<this._counterUI.length;i++){var counterUI=this._counterUI[i];if(!counterUI.visible)
 continue;counterUI.restoreImageUnderMarker(ctx);}},_saveImageUnderMarker:function(ctx,x,index)
 {const radius=2;for(var i=0;i<this._counterUI.length;i++){var counterUI=this._counterUI[i];if(!counterUI.visible)
 continue;var y=counterUI.graphYValues[index];counterUI.saveImageUnderMarker(ctx,x,y,radius);}},_drawMarker:function(ctx,x,index)
 {this._saveImageUnderMarker(ctx,x,index);const radius=2;for(var i=0;i<this._counterUI.length;i++){var counterUI=this._counterUI[i];if(!counterUI.visible)
-continue;var y=counterUI.graphYValues[index];ctx.beginPath();ctx.arc(x,y,radius,0,Math.PI*2,true);ctx.lineWidth=1;ctx.fillStyle=counterUI.graphColor;ctx.strokeStyle=counterUI.graphColor;ctx.fill();ctx.stroke();ctx.closePath();}},_drawGraph:function(counterUI)
+continue;var y=counterUI.graphYValues[index];ctx.beginPath();ctx.arc(x+0.5,y+0.5,radius,0,Math.PI*2,true);ctx.lineWidth=1;ctx.fillStyle=counterUI.graphColor;ctx.strokeStyle=counterUI.graphColor;ctx.fill();ctx.stroke();ctx.closePath();}},_drawGraph:function(counterUI)
 {var canvas=this._canvas;var ctx=canvas.getContext("2d");var width=canvas.width;var height=this._clippedHeight;var originY=this._originY;var valueGetter=counterUI.valueGetter;if(!this._counters.length)
 return;var maxValue;var minValue;for(var i=this._minimumIndex;i<=this._maximumIndex;i++){var value=valueGetter(this._counters[i]);if(minValue===undefined||value<minValue)
 minValue=value;if(maxValue===undefined||value>maxValue)
 maxValue=value;}
-counterUI.setRange(minValue,maxValue);if(!counterUI.visible)
-return;var yValues=counterUI.graphYValues;yValues.length=this._counters.length;var maxYRange=maxValue-minValue;var yFactor=maxYRange?height/(maxYRange):1;ctx.beginPath();var currentY=originY+(height-(valueGetter(this._counters[this._minimumIndex])-minValue)*yFactor);ctx.moveTo(0,currentY);for(var i=this._minimumIndex;i<=this._maximumIndex;i++){var x=this._counters[i].x;ctx.lineTo(x,currentY);currentY=originY+(height-(valueGetter(this._counters[i])-minValue)*yFactor);ctx.lineTo(x,currentY);yValues[i]=currentY;}
-ctx.lineTo(width,currentY);ctx.lineWidth=1;ctx.strokeStyle=counterUI.graphColor;ctx.stroke();ctx.closePath();},_discardImageUnderMarker:function()
+minValue=minValue||0;maxValue=maxValue||1;counterUI.setRange(minValue,maxValue);if(!counterUI.visible)
+return;var yValues=counterUI.graphYValues;yValues.length=this._counters.length;var maxYRange=maxValue-minValue;var yFactor=maxYRange?height/(maxYRange):1;ctx.save();ctx.translate(0.5,0.5);ctx.beginPath();var value=valueGetter(this._counters[this._minimumIndex])||0;var currentY=Math.round(originY+height-(value-minValue)*yFactor);ctx.moveTo(0,currentY);for(var i=this._minimumIndex;i<=this._maximumIndex;i++){var x=Math.round(this._counters[i].x);ctx.lineTo(x,currentY);var currentValue=valueGetter(this._counters[i]);if(typeof currentValue!=="undefined")
+value=currentValue;currentY=Math.round(originY+height-(value-minValue)*yFactor);ctx.lineTo(x,currentY);yValues[i]=currentY;}
+ctx.lineTo(width,currentY);ctx.lineWidth=1;ctx.strokeStyle=counterUI.graphColor;ctx.stroke();ctx.closePath();ctx.restore();},_discardImageUnderMarker:function()
 {for(var i=0;i<this._counterUI.length;i++)
-this._counterUI[i].discardImageUnderMarker();},__proto__:WebInspector.MemoryStatistics.prototype};WebInspector.TimelineModel=function()
+this._counterUI[i].discardImageUnderMarker();},__proto__:WebInspector.MemoryStatistics.prototype};WebInspector.PieChart=function(totalValue)
+{this.element=document.createElement("div");this.element.className="pie-chart";this.element.createChild("div","pie-chart-background");var totalString=Number.secondsToString(totalValue,true);this.element.createChild("div","pie-chart-foreground").textContent=totalString;this._totalValue=totalValue;this._lastAngle=0;}
+WebInspector.PieChart.prototype={addSlice:function(value,color)
+{var sliceAngle=value/this._totalValue*360;if(sliceAngle>180){this._innerAddSlice(180,color);sliceAngle-=180;}
+this._innerAddSlice(sliceAngle,color);},_innerAddSlice:function(sliceAngle,color)
+{var sliceElement=this.element.createChild("div","pie-chart-slice");sliceElement.style.webkitTransform="rotate("+Number(this._lastAngle).toFixed(2)+"deg)"
+var innerSliceElement=sliceElement.createChild("div","pie-chart-slice-inner");innerSliceElement.style.backgroundColor=color;innerSliceElement.style.webkitTransform="rotate("+Number(sliceAngle).toFixed(2)+"deg)";this._lastAngle+=sliceAngle;}};WebInspector.TimelineModel=function()
 {this._records=[];this._stringPool=new StringPool();this._minimumRecordTime=-1;this._maximumRecordTime=-1;WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,this._onRecordAdded,this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStarted,this._onStarted,this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStopped,this._onStopped,this);}
-WebInspector.TimelineModel.TransferChunkLengthBytes=5000000;WebInspector.TimelineModel.RecordType={Root:"Root",Program:"Program",EventDispatch:"EventDispatch",BeginFrame:"BeginFrame",ScheduleStyleRecalculation:"ScheduleStyleRecalculation",RecalculateStyles:"RecalculateStyles",InvalidateLayout:"InvalidateLayout",Layout:"Layout",AutosizeText:"AutosizeText",PaintSetup:"PaintSetup",Paint:"Paint",Rasterize:"Rasterize",ScrollLayer:"ScrollLayer",DecodeImage:"DecodeImage",ResizeImage:"ResizeImage",CompositeLayers:"CompositeLayers",ParseHTML:"ParseHTML",TimerInstall:"TimerInstall",TimerRemove:"TimerRemove",TimerFire:"TimerFire",XHRReadyStateChange:"XHRReadyStateChange",XHRLoad:"XHRLoad",EvaluateScript:"EvaluateScript",MarkLoad:"MarkLoad",MarkDOMContent:"MarkDOMContent",TimeStamp:"TimeStamp",Time:"Time",TimeEnd:"TimeEnd",ScheduleResourceRequest:"ScheduleResourceRequest",ResourceSendRequest:"ResourceSendRequest",ResourceReceiveResponse:"ResourceReceiveResponse",ResourceReceivedData:"ResourceReceivedData",ResourceFinish:"ResourceFinish",FunctionCall:"FunctionCall",GCEvent:"GCEvent",RequestAnimationFrame:"RequestAnimationFrame",CancelAnimationFrame:"CancelAnimationFrame",FireAnimationFrame:"FireAnimationFrame",WebSocketCreate:"WebSocketCreate",WebSocketSendHandshakeRequest:"WebSocketSendHandshakeRequest",WebSocketReceiveHandshakeResponse:"WebSocketReceiveHandshakeResponse",WebSocketDestroy:"WebSocketDestroy",}
+WebInspector.TimelineModel.TransferChunkLengthBytes=5000000;WebInspector.TimelineModel.RecordType={Root:"Root",Program:"Program",EventDispatch:"EventDispatch",GPUTask:"GPUTask",BeginFrame:"BeginFrame",ActivateLayerTree:"ActivateLayerTree",ScheduleStyleRecalculation:"ScheduleStyleRecalculation",RecalculateStyles:"RecalculateStyles",InvalidateLayout:"InvalidateLayout",Layout:"Layout",AutosizeText:"AutosizeText",PaintSetup:"PaintSetup",Paint:"Paint",Rasterize:"Rasterize",ScrollLayer:"ScrollLayer",DecodeImage:"DecodeImage",ResizeImage:"ResizeImage",CompositeLayers:"CompositeLayers",ParseHTML:"ParseHTML",TimerInstall:"TimerInstall",TimerRemove:"TimerRemove",TimerFire:"TimerFire",XHRReadyStateChange:"XHRReadyStateChange",XHRLoad:"XHRLoad",EvaluateScript:"EvaluateScript",MarkLoad:"MarkLoad",MarkDOMContent:"MarkDOMContent",MarkFirstPaint:"MarkFirstPaint",TimeStamp:"TimeStamp",Time:"Time",TimeEnd:"TimeEnd",ScheduleResourceRequest:"ScheduleResourceRequest",ResourceSendRequest:"ResourceSendRequest",ResourceReceiveResponse:"ResourceReceiveResponse",ResourceReceivedData:"ResourceReceivedData",ResourceFinish:"ResourceFinish",FunctionCall:"FunctionCall",GCEvent:"GCEvent",RequestAnimationFrame:"RequestAnimationFrame",CancelAnimationFrame:"CancelAnimationFrame",FireAnimationFrame:"FireAnimationFrame",WebSocketCreate:"WebSocketCreate",WebSocketSendHandshakeRequest:"WebSocketSendHandshakeRequest",WebSocketReceiveHandshakeResponse:"WebSocketReceiveHandshakeResponse",WebSocketDestroy:"WebSocketDestroy",}
 WebInspector.TimelineModel.Events={RecordAdded:"RecordAdded",RecordsCleared:"RecordsCleared",RecordingStarted:"RecordingStarted",RecordingStopped:"RecordingStopped"}
 WebInspector.TimelineModel.startTimeInSeconds=function(record)
 {return record.startTime/1000;}
 WebInspector.TimelineModel.endTimeInSeconds=function(record)
-{return(typeof record.endTime==="undefined"?record.startTime:record.endTime)/1000;}
+{return(record.endTime||record.startTime)/1000;}
 WebInspector.TimelineModel.durationInSeconds=function(record)
 {return WebInspector.TimelineModel.endTimeInSeconds(record)-WebInspector.TimelineModel.startTimeInSeconds(record);}
 WebInspector.TimelineModel.aggregateTimeForRecord=function(total,rawRecord)
@@ -130,11 +140,11 @@
 WebInspector.TimelineModel.aggregateTimeByCategory=function(total,addend)
 {for(var category in addend)
 total[category]=(total[category]||0)+addend[category];}
-WebInspector.TimelineModel.prototype={startRecording:function(includeDomCounters)
-{this._clientInitiatedRecording=true;this.reset();var maxStackFrames=WebInspector.settings.timelineLimitStackFramesFlag.get()?WebInspector.settings.timelineStackFramesToCapture.get():30;WebInspector.timelineManager.start(maxStackFrames,includeDomCounters,this._fireRecordingStarted.bind(this));},stopRecording:function()
-{if(!this._clientInitiatedRecording){function stopTimeline()
+WebInspector.TimelineModel.prototype={startRecording:function(includeCounters)
+{this._clientInitiatedRecording=true;this.reset();var maxStackFrames=WebInspector.settings.timelineCaptureStacks.get()?30:0;var includeGPUEvents=WebInspector.experimentsSettings.gpuTimeline.isEnabled();WebInspector.timelineManager.start(maxStackFrames,includeCounters,includeGPUEvents,this._fireRecordingStarted.bind(this));},stopRecording:function()
+{if(!this._clientInitiatedRecording){WebInspector.timelineManager.start(undefined,undefined,undefined,stopTimeline.bind(this));return;}
+function stopTimeline()
 {WebInspector.timelineManager.stop(this._fireRecordingStopped.bind(this));}
-WebInspector.timelineManager.start(undefined,undefined,stopTimeline.bind(this));return;}
 this._clientInitiatedRecording=false;WebInspector.timelineManager.stop(this._fireRecordingStopped.bind(this));},get records()
 {return this._records;},_onRecordAdded:function(event)
 {if(this._collectionEnabled)
@@ -146,11 +156,12 @@
 {this._stringPool.internObjectStrings(record);this._records.push(record);this._updateBoundaries(record);this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordAdded,record);},loadFromFile:function(file,progress)
 {var delegate=new WebInspector.TimelineModelLoadFromFileDelegate(this,progress);var fileReader=this._createFileReader(file,delegate);var loader=new WebInspector.TimelineModelLoader(this,fileReader,progress);fileReader.start(loader);},loadFromURL:function(url,progress)
 {var delegate=new WebInspector.TimelineModelLoadFromFileDelegate(this,progress);var urlReader=new WebInspector.ChunkedXHRReader(url,delegate);var loader=new WebInspector.TimelineModelLoader(this,urlReader,progress);urlReader.start(loader);},_createFileReader:function(file,delegate)
-{return new WebInspector.ChunkedFileReader(file,WebInspector.TimelineModel.TransferChunkLengthBytes,delegate);},_createFileWriter:function(fileName,callback)
-{var stream=new WebInspector.FileOutputStream();stream.open(fileName,callback);},saveToFile:function()
-{var now=new Date();var fileName="TimelineRawData-"+now.toISO8601Compact()+".json";function callback(stream)
-{var saver=new WebInspector.TimelineSaver(stream);saver.save(this._records,window.navigator.appVersion);}
-this._createFileWriter(fileName,callback.bind(this));},reset:function()
+{return new WebInspector.ChunkedFileReader(file,WebInspector.TimelineModel.TransferChunkLengthBytes,delegate);},_createFileWriter:function()
+{return new WebInspector.FileOutputStream();},saveToFile:function()
+{var now=new Date();var fileName="TimelineRawData-"+now.toISO8601Compact()+".json";var stream=this._createFileWriter();function callback(accepted)
+{if(!accepted)
+return;var saver=new WebInspector.TimelineSaver(stream);saver.save(this._records,window.navigator.appVersion);}
+stream.open(fileName,callback.bind(this));},reset:function()
 {this._records=[];this._stringPool.reset();this._minimumRecordTime=-1;this._maximumRecordTime=-1;this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordsCleared);},minimumRecordTime:function()
 {return this._minimumRecordTime;},maximumRecordTime:function()
 {return this._maximumRecordTime;},_updateBoundaries:function(record)
@@ -161,7 +172,7 @@
 WebInspector.TimelineModelLoader=function(model,reader,progress)
 {this._model=model;this._reader=reader;this._progress=progress;this._buffer="";this._firstChunk=true;}
 WebInspector.TimelineModelLoader.prototype={write:function(chunk)
-{var data=this._buffer+chunk;var lastIndex=0;var index;do{index=lastIndex;lastIndex=WebInspector.findBalancedCurlyBrackets(data,index);}while(lastIndex!==-1)
+{var data=this._buffer+chunk;var lastIndex=0;var index;do{index=lastIndex;lastIndex=WebInspector.TextUtils.findBalancedCurlyBrackets(data,index);}while(lastIndex!==-1)
 var json=data.slice(0,index)+"]";this._buffer=data.slice(index);if(!index)
 return;if(!this._firstChunk)
 json="[0"+json;var items;try{items=(JSON.parse(json));}catch(e){WebInspector.showErrorMessage("Malformed timeline data.");this._model.reset();this._reader.cancel();this._progress.done();return;}
@@ -186,42 +197,29 @@
 break;length+=itemLength;data.push(item);++this._recordIndex;}
 if(this._recordIndex===this._records.length)
 data.push(data.pop()+"]");stream.write(data.join(separator),this._writeNextChunk.bind(this));}};WebInspector.TimelineOverviewPane=function(model)
-{WebInspector.View.call(this);this.element.id="timeline-overview-panel";this._windowStartTime=0;this._windowEndTime=Infinity;this._eventDividers=[];this._model=model;this._topPaneSidebarElement=document.createElement("div");this._topPaneSidebarElement.id="timeline-overview-sidebar";var overviewTreeElement=document.createElement("ol");overviewTreeElement.className="sidebar-tree";this._topPaneSidebarElement.appendChild(overviewTreeElement);this.element.appendChild(this._topPaneSidebarElement);var topPaneSidebarTree=new TreeOutline(overviewTreeElement);this._overviewItems={};this._overviewItems[WebInspector.TimelineOverviewPane.Mode.Events]=new WebInspector.SidebarTreeElement("timeline-overview-sidebar-events",WebInspector.UIString("Events"));this._overviewItems[WebInspector.TimelineOverviewPane.Mode.Frames]=new WebInspector.SidebarTreeElement("timeline-overview-sidebar-frames",WebInspector.UIString("Frames"));this._overviewItems[WebInspector.TimelineOverviewPane.Mode.Memory]=new WebInspector.SidebarTreeElement("timeline-overview-sidebar-memory",WebInspector.UIString("Memory"));for(var mode in this._overviewItems){var item=this._overviewItems[mode];item.onselect=this.setMode.bind(this,mode);topPaneSidebarTree.appendChild(item);}
-this._overviewGrid=new WebInspector.OverviewGrid("timeline");this.element.appendChild(this._overviewGrid.element);this._innerSetMode(WebInspector.TimelineOverviewPane.Mode.Events);var categories=WebInspector.TimelinePresentationModel.categories();for(var category in categories)
-categories[category].addEventListener(WebInspector.TimelineCategory.Events.VisibilityChanged,this._onCategoryVisibilityChanged,this);this._overviewCalculator=new WebInspector.TimelineOverviewCalculator();model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._reset,this);this._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);}
-WebInspector.TimelineOverviewPane.Mode={Events:"Events",Frames:"Frames",Memory:"Memory"};WebInspector.TimelineOverviewPane.Events={ModeChanged:"ModeChanged",WindowChanged:"WindowChanged"};WebInspector.TimelineOverviewPane.prototype={wasShown:function()
+{WebInspector.View.call(this);this.element.id="timeline-overview-pane";this._eventDividers=[];this._model=model;this._overviewGrid=new WebInspector.OverviewGrid("timeline");this.element.appendChild(this._overviewGrid.element);this._overviewCalculator=new WebInspector.TimelineOverviewCalculator();model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._reset,this);this._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);}
+WebInspector.TimelineOverviewPane.Events={WindowChanged:"WindowChanged"};WebInspector.TimelineOverviewPane.prototype={wasShown:function()
 {this._update();},onResize:function()
-{this._update();},setMode:function(newMode)
-{if(this._currentMode===newMode)
-return;var windowTimes;if(this._overviewControl)
-windowTimes=this._overviewControl.windowTimes(this.windowLeft(),this.windowRight());this._innerSetMode(newMode);this.dispatchEventToListeners(WebInspector.TimelineOverviewPane.Events.ModeChanged,this._currentMode);if(windowTimes&&windowTimes.startTime>=0)
-this.setWindowTimes(windowTimes.startTime,windowTimes.endTime);this._update();},_innerSetMode:function(newMode)
-{var windowTimes;if(this._overviewControl)
-this._overviewControl.detach();this._currentMode=newMode;this._overviewControl=this._createOverviewControl();this._overviewControl.show(this._overviewGrid.element);this._overviewItems[this._currentMode].revealAndSelect(false);},_createOverviewControl:function()
-{switch(this._currentMode){case WebInspector.TimelineOverviewPane.Mode.Events:return new WebInspector.TimelineEventOverview(this._model);case WebInspector.TimelineOverviewPane.Mode.Frames:return new WebInspector.TimelineFrameOverview(this._model);case WebInspector.TimelineOverviewPane.Mode.Memory:return new WebInspector.TimelineMemoryOverview(this._model);}
-throw new Error("Invalid overview mode: "+this._currentMode);},_onCategoryVisibilityChanged:function(event)
-{this._overviewControl.categoryVisibilityChanged();},_update:function()
-{delete this._refreshTimeout;this._updateWindow();this._overviewCalculator.setWindow(this._model.minimumRecordTime(),this._model.maximumRecordTime());this._overviewCalculator.setDisplayWindow(0,this._overviewGrid.clientWidth());this._overviewControl.update();this._overviewGrid.updateDividers(this._overviewCalculator);this._updateEventDividers();},_updateEventDividers:function()
+{this._update();},setOverviewControl:function(overviewControl)
+{if(this._overviewControl===overviewControl)
+return;if(this._overviewControl)
+this._overviewControl.detach();this._overviewControl=overviewControl;this._overviewControl.show(this._overviewGrid.element);this._update();},_update:function()
+{delete this._refreshTimeout;this._overviewCalculator.setWindow(this._model.minimumRecordTime(),this._model.maximumRecordTime());this._overviewCalculator.setDisplayWindow(0,this._overviewGrid.clientWidth());if(this._overviewControl)
+this._overviewControl.update();this._overviewGrid.updateDividers(this._overviewCalculator);this._updateEventDividers();},_updateEventDividers:function()
 {var records=this._eventDividers;this._overviewGrid.removeEventDividers();var dividers=[];for(var i=0;i<records.length;++i){var record=records[i];var positions=this._overviewCalculator.computeBarGraphPercentages(record);var dividerPosition=Math.round(positions.start*10);if(dividers[dividerPosition])
 continue;var divider=WebInspector.TimelinePresentationModel.createEventDivider(record.type);divider.style.left=positions.start+"%";dividers[dividerPosition]=divider;}
-this._overviewGrid.addEventDividers(dividers);},sidebarResized:function(width)
-{this._overviewGrid.element.style.left=width+"px";this._topPaneSidebarElement.style.width=width+"px";this._update();},addFrame:function(frame)
-{this._overviewControl.addFrame(frame);this._scheduleRefresh();},zoomToFrame:function(frame)
-{var frameOverview=(this._overviewControl);var window=frameOverview.framePosition(frame);if(!window)
-return;this._overviewGrid.setWindowPosition(window.start,window.end);},_onRecordAdded:function(event)
+this._overviewGrid.addEventDividers(dividers);},_onRecordAdded:function(event)
 {var record=event.data;var eventDividers=this._eventDividers;function addEventDividers(record)
 {if(WebInspector.TimelinePresentationModel.isEventDivider(record))
 eventDividers.push(record);}
 WebInspector.TimelinePresentationModel.forAllRecords([record],addEventDividers);this._scheduleRefresh();},_reset:function()
-{this._windowStartTime=0;this._windowEndTime=Infinity;this._overviewCalculator.reset();this._overviewGrid.reset();this._overviewGrid.setResizeEnabled(false);this._eventDividers=[];this._overviewGrid.updateDividers(this._overviewCalculator);this._overviewControl.reset();this._update();},windowStartTime:function()
-{return this._windowStartTime||this._model.minimumRecordTime();},windowEndTime:function()
-{return this._windowEndTime<Infinity?this._windowEndTime:this._model.maximumRecordTime();},windowLeft:function()
+{this._overviewCalculator.reset();this._overviewGrid.reset();this._overviewGrid.setResizeEnabled(false);this._eventDividers=[];this._overviewGrid.updateDividers(this._overviewCalculator);if(this._overviewControl)
+this._overviewControl.reset();this._update();},windowLeft:function()
 {return this._overviewGrid.windowLeft();},windowRight:function()
 {return this._overviewGrid.windowRight();},_onWindowChanged:function()
 {if(this._ignoreWindowChangedEvent)
-return;var times=this._overviewControl.windowTimes(this.windowLeft(),this.windowRight());this._windowStartTime=times.startTime;this._windowEndTime=times.endTime;this.dispatchEventToListeners(WebInspector.TimelineOverviewPane.Events.WindowChanged);},setWindowTimes:function(startTime,endTime)
-{this._windowStartTime=startTime;this._windowEndTime=endTime;this._updateWindow();},_updateWindow:function()
-{var windowBoundaries=this._overviewControl.windowBoundaries(this._windowStartTime,this._windowEndTime);this._ignoreWindowChangedEvent=true;this._overviewGrid.setWindow(windowBoundaries.left,windowBoundaries.right);this._overviewGrid.setResizeEnabled(this._model.records.length);this._ignoreWindowChangedEvent=false;},_scheduleRefresh:function()
+return;this.dispatchEventToListeners(WebInspector.TimelineOverviewPane.Events.WindowChanged);},setWindow:function(left,right)
+{this._ignoreWindowChangedEvent=true;this._overviewGrid.setWindow(left,right);this._overviewGrid.setResizeEnabled(this._model.records.length);this._ignoreWindowChangedEvent=false;},_scheduleRefresh:function()
 {if(this._refreshTimeout)
 return;if(!this.isShowing())
 return;this._refreshTimeout=setTimeout(this._update.bind(this),300);},__proto__:WebInspector.View.prototype}
@@ -232,91 +230,24 @@
 {var start=(WebInspector.TimelineModel.startTimeInSeconds(record)-this._minimumBoundary)/this.boundarySpan()*100;var end=(WebInspector.TimelineModel.endTimeInSeconds(record)-this._minimumBoundary)/this.boundarySpan()*100;return{start:start,end:end};},setWindow:function(minimum,maximum)
 {this._minimumBoundary=minimum>=0?minimum:undefined;this._maximumBoundary=maximum>=0?maximum:undefined;},setDisplayWindow:function(paddingLeft,clientWidth)
 {this._workingArea=clientWidth-paddingLeft;this.paddingLeft=paddingLeft;},reset:function()
-{this.setWindow();},formatTime:function(value)
-{return Number.secondsToString(value);},maximumBoundary:function()
+{this.setWindow();},formatTime:function(value,hires)
+{return Number.secondsToString(value,hires);},maximumBoundary:function()
 {return this._maximumBoundary;},minimumBoundary:function()
 {return this._minimumBoundary;},zeroTime:function()
 {return this._minimumBoundary;},boundarySpan:function()
 {return this._maximumBoundary-this._minimumBoundary;}}
 WebInspector.TimelineOverviewBase=function(model)
 {WebInspector.View.call(this);this.element.classList.add("fill");this._model=model;this._canvas=this.element.createChild("canvas","fill");this._context=this._canvas.getContext("2d");}
-WebInspector.TimelineOverviewBase.prototype={update:function(){},reset:function(){},categoryVisibilityChanged:function(){},addFrame:function(frame){},windowTimes:function(windowLeft,windowRight)
+WebInspector.TimelineOverviewBase.prototype={update:function(){},reset:function(){},windowTimes:function(windowLeft,windowRight)
 {var absoluteMin=this._model.minimumRecordTime();var timeSpan=this._model.maximumRecordTime()-absoluteMin;return{startTime:absoluteMin+timeSpan*windowLeft,endTime:absoluteMin+timeSpan*windowRight};},windowBoundaries:function(startTime,endTime)
-{var absoluteMin=this._model.minimumRecordTime();var timeSpan=this._model.maximumRecordTime()-absoluteMin;var haveRecords=absoluteMin>=0;return{left:haveRecords&&startTime?Math.min((startTime-absoluteMin)/timeSpan,1):0,right:haveRecords&&endTime<Infinity?(endTime-absoluteMin)/timeSpan:1}},_resetCanvas:function()
-{this._canvas.width=this.element.clientWidth*window.devicePixelRatio;this._canvas.height=this.element.clientHeight*window.devicePixelRatio;},__proto__:WebInspector.View.prototype}
-WebInspector.TimelineMemoryOverview=function(model)
-{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-memory";this._maxHeapSizeLabel=this.element.createChild("div","max memory-graph-label");this._minHeapSizeLabel=this.element.createChild("div","min memory-graph-label");}
-WebInspector.TimelineMemoryOverview.prototype={update:function()
-{this._resetCanvas();var records=this._model.records;if(!records.length)
-return;const lowerOffset=3;var maxUsedHeapSize=0;var minUsedHeapSize=100000000000;var minTime=this._model.minimumRecordTime();var maxTime=this._model.maximumRecordTime();WebInspector.TimelinePresentationModel.forAllRecords(records,function(r){maxUsedHeapSize=Math.max(maxUsedHeapSize,r.usedHeapSize||maxUsedHeapSize);minUsedHeapSize=Math.min(minUsedHeapSize,r.usedHeapSize||minUsedHeapSize);});minUsedHeapSize=Math.min(minUsedHeapSize,maxUsedHeapSize);var width=this._canvas.width;var height=this._canvas.height-lowerOffset;var xFactor=width/(maxTime-minTime);var yFactor=height/Math.max(maxUsedHeapSize-minUsedHeapSize,1);var histogram=new Array(width);WebInspector.TimelinePresentationModel.forAllRecords(records,function(r){if(!r.usedHeapSize)
-return;var x=Math.round((WebInspector.TimelineModel.endTimeInSeconds(r)-minTime)*xFactor);var y=Math.round((r.usedHeapSize-minUsedHeapSize)*yFactor);histogram[x]=Math.max(histogram[x]||0,y);});height++;var y=0;var isFirstPoint=true;var ctx=this._context;ctx.beginPath();ctx.moveTo(0,this._canvas.height);for(var x=0;x<histogram.length;x++){if(typeof histogram[x]==="undefined")
-continue;if(isFirstPoint){isFirstPoint=false;y=histogram[x];ctx.lineTo(0,height-y);}
-ctx.lineTo(x,height-y);y=histogram[x];ctx.lineTo(x,height-y);}
-ctx.lineTo(width,height-y);ctx.lineTo(width,this._canvas.height);ctx.lineTo(0,this._canvas.height);ctx.closePath();ctx.lineWidth=0.5;ctx.strokeStyle="rgba(20,0,0,0.8)";ctx.stroke();ctx.fillStyle="rgba(214,225,254, 0.8);";ctx.fill();this._maxHeapSizeLabel.textContent=Number.bytesToString(maxUsedHeapSize);this._minHeapSizeLabel.textContent=Number.bytesToString(minUsedHeapSize);},__proto__:WebInspector.TimelineOverviewBase.prototype}
-WebInspector.TimelineEventOverview=function(model)
-{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-events";this._fillStyles={};var categories=WebInspector.TimelinePresentationModel.categories();for(var category in categories)
-this._fillStyles[category]=WebInspector.TimelinePresentationModel.createFillStyleForCategory(this._context,0,WebInspector.TimelineEventOverview._stripGradientHeight,categories[category]);this._disabledCategoryFillStyle=WebInspector.TimelinePresentationModel.createFillStyle(this._context,0,WebInspector.TimelineEventOverview._stripGradientHeight,"rgb(218, 218, 218)","rgb(170, 170, 170)","rgb(143, 143, 143)");this._disabledCategoryBorderStyle="rgb(143, 143, 143)";}
-WebInspector.TimelineEventOverview._numberOfStrips=3;WebInspector.TimelineEventOverview._stripGradientHeight=120;WebInspector.TimelineEventOverview.prototype={update:function()
-{this._resetCanvas();var stripHeight=Math.round(this._canvas.height/WebInspector.TimelineEventOverview._numberOfStrips);var timeOffset=this._model.minimumRecordTime();var timeSpan=this._model.maximumRecordTime()-timeOffset;var scale=this._canvas.width/timeSpan;var lastBarByGroup=[];this._context.fillStyle="rgba(0, 0, 0, 0.05)";for(var i=1;i<WebInspector.TimelineEventOverview._numberOfStrips;i+=2)
-this._context.fillRect(0.5,i*stripHeight+0.5,this._canvas.width,stripHeight);function appendRecord(record)
-{if(record.type===WebInspector.TimelineModel.RecordType.BeginFrame)
-return;var recordStart=Math.floor((WebInspector.TimelineModel.startTimeInSeconds(record)-timeOffset)*scale);var recordEnd=Math.ceil((WebInspector.TimelineModel.endTimeInSeconds(record)-timeOffset)*scale);var category=WebInspector.TimelinePresentationModel.categoryForRecord(record);if(category.overviewStripGroupIndex<0)
-return;var bar=lastBarByGroup[category.overviewStripGroupIndex];const barsMergeThreshold=2;if(bar&&bar.category===category&&bar.end+barsMergeThreshold>=recordStart){if(recordEnd>bar.end)
-bar.end=recordEnd;return;}
-if(bar)
-this._renderBar(bar.start,bar.end,stripHeight,bar.category);lastBarByGroup[category.overviewStripGroupIndex]={start:recordStart,end:recordEnd,category:category};}
-WebInspector.TimelinePresentationModel.forAllRecords(this._model.records,appendRecord.bind(this));for(var i=0;i<lastBarByGroup.length;++i){if(lastBarByGroup[i])
-this._renderBar(lastBarByGroup[i].start,lastBarByGroup[i].end,stripHeight,lastBarByGroup[i].category);}},categoryVisibilityChanged:function()
-{this.update();},_renderBar:function(begin,end,height,category)
-{const stripPadding=4*window.devicePixelRatio;const innerStripHeight=height-2*stripPadding;var x=begin+0.5;var y=category.overviewStripGroupIndex*height+stripPadding+0.5;var width=Math.max(end-begin,1);this._context.save();this._context.translate(x,y);this._context.scale(1,innerStripHeight/WebInspector.TimelineEventOverview._stripGradientHeight);this._context.fillStyle=category.hidden?this._disabledCategoryFillStyle:this._fillStyles[category.name];this._context.fillRect(0,0,width,WebInspector.TimelineEventOverview._stripGradientHeight);this._context.strokeStyle=category.hidden?this._disabledCategoryBorderStyle:category.borderColor;this._context.strokeRect(0,0,width,WebInspector.TimelineEventOverview._stripGradientHeight);this._context.restore();},__proto__:WebInspector.TimelineOverviewBase.prototype}
-WebInspector.TimelineFrameOverview=function(model)
-{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-frames";this.reset();this._outerPadding=4*window.devicePixelRatio;this._maxInnerBarWidth=10*window.devicePixelRatio;this._actualPadding=5*window.devicePixelRatio;this._actualOuterBarWidth=this._maxInnerBarWidth+this._actualPadding;this._fillStyles={};var categories=WebInspector.TimelinePresentationModel.categories();for(var category in categories)
-this._fillStyles[category]=WebInspector.TimelinePresentationModel.createFillStyleForCategory(this._context,this._maxInnerBarWidth,0,categories[category]);}
-WebInspector.TimelineFrameOverview.prototype={reset:function()
-{this._recordsPerBar=1;this._barTimes=[];this._frames=[];},update:function()
-{const minBarWidth=4*window.devicePixelRatio;this._resetCanvas();this._framesPerBar=Math.max(1,this._frames.length*minBarWidth/this._canvas.width);this._barTimes=[];var visibleFrames=this._aggregateFrames(this._framesPerBar);const paddingTop=4*window.devicePixelRatio;const targetFPS=30;var fullBarLength=1.0/targetFPS;if(fullBarLength<this._medianFrameLength)
-fullBarLength=Math.min(this._medianFrameLength*2,this._maxFrameLength);var scale=(this._canvas.height-paddingTop)/fullBarLength;this._renderBars(visibleFrames,scale);},addFrame:function(frame)
-{this._frames.push(frame);},framePosition:function(frame)
-{var frameNumber=this._frames.indexOf(frame);if(frameNumber<0)
-return;var barNumber=Math.floor(frameNumber/this._framesPerBar);var firstBar=this._framesPerBar>1?barNumber:Math.max(barNumber-1,0);var lastBar=this._framesPerBar>1?barNumber:Math.min(barNumber+1,this._barTimes.length-1);return{start:Math.ceil(this._barNumberToScreenPosition(firstBar)-this._actualPadding/2),end:Math.floor(this._barNumberToScreenPosition(lastBar+1)-this._actualPadding/2)}},_aggregateFrames:function(framesPerBar)
-{var visibleFrames=[];var durations=[];this._maxFrameLength=0;for(var barNumber=0,currentFrame=0;currentFrame<this._frames.length;++barNumber){var barStartTime=this._frames[currentFrame].startTime;var longestFrame=null;for(var lastFrame=Math.min(Math.floor((barNumber+1)*framesPerBar),this._frames.length);currentFrame<lastFrame;++currentFrame){if(!longestFrame||longestFrame.duration<this._frames[currentFrame].duration)
-longestFrame=this._frames[currentFrame];}
-var barEndTime=this._frames[currentFrame-1].endTime;if(longestFrame){this._maxFrameLength=Math.max(this._maxFrameLength,longestFrame.duration);visibleFrames.push(longestFrame);this._barTimes.push({startTime:barStartTime,endTime:barEndTime});durations.push(longestFrame.duration);}}
-this._medianFrameLength=durations.qselect(Math.floor(durations.length/2));return visibleFrames;},_renderBars:function(frames,scale)
-{const maxPadding=5*window.devicePixelRatio;this._actualOuterBarWidth=Math.min((this._canvas.width-2*this._outerPadding)/frames.length,this._maxInnerBarWidth+maxPadding);this._actualPadding=Math.min(Math.floor(this._actualOuterBarWidth/3),maxPadding);var barWidth=this._actualOuterBarWidth-this._actualPadding;for(var i=0;i<frames.length;++i)
-this._renderBar(this._barNumberToScreenPosition(i),barWidth,frames[i],scale);this._drawFPSMarks(scale);},_barNumberToScreenPosition:function(n)
-{return this._outerPadding+this._actualOuterBarWidth*n;},_drawFPSMarks:function(scale)
-{const fpsMarks=[30,60];this._context.save();this._context.beginPath();this._context.font=(10*window.devicePixelRatio)+"px "+window.getComputedStyle(this.element,null).getPropertyValue("font-family");this._context.textAlign="right";this._context.textBaseline="alphabetic";const labelPadding=4*window.devicePixelRatio;const baselineHeight=3*window.devicePixelRatio;var lineHeight=12*window.devicePixelRatio;var labelTopMargin=0;var labelOffsetY=0;for(var i=0;i<fpsMarks.length;++i){var fps=fpsMarks[i];var y=this._canvas.height-Math.floor(1.0/fps*scale)-0.5;var label=WebInspector.UIString("%d\u2009fps",fps);var labelWidth=this._context.measureText(label).width+2*labelPadding;var labelX=this._canvas.width;if(!i&&labelTopMargin<y-lineHeight)
-labelOffsetY=-lineHeight;var labelY=y+labelOffsetY;if(labelY<labelTopMargin||labelY+lineHeight>this._canvas.height)
-break;this._context.moveTo(0,y);this._context.lineTo(this._canvas.width,y);this._context.fillStyle="rgba(255, 255, 255, 0.5)";this._context.fillRect(labelX-labelWidth,labelY,labelWidth,lineHeight);this._context.fillStyle="black";this._context.fillText(label,labelX-labelPadding,labelY+lineHeight-baselineHeight);labelTopMargin=labelY+lineHeight;}
-this._context.strokeStyle="rgba(128, 128, 128, 0.5)";this._context.stroke();this._context.restore();},_renderBar:function(left,width,frame,scale)
-{var categories=Object.keys(WebInspector.TimelinePresentationModel.categories());if(!categories.length)
-return;var x=Math.floor(left)+0.5;width=Math.floor(width);for(var i=0,bottomOffset=this._canvas.height;i<categories.length;++i){var category=categories[i];var duration=frame.timeByCategory[category];if(!duration)
-continue;var height=duration*scale;var y=Math.floor(bottomOffset-height)+0.5;this._context.save();this._context.translate(x,0);this._context.scale(width/this._maxInnerBarWidth,1);this._context.fillStyle=this._fillStyles[category];this._context.fillRect(0,y,this._maxInnerBarWidth,Math.floor(height));this._context.strokeStyle=WebInspector.TimelinePresentationModel.categories()[category].borderColor;this._context.beginPath();this._context.moveTo(0,y);this._context.lineTo(this._maxInnerBarWidth,y);this._context.stroke();this._context.restore();bottomOffset-=height-1;}
-var y0=Math.floor(this._canvas.height-frame.duration*scale)+0.5;var y1=this._canvas.height+0.5;this._context.strokeStyle="rgba(90, 90, 90, 0.3)";this._context.beginPath();this._context.moveTo(x,y1);this._context.lineTo(x,y0);this._context.lineTo(x+width,y0);this._context.lineTo(x+width,y1);this._context.stroke();},windowTimes:function(windowLeft,windowRight)
-{if(!this._barTimes.length)
-return WebInspector.TimelineOverviewBase.prototype.windowTimes.call(this,windowLeft,windowRight);var windowSpan=this._canvas.width;var leftOffset=windowLeft*windowSpan-this._outerPadding+this._actualPadding;var rightOffset=windowRight*windowSpan-this._outerPadding;var firstBar=Math.floor(Math.max(leftOffset,0)/this._actualOuterBarWidth);var lastBar=Math.min(Math.floor(rightOffset/this._actualOuterBarWidth),this._barTimes.length-1);if(firstBar>=this._barTimes.length)
-return{startTime:Infinity,endTime:Infinity};const snapToRightTolerancePixels=3;return{startTime:this._barTimes[firstBar].startTime,endTime:(rightOffset+snapToRightTolerancePixels>windowSpan)||(lastBar>=this._barTimes.length)?Infinity:this._barTimes[lastBar].endTime}},windowBoundaries:function(startTime,endTime)
-{function barStartComparator(time,barTime)
-{return time-barTime.startTime;}
-function barEndComparator(time,barTime)
-{if(time===barTime.endTime)
-return 1;return time-barTime.endTime;}
-return{left:this._windowBoundaryFromTime(startTime,barEndComparator),right:this._windowBoundaryFromTime(endTime,barStartComparator)}},_windowBoundaryFromTime:function(time,comparator)
-{if(time===Infinity)
-return 1;var index=this._firstBarAfter(time,comparator);if(!index)
-return 0;return(this._barNumberToScreenPosition(index)-this._actualPadding/2)/this._canvas.width;},_firstBarAfter:function(time,comparator)
-{return insertionIndexForObjectInListSortedByFunction(time,this._barTimes,comparator);},__proto__:WebInspector.TimelineOverviewBase.prototype}
-WebInspector.TimelineWindowFilter=function(pane)
-{this._pane=pane;}
-WebInspector.TimelineWindowFilter.prototype={accept:function(record)
-{return record.lastChildEndTime>=this._pane._windowStartTime&&record.startTime<=this._pane._windowEndTime;}};WebInspector.TimelinePresentationModel=function()
+{var absoluteMin=this._model.minimumRecordTime();var timeSpan=this._model.maximumRecordTime()-absoluteMin;var haveRecords=absoluteMin>=0;return{left:haveRecords&&startTime?Math.min((startTime-absoluteMin)/timeSpan,1):0,right:haveRecords&&endTime<Infinity?(endTime-absoluteMin)/timeSpan:1}},resetCanvas:function()
+{this._canvas.width=this.element.clientWidth*window.devicePixelRatio;this._canvas.height=this.element.clientHeight*window.devicePixelRatio;},__proto__:WebInspector.View.prototype};WebInspector.TimelinePresentationModel=function()
 {this._linkifier=new WebInspector.Linkifier();this._glueRecords=false;this._filters=[];this.reset();}
 WebInspector.TimelinePresentationModel.categories=function()
 {if(WebInspector.TimelinePresentationModel._categories)
-return WebInspector.TimelinePresentationModel._categories;WebInspector.TimelinePresentationModel._categories={loading:new WebInspector.TimelineCategory("loading",WebInspector.UIString("Loading"),0,"#5A8BCC","#8EB6E9","#70A2E3"),scripting:new WebInspector.TimelineCategory("scripting",WebInspector.UIString("Scripting"),1,"#D8AA34","#F3D07A","#F1C453"),rendering:new WebInspector.TimelineCategory("rendering",WebInspector.UIString("Rendering"),2,"#8266CC","#AF9AEB","#9A7EE6"),painting:new WebInspector.TimelineCategory("painting",WebInspector.UIString("Painting"),2,"#5FA050","#8DC286","#71B363"),other:new WebInspector.TimelineCategory("other",WebInspector.UIString("Other"),-1,"#BBBBBB","#DDDDDD","#DDDDDD")};return WebInspector.TimelinePresentationModel._categories;};WebInspector.TimelinePresentationModel._initRecordStyles=function()
+return WebInspector.TimelinePresentationModel._categories;WebInspector.TimelinePresentationModel._categories={loading:new WebInspector.TimelineCategory("loading",WebInspector.UIString("Loading"),0,"#5A8BCC","#8EB6E9","#70A2E3"),scripting:new WebInspector.TimelineCategory("scripting",WebInspector.UIString("Scripting"),1,"#D8AA34","#F3D07A","#F1C453"),rendering:new WebInspector.TimelineCategory("rendering",WebInspector.UIString("Rendering"),2,"#8266CC","#AF9AEB","#9A7EE6"),painting:new WebInspector.TimelineCategory("painting",WebInspector.UIString("Painting"),2,"#5FA050","#8DC286","#71B363"),other:new WebInspector.TimelineCategory("other",WebInspector.UIString("Other"),-1,"#BBBBBB","#DDDDDD","#DDDDDD"),idle:new WebInspector.TimelineCategory("idle",WebInspector.UIString("Idle"),-1,"#DDDDDD","#FFFFFF","#FFFFFF")};return WebInspector.TimelinePresentationModel._categories;};WebInspector.TimelinePresentationModel._initRecordStyles=function()
 {if(WebInspector.TimelinePresentationModel._recordStylesMap)
-return WebInspector.TimelinePresentationModel._recordStylesMap;var recordTypes=WebInspector.TimelineModel.RecordType;var categories=WebInspector.TimelinePresentationModel.categories();var recordStyles={};recordStyles[recordTypes.Root]={title:"#root",category:categories["loading"]};recordStyles[recordTypes.Program]={title:WebInspector.UIString("Other"),category:categories["other"]};recordStyles[recordTypes.EventDispatch]={title:WebInspector.UIString("Event"),category:categories["scripting"]};recordStyles[recordTypes.BeginFrame]={title:WebInspector.UIString("Frame Start"),category:categories["rendering"]};recordStyles[recordTypes.ScheduleStyleRecalculation]={title:WebInspector.UIString("Schedule Style Recalculation"),category:categories["rendering"]};recordStyles[recordTypes.RecalculateStyles]={title:WebInspector.UIString("Recalculate Style"),category:categories["rendering"]};recordStyles[recordTypes.InvalidateLayout]={title:WebInspector.UIString("Invalidate Layout"),category:categories["rendering"]};recordStyles[recordTypes.Layout]={title:WebInspector.UIString("Layout"),category:categories["rendering"]};recordStyles[recordTypes.AutosizeText]={title:WebInspector.UIString("Autosize Text"),category:categories["rendering"]};recordStyles[recordTypes.PaintSetup]={title:WebInspector.UIString("Paint Setup"),category:categories["painting"]};recordStyles[recordTypes.Paint]={title:WebInspector.UIString("Paint"),category:categories["painting"]};recordStyles[recordTypes.Rasterize]={title:WebInspector.UIString("Rasterize"),category:categories["painting"]};recordStyles[recordTypes.ScrollLayer]={title:WebInspector.UIString("Scroll"),category:categories["rendering"]};recordStyles[recordTypes.DecodeImage]={title:WebInspector.UIString("Image Decode"),category:categories["painting"]};recordStyles[recordTypes.ResizeImage]={title:WebInspector.UIString("Image Resize"),category:categories["painting"]};recordStyles[recordTypes.CompositeLayers]={title:WebInspector.UIString("Composite Layers"),category:categories["painting"]};recordStyles[recordTypes.ParseHTML]={title:WebInspector.UIString("Parse HTML"),category:categories["loading"]};recordStyles[recordTypes.TimerInstall]={title:WebInspector.UIString("Install Timer"),category:categories["scripting"]};recordStyles[recordTypes.TimerRemove]={title:WebInspector.UIString("Remove Timer"),category:categories["scripting"]};recordStyles[recordTypes.TimerFire]={title:WebInspector.UIString("Timer Fired"),category:categories["scripting"]};recordStyles[recordTypes.XHRReadyStateChange]={title:WebInspector.UIString("XHR Ready State Change"),category:categories["scripting"]};recordStyles[recordTypes.XHRLoad]={title:WebInspector.UIString("XHR Load"),category:categories["scripting"]};recordStyles[recordTypes.EvaluateScript]={title:WebInspector.UIString("Evaluate Script"),category:categories["scripting"]};recordStyles[recordTypes.ResourceSendRequest]={title:WebInspector.UIString("Send Request"),category:categories["loading"]};recordStyles[recordTypes.ResourceReceiveResponse]={title:WebInspector.UIString("Receive Response"),category:categories["loading"]};recordStyles[recordTypes.ResourceFinish]={title:WebInspector.UIString("Finish Loading"),category:categories["loading"]};recordStyles[recordTypes.FunctionCall]={title:WebInspector.UIString("Function Call"),category:categories["scripting"]};recordStyles[recordTypes.ResourceReceivedData]={title:WebInspector.UIString("Receive Data"),category:categories["loading"]};recordStyles[recordTypes.GCEvent]={title:WebInspector.UIString("GC Event"),category:categories["scripting"]};recordStyles[recordTypes.MarkDOMContent]={title:WebInspector.UIString("DOMContentLoaded event"),category:categories["scripting"]};recordStyles[recordTypes.MarkLoad]={title:WebInspector.UIString("Load event"),category:categories["scripting"]};recordStyles[recordTypes.TimeStamp]={title:WebInspector.UIString("Stamp"),category:categories["scripting"]};recordStyles[recordTypes.Time]={title:WebInspector.UIString("Time"),category:categories["scripting"]};recordStyles[recordTypes.TimeEnd]={title:WebInspector.UIString("Time End"),category:categories["scripting"]};recordStyles[recordTypes.ScheduleResourceRequest]={title:WebInspector.UIString("Schedule Request"),category:categories["loading"]};recordStyles[recordTypes.RequestAnimationFrame]={title:WebInspector.UIString("Request Animation Frame"),category:categories["scripting"]};recordStyles[recordTypes.CancelAnimationFrame]={title:WebInspector.UIString("Cancel Animation Frame"),category:categories["scripting"]};recordStyles[recordTypes.FireAnimationFrame]={title:WebInspector.UIString("Animation Frame Fired"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketCreate]={title:WebInspector.UIString("Create WebSocket"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketSendHandshakeRequest]={title:WebInspector.UIString("Send WebSocket Handshake"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketReceiveHandshakeResponse]={title:WebInspector.UIString("Receive WebSocket Handshake"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketDestroy]={title:WebInspector.UIString("Destroy WebSocket"),category:categories["scripting"]};WebInspector.TimelinePresentationModel._recordStylesMap=recordStyles;return recordStyles;}
+return WebInspector.TimelinePresentationModel._recordStylesMap;var recordTypes=WebInspector.TimelineModel.RecordType;var categories=WebInspector.TimelinePresentationModel.categories();var recordStyles={};recordStyles[recordTypes.Root]={title:"#root",category:categories["loading"]};recordStyles[recordTypes.Program]={title:WebInspector.UIString("Other"),category:categories["other"]};recordStyles[recordTypes.EventDispatch]={title:WebInspector.UIString("Event"),category:categories["scripting"]};recordStyles[recordTypes.BeginFrame]={title:WebInspector.UIString("Frame Start"),category:categories["rendering"]};recordStyles[recordTypes.ScheduleStyleRecalculation]={title:WebInspector.UIString("Schedule Style Recalculation"),category:categories["rendering"]};recordStyles[recordTypes.RecalculateStyles]={title:WebInspector.UIString("Recalculate Style"),category:categories["rendering"]};recordStyles[recordTypes.InvalidateLayout]={title:WebInspector.UIString("Invalidate Layout"),category:categories["rendering"]};recordStyles[recordTypes.Layout]={title:WebInspector.UIString("Layout"),category:categories["rendering"]};recordStyles[recordTypes.AutosizeText]={title:WebInspector.UIString("Autosize Text"),category:categories["rendering"]};recordStyles[recordTypes.PaintSetup]={title:WebInspector.UIString("Paint Setup"),category:categories["painting"]};recordStyles[recordTypes.Paint]={title:WebInspector.UIString("Paint"),category:categories["painting"]};recordStyles[recordTypes.Rasterize]={title:WebInspector.UIString("Paint"),category:categories["painting"]};recordStyles[recordTypes.ScrollLayer]={title:WebInspector.UIString("Scroll"),category:categories["rendering"]};recordStyles[recordTypes.DecodeImage]={title:WebInspector.UIString("Image Decode"),category:categories["painting"]};recordStyles[recordTypes.ResizeImage]={title:WebInspector.UIString("Image Resize"),category:categories["painting"]};recordStyles[recordTypes.CompositeLayers]={title:WebInspector.UIString("Composite Layers"),category:categories["painting"]};recordStyles[recordTypes.ParseHTML]={title:WebInspector.UIString("Parse HTML"),category:categories["loading"]};recordStyles[recordTypes.TimerInstall]={title:WebInspector.UIString("Install Timer"),category:categories["scripting"]};recordStyles[recordTypes.TimerRemove]={title:WebInspector.UIString("Remove Timer"),category:categories["scripting"]};recordStyles[recordTypes.TimerFire]={title:WebInspector.UIString("Timer Fired"),category:categories["scripting"]};recordStyles[recordTypes.XHRReadyStateChange]={title:WebInspector.UIString("XHR Ready State Change"),category:categories["scripting"]};recordStyles[recordTypes.XHRLoad]={title:WebInspector.UIString("XHR Load"),category:categories["scripting"]};recordStyles[recordTypes.EvaluateScript]={title:WebInspector.UIString("Evaluate Script"),category:categories["scripting"]};recordStyles[recordTypes.ResourceSendRequest]={title:WebInspector.UIString("Send Request"),category:categories["loading"]};recordStyles[recordTypes.ResourceReceiveResponse]={title:WebInspector.UIString("Receive Response"),category:categories["loading"]};recordStyles[recordTypes.ResourceFinish]={title:WebInspector.UIString("Finish Loading"),category:categories["loading"]};recordStyles[recordTypes.FunctionCall]={title:WebInspector.UIString("Function Call"),category:categories["scripting"]};recordStyles[recordTypes.ResourceReceivedData]={title:WebInspector.UIString("Receive Data"),category:categories["loading"]};recordStyles[recordTypes.GCEvent]={title:WebInspector.UIString("GC Event"),category:categories["scripting"]};recordStyles[recordTypes.MarkDOMContent]={title:WebInspector.UIString("DOMContentLoaded event"),category:categories["scripting"]};recordStyles[recordTypes.MarkLoad]={title:WebInspector.UIString("Load event"),category:categories["scripting"]};recordStyles[recordTypes.MarkFirstPaint]={title:WebInspector.UIString("First paint"),category:categories["painting"]};recordStyles[recordTypes.TimeStamp]={title:WebInspector.UIString("Stamp"),category:categories["scripting"]};recordStyles[recordTypes.Time]={title:WebInspector.UIString("Time"),category:categories["scripting"]};recordStyles[recordTypes.TimeEnd]={title:WebInspector.UIString("Time End"),category:categories["scripting"]};recordStyles[recordTypes.ScheduleResourceRequest]={title:WebInspector.UIString("Schedule Request"),category:categories["loading"]};recordStyles[recordTypes.RequestAnimationFrame]={title:WebInspector.UIString("Request Animation Frame"),category:categories["scripting"]};recordStyles[recordTypes.CancelAnimationFrame]={title:WebInspector.UIString("Cancel Animation Frame"),category:categories["scripting"]};recordStyles[recordTypes.FireAnimationFrame]={title:WebInspector.UIString("Animation Frame Fired"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketCreate]={title:WebInspector.UIString("Create WebSocket"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketSendHandshakeRequest]={title:WebInspector.UIString("Send WebSocket Handshake"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketReceiveHandshakeResponse]={title:WebInspector.UIString("Receive WebSocket Handshake"),category:categories["scripting"]};recordStyles[recordTypes.WebSocketDestroy]={title:WebInspector.UIString("Destroy WebSocket"),category:categories["scripting"]};WebInspector.TimelinePresentationModel._recordStylesMap=recordStyles;return recordStyles;}
 WebInspector.TimelinePresentationModel.recordStyle=function(record)
 {var recordStyles=WebInspector.TimelinePresentationModel._initRecordStyles();var result=recordStyles[record.type];if(!result){result={title:WebInspector.UIString("Unknown: %s",record.type),category:WebInspector.TimelinePresentationModel.categories()["other"]};recordStyles[record.type]=result;}
 return result;}
@@ -324,6 +255,7 @@
 {return WebInspector.TimelinePresentationModel.recordStyle(record).category;}
 WebInspector.TimelinePresentationModel.isEventDivider=function(record)
 {var recordTypes=WebInspector.TimelineModel.RecordType;if(record.type===recordTypes.TimeStamp)
+return true;if(record.type===recordTypes.MarkFirstPaint)
 return true;if(record.type===recordTypes.MarkDOMContent||record.type===recordTypes.MarkLoad){if(record.data&&((typeof record.data.isMainFrame)==="boolean"))
 return record.data.isMainFrame;}
 return false;}
@@ -340,18 +272,20 @@
 WebInspector.TimelinePresentationModel.createEventDivider=function(recordType,title)
 {var eventDivider=document.createElement("div");eventDivider.className="resources-event-divider";var recordTypes=WebInspector.TimelineModel.RecordType;if(recordType===recordTypes.MarkDOMContent)
 eventDivider.className+=" resources-blue-divider";else if(recordType===recordTypes.MarkLoad)
-eventDivider.className+=" resources-red-divider";else if(recordType===recordTypes.TimeStamp)
+eventDivider.className+=" resources-red-divider";else if(recordType===recordTypes.MarkFirstPaint)
+eventDivider.className+=" resources-green-divider";else if(recordType===recordTypes.TimeStamp)
 eventDivider.className+=" resources-orange-divider";else if(recordType===recordTypes.BeginFrame)
 eventDivider.className+=" timeline-frame-divider";if(title)
 eventDivider.title=title;return eventDivider;}
 WebInspector.TimelinePresentationModel._hiddenRecords={}
-WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkDOMContent]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkLoad]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.ScheduleStyleRecalculation]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.InvalidateLayout]=1;WebInspector.TimelinePresentationModel.prototype={addFilter:function(filter)
+WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkDOMContent]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkLoad]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.MarkFirstPaint]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.ScheduleStyleRecalculation]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.InvalidateLayout]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.GPUTask]=1;WebInspector.TimelinePresentationModel._hiddenRecords[WebInspector.TimelineModel.RecordType.ActivateLayerTree]=1;WebInspector.TimelinePresentationModel.prototype={addFilter:function(filter)
 {this._filters.push(filter);},setSearchFilter:function(filter)
 {this._searchFilter=filter;},rootRecord:function()
 {return this._rootRecord;},frames:function()
 {return this._frames;},reset:function()
 {this._linkifier.reset();this._rootRecord=new WebInspector.TimelinePresentationModel.Record(this,{type:WebInspector.TimelineModel.RecordType.Root},null,null,null,false);this._sendRequestRecords={};this._scheduledResourceRequests={};this._timerRecords={};this._requestAnimationFrameRecords={};this._eventDividerRecords=[];this._timeRecords={};this._timeRecordStack=[];this._frames=[];this._minimumRecordTime=-1;this._layoutInvalidateStack={};this._lastScheduleStyleRecalculation={};this._webSocketCreateRecords={};this._coalescingBuckets={};},addFrame:function(frame)
-{this._frames.push(frame);},addRecord:function(record)
+{if(!frame.isBackground)
+this._frames.push(frame);},addRecord:function(record)
 {if(this._minimumRecordTime===-1||record.startTime<this._minimumRecordTime)
 this._minimumRecordTime=WebInspector.TimelineModel.startTimeInSeconds(record);var records;if(record.type===WebInspector.TimelineModel.RecordType.Program)
 records=this._foldSyncTimeRecords(record.children||[]);else
@@ -361,15 +295,15 @@
 if(parentRecord===this._rootRecord)
 coalescingBucket=record.thread?record.type:"mainThread";var coalescedRecord=this._findCoalescedParent(record,parentRecord,coalescingBucket);if(coalescedRecord){if(!origin)
 origin=parentRecord;parentRecord=coalescedRecord;}}
-var children=record.children;var scriptDetails;if(record.data&&record.data["scriptName"]){scriptDetails={scriptName:record.data["scriptName"],scriptLine:record.data["scriptLine"]}};if((record.type===recordTypes.TimerFire||record.type===recordTypes.FireAnimationFrame)&&children&&children.length){var childRecord=children[0];if(childRecord.type===recordTypes.FunctionCall){scriptDetails={scriptName:childRecord.data["scriptName"],scriptLine:childRecord.data["scriptLine"]};children=childRecord.children.concat(children.slice(1));}}
+var children=record.children;var scriptDetails=null;if(record.data&&record.data["scriptName"]){scriptDetails={scriptName:record.data["scriptName"],scriptLine:record.data["scriptLine"]}};if((record.type===recordTypes.TimerFire||record.type===recordTypes.FireAnimationFrame)&&children&&children.length){var childRecord=children[0];if(childRecord.type===recordTypes.FunctionCall){scriptDetails={scriptName:childRecord.data["scriptName"],scriptLine:childRecord.data["scriptLine"]};children=childRecord.children.concat(children.slice(1));}}
 var formattedRecord=new WebInspector.TimelinePresentationModel.Record(this,record,parentRecord,origin,scriptDetails,isHiddenRecord);if(WebInspector.TimelinePresentationModel.isEventDivider(formattedRecord))
 this._eventDividerRecords.push(formattedRecord);if(isHiddenRecord)
 return formattedRecord;formattedRecord.collapsed=parentRecord===this._rootRecord;if(coalescingBucket)
 this._coalescingBuckets[coalescingBucket]=formattedRecord;if(children){children=this._foldSyncTimeRecords(children);for(var i=0;i<children.length;++i)
 this._innerAddRecord(formattedRecord,children[i]);}
-formattedRecord.calculateAggregatedStats();if(origin)
-this._updateAncestorStats(formattedRecord);if(parentRecord.coalesced&&parentRecord.startTime>formattedRecord.startTime)
-parentRecord._record.startTime=record.startTime;origin=formattedRecord.origin();if(!origin.isRoot()&&!origin.coalesced)
+formattedRecord.calculateAggregatedStats();if(parentRecord.coalesced)
+this._updateCoalescingParent(formattedRecord);else if(origin)
+this._updateAncestorStats(formattedRecord);origin=formattedRecord.origin();if(!origin.isRoot()&&!origin.coalesced)
 origin.selfTime-=formattedRecord.endTime-formattedRecord.startTime;return formattedRecord;},_updateAncestorStats:function(record)
 {var lastChildEndTime=record.lastChildEndTime;var aggregatedStats=record.aggregatedStats;for(var currentRecord=record.parent;currentRecord&&!currentRecord.isRoot();currentRecord=currentRecord.parent){currentRecord._cpuTime+=record._cpuTime;if(currentRecord.lastChildEndTime<lastChildEndTime)
 currentRecord.lastChildEndTime=lastChildEndTime;for(var category in aggregatedStats)
@@ -384,8 +318,10 @@
 return lastRecord.parent;return this._replaceWithCoalescedRecord(lastRecord);},_replaceWithCoalescedRecord:function(record)
 {var rawRecord={type:record._record.type,startTime:record._record.startTime,endTime:record._record.endTime,data:{}};if(record._record.thread)
 rawRecord.thread="aggregated";if(record.type===WebInspector.TimelineModel.RecordType.TimeStamp)
-rawRecord.data.message=record.data.message;var coalescedRecord=new WebInspector.TimelinePresentationModel.Record(this,rawRecord,null,null,null,false);var parent=record.parent;coalescedRecord.coalesced=true;coalescedRecord.collapsed=true;coalescedRecord._children.push(record);record.parent=coalescedRecord;coalescedRecord.calculateAggregatedStats();if(record.hasWarnings()||record.childHasWarnings())
-coalescedRecord._childHasWarnings=true;coalescedRecord.parent=parent;parent._children[parent._children.indexOf(record)]=coalescedRecord;return coalescedRecord;},_foldSyncTimeRecords:function(records)
+rawRecord.data.message=record.data.message;var coalescedRecord=new WebInspector.TimelinePresentationModel.Record(this,rawRecord,null,null,null,false);var parent=record.parent;coalescedRecord.coalesced=true;coalescedRecord.collapsed=true;coalescedRecord._children.push(record);record.parent=coalescedRecord;if(record.hasWarnings()||record.childHasWarnings())
+coalescedRecord._childHasWarnings=true;coalescedRecord.parent=parent;parent._children[parent._children.indexOf(record)]=coalescedRecord;WebInspector.TimelineModel.aggregateTimeByCategory(coalescedRecord._aggregatedStats,record._aggregatedStats);return coalescedRecord;},_updateCoalescingParent:function(record)
+{var parentRecord=record.parent;WebInspector.TimelineModel.aggregateTimeByCategory(parentRecord._aggregatedStats,record._aggregatedStats);if(parentRecord.startTime>record._record.startTime)
+parentRecord._record.startTime=record._record.startTime;if(parentRecord.endTime<record._record.endTime){parentRecord._record.endTime=record._record.endTime;parentRecord.lastChildEndTime=parentRecord.endTime;}},_foldSyncTimeRecords:function(records)
 {var recordTypes=WebInspector.TimelineModel.RecordType;for(var i=0;i<records.length&&records[i].type!==recordTypes.Time;++i){}
 if(i===records.length)
 return records;var result=[];var stack=[];for(var i=0;i<records.length;++i){result.push(records[i]);if(records[i].type===recordTypes.Time){stack.push(result.length-1);continue;}
@@ -415,8 +351,8 @@
 {for(var i=0;i<this._filters.length;++i){if(!this._filters[i].accept(record))
 return false;}
 return!this._searchFilter||this._searchFilter.accept(record);},generateMainThreadBarPopupContent:function(info)
-{var firstTaskIndex=info.firstTaskIndex;var lastTaskIndex=info.lastTaskIndex;var tasks=info.tasks;var messageCount=lastTaskIndex-firstTaskIndex+1;var cpuTime=0;for(var i=firstTaskIndex;i<=lastTaskIndex;++i){var task=tasks[i];cpuTime+=task.endTime-task.startTime;}
-var startTime=tasks[firstTaskIndex].startTime;var endTime=tasks[lastTaskIndex].endTime;var duration=endTime-startTime;var offset=this._minimumRecordTime;var contentHelper=new WebInspector.PopoverContentHelper(WebInspector.UIString("CPU"));var durationText=WebInspector.UIString("%s (at %s)",Number.secondsToString(duration,true),Number.secondsToString(startTime-offset,true));contentHelper.appendTextRow(WebInspector.UIString("Duration"),durationText);contentHelper.appendTextRow(WebInspector.UIString("CPU time"),Number.secondsToString(cpuTime,true));contentHelper.appendTextRow(WebInspector.UIString("Message Count"),messageCount);return contentHelper.contentTable();},__proto__:WebInspector.Object.prototype}
+{var firstTaskIndex=info.firstTaskIndex;var lastTaskIndex=info.lastTaskIndex;var tasks=info.tasks;var messageCount=lastTaskIndex-firstTaskIndex+1;var cpuTime=0;for(var i=firstTaskIndex;i<=lastTaskIndex;++i){var task=tasks[i];cpuTime+=WebInspector.TimelineModel.endTimeInSeconds(task)-WebInspector.TimelineModel.startTimeInSeconds(task);}
+var startTime=WebInspector.TimelineModel.startTimeInSeconds(tasks[firstTaskIndex]);var endTime=WebInspector.TimelineModel.endTimeInSeconds(tasks[lastTaskIndex]);var duration=endTime-startTime;var offset=this._minimumRecordTime;var contentHelper=new WebInspector.TimelinePopupContentHelper(info.name);var durationText=WebInspector.UIString("%s (at %s)",Number.secondsToString(duration,true),Number.secondsToString(startTime-offset,true));contentHelper.appendTextRow(WebInspector.UIString("Duration"),durationText);contentHelper.appendTextRow(WebInspector.UIString("CPU time"),Number.secondsToString(cpuTime,true));contentHelper.appendTextRow(WebInspector.UIString("Message Count"),messageCount);return contentHelper.contentTable();},__proto__:WebInspector.Object.prototype}
 WebInspector.TimelinePresentationModel.Record=function(presentationModel,record,parentRecord,origin,scriptDetails,hidden)
 {this._linkifier=presentationModel._linkifier;this._aggregatedStats={};this._record=record;this._children=[];if(!hidden&&parentRecord){this.parent=parentRecord;if(this.isBackground)
 WebInspector.TimelinePresentationModel.insertRetrospectiveRecord(parentRecord,this);else
@@ -471,23 +407,27 @@
 {return this._record.data;},get type()
 {return this._record.type;},get frameId()
 {return this._record.frameId;},get usedHeapSizeDelta()
-{return this._record.usedHeapSizeDelta||0;},get usedHeapSize()
-{return this._record.usedHeapSize;},get stackTrace()
+{return this._record.usedHeapSizeDelta||0;},get jsHeapSizeUsed()
+{return this._record.counters?this._record.counters.jsHeapSizeUsed:0;},get stackTrace()
 {if(this._record.stackTrace&&this._record.stackTrace.length)
 return this._record.stackTrace;return null;},containsTime:function(time)
 {return this.startTime<=time&&time<=this.endTime;},generatePopupContent:function(callback)
 {var barrier=new CallbackBarrier();if(WebInspector.TimelinePresentationModel.needsPreviewElement(this.type)&&!this._imagePreviewElement)
 WebInspector.DOMPresentationUtils.buildImagePreviewContents(this.url,false,barrier.createCallback(this._setImagePreviewElement.bind(this)));if(this._relatedBackendNodeId&&!this._relatedNode)
 WebInspector.domAgent.pushNodeByBackendIdToFrontend(this._relatedBackendNodeId,barrier.createCallback(this._setRelatedNode.bind(this)));barrier.callWhenDone(callbackWrapper.bind(this));function callbackWrapper()
-{callback(this._generatePopupContentSynchronously());}},_setImagePreviewElement:function(element)
+{callback(this._generatePopupContentSynchronously());}},getUserObject:function(key)
+{if(!this._userObjects)
+return null;return this._userObjects.get(key);},setUserObject:function(key,value)
+{if(!this._userObjects)
+this._userObjects=new StringMap();this._userObjects.put(key,value);},_setImagePreviewElement:function(element)
 {this._imagePreviewElement=element;},_setRelatedNode:function(nodeId)
 {if(typeof nodeId==="number")
 this._relatedNode=WebInspector.domAgent.nodeForId(nodeId);},_generatePopupContentSynchronously:function()
-{var contentHelper=new WebInspector.PopoverContentHelper(this.title);var text=WebInspector.UIString("%s (at %s)",Number.secondsToString(this._lastChildEndTime-this.startTime,true),Number.secondsToString(this._startTimeOffset));contentHelper.appendTextRow(WebInspector.UIString("Duration"),text);if(this._children.length){if(!this.coalesced)
-contentHelper.appendTextRow(WebInspector.UIString("Self Time"),Number.secondsToString(this._selfTime,true));contentHelper.appendTextRow(WebInspector.UIString("CPU Time"),Number.secondsToString(this._cpuTime,true));contentHelper.appendElementRow(WebInspector.UIString("Aggregated Time"),WebInspector.TimelinePresentationModel._generateAggregatedInfo(this._aggregatedStats));}
-if(this.coalesced)
-return contentHelper.contentTable();const recordTypes=WebInspector.TimelineModel.RecordType;var callSiteStackTraceLabel;var callStackLabel;var relatedNodeLabel;switch(this.type){case recordTypes.GCEvent:contentHelper.appendTextRow(WebInspector.UIString("Collected"),Number.bytesToString(this.data["usedHeapSizeDelta"]));break;case recordTypes.TimerFire:callSiteStackTraceLabel=WebInspector.UIString("Timer installed");case recordTypes.TimerInstall:case recordTypes.TimerRemove:contentHelper.appendTextRow(WebInspector.UIString("Timer ID"),this.data["timerId"]);if(typeof this.timeout==="number"){contentHelper.appendTextRow(WebInspector.UIString("Timeout"),Number.secondsToString(this.timeout/1000));contentHelper.appendTextRow(WebInspector.UIString("Repeats"),!this.singleShot);}
-break;case recordTypes.FireAnimationFrame:callSiteStackTraceLabel=WebInspector.UIString("Animation frame requested");contentHelper.appendTextRow(WebInspector.UIString("Callback ID"),this.data["id"]);break;case recordTypes.FunctionCall:contentHelper.appendElementRow(WebInspector.UIString("Location"),this._linkifyScriptLocation());break;case recordTypes.ScheduleResourceRequest:case recordTypes.ResourceSendRequest:case recordTypes.ResourceReceiveResponse:case recordTypes.ResourceReceivedData:case recordTypes.ResourceFinish:contentHelper.appendElementRow(WebInspector.UIString("Resource"),WebInspector.linkifyResourceAsNode(this.url));if(this._imagePreviewElement)
+{var fragment=document.createDocumentFragment();var pie=WebInspector.TimelinePresentationModel.generatePieChart(this._aggregatedStats,this.category.name);if(!this.coalesced&&this._children.length){pie.pieChart.addSlice(this._selfTime,this.category.fillColorStop1);var rowElement=document.createElement("div");pie.footerElement.insertBefore(rowElement,pie.footerElement.firstChild);rowElement.createChild("div","timeline-aggregated-category timeline-"+this.category.name);rowElement.createTextChild(WebInspector.UIString("%s %s (Self)",Number.secondsToString(this._selfTime,true),this.category.title));}
+fragment.appendChild(pie.element);var contentHelper=new WebInspector.TimelineDetailsContentHelper(true);contentHelper.appendTextRow(WebInspector.UIString("Started at"),Number.secondsToString(this._startTimeOffset));if(this.coalesced)
+return fragment;const recordTypes=WebInspector.TimelineModel.RecordType;var callSiteStackTraceLabel;var callStackLabel;var relatedNodeLabel;switch(this.type){case recordTypes.GCEvent:contentHelper.appendTextRow(WebInspector.UIString("Collected"),Number.bytesToString(this.data["usedHeapSizeDelta"]));break;case recordTypes.TimerFire:callSiteStackTraceLabel=WebInspector.UIString("Timer installed");case recordTypes.TimerInstall:case recordTypes.TimerRemove:contentHelper.appendTextRow(WebInspector.UIString("Timer ID"),this.data["timerId"]);if(typeof this.timeout==="number"){contentHelper.appendTextRow(WebInspector.UIString("Timeout"),Number.secondsToString(this.timeout/1000));contentHelper.appendTextRow(WebInspector.UIString("Repeats"),!this.singleShot);}
+break;case recordTypes.FireAnimationFrame:callSiteStackTraceLabel=WebInspector.UIString("Animation frame requested");contentHelper.appendTextRow(WebInspector.UIString("Callback ID"),this.data["id"]);break;case recordTypes.FunctionCall:if(this.scriptName)
+contentHelper.appendElementRow(WebInspector.UIString("Location"),this._linkifyLocation(this.scriptName,this.scriptLine,0));break;case recordTypes.ScheduleResourceRequest:case recordTypes.ResourceSendRequest:case recordTypes.ResourceReceiveResponse:case recordTypes.ResourceReceivedData:case recordTypes.ResourceFinish:contentHelper.appendElementRow(WebInspector.UIString("Resource"),WebInspector.linkifyResourceAsNode(this.url));if(this._imagePreviewElement)
 contentHelper.appendElementRow(WebInspector.UIString("Preview"),this._imagePreviewElement);if(this.data["requestMethod"])
 contentHelper.appendTextRow(WebInspector.UIString("Request Method"),this.data["requestMethod"]);if(typeof this.data["statusCode"]==="number")
 contentHelper.appendTextRow(WebInspector.UIString("Status Code"),this.data["statusCode"]);if(this.data["mimeType"])
@@ -505,28 +445,28 @@
 contentHelper.appendTextRow(WebInspector.UIString("Interval Duration"),Number.secondsToString(this.intervalDuration,true));break;case recordTypes.WebSocketCreate:case recordTypes.WebSocketSendHandshakeRequest:case recordTypes.WebSocketReceiveHandshakeResponse:case recordTypes.WebSocketDestroy:if(typeof this.webSocketURL!=="undefined")
 contentHelper.appendTextRow(WebInspector.UIString("URL"),this.webSocketURL);if(typeof this.webSocketProtocol!=="undefined")
 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protocol"),this.webSocketProtocol);if(typeof this.data["message"]!=="undefined")
-contentHelper.appendTextRow(WebInspector.UIString("Message"),this.data["message"])
-break;default:if(this.detailsNode())
+contentHelper.appendTextRow(WebInspector.UIString("Message"),this.data["message"]);break;default:if(this.detailsNode())
 contentHelper.appendElementRow(WebInspector.UIString("Details"),this.detailsNode().childNodes[1].cloneNode());break;}
 if(this._relatedNode)
 contentHelper.appendElementRow(relatedNodeLabel||WebInspector.UIString("Related node"),this._createNodeAnchor(this._relatedNode));if(this.scriptName&&this.type!==recordTypes.FunctionCall)
-contentHelper.appendElementRow(WebInspector.UIString("Function Call"),this._linkifyScriptLocation());if(this.usedHeapSize){if(this.usedHeapSizeDelta){var sign=this.usedHeapSizeDelta>0?"+":"-";contentHelper.appendTextRow(WebInspector.UIString("Used Heap Size"),WebInspector.UIString("%s (%s%s)",Number.bytesToString(this.usedHeapSize),sign,Number.bytesToString(Math.abs(this.usedHeapSizeDelta))));}else if(this.category===WebInspector.TimelinePresentationModel.categories().scripting)
-contentHelper.appendTextRow(WebInspector.UIString("Used Heap Size"),Number.bytesToString(this.usedHeapSize));}
+contentHelper.appendElementRow(WebInspector.UIString("Function Call"),this._linkifyLocation(this.scriptName,this.scriptLine,0));if(this.jsHeapSizeUsed){if(this.usedHeapSizeDelta){var sign=this.usedHeapSizeDelta>0?"+":"-";contentHelper.appendTextRow(WebInspector.UIString("Used JavaScript Heap Size"),WebInspector.UIString("%s (%s%s)",Number.bytesToString(this.jsHeapSizeUsed),sign,Number.bytesToString(Math.abs(this.usedHeapSizeDelta))));}else if(this.category===WebInspector.TimelinePresentationModel.categories().scripting)
+contentHelper.appendTextRow(WebInspector.UIString("Used JavaScript Heap Size"),Number.bytesToString(this.jsHeapSizeUsed));}
 if(this.callSiteStackTrace)
 contentHelper.appendStackTrace(callSiteStackTraceLabel||WebInspector.UIString("Call Site stack"),this.callSiteStackTrace,this._linkifyCallFrame.bind(this));if(this.stackTrace)
 contentHelper.appendStackTrace(callStackLabel||WebInspector.UIString("Call Stack"),this.stackTrace,this._linkifyCallFrame.bind(this));if(this._warnings){var ul=document.createElement("ul");for(var i=0;i<this._warnings.length;++i)
 ul.createChild("li").textContent=this._warnings[i];contentHelper.appendElementRow(WebInspector.UIString("Warning"),ul);}
-return contentHelper.contentTable();},_createNodeAnchor:function(node)
+fragment.appendChild(contentHelper.element);return fragment;},_createNodeAnchor:function(node)
 {var span=document.createElement("span");span.classList.add("node-link");span.addEventListener("click",onClick,false);WebInspector.DOMPresentationUtils.decorateNodeLabel(node,span);function onClick()
-{WebInspector.showPanel("elements").revealAndSelectNode(node.id);}
+{(WebInspector.showPanel("elements")).revealAndSelectNode(node.id);}
 return span;},_refreshDetails:function()
 {delete this._detailsNode;},detailsNode:function()
 {if(typeof this._detailsNode==="undefined"){this._detailsNode=this._getRecordDetails();if(this._detailsNode&&!this.coalesced){this._detailsNode.insertBefore(document.createTextNode("("),this._detailsNode.firstChild);this._detailsNode.appendChild(document.createTextNode(")"));}}
 return this._detailsNode;},_createSpanWithText:function(textContent)
 {var node=document.createElement("span");node.textContent=textContent;return node;},_getRecordDetails:function()
 {var details;if(this.coalesced)
-return this._createSpanWithText(WebInspector.UIString("× %d",this.children.length));switch(this.type){case WebInspector.TimelineModel.RecordType.GCEvent:details=WebInspector.UIString("%s collected",Number.bytesToString(this.data["usedHeapSizeDelta"]));break;case WebInspector.TimelineModel.RecordType.TimerFire:details=this._linkifyScriptLocation(this.data["timerId"]);break;case WebInspector.TimelineModel.RecordType.FunctionCall:details=this._linkifyScriptLocation();break;case WebInspector.TimelineModel.RecordType.FireAnimationFrame:details=this._linkifyScriptLocation(this.data["id"]);break;case WebInspector.TimelineModel.RecordType.EventDispatch:details=this.data?this.data["type"]:null;break;case WebInspector.TimelineModel.RecordType.Paint:var width=this.data.clip?WebInspector.TimelinePresentationModel.quadWidth(this.data.clip):this.data.width;var height=this.data.clip?WebInspector.TimelinePresentationModel.quadHeight(this.data.clip):this.data.height;if(width&&height)
-details=WebInspector.UIString("%d\u2009\u00d7\u2009%d",width,height);break;case WebInspector.TimelineModel.RecordType.TimerInstall:case WebInspector.TimelineModel.RecordType.TimerRemove:details=this._linkifyTopCallFrame(this.data["timerId"]);break;case WebInspector.TimelineModel.RecordType.RequestAnimationFrame:case WebInspector.TimelineModel.RecordType.CancelAnimationFrame:details=this._linkifyTopCallFrame(this.data["id"]);break;case WebInspector.TimelineModel.RecordType.ParseHTML:case WebInspector.TimelineModel.RecordType.RecalculateStyles:details=this._linkifyTopCallFrame();break;case WebInspector.TimelineModel.RecordType.EvaluateScript:details=this.url?this._linkifyLocation(this.url,this.data["lineNumber"],0):null;break;case WebInspector.TimelineModel.RecordType.XHRReadyStateChange:case WebInspector.TimelineModel.RecordType.XHRLoad:case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest:case WebInspector.TimelineModel.RecordType.ResourceSendRequest:case WebInspector.TimelineModel.RecordType.ResourceReceivedData:case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse:case WebInspector.TimelineModel.RecordType.ResourceFinish:case WebInspector.TimelineModel.RecordType.DecodeImage:case WebInspector.TimelineModel.RecordType.ResizeImage:details=WebInspector.displayNameForURL(this.url);break;case WebInspector.TimelineModel.RecordType.Time:case WebInspector.TimelineModel.RecordType.TimeEnd:details=this.data["message"];break;default:details=this._linkifyScriptLocation()||this._linkifyTopCallFrame()||null;break;}
+return this._createSpanWithText(WebInspector.UIString("× %d",this.children.length));switch(this.type){case WebInspector.TimelineModel.RecordType.GCEvent:details=WebInspector.UIString("%s collected",Number.bytesToString(this.data["usedHeapSizeDelta"]));break;case WebInspector.TimelineModel.RecordType.TimerFire:details=this._linkifyScriptLocation(this.data["timerId"]);break;case WebInspector.TimelineModel.RecordType.FunctionCall:if(this.scriptName)
+details=this._linkifyLocation(this.scriptName,this.scriptLine,0);break;case WebInspector.TimelineModel.RecordType.FireAnimationFrame:details=this._linkifyScriptLocation(this.data["id"]);break;case WebInspector.TimelineModel.RecordType.EventDispatch:details=this.data?this.data["type"]:null;break;case WebInspector.TimelineModel.RecordType.Paint:var width=this.data.clip?WebInspector.TimelinePresentationModel.quadWidth(this.data.clip):this.data.width;var height=this.data.clip?WebInspector.TimelinePresentationModel.quadHeight(this.data.clip):this.data.height;if(width&&height)
+details=WebInspector.UIString("%d\u2009\u00d7\u2009%d",width,height);break;case WebInspector.TimelineModel.RecordType.TimerInstall:case WebInspector.TimelineModel.RecordType.TimerRemove:details=this._linkifyTopCallFrame(this.data["timerId"]);break;case WebInspector.TimelineModel.RecordType.RequestAnimationFrame:case WebInspector.TimelineModel.RecordType.CancelAnimationFrame:details=this._linkifyTopCallFrame(this.data["id"]);break;case WebInspector.TimelineModel.RecordType.ParseHTML:case WebInspector.TimelineModel.RecordType.RecalculateStyles:details=this._linkifyTopCallFrame();break;case WebInspector.TimelineModel.RecordType.EvaluateScript:details=this.url?this._linkifyLocation(this.url,this.data["lineNumber"],0):null;break;case WebInspector.TimelineModel.RecordType.XHRReadyStateChange:case WebInspector.TimelineModel.RecordType.XHRLoad:case WebInspector.TimelineModel.RecordType.ScheduleResourceRequest:case WebInspector.TimelineModel.RecordType.ResourceSendRequest:case WebInspector.TimelineModel.RecordType.ResourceReceivedData:case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse:case WebInspector.TimelineModel.RecordType.ResourceFinish:case WebInspector.TimelineModel.RecordType.DecodeImage:case WebInspector.TimelineModel.RecordType.ResizeImage:details=WebInspector.displayNameForURL(this.url);break;case WebInspector.TimelineModel.RecordType.Time:case WebInspector.TimelineModel.RecordType.TimeEnd:details=this.data["message"];break;default:details=this.scriptName?this._linkifyLocation(this.scriptName,this.scriptLine,0):(this._linkifyTopCallFrame()||null);break;}
 if(details){if(details instanceof Node)
 details.tabIndex=-1;else
 return this._createSpanWithText(""+details);}
@@ -536,9 +476,7 @@
 {if(this.stackTrace)
 return this._linkifyCallFrame(this.stackTrace[0]);if(this.callSiteStackTrace)
 return this._linkifyCallFrame(this.callSiteStackTrace[0]);return defaultValue;},_linkifyScriptLocation:function(defaultValue)
-{if(this.scriptName)
-return this._linkifyLocation(this.scriptName,this.scriptLine,0);else
-return defaultValue?""+defaultValue:null;},calculateAggregatedStats:function()
+{return this.scriptName?this._linkifyLocation(this.scriptName,this.scriptLine,0):""+defaultValue;},calculateAggregatedStats:function()
 {this._aggregatedStats={};this._cpuTime=this._selfTime;for(var index=this._children.length;index;--index){var child=this._children[index-1];for(var category in child._aggregatedStats)
 this._aggregatedStats[category]=(this._aggregatedStats[category]||0)+child._aggregatedStats[category];}
 for(var category in this._aggregatedStats)
@@ -553,18 +491,24 @@
 WebInspector.TimelinePresentationModel._generateAggregatedInfo=function(aggregatedStats)
 {var cell=document.createElement("span");cell.className="timeline-aggregated-info";for(var index in aggregatedStats){var label=document.createElement("div");label.className="timeline-aggregated-category timeline-"+index;cell.appendChild(label);var text=document.createElement("span");text.textContent=Number.secondsToString(aggregatedStats[index],true);cell.appendChild(text);}
 return cell;}
+WebInspector.TimelinePresentationModel.generatePieChart=function(aggregatedStats,firstCategoryName)
+{var element=document.createElement("div");element.className="timeline-aggregated-info";var total=0;var categoryNames=[];if(firstCategoryName)
+categoryNames.push(firstCategoryName);for(var categoryName in WebInspector.TimelinePresentationModel.categories()){if(aggregatedStats[categoryName]){total+=aggregatedStats[categoryName];if(firstCategoryName!==categoryName)
+categoryNames.push(categoryName);}}
+var pieChart=new WebInspector.PieChart(total);element.appendChild(pieChart.element);var footerElement=element.createChild("div","timeline-aggregated-info-legend");for(var i=0;i<categoryNames.length;++i){var category=WebInspector.TimelinePresentationModel.categories()[categoryNames[i]];pieChart.addSlice(aggregatedStats[category.name],category.fillColorStop0);var rowElement=footerElement.createChild("div");rowElement.createChild("div","timeline-aggregated-category timeline-"+category.name);rowElement.createTextChild(WebInspector.UIString("%s %s",Number.secondsToString(aggregatedStats[category.name],true),category.title));}
+return{pieChart:pieChart,element:element,footerElement:footerElement};}
 WebInspector.TimelinePresentationModel.generatePopupContentForFrame=function(frame)
-{var contentHelper=new WebInspector.PopoverContentHelper(WebInspector.UIString("Frame"));var durationInSeconds=frame.endTime-frame.startTime;var durationText=WebInspector.UIString("%s (at %s)",Number.secondsToString(frame.endTime-frame.startTime,true),Number.secondsToString(frame.startTimeOffset,true));contentHelper.appendTextRow(WebInspector.UIString("Duration"),durationText);contentHelper.appendTextRow(WebInspector.UIString("FPS"),Math.floor(1/durationInSeconds));contentHelper.appendTextRow(WebInspector.UIString("CPU time"),Number.secondsToString(frame.cpuTime,true));contentHelper.appendElementRow(WebInspector.UIString("Aggregated Time"),WebInspector.TimelinePresentationModel._generateAggregatedInfo(frame.timeByCategory));return contentHelper.contentTable();}
+{var contentHelper=new WebInspector.TimelinePopupContentHelper(WebInspector.UIString("Frame"));var durationInSeconds=frame.endTime-frame.startTime;var durationText=WebInspector.UIString("%s (at %s)",Number.secondsToString(frame.endTime-frame.startTime,true),Number.secondsToString(frame.startTimeOffset,true));contentHelper.appendTextRow(WebInspector.UIString("Duration"),durationText);contentHelper.appendTextRow(WebInspector.UIString("FPS"),Math.floor(1/durationInSeconds));contentHelper.appendTextRow(WebInspector.UIString("CPU time"),Number.secondsToString(frame.cpuTime,true));contentHelper.appendTextRow(WebInspector.UIString("Thread"),frame.isBackground?WebInspector.UIString("background"):WebInspector.UIString("main"));contentHelper.appendElementRow(WebInspector.UIString("Aggregated Time"),WebInspector.TimelinePresentationModel._generateAggregatedInfo(frame.timeByCategory));return contentHelper.contentTable();}
 WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics=function(statistics)
 {function formatTimeAndFPS(time)
 {return WebInspector.UIString("%s (%.0f FPS)",Number.secondsToString(time,true),1/time);}
-var contentHelper=new WebInspector.PopoverContentHelper(WebInspector.UIString("Selected Range"));contentHelper.appendTextRow(WebInspector.UIString("Selected range"),WebInspector.UIString("%s\u2013%s (%d frames)",Number.secondsToString(statistics.startOffset,true),Number.secondsToString(statistics.endOffset,true),statistics.frameCount));contentHelper.appendTextRow(WebInspector.UIString("Minimum Time"),formatTimeAndFPS(statistics.minDuration));contentHelper.appendTextRow(WebInspector.UIString("Average Time"),formatTimeAndFPS(statistics.average));contentHelper.appendTextRow(WebInspector.UIString("Maximum Time"),formatTimeAndFPS(statistics.maxDuration));contentHelper.appendTextRow(WebInspector.UIString("Standard Deviation"),Number.secondsToString(statistics.stddev,true));contentHelper.appendElementRow(WebInspector.UIString("Time by category"),WebInspector.TimelinePresentationModel._generateAggregatedInfo(statistics.timeByCategory));return contentHelper.contentTable();}
+var contentHelper=new WebInspector.TimelineDetailsContentHelper(false);contentHelper.appendTextRow(WebInspector.UIString("Minimum Time"),formatTimeAndFPS(statistics.minDuration));contentHelper.appendTextRow(WebInspector.UIString("Average Time"),formatTimeAndFPS(statistics.average));contentHelper.appendTextRow(WebInspector.UIString("Maximum Time"),formatTimeAndFPS(statistics.maxDuration));contentHelper.appendTextRow(WebInspector.UIString("Standard Deviation"),Number.secondsToString(statistics.stddev,true));return contentHelper.element;}
 WebInspector.TimelinePresentationModel.createFillStyle=function(context,width,height,color0,color1,color2)
 {var gradient=context.createLinearGradient(0,0,width,height);gradient.addColorStop(0,color0);gradient.addColorStop(0.25,color1);gradient.addColorStop(0.75,color1);gradient.addColorStop(1,color2);return gradient;}
 WebInspector.TimelinePresentationModel.createFillStyleForCategory=function(context,width,height,category)
 {return WebInspector.TimelinePresentationModel.createFillStyle(context,width,height,category.fillColorStop0,category.fillColorStop1,category.borderColor);}
 WebInspector.TimelinePresentationModel.createStyleRuleForCategory=function(category)
-{var selector=".timeline-category-"+category.name+" .timeline-graph-bar, "+".panel.timeline .timeline-filters-header .filter-checkbox-filter.filter-checkbox-filter-"+category.name+" .checkbox-filter-checkbox, "+".popover .timeline-"+category.name+", "+".timeline-category-"+category.name+" .timeline-tree-icon"
+{var selector=".timeline-category-"+category.name+" .timeline-graph-bar, "+".panel.timeline .timeline-filters-header .filter-checkbox-filter.filter-checkbox-filter-"+category.name+" .checkbox-filter-checkbox, "+".popover .timeline-"+category.name+", "+".timeline-details-view .timeline-"+category.name+", "+".timeline-category-"+category.name+" .timeline-tree-icon"
 return selector+" { background-image: -webkit-linear-gradient("+
 category.fillColorStop0+", "+category.fillColorStop1+" 25%, "+category.fillColorStop1+" 25%, "+category.fillColorStop1+");"+" border-color: "+category.borderColor+"}";}
 WebInspector.TimelinePresentationModel.coalescingKeyForRecord=function(rawRecord)
@@ -584,167 +528,281 @@
 {this.name=name;this.title=title;this.overviewStripGroupIndex=overviewStripGroupIndex;this.borderColor=borderColor;this.fillColorStop0=fillColorStop0;this.fillColorStop1=fillColorStop1;this.hidden=false;}
 WebInspector.TimelineCategory.Events={VisibilityChanged:"VisibilityChanged"};WebInspector.TimelineCategory.prototype={get hidden()
 {return this._hidden;},set hidden(hidden)
-{this._hidden=hidden;this.dispatchEventToListeners(WebInspector.TimelineCategory.Events.VisibilityChanged,this);},__proto__:WebInspector.Object.prototype};WebInspector.TimelineFrameController=function(model,overviewPane,presentationModel)
-{this._lastFrame=null;this._model=model;this._overviewPane=overviewPane;this._presentationModel=presentationModel;this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);var records=model.records;for(var i=0;i<records.length;++i)
-this._addRecord(records[i]);}
+{this._hidden=hidden;this.dispatchEventToListeners(WebInspector.TimelineCategory.Events.VisibilityChanged,this);},__proto__:WebInspector.Object.prototype}
+WebInspector.TimelinePopupContentHelper=function(title)
+{this._contentTable=document.createElement("table");var titleCell=this._createCell(WebInspector.UIString("%s - Details",title),"timeline-details-title");titleCell.colSpan=2;var titleRow=document.createElement("tr");titleRow.appendChild(titleCell);this._contentTable.appendChild(titleRow);}
+WebInspector.TimelinePopupContentHelper.prototype={contentTable:function()
+{return this._contentTable;},_createCell:function(content,styleName)
+{var text=document.createElement("label");text.appendChild(document.createTextNode(content));var cell=document.createElement("td");cell.className="timeline-details";if(styleName)
+cell.className+=" "+styleName;cell.textContent=content;return cell;},appendTextRow:function(title,content)
+{var row=document.createElement("tr");row.appendChild(this._createCell(title,"timeline-details-row-title"));row.appendChild(this._createCell(content,"timeline-details-row-data"));this._contentTable.appendChild(row);},appendElementRow:function(title,content)
+{var row=document.createElement("tr");var titleCell=this._createCell(title,"timeline-details-row-title");row.appendChild(titleCell);var cell=document.createElement("td");cell.className="details";if(content instanceof Node)
+cell.appendChild(content);else
+cell.createTextChild(content||"");row.appendChild(cell);this._contentTable.appendChild(row);}}
+WebInspector.TimelineDetailsContentHelper=function(monospaceValues)
+{this.element=document.createElement("div");this.element.className="timeline-details-view-block";this._monospaceValues=monospaceValues;}
+WebInspector.TimelineDetailsContentHelper.prototype={appendTextRow:function(title,value)
+{var rowElement=this.element.createChild("div","timeline-details-view-row");rowElement.createChild("span","timeline-details-view-row-title").textContent=WebInspector.UIString("%s: ",title);rowElement.createChild("span","timeline-details-view-row-value"+(this._monospaceValues?" monospace":"")).textContent=value;},appendElementRow:function(title,content)
+{var rowElement=this.element.createChild("div","timeline-details-view-row");rowElement.createChild("span","timeline-details-view-row-title").textContent=WebInspector.UIString("%s: ",title);var valueElement=rowElement.createChild("span","timeline-details-view-row-details"+(this._monospaceValues?" monospace":""));if(content instanceof Node)
+valueElement.appendChild(content);else
+valueElement.createTextChild(content||"");},appendStackTrace:function(title,stackTrace,callFrameLinkifier)
+{var rowElement=this.element.createChild("div","timeline-details-view-row");rowElement.createChild("span","timeline-details-view-row-title").textContent=WebInspector.UIString("%s: ",title);var stackTraceElement=rowElement.createChild("div","timeline-details-view-row-stack-trace monospace");for(var i=0;i<stackTrace.length;++i){var stackFrame=stackTrace[i];var row=stackTraceElement.createChild("div");row.createTextChild(stackFrame.functionName||WebInspector.UIString("(anonymous function)"));row.createTextChild(" @ ");var urlElement=callFrameLinkifier(stackFrame);row.appendChild(urlElement);}}};WebInspector.TimelineFrameController=function(model,frameOverview,presentationModel)
+{this._lastMainThreadFrame=null;this._lastBackgroundFrame=null;this._model=model;this._frameOverview=frameOverview;this._presentationModel=presentationModel;this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);this._frameOverview.reset();var records=model.records;for(var i=0;i<records.length;++i)
+this._addRecord(records[i]);this._frameOverview.update();}
 WebInspector.TimelineFrameController.prototype={_onRecordAdded:function(event)
 {this._addRecord(event.data);},_onRecordsCleared:function()
-{this._lastFrame=null;},_addRecord:function(record)
-{if(record.isBackground)
-return;var records;var programRecord;if(record.type===WebInspector.TimelineModel.RecordType.Program){programRecord=record;if(this._lastFrame)
-this._lastFrame.timeByCategory["other"]+=WebInspector.TimelineModel.durationInSeconds(programRecord);records=record["children"]||[];}else
+{this._lastMainThreadFrame=null;this._lastBackgroundFrame=null;},_addRecord:function(record)
+{var records;var programRecord;if(record.type===WebInspector.TimelineModel.RecordType.Program){programRecord=record;if(this._lastMainThreadFrame)
+this._lastMainThreadFrame.timeByCategory["other"]+=WebInspector.TimelineModel.durationInSeconds(programRecord);records=record["children"]||[];}else
 records=[record];records.forEach(this._innerAddRecord.bind(this,programRecord));},_innerAddRecord:function(programRecord,record)
-{var isFrameRecord=record.type===WebInspector.TimelineModel.RecordType.BeginFrame;var programTimeCarryover=isFrameRecord&&programRecord?WebInspector.TimelineModel.endTimeInSeconds(programRecord)-WebInspector.TimelineModel.startTimeInSeconds(record):0;if(isFrameRecord&&this._lastFrame)
-this._flushFrame(record,programTimeCarryover);else{if(!this._lastFrame)
-this._lastFrame=this._createFrame(record,programTimeCarryover);if(!record.thread)
-WebInspector.TimelineModel.aggregateTimeForRecord(this._lastFrame.timeByCategory,record);var duration=WebInspector.TimelineModel.durationInSeconds(record);this._lastFrame.cpuTime+=duration;this._lastFrame.timeByCategory["other"]-=duration;}},_flushFrame:function(record,programTimeCarryover)
-{this._lastFrame.endTime=WebInspector.TimelineModel.startTimeInSeconds(record);this._lastFrame.duration=this._lastFrame.endTime-this._lastFrame.startTime;this._lastFrame.timeByCategory["other"]-=programTimeCarryover;this._lastFrame.cpuTime+=this._lastFrame.timeByCategory["other"];this._overviewPane.addFrame(this._lastFrame);this._presentationModel.addFrame(this._lastFrame);this._lastFrame=this._createFrame(record,programTimeCarryover);},_createFrame:function(record,programTimeCarryover)
-{var frame=new WebInspector.TimelineFrame();frame.startTime=WebInspector.TimelineModel.startTimeInSeconds(record);frame.startTimeOffset=this._model.recordOffsetInSeconds(record);frame.timeByCategory["other"]=programTimeCarryover;return frame;},dispose:function()
+{var isFrameRecord=record.type===WebInspector.TimelineModel.RecordType.BeginFrame;var programTimeCarryover=isFrameRecord&&programRecord?WebInspector.TimelineModel.endTimeInSeconds(programRecord)-WebInspector.TimelineModel.startTimeInSeconds(record):0;var lastFrame=record.thread?this._lastBackgroundFrame:this._lastMainThreadFrame;if(isFrameRecord&&lastFrame){this._flushFrame(lastFrame,record,programTimeCarryover);lastFrame=this._createFrame(record,programTimeCarryover);}else if(record.type===WebInspector.TimelineModel.RecordType.ActivateLayerTree){if(lastFrame)
+lastFrame.mainThreadFrameId=record.data.id;}else{if(!lastFrame)
+lastFrame=this._createFrame(record,programTimeCarryover);if(!record.thread){WebInspector.TimelineModel.aggregateTimeForRecord(lastFrame.timeByCategory,record);var duration=WebInspector.TimelineModel.durationInSeconds(record);lastFrame.cpuTime+=duration;lastFrame.timeByCategory["other"]-=duration;}else if(!isFrameRecord&&WebInspector.TimelinePresentationModel.recordStyle(record).category===WebInspector.TimelinePresentationModel.categories().painting){this._updatePaintingDuration(record);}}
+if(record.thread)
+this._lastBackgroundFrame=lastFrame;else
+this._lastMainThreadFrame=lastFrame;},_flushFrame:function(frame,record,programTimeCarryover)
+{frame.endTime=WebInspector.TimelineModel.startTimeInSeconds(record);frame.duration=frame.endTime-frame.startTime;frame.timeByCategory["other"]-=programTimeCarryover;frame.cpuTime+=frame.timeByCategory["other"];if(frame.isBackground){var paintDuration=this._paintEndTime-this._paintStartTime;if(paintDuration)
+frame.timeByCategory[WebInspector.TimelinePresentationModel.categories().painting.name]=paintDuration;}
+this._frameOverview.addFrame(frame);this._presentationModel.addFrame(frame);},_createFrame:function(record,programTimeCarryover)
+{var frame=new WebInspector.TimelineFrame();frame.startTime=WebInspector.TimelineModel.startTimeInSeconds(record);frame.startTimeOffset=this._model.recordOffsetInSeconds(record);frame.timeByCategory["other"]=programTimeCarryover;frame.isBackground=!!record.thread;frame.id=record.data&&record.data["id"];if(frame.isBackground){this._paintStartTime=null;this._paintEndTime=null;}
+return frame;},_updatePaintingDuration:function(record)
+{var startTime=WebInspector.TimelineModel.startTimeInSeconds(record);this._paintStartTime=this._paintStartTime?Math.min(this._paintStartTime,startTime):startTime;var endTime=WebInspector.TimelineModel.endTimeInSeconds(record);this._paintEndTime=this._paintEndTime?Math.max(this._paintEndTime,endTime):endTime;},dispose:function()
 {this._model.removeEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onRecordAdded,this);this._model.removeEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);}}
 WebInspector.FrameStatistics=function(frames)
 {this.frameCount=frames.length;this.minDuration=Infinity;this.maxDuration=0;this.timeByCategory={};this.startOffset=frames[0].startTimeOffset;var lastFrame=frames[this.frameCount-1];this.endOffset=lastFrame.startTimeOffset+lastFrame.duration;var totalDuration=0;var sumOfSquares=0;for(var i=0;i<this.frameCount;++i){var duration=frames[i].duration;totalDuration+=duration;sumOfSquares+=duration*duration;this.minDuration=Math.min(this.minDuration,duration);this.maxDuration=Math.max(this.maxDuration,duration);WebInspector.TimelineModel.aggregateTimeByCategory(this.timeByCategory,frames[i].timeByCategory);}
 this.average=totalDuration/this.frameCount;var variance=sumOfSquares/this.frameCount-this.average*this.average;this.stddev=Math.sqrt(variance);}
 WebInspector.TimelineFrame=function()
-{this.timeByCategory={};this.cpuTime=0;};WebInspector.TimelinePanel=function()
-{WebInspector.Panel.call(this,"timeline");this.registerRequiredCSS("timelinePanel.css");this.registerRequiredCSS("filter.css");this.element.addStyleClass("vbox");this._model=new WebInspector.TimelineModel();this._presentationModel=new WebInspector.TimelinePresentationModel();this._overviewModeSetting=WebInspector.settings.createSetting("timelineOverviewMode",WebInspector.TimelineOverviewPane.Mode.Events);this._glueRecordsSetting=WebInspector.settings.createSetting("timelineGlueRecords",false);this._panelStatusBarElement=this.element.createChild("div","panel-status-bar");this._createFilters();this._overviewPane=new WebInspector.TimelineOverviewPane(this._model);this._overviewPane.addEventListener(WebInspector.TimelineOverviewPane.Events.WindowChanged,this._invalidateAndScheduleRefresh.bind(this,false,true));this._overviewPane.addEventListener(WebInspector.TimelineOverviewPane.Events.ModeChanged,this._overviewModeChanged,this);this._overviewPane.show(this.element);this.element.addEventListener("contextmenu",this._contextMenu.bind(this),false);this.createSidebarViewWithTree();this._containerElement=this.splitView.element;this._containerElement.tabIndex=0;this._containerElement.id="timeline-container";this._containerElement.removeStyleClass("fill");this._containerElement.addEventListener("scroll",this._onScroll.bind(this),false);this._timelineMemorySplitter=this.element.createChild("div","hidden");this._timelineMemorySplitter.id="timeline-memory-splitter";WebInspector.installDragHandle(this._timelineMemorySplitter,this._startSplitterDragging.bind(this),this._splitterDragging.bind(this),this._endSplitterDragging.bind(this),"ns-resize");this._includeDomCounters=false;this._memoryStatistics=new WebInspector.DOMCountersGraph(this,this._model,this.splitView.sidebarWidth());this._includeDomCounters=true;WebInspector.settings.memoryCounterGraphsHeight=WebInspector.settings.createSetting("memoryCounterGraphsHeight",150);var itemsTreeElement=new WebInspector.SidebarSectionTreeElement(WebInspector.UIString("RECORDS"),{},true);this.sidebarTree.appendChild(itemsTreeElement);this.sidebarTree.setFocusable(false);this._sidebarListElement=document.createElement("div");this.sidebarElement.appendChild(this._sidebarListElement);this._containerContentElement=this.splitView.mainElement;this._containerContentElement.id="resources-container-content";this._timelineGrid=new WebInspector.TimelineGrid();this._itemsGraphsElement=this._timelineGrid.itemsGraphsElement;this._itemsGraphsElement.id="timeline-graphs";this._containerContentElement.appendChild(this._timelineGrid.element);this._timelineGrid.gridHeaderElement.id="timeline-grid-header";this._timelineGrid.gridHeaderElement.addStyleClass("fill");this._memoryStatistics.setMainTimelineGrid(this._timelineGrid);this._containerContentElement.appendChild(this._timelineGrid.gridHeaderElement);this._topGapElement=document.createElement("div");this._topGapElement.className="timeline-gap";this._itemsGraphsElement.appendChild(this._topGapElement);this._graphRowsElement=document.createElement("div");this._itemsGraphsElement.appendChild(this._graphRowsElement);this._bottomGapElement=document.createElement("div");this._bottomGapElement.className="timeline-gap";this._itemsGraphsElement.appendChild(this._bottomGapElement);this._expandElements=document.createElement("div");this._expandElements.id="orphan-expand-elements";this._itemsGraphsElement.appendChild(this._expandElements);this._calculator=new WebInspector.TimelineCalculator(this._model);this._createStatusBarItems();this._frameMode=false;this._boundariesAreValid=true;this._scrollTop=0;this._popoverHelper=new WebInspector.PopoverHelper(this.element,this._getPopoverAnchor.bind(this),this._showPopover.bind(this));this.element.addEventListener("mousemove",this._mouseMove.bind(this),false);this.element.addEventListener("mouseout",this._mouseOut.bind(this),false);this._durationFilter=new WebInspector.TimelineIsLongFilter();this._expandOffset=15;this._headerLineCount=1;this._adjustHeaderHeight();this._mainThreadTasks=([]);this._cpuBarsElement=this._timelineGrid.gridHeaderElement.createChild("div","timeline-cpu-bars");this._mainThreadMonitoringEnabled=WebInspector.settings.showCpuOnTimelineRuler.get();WebInspector.settings.showCpuOnTimelineRuler.addChangeListener(this._showCpuOnTimelineRulerChanged,this);this._createFileSelector();this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onTimelineEventRecorded,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStarted,this._onRecordingStarted,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStopped,this._onRecordingStopped,this);this._registerShortcuts();this._allRecordsCount=0;this._presentationModel.addFilter(new WebInspector.TimelineWindowFilter(this._overviewPane));this._presentationModel.addFilter(new WebInspector.TimelineCategoryFilter());this._presentationModel.addFilter(this._durationFilter);}
-WebInspector.TimelinePanel.rowHeight=18;WebInspector.TimelinePanel.headerHeight=19;WebInspector.TimelinePanel.durationFilterPresetsMs=[0,1,15];WebInspector.TimelinePanel.prototype={_showCpuOnTimelineRulerChanged:function()
-{var mainThreadMonitoringEnabled=WebInspector.settings.showCpuOnTimelineRuler.get();if(this._mainThreadMonitoringEnabled!==mainThreadMonitoringEnabled){this._mainThreadMonitoringEnabled=mainThreadMonitoringEnabled;this._refreshMainThreadBars();}},_startSplitterDragging:function(event)
-{this._dragOffset=this.element.offsetHeight-this._timelineMemorySplitter.offsetTop-2+event.pageY;return true;},_splitterDragging:function(event)
-{var height=this._dragOffset-event.pageY;this._setMemoryCountersHeight(height);this._resize(this.splitView.sidebarWidth());event.preventDefault();},_endSplitterDragging:function(event)
-{delete this._dragOffset;this._memoryStatistics.show();WebInspector.settings.memoryCounterGraphsHeight.set(this._memoryStatistics.height());},_setMemoryCountersHeight:function(height)
-{const overviewHeight=this._containerElement.offsetTop-20;const sectionMinHeight=20;height=Number.constrain(height,sectionMinHeight,this.element.offsetHeight-sectionMinHeight-overviewHeight);this._timelineMemorySplitter.style.bottom=(height-3)+"px";this._memoryStatistics.setHeight(height);},get calculator()
-{return this._calculator;},defaultFocusedElement:function()
-{return this.element;},_createFilters:function()
-{this._filterBar=new WebInspector.FilterBar();this._filtersContainer=this.element.createChild("div","timeline-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this._textFilter=new WebInspector.TextFilterUI();this._textFilter.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._textFilterChanged,this);this._filterBar.addFilter(this._textFilter);var durationOptions=[];for(var presetIndex=0;presetIndex<WebInspector.TimelinePanel.durationFilterPresetsMs.length;++presetIndex){var durationMs=WebInspector.TimelinePanel.durationFilterPresetsMs[presetIndex];var durationOption={};if(!durationMs){durationOption.label=WebInspector.UIString("All");durationOption.title=WebInspector.UIString("Show all records");}else{durationOption.label=WebInspector.UIString("\u2265 %dms",durationMs);durationOption.title=WebInspector.UIString("Hide records shorter than %dms",durationMs);}
+{this.timeByCategory={};this.cpuTime=0;this.mainThreadFrameId;};WebInspector.TimelineEventOverview=function(model)
+{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-events";this._fillStyles={};var categories=WebInspector.TimelinePresentationModel.categories();for(var category in categories){this._fillStyles[category]=WebInspector.TimelinePresentationModel.createFillStyleForCategory(this._context,0,WebInspector.TimelineEventOverview._stripGradientHeight,categories[category]);categories[category].addEventListener(WebInspector.TimelineCategory.Events.VisibilityChanged,this._onCategoryVisibilityChanged,this);}
+this._disabledCategoryFillStyle=WebInspector.TimelinePresentationModel.createFillStyle(this._context,0,WebInspector.TimelineEventOverview._stripGradientHeight,"rgb(218, 218, 218)","rgb(170, 170, 170)","rgb(143, 143, 143)");this._disabledCategoryBorderStyle="rgb(143, 143, 143)";}
+WebInspector.TimelineEventOverview._numberOfStrips=3;WebInspector.TimelineEventOverview._stripGradientHeight=120;WebInspector.TimelineEventOverview.prototype={update:function()
+{this.resetCanvas();var stripHeight=Math.round(this._canvas.height/WebInspector.TimelineEventOverview._numberOfStrips);var timeOffset=this._model.minimumRecordTime();var timeSpan=this._model.maximumRecordTime()-timeOffset;var scale=this._canvas.width/timeSpan;var lastBarByGroup=[];this._context.fillStyle="rgba(0, 0, 0, 0.05)";for(var i=1;i<WebInspector.TimelineEventOverview._numberOfStrips;i+=2)
+this._context.fillRect(0.5,i*stripHeight+0.5,this._canvas.width,stripHeight);function appendRecord(record)
+{if(record.type===WebInspector.TimelineModel.RecordType.BeginFrame)
+return;var recordStart=Math.floor((WebInspector.TimelineModel.startTimeInSeconds(record)-timeOffset)*scale);var recordEnd=Math.ceil((WebInspector.TimelineModel.endTimeInSeconds(record)-timeOffset)*scale);var category=WebInspector.TimelinePresentationModel.categoryForRecord(record);if(category.overviewStripGroupIndex<0)
+return;var bar=lastBarByGroup[category.overviewStripGroupIndex];const barsMergeThreshold=2;if(bar&&bar.category===category&&bar.end+barsMergeThreshold>=recordStart){if(recordEnd>bar.end)
+bar.end=recordEnd;return;}
+if(bar)
+this._renderBar(bar.start,bar.end,stripHeight,bar.category);lastBarByGroup[category.overviewStripGroupIndex]={start:recordStart,end:recordEnd,category:category};}
+WebInspector.TimelinePresentationModel.forAllRecords(this._model.records,appendRecord.bind(this));for(var i=0;i<lastBarByGroup.length;++i){if(lastBarByGroup[i])
+this._renderBar(lastBarByGroup[i].start,lastBarByGroup[i].end,stripHeight,lastBarByGroup[i].category);}},_onCategoryVisibilityChanged:function()
+{this.update();},_renderBar:function(begin,end,height,category)
+{const stripPadding=4*window.devicePixelRatio;const innerStripHeight=height-2*stripPadding;var x=begin+0.5;var y=category.overviewStripGroupIndex*height+stripPadding+0.5;var width=Math.max(end-begin,1);this._context.save();this._context.translate(x,y);this._context.scale(1,innerStripHeight/WebInspector.TimelineEventOverview._stripGradientHeight);this._context.fillStyle=category.hidden?this._disabledCategoryFillStyle:this._fillStyles[category.name];this._context.fillRect(0,0,width,WebInspector.TimelineEventOverview._stripGradientHeight);this._context.strokeStyle=category.hidden?this._disabledCategoryBorderStyle:category.borderColor;this._context.strokeRect(0,0,width,WebInspector.TimelineEventOverview._stripGradientHeight);this._context.restore();},__proto__:WebInspector.TimelineOverviewBase.prototype};WebInspector.TimelineFrameOverview=function(model)
+{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-frames";this.reset();this._outerPadding=4*window.devicePixelRatio;this._maxInnerBarWidth=10*window.devicePixelRatio;this._topPadding=6*window.devicePixelRatio;this._actualPadding=5*window.devicePixelRatio;this._actualOuterBarWidth=this._maxInnerBarWidth+this._actualPadding;this._fillStyles={};var categories=WebInspector.TimelinePresentationModel.categories();for(var category in categories)
+this._fillStyles[category]=WebInspector.TimelinePresentationModel.createFillStyleForCategory(this._context,this._maxInnerBarWidth,0,categories[category]);this._frameTopShadeGradient=this._context.createLinearGradient(0,0,0,this._topPadding);this._frameTopShadeGradient.addColorStop(0,"rgba(255, 255, 255, 0.9)");this._frameTopShadeGradient.addColorStop(1,"rgba(255, 255, 255, 0.2)");}
+WebInspector.TimelineFrameOverview.prototype={reset:function()
+{this._recordsPerBar=1;this._barTimes=[];this._mainThreadFrames=[];this._backgroundFrames=[];this._framesById={};},update:function()
+{this.resetCanvas();this._barTimes=[];var backgroundFramesHeight=15*window.devicePixelRatio;var mainThreadFramesHeight=this._canvas.height-backgroundFramesHeight;const minBarWidth=4*window.devicePixelRatio;var frameCount=this._backgroundFrames.length||this._mainThreadFrames.length;var framesPerBar=Math.max(1,frameCount*minBarWidth/this._canvas.width);var mainThreadVisibleFrames;var backgroundVisibleFrames;if(this._backgroundFrames.length){backgroundVisibleFrames=this._aggregateFrames(this._backgroundFrames,framesPerBar);mainThreadVisibleFrames=new Array(backgroundVisibleFrames.length);for(var i=0;i<backgroundVisibleFrames.length;++i){var frameId=backgroundVisibleFrames[i].mainThreadFrameId;mainThreadVisibleFrames[i]=frameId&&this._framesById[frameId];}}else{mainThreadVisibleFrames=this._aggregateFrames(this._mainThreadFrames,framesPerBar);}
+this._context.save();this._setCanvasWindow(0,backgroundFramesHeight,this._canvas.width,mainThreadFramesHeight);var scale=(mainThreadFramesHeight-this._topPadding)/this._computeTargetFrameLength(mainThreadVisibleFrames);this._renderBars(mainThreadVisibleFrames,scale,mainThreadFramesHeight);this._context.fillStyle=this._frameTopShadeGradient;this._context.fillRect(0,0,this._canvas.width,this._topPadding);this._drawFPSMarks(scale,mainThreadFramesHeight);this._context.restore();var bottom=backgroundFramesHeight+0.5;this._context.strokeStyle="rgba(120, 120, 120, 0.8)";this._context.beginPath();this._context.moveTo(0,bottom);this._context.lineTo(this._canvas.width,bottom);this._context.stroke();if(backgroundVisibleFrames){const targetFPS=30.0;scale=(backgroundFramesHeight-this._topPadding)/(1.0/targetFPS);this._renderBars(backgroundVisibleFrames,scale,backgroundFramesHeight);}},addFrame:function(frame)
+{var frames;if(frame.isBackground){frames=this._backgroundFrames;}else{frames=this._mainThreadFrames;this._framesById[frame.id]=frame;}
+frames.push(frame);},_setCanvasWindow:function(x0,y0,width,height)
+{this._context.translate(x0,y0);this._context.beginPath();this._context.moveTo(0,0);this._context.lineTo(width,0);this._context.lineTo(width,height);this._context.lineTo(0,height);this._context.lineTo(0,0);this._context.clip();},_aggregateFrames:function(frames,framesPerBar)
+{var visibleFrames=[];for(var barNumber=0,currentFrame=0;currentFrame<frames.length;++barNumber){var barStartTime=frames[currentFrame].startTime;var longestFrame=null;var longestDuration=0;for(var lastFrame=Math.min(Math.floor((barNumber+1)*framesPerBar),frames.length);currentFrame<lastFrame;++currentFrame){var duration=this._frameDuration(frames[currentFrame]);if(!longestFrame||longestDuration<duration){longestFrame=frames[currentFrame];longestDuration=duration;}}
+var barEndTime=frames[currentFrame-1].endTime;if(longestFrame){visibleFrames.push(longestFrame);this._barTimes.push({startTime:barStartTime,endTime:barEndTime});}}
+return visibleFrames;},_frameDuration:function(frame)
+{var relatedFrame=frame.mainThreadFrameId&&this._framesById[frame.mainThreadFrameId];return frame.duration+(relatedFrame?relatedFrame.duration:0);},_computeTargetFrameLength:function(frames)
+{var durations=[];for(var i=0;i<frames.length;++i){if(frames[i])
+durations.push(frames[i].duration);}
+var medianFrameLength=durations.qselect(Math.floor(durations.length/2));const targetFPS=30;var result=1.0/targetFPS;if(result>=medianFrameLength)
+return result;var maxFrameLength=Math.max.apply(Math,durations);return Math.min(medianFrameLength*2,maxFrameLength);},_renderBars:function(frames,scale,windowHeight)
+{const maxPadding=5*window.devicePixelRatio;this._actualOuterBarWidth=Math.min((this._canvas.width-2*this._outerPadding)/frames.length,this._maxInnerBarWidth+maxPadding);this._actualPadding=Math.min(Math.floor(this._actualOuterBarWidth/3),maxPadding);var barWidth=this._actualOuterBarWidth-this._actualPadding;for(var i=0;i<frames.length;++i){if(frames[i])
+this._renderBar(this._barNumberToScreenPosition(i),barWidth,windowHeight,frames[i],scale);}},_barNumberToScreenPosition:function(n)
+{return this._outerPadding+this._actualOuterBarWidth*n;},_drawFPSMarks:function(scale,height)
+{const fpsMarks=[30,60];this._context.save();this._context.beginPath();this._context.font=(10*window.devicePixelRatio)+"px "+window.getComputedStyle(this.element,null).getPropertyValue("font-family");this._context.textAlign="right";this._context.textBaseline="alphabetic";const labelPadding=4*window.devicePixelRatio;const baselineHeight=3*window.devicePixelRatio;var lineHeight=12*window.devicePixelRatio;var labelTopMargin=0;var labelOffsetY=0;for(var i=0;i<fpsMarks.length;++i){var fps=fpsMarks[i];var y=height-Math.floor(1.0/fps*scale)-0.5;var label=WebInspector.UIString("%d\u2009fps",fps);var labelWidth=this._context.measureText(label).width+2*labelPadding;var labelX=this._canvas.width;if(!i&&labelTopMargin<y-lineHeight)
+labelOffsetY=-lineHeight;var labelY=y+labelOffsetY;if(labelY<labelTopMargin||labelY+lineHeight>height)
+break;this._context.moveTo(0,y);this._context.lineTo(this._canvas.width,y);this._context.fillStyle="rgba(255, 255, 255, 0.5)";this._context.fillRect(labelX-labelWidth,labelY,labelWidth,lineHeight);this._context.fillStyle="black";this._context.fillText(label,labelX-labelPadding,labelY+lineHeight-baselineHeight);labelTopMargin=labelY+lineHeight;}
+this._context.strokeStyle="rgba(60, 60, 60, 0.4)";this._context.stroke();this._context.restore();},_renderBar:function(left,width,windowHeight,frame,scale)
+{var categories=Object.keys(WebInspector.TimelinePresentationModel.categories());if(!categories.length)
+return;var x=Math.floor(left)+0.5;width=Math.floor(width);for(var i=0,bottomOffset=windowHeight;i<categories.length;++i){var category=categories[i];var duration=frame.timeByCategory[category];if(!duration)
+continue;var height=Math.round(duration*scale);var y=Math.floor(bottomOffset-height)+0.5;this._context.save();this._context.translate(x,0);this._context.scale(width/this._maxInnerBarWidth,1);this._context.fillStyle=this._fillStyles[category];this._context.fillRect(0,y,this._maxInnerBarWidth,Math.floor(height));this._context.strokeStyle=WebInspector.TimelinePresentationModel.categories()[category].borderColor;this._context.beginPath();this._context.moveTo(0,y);this._context.lineTo(this._maxInnerBarWidth,y);this._context.stroke();this._context.restore();bottomOffset-=height;}
+var y0=Math.floor(windowHeight-frame.duration*scale)+0.5;var y1=windowHeight+0.5;this._context.strokeStyle="rgba(90, 90, 90, 0.3)";this._context.beginPath();this._context.moveTo(x,y1);this._context.lineTo(x,y0);this._context.lineTo(x+width,y0);this._context.lineTo(x+width,y1);this._context.stroke();},windowTimes:function(windowLeft,windowRight)
+{if(!this._barTimes.length)
+return WebInspector.TimelineOverviewBase.prototype.windowTimes.call(this,windowLeft,windowRight);var windowSpan=this._canvas.width;var leftOffset=windowLeft*windowSpan-this._outerPadding+this._actualPadding;var rightOffset=windowRight*windowSpan-this._outerPadding;var firstBar=Math.floor(Math.max(leftOffset,0)/this._actualOuterBarWidth);var lastBar=Math.min(Math.floor(rightOffset/this._actualOuterBarWidth),this._barTimes.length-1);if(firstBar>=this._barTimes.length)
+return{startTime:Infinity,endTime:Infinity};const snapToRightTolerancePixels=3;return{startTime:this._barTimes[firstBar].startTime,endTime:(rightOffset+snapToRightTolerancePixels>windowSpan)||(lastBar>=this._barTimes.length)?Infinity:this._barTimes[lastBar].endTime}},windowBoundaries:function(startTime,endTime)
+{if(this._barTimes.length===0)
+return{left:0,right:1};function barStartComparator(time,barTime)
+{return time-barTime.startTime;}
+function barEndComparator(time,barTime)
+{if(time===barTime.endTime)
+return 1;return time-barTime.endTime;}
+return{left:this._windowBoundaryFromTime(startTime,barEndComparator),right:this._windowBoundaryFromTime(endTime,barStartComparator)}},_windowBoundaryFromTime:function(time,comparator)
+{if(time===Infinity)
+return 1;var index=this._firstBarAfter(time,comparator);if(!index)
+return 0;return(this._barNumberToScreenPosition(index)-this._actualPadding/2)/this._canvas.width;},_firstBarAfter:function(time,comparator)
+{return insertionIndexForObjectInListSortedByFunction(time,this._barTimes,comparator);},__proto__:WebInspector.TimelineOverviewBase.prototype};WebInspector.TimelineMemoryOverview=function(model)
+{WebInspector.TimelineOverviewBase.call(this,model);this.element.id="timeline-overview-memory";this._maxHeapSizeLabel=this.element.createChild("div","max memory-graph-label");this._minHeapSizeLabel=this.element.createChild("div","min memory-graph-label");}
+WebInspector.TimelineMemoryOverview.prototype={update:function()
+{this.resetCanvas();var records=this._model.records;if(!records.length)
+return;const lowerOffset=3;var maxUsedHeapSize=0;var minUsedHeapSize=100000000000;var minTime=this._model.minimumRecordTime();var maxTime=this._model.maximumRecordTime();WebInspector.TimelinePresentationModel.forAllRecords(records,function(r){if(!r.counters||!r.counters.jsHeapSizeUsed)
+return;maxUsedHeapSize=Math.max(maxUsedHeapSize,r.counters.jsHeapSizeUsed);minUsedHeapSize=Math.min(minUsedHeapSize,r.counters.jsHeapSizeUsed);});minUsedHeapSize=Math.min(minUsedHeapSize,maxUsedHeapSize);var width=this._canvas.width;var height=this._canvas.height-lowerOffset;var xFactor=width/(maxTime-minTime);var yFactor=height/Math.max(maxUsedHeapSize-minUsedHeapSize,1);var histogram=new Array(width);WebInspector.TimelinePresentationModel.forAllRecords(records,function(r){if(!r.counters||!r.counters.jsHeapSizeUsed)
+return;var x=Math.round((WebInspector.TimelineModel.endTimeInSeconds(r)-minTime)*xFactor);var y=(r.counters.jsHeapSizeUsed-minUsedHeapSize)*yFactor;histogram[x]=Math.max(histogram[x]||0,y);});var y=0;var isFirstPoint=true;var ctx=this._context;ctx.save();ctx.translate(0.5,0.5);ctx.beginPath();ctx.moveTo(-1,this._canvas.height);for(var x=0;x<histogram.length;x++){if(typeof histogram[x]==="undefined")
+continue;if(isFirstPoint){isFirstPoint=false;y=histogram[x];ctx.lineTo(-1,height-y);}
+ctx.lineTo(x,height-y);y=histogram[x];ctx.lineTo(x,height-y);}
+ctx.lineTo(width,height-y);ctx.lineTo(width,this._canvas.height);ctx.lineTo(-1,this._canvas.height);ctx.closePath();var gradient=ctx.createLinearGradient(0,0,0,height);gradient.addColorStop(0,"rgba(192,204,255,1)");gradient.addColorStop(1,"rgba(192,204,255,0.4)");ctx.fillStyle=gradient;ctx.fill();ctx.lineWidth=0.5;ctx.strokeStyle="#666";ctx.stroke();ctx.restore();this._maxHeapSizeLabel.textContent=Number.bytesToString(maxUsedHeapSize);this._minHeapSizeLabel.textContent=Number.bytesToString(minUsedHeapSize);},__proto__:WebInspector.TimelineOverviewBase.prototype};WebInspector.TimelineView=function(panel,model,glueRecordsSetting,mode)
+{WebInspector.View.call(this);this.element.classList.add("timeline-view");this.element.classList.add("hbox");this._panel=panel;this._model=model;this._currentMode=mode;this._calculator=new WebInspector.TimelineCalculator(this._model);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded,this._onTimelineEventRecorded,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared,this._onRecordsCleared,this);this._presentationModel=new WebInspector.TimelinePresentationModel();this._durationFilter=new WebInspector.TimelineIsLongFilter();this._windowFilter=new WebInspector.TimelineWindowFilter();this._presentationModel.addFilter(this._windowFilter);this._presentationModel.addFilter(new WebInspector.TimelineCategoryFilter());this._presentationModel.addFilter(this._durationFilter);this._frameMode=mode===WebInspector.TimelinePanel.Mode.Frames;this._boundariesAreValid=true;this._scrollTop=0;this._detailsSplitView=new WebInspector.SplitView(false,"timeline-details");this._detailsSplitView.element.classList.remove("fill");this._detailsSplitView.element.classList.add("timeline-details-split");this._detailsSplitView.sidebarElement().classList.add("timeline-details");this._detailsSplitView.mainElement().classList.add("vbox");this._detailsSplitView.setMainElementConstraints(undefined,40);this._detailsView=new WebInspector.TimelineDetailsView();this._detailsSplitView.setSidebarView(this._detailsView);this._detailsSplitView.installResizer(this._detailsView.titleElement());WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._dockSideChanged.bind(this));WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(this._dockSideChanged.bind(this));this._dockSideChanged();this._searchableView=new WebInspector.SearchableView(this);this._searchableView.element.classList.add("searchable-view");this._detailsSplitView.setMainView(this._searchableView);this._views=[];this._recordsView=this._createRecordsView();this._views.push(this._recordsView);this._stackView=new WebInspector.StackView(false);this._stackView.show(this._searchableView.element);this._stackView.element.classList.add("timeline-view-stack");this._recordsViewMainElement=this._stackView.appendView(this._recordsView,"timeline-records").mainElement();this._recordsViewMainElement.classList.add("timeline-records-view");this._recordsViewMainElement.appendChild(this._timelineGrid.gridHeaderElement);if(this._currentMode===WebInspector.TimelinePanel.Mode.Memory){this._memoryStatistics=new WebInspector.CountersGraph(this,this._model);this._views.push(this._memoryStatistics);this._memoryStatistics.addEventListener(WebInspector.TimelineView.Events.SidebarResized,this._sidebarResized,this);this._stackView.appendView(this._memoryStatistics,"timeline-memory");}
+this._popoverHelper=new WebInspector.PopoverHelper(this.element,this._getPopoverAnchor.bind(this),this._showPopover.bind(this));this.element.addEventListener("mousemove",this._mouseMove.bind(this),false);this.element.addEventListener("mouseout",this._mouseOut.bind(this),false);this.element.addEventListener("keydown",this._keyDown.bind(this),false);this._expandOffset=15;this._windowStartTime=0;this._windowEndTime=Infinity;this._allRecordsCount=0;this._presentationModel.setGlueRecords(glueRecordsSetting.get());this._glueRecordsSetting=glueRecordsSetting;this._glueRecordsSetting.addChangeListener(this._onGlueRecordsSettingChanged,this);switch(mode){case WebInspector.TimelinePanel.Mode.Events:this._overviewControl=new WebInspector.TimelineEventOverview(this._model);break;case WebInspector.TimelinePanel.Mode.Frames:this._overviewControl=new WebInspector.TimelineFrameOverview(this._model);this._presentationModel.setGlueRecords(false);this._frameController=new WebInspector.TimelineFrameController(this._model,this._overviewControl,this._presentationModel);break;case WebInspector.TimelinePanel.Mode.Memory:this._overviewControl=new WebInspector.TimelineMemoryOverview(this._model);break;}
+this._detailsSplitView.show(this.element);}
+WebInspector.TimelineView.Events={SidebarResized:"SidebarResized"}
+WebInspector.TimelineView.commonUIFilters=function()
+{var filters=WebInspector.TimelineView._commonUIFilters;if(filters)
+return filters;filters={};filters._textFilterUI=new WebInspector.TextFilterUI();var durationOptions=[];for(var presetIndex=0;presetIndex<WebInspector.TimelinePanel.durationFilterPresetsMs.length;++presetIndex){var durationMs=WebInspector.TimelinePanel.durationFilterPresetsMs[presetIndex];var durationOption={};if(!durationMs){durationOption.label=WebInspector.UIString("All");durationOption.title=WebInspector.UIString("Show all records");}else{durationOption.label=WebInspector.UIString("\u2265 %dms",durationMs);durationOption.title=WebInspector.UIString("Hide records shorter than %dms",durationMs);}
 durationOption.value=durationMs;durationOptions.push(durationOption);}
-this._durationComboBoxFilter=new WebInspector.ComboBoxFilterUI(durationOptions);this._durationComboBoxFilter.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._durationFilterChanged,this);this._filterBar.addFilter(this._durationComboBoxFilter);this._categoryFilters={};var categoryTypes=[];var categories=WebInspector.TimelinePresentationModel.categories();for(var categoryName in categories){var category=categories[categoryName];if(category.overviewStripGroupIndex<0)
-continue;var filter=new WebInspector.CheckboxFilterUI(category.name,category.title,false);filter.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._categoriesFilterChanged.bind(this,category.name),this);this._filterBar.addFilter(filter);this._categoryFilters[category.name]=filter;}},_createStatusBarItems:function()
-{this._statusBarButtons=([]);this.toggleTimelineButton=new WebInspector.StatusBarButton(WebInspector.UIString("Record"),"record-profile-status-bar-item");this.toggleTimelineButton.addEventListener("click",this._toggleTimelineButtonClicked,this);this._statusBarButtons.push(this.toggleTimelineButton);this._panelStatusBarElement.appendChild(this.toggleTimelineButton.element);this.clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-status-bar-item");this.clearButton.addEventListener("click",this._clearPanel,this);this._statusBarButtons.push(this.clearButton);this._panelStatusBarElement.appendChild(this.clearButton.element);this._panelStatusBarElement.appendChild(this._filterBar.filterButton());this.garbageCollectButton=new WebInspector.StatusBarButton(WebInspector.UIString("Collect Garbage"),"garbage-collect-status-bar-item");this.garbageCollectButton.addEventListener("click",this._garbageCollectButtonClicked,this);this._statusBarButtons.push(this.garbageCollectButton);this._panelStatusBarElement.appendChild(this.garbageCollectButton.element);this._glueParentButton=new WebInspector.StatusBarButton(WebInspector.UIString("Glue asynchronous events to causes"),"glue-async-status-bar-item");this._glueParentButton.toggled=this._glueRecordsSetting.get();this._presentationModel.setGlueRecords(this._glueParentButton.toggled);this._glueParentButton.addEventListener("click",this._glueParentButtonClicked,this);this._statusBarButtons.push(this._glueParentButton);this._panelStatusBarElement.appendChild(this._glueParentButton.element);this._statusTextContainer=this._panelStatusBarElement.createChild("div");this.recordsCounter=new WebInspector.StatusBarText("");this._statusTextContainer.appendChild(this.recordsCounter.element);this.frameStatistics=this._statusTextContainer.createChild("div","timeline-frame-statistics status-bar-item status-bar-text hidden");function getAnchor()
-{return this.frameStatistics;}
-this._frameStatisticsPopoverHelper=new WebInspector.PopoverHelper(this.frameStatistics,getAnchor.bind(this),this._showFrameStatistics.bind(this));this._miscStatusBarItems=this._panelStatusBarElement.createChild("div","status-bar-item");},_textFilterChanged:function(event)
-{var searchQuery=this._textFilter.value();this._presentationModel.setSearchFilter(null);delete this._searchFilter;function cleanRecord(record)
+filters._durationFilterUI=new WebInspector.ComboBoxFilterUI(durationOptions);filters._categoryFiltersUI={};var categoryTypes=[];var categories=WebInspector.TimelinePresentationModel.categories();for(var categoryName in categories){var category=categories[categoryName];if(category.overviewStripGroupIndex<0)
+continue;var filter=new WebInspector.CheckboxFilterUI(category.name,category.title);filters._categoryFiltersUI[category.name]=filter;}
+WebInspector.TimelineView._commonUIFilters=filters;return filters;}
+WebInspector.TimelineView.prototype={_createRecordsView:function()
+{var recordsView=new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start,"timeline-split");recordsView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this._sidebarResized,this);recordsView.setSecondIsSidebar(false);this._containerElement=recordsView.element;this._containerElement.tabIndex=0;this._containerElement.id="timeline-container";this._containerElement.addEventListener("scroll",this._onScroll.bind(this),false);recordsView.sidebarElement().classList.add("vbox");recordsView.sidebarElement().createChild("div","timeline-records-title").textContent=WebInspector.UIString("RECORDS");this._sidebarListElement=recordsView.sidebarElement().createChild("div","timeline-records-list");this._gridContainer=new WebInspector.ViewWithResizeCallback(this._onViewportResize.bind(this));this._gridContainer.element.classList.add("fill");this._gridContainer.element.id="resources-container-content";recordsView.setMainView(this._gridContainer);this._timelineGrid=new WebInspector.TimelineGrid();this._itemsGraphsElement=this._timelineGrid.itemsGraphsElement;this._itemsGraphsElement.id="timeline-graphs";this._gridContainer.element.appendChild(this._timelineGrid.element);this._timelineGrid.gridHeaderElement.id="timeline-grid-header";this._timelineGrid.gridHeaderElement.classList.add("fill");this._topGapElement=this._itemsGraphsElement.createChild("div","timeline-gap");this._graphRowsElement=this._itemsGraphsElement.createChild("div");this._bottomGapElement=this._itemsGraphsElement.createChild("div","timeline-gap");this._expandElements=this._itemsGraphsElement.createChild("div");this._expandElements.id="orphan-expand-elements";this._mainThreadTasks=([]);this._gpuTasks=([]);var utilizationStripsElement=this._timelineGrid.gridHeaderElement.createChild("div","timeline-utilization-strips vbox");this._cpuBarsElement=utilizationStripsElement.createChild("div","timeline-utilization-strip");if(WebInspector.experimentsSettings.gpuTimeline.isEnabled())
+this._gpuBarsElement=utilizationStripsElement.createChild("div","timeline-utilization-strip gpu");return recordsView;},searchableView:function()
+{return this._searchableView;},supportsGlueParentMode:function()
+{return!this._frameMode;},_onGlueRecordsSettingChanged:function()
+{this._presentationModel.setGlueRecords(this._glueRecordsSetting.get());this._repopulateRecords();},windowStartTime:function()
+{return this._windowStartTime||this._model.minimumRecordTime();},windowEndTime:function()
+{return this._windowEndTime<Infinity?this._windowEndTime:this._model.maximumRecordTime();},overviewControl:function()
+{return this._overviewControl;},get calculator()
+{return this._calculator;},createUIFilters:function(filterBar)
+{var filters=this._filters;if(!filters){this._filters=WebInspector.TimelineView.commonUIFilters();filters=this._filters;filters._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._textFilterChanged,this);filters._durationFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._durationFilterChanged,this);for(var categoryName in filters._categoryFiltersUI)
+filters._categoryFiltersUI[categoryName].addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._categoriesFilterChanged.bind(this,categoryName),this);}
+filterBar.addFilter(filters._textFilterUI);filterBar.addFilter(filters._durationFilterUI);for(var categoryName in filters._categoryFiltersUI)
+filterBar.addFilter(filters._categoryFiltersUI[categoryName]);return true;},_textFilterChanged:function(event)
+{var searchQuery=this._filters._textFilterUI.value();this._presentationModel.setSearchFilter(null);delete this._searchFilter;function cleanRecord(record)
 {delete record.clicked;}
 WebInspector.TimelinePresentationModel.forAllRecords(this._presentationModel.rootRecord().children,cleanRecord);this.searchCanceled();if(searchQuery){this._searchFilter=new WebInspector.TimelineSearchFilter(createPlainTextSearchRegex(searchQuery,"i"));this._presentationModel.setSearchFilter(this._searchFilter);}
 this._invalidateAndScheduleRefresh(true,true);},_durationFilterChanged:function()
-{var duration=this._durationComboBoxFilter.value();var minimumRecordDuration=+duration/1000.0;this._durationFilter.setMinimumRecordDuration(minimumRecordDuration);this._invalidateAndScheduleRefresh(true,true);},_categoriesFilterChanged:function(name,event)
-{var categories=WebInspector.TimelinePresentationModel.categories();categories[name].hidden=!this._categoryFilters[name].checked();this._invalidateAndScheduleRefresh(true,true);},_onFiltersToggled:function(event)
-{var toggled=(event.data);this._filtersContainer.enableStyleClass("hidden",!toggled);this.onResize();},_setOperationInProgress:function(indicator)
-{this._operationInProgress=!!indicator;for(var i=0;i<this._statusBarButtons.length;++i)
-this._statusBarButtons[i].setEnabled(!this._operationInProgress);this._glueParentButton.setEnabled(!this._operationInProgress&&!this._frameController);this._statusTextContainer.enableStyleClass("hidden",!!indicator);this._miscStatusBarItems.removeChildren();if(indicator)
-this._miscStatusBarItems.appendChild(indicator.element);},_registerShortcuts:function()
-{this.registerShortcuts(WebInspector.TimelinePanelDescriptor.ShortcutKeys.StartStopRecording,this._toggleTimelineButtonClicked.bind(this));this.registerShortcuts(WebInspector.TimelinePanelDescriptor.ShortcutKeys.SaveToFile,this._saveToFile.bind(this));this.registerShortcuts(WebInspector.TimelinePanelDescriptor.ShortcutKeys.LoadFromFile,this._selectFileToLoad.bind(this));},_createFileSelector:function()
-{if(this._fileSelectorElement)
-this.element.removeChild(this._fileSelectorElement);this._fileSelectorElement=WebInspector.createFileSelectorElement(this._loadFromFile.bind(this));this.element.appendChild(this._fileSelectorElement);},_contextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Save Timeline data\u2026":"Save Timeline Data\u2026"),this._saveToFile.bind(this),this._operationInProgress);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Load Timeline data\u2026":"Load Timeline Data\u2026"),this._selectFileToLoad.bind(this),this._operationInProgress);contextMenu.show();},_saveToFile:function(event)
-{if(this._operationInProgress)
-return true;this._model.saveToFile();return true;},_selectFileToLoad:function(event){this._fileSelectorElement.click();return true;},_loadFromFile:function(file)
-{var progressIndicator=this._prepareToLoadTimeline();if(!progressIndicator)
-return;this._model.loadFromFile(file,progressIndicator);this._createFileSelector();},loadFromURL:function(url)
-{var progressIndicator=this._prepareToLoadTimeline();if(!progressIndicator)
-return;this._model.loadFromURL(url,progressIndicator);},_prepareToLoadTimeline:function()
-{if(this._operationInProgress)
-return null;if(this.toggleTimelineButton.toggled){this.toggleTimelineButton.toggled=false;this._model.stopRecording();}
-var progressIndicator=new WebInspector.ProgressIndicator();progressIndicator.addEventListener(WebInspector.ProgressIndicator.Events.Done,this._setOperationInProgress.bind(this,null));this._setOperationInProgress(progressIndicator);return progressIndicator;},_rootRecord:function()
+{var duration=this._filters._durationFilterUI.value();var minimumRecordDuration=+duration/1000.0;this._durationFilter.setMinimumRecordDuration(minimumRecordDuration);this._invalidateAndScheduleRefresh(true,true);},_categoriesFilterChanged:function(name,event)
+{var categories=WebInspector.TimelinePresentationModel.categories();categories[name].hidden=!this._filters._categoryFiltersUI[name].checked();this._invalidateAndScheduleRefresh(true,true);},_dockSideChanged:function()
+{var dockSide=WebInspector.dockController.dockSide();var vertically=false;if(dockSide===WebInspector.DockController.State.DockedToBottom)
+vertically=true;else
+vertically=!WebInspector.settings.splitVerticallyWhenDockedToRight.get();this._detailsSplitView.setVertical(vertically);this._detailsView.setVertical(vertically);},_rootRecord:function()
 {return this._presentationModel.rootRecord();},_updateRecordsCounter:function(recordsInWindowCount)
-{this.recordsCounter.setText(WebInspector.UIString("%d of %d records shown",recordsInWindowCount,this._allRecordsCount));},_updateFrameStatistics:function(frames)
-{if(frames.length){this._lastFrameStatistics=new WebInspector.FrameStatistics(frames);var details=WebInspector.UIString("avg: %s, \u03c3: %s",Number.secondsToString(this._lastFrameStatistics.average,true),Number.secondsToString(this._lastFrameStatistics.stddev,true));}else
-this._lastFrameStatistics=null;this.frameStatistics.textContent=WebInspector.UIString("%d of %d frames shown",frames.length,this._presentationModel.frames().length);if(details){this.frameStatistics.appendChild(document.createTextNode(" ("));this.frameStatistics.createChild("span","timeline-frames-stats").textContent=details;this.frameStatistics.appendChild(document.createTextNode(")"));}},_showFrameStatistics:function(anchor,popover)
-{popover.show(WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics(this._lastFrameStatistics),anchor);},_updateEventDividers:function()
+{this._panel.recordsCounter.setText(WebInspector.UIString("%d of %d records shown",recordsInWindowCount,this._allRecordsCount));},_updateFrameStatistics:function(frames)
+{this._lastFrameStatistics=frames.length?new WebInspector.FrameStatistics(frames):null;},_updateEventDividers:function()
 {this._timelineGrid.removeEventDividers();var clientWidth=this._graphRowsElementWidth;var dividers=[];var eventDividerRecords=this._presentationModel.eventDividerRecords();for(var i=0;i<eventDividerRecords.length;++i){var record=eventDividerRecords[i];var positions=this._calculator.computeBarGraphWindowPosition(record);var dividerPosition=Math.round(positions.left);if(dividerPosition<0||dividerPosition>=clientWidth||dividers[dividerPosition])
 continue;var divider=WebInspector.TimelinePresentationModel.createEventDivider(record.type,record.title);divider.style.left=dividerPosition+"px";dividers[dividerPosition]=divider;}
 this._timelineGrid.addEventDividers(dividers);},_updateFrameBars:function(frames)
 {var clientWidth=this._graphRowsElementWidth;if(this._frameContainer)
-this._frameContainer.removeChildren();else{const frameContainerBorderWidth=1;this._frameContainer=document.createElement("div");this._frameContainer.addStyleClass("fill");this._frameContainer.addStyleClass("timeline-frame-container");this._frameContainer.style.height=this._headerLineCount*WebInspector.TimelinePanel.rowHeight+frameContainerBorderWidth+"px";this._frameContainer.addEventListener("dblclick",this._onFrameDoubleClicked.bind(this),false);}
+this._frameContainer.removeChildren();else{const frameContainerBorderWidth=1;this._frameContainer=document.createElement("div");this._frameContainer.classList.add("fill");this._frameContainer.classList.add("timeline-frame-container");this._frameContainer.style.height=WebInspector.TimelinePanel.rowHeight+frameContainerBorderWidth+"px";this._frameContainer.addEventListener("dblclick",this._onFrameDoubleClicked.bind(this),false);}
 var dividers=[this._frameContainer];for(var i=0;i<frames.length;++i){var frame=frames[i];var frameStart=this._calculator.computePosition(frame.startTime);var frameEnd=this._calculator.computePosition(frame.endTime);var frameStrip=document.createElement("div");frameStrip.className="timeline-frame-strip";var actualStart=Math.max(frameStart,0);var width=frameEnd-actualStart;frameStrip.style.left=actualStart+"px";frameStrip.style.width=width+"px";frameStrip._frame=frame;const minWidthForFrameInfo=60;if(width>minWidthForFrameInfo)
 frameStrip.textContent=Number.secondsToString(frame.endTime-frame.startTime,true);this._frameContainer.appendChild(frameStrip);if(actualStart>0){var frameMarker=WebInspector.TimelinePresentationModel.createEventDivider(WebInspector.TimelineModel.RecordType.BeginFrame);frameMarker.style.left=frameStart+"px";dividers.push(frameMarker);}}
 this._timelineGrid.addEventDividers(dividers);},_onFrameDoubleClicked:function(event)
 {var frameBar=event.target.enclosingNodeOrSelfWithClass("timeline-frame-strip");if(!frameBar)
-return;this._overviewPane.zoomToFrame(frameBar._frame);},_overviewModeChanged:function(event)
-{var mode=event.data;var shouldShowMemory=mode===WebInspector.TimelineOverviewPane.Mode.Memory;var frameMode=mode===WebInspector.TimelineOverviewPane.Mode.Frames;this._overviewModeSetting.set(mode);if(frameMode!==this._frameMode){this._frameMode=frameMode;this._glueParentButton.setEnabled(!frameMode);this._presentationModel.setGlueRecords(this._glueParentButton.toggled&&!frameMode);this._repopulateRecords();if(frameMode){this.element.addStyleClass("timeline-frame-overview");this.recordsCounter.element.addStyleClass("hidden");this.frameStatistics.removeStyleClass("hidden");this._frameController=new WebInspector.TimelineFrameController(this._model,this._overviewPane,this._presentationModel);}else{this._frameController.dispose();this._frameController=null;this.element.removeStyleClass("timeline-frame-overview");this.recordsCounter.element.removeStyleClass("hidden");this.frameStatistics.addStyleClass("hidden");}}
-if(shouldShowMemory===this._memoryStatistics.visible())
-return;this._timelineMemorySplitter.enableStyleClass("hidden",!shouldShowMemory);if(!shouldShowMemory){this._memoryStatistics.hide();this._resize(this.splitView.sidebarWidth());}else{this._memoryStatistics.show();this._setMemoryCountersHeight(WebInspector.settings.memoryCounterGraphsHeight.get());this._resize(this.splitView.sidebarWidth());}},_toggleTimelineButtonClicked:function()
-{if(this._operationInProgress)
-return true;if(this.toggleTimelineButton.toggled){this._model.stopRecording();}else{this._model.startRecording(this._includeDomCounters);WebInspector.userMetrics.TimelineStarted.record();}
-return true;},_garbageCollectButtonClicked:function()
-{HeapProfilerAgent.collectGarbage();},_glueParentButtonClicked:function()
-{var newValue=!this._glueParentButton.toggled;this._glueParentButton.toggled=newValue;this._presentationModel.setGlueRecords(newValue);this._glueRecordsSetting.set(newValue);this._repopulateRecords();},_repopulateRecords:function()
-{this._resetPanel();this._automaticallySizeWindow=false;var records=this._model.records;for(var i=0;i<records.length;++i)
+return;this._setWindowTimes(frameBar._frame.startTime,frameBar._frame.endTime);},_updateWindowBoundaries:function()
+{var windowBoundaries=this.overviewControl().windowBoundaries(this._windowStartTime,this._windowEndTime);this._panel.setWindow(windowBoundaries.left,windowBoundaries.right);},windowTimes:function()
+{return{windowStartTime:this._windowStartTime,windowEndTime:this._windowEndTime};},setWindowTimes:function(windowTimes)
+{if(!windowTimes)
+return;this._setWindowTimes(windowTimes.windowStartTime,windowTimes.windowEndTime);},_setWindowTimes:function(startTime,endTime)
+{this._windowStartTime=startTime;this._windowEndTime=endTime;this._windowFilter.setWindowTimes(startTime,endTime);var windowBoundaries=this.overviewControl().windowBoundaries(startTime,endTime);this._panel.setWindow(windowBoundaries.left,windowBoundaries.right);},_repopulateRecords:function()
+{this._resetView();this._automaticallySizeWindow=false;var records=this._model.records;for(var i=0;i<records.length;++i)
 this._innerAddRecordToTimeline(records[i]);this._invalidateAndScheduleRefresh(false,false);},_onTimelineEventRecorded:function(event)
 {if(this._innerAddRecordToTimeline((event.data)))
 this._invalidateAndScheduleRefresh(false,false);},_innerAddRecordToTimeline:function(record)
-{if(record.type===WebInspector.TimelineModel.RecordType.Program){this._mainThreadTasks.push({startTime:WebInspector.TimelineModel.startTimeInSeconds(record),endTime:WebInspector.TimelineModel.endTimeInSeconds(record)});}
+{if(record.type===WebInspector.TimelineModel.RecordType.Program)
+this._mainThreadTasks.push(record);if(record.type===WebInspector.TimelineModel.RecordType.GPUTask){this._gpuTasks.push(record);return WebInspector.TimelineModel.startTimeInSeconds(record)<this._windowEndTime;}
 var records=this._presentationModel.addRecord(record);this._allRecordsCount+=records.length;var hasVisibleRecords=false;var presentationModel=this._presentationModel;function checkVisible(record)
 {hasVisibleRecords|=presentationModel.isVisible(record);}
 WebInspector.TimelinePresentationModel.forAllRecords(records,checkVisible);function isAdoptedRecord(record)
 {return record.parent!==presentationModel.rootRecord;}
-return hasVisibleRecords||records.some(isAdoptedRecord);},sidebarResized:function(event)
-{var width=event.data;this._resize(width);this._overviewPane.sidebarResized(width);this._memoryStatistics.setSidebarWidth(width);},onResize:function()
-{if(this._memoryStatistics.visible())
-this._setMemoryCountersHeight(this._memoryStatistics.height());this._resize(this.splitView.sidebarWidth());},_resize:function(sidebarWidth)
-{this._closeRecordDetails();this._graphRowsElementWidth=this._graphRowsElement.offsetWidth;this._containerElementHeight=this._containerElement.clientHeight;this._scheduleRefresh(false,true);},_clearPanel:function()
-{this._model.reset();},_onRecordsCleared:function()
-{this._resetPanel();this._invalidateAndScheduleRefresh(true,true);},_onRecordingStarted:function()
-{this.toggleTimelineButton.title=WebInspector.UIString("Stop");this.toggleTimelineButton.toggled=true;},_onRecordingStopped:function()
-{this.toggleTimelineButton.title=WebInspector.UIString("Record");this.toggleTimelineButton.toggled=false;},_resetPanel:function()
-{this._presentationModel.reset();this._boundariesAreValid=false;this._adjustScrollPosition(0);this._closeRecordDetails();this._allRecordsCount=0;this._automaticallySizeWindow=true;this._mainThreadTasks=[];},elementsToRestoreScrollPositionsFor:function()
+return hasVisibleRecords||records.some(isAdoptedRecord);},_sidebarResized:function(event)
+{var width=(event.data);this.setSidebarWidth(width);this._panel.setSidebarWidth(width);},setSidebarWidth:function(width)
+{this._timelineGrid.gridHeaderElement.style.left=width+"px";for(var i=0;i<this._views.length;++i)
+this._views[i].setSidebarWidth(width);},_onViewportResize:function()
+{this._resize(this._recordsView.sidebarWidth());},_resize:function(sidebarWidth)
+{this._closeRecordDetails();this._graphRowsElementWidth=this._graphRowsElement.offsetWidth;this._containerElementHeight=this._containerElement.clientHeight;this._timelineGrid.gridHeaderElement.style.width=this._itemsGraphsElement.offsetWidth+"px";this._scheduleRefresh(false,true);},_resetView:function()
+{this._presentationModel.reset();this._boundariesAreValid=false;this._adjustScrollPosition(0);this._closeRecordDetails();this._allRecordsCount=0;this._automaticallySizeWindow=true;this._mainThreadTasks=[];this._gpuTasks=[];},_onRecordsCleared:function()
+{this._windowStartTime=0;this._windowEndTime=Infinity;this._resetView();this.overviewControl().reset();this._windowFilter.reset();this._invalidateAndScheduleRefresh(true,true);},elementsToRestoreScrollPositionsFor:function()
 {return[this._containerElement];},wasShown:function()
-{WebInspector.Panel.prototype.wasShown.call(this);if(!WebInspector.TimelinePanel._categoryStylesInitialized){WebInspector.TimelinePanel._categoryStylesInitialized=true;this._injectCategoryStyles();}
-this._overviewPane.setMode(this._overviewModeSetting.get());this._refresh();},willHide:function()
-{this._closeRecordDetails();WebInspector.Panel.prototype.willHide.call(this);},_onScroll:function(event)
+{WebInspector.View.prototype.wasShown.call(this);this._repopulateRecords();this._updateSelectionDetails();this._updateWindowBoundaries();if(!WebInspector.TimelinePanel._categoryStylesInitialized){WebInspector.TimelinePanel._categoryStylesInitialized=true;this._injectCategoryStyles();}
+this._onViewportResize();this._refresh();},willHide:function()
+{this._closeRecordDetails();WebInspector.View.prototype.willHide.call(this);},_onScroll:function(event)
 {this._closeRecordDetails();this._scrollTop=this._containerElement.scrollTop;var dividersTop=Math.max(0,this._scrollTop);this._timelineGrid.setScrollAndDividerTop(this._scrollTop,dividersTop);this._scheduleRefresh(true,true);},_invalidateAndScheduleRefresh:function(preserveBoundaries,userGesture)
-{this._presentationModel.invalidateFilteredRecords();delete this._searchResults;this._scheduleRefresh(preserveBoundaries,userGesture);},_scheduleRefresh:function(preserveBoundaries,userGesture)
+{this._presentationModel.invalidateFilteredRecords();delete this._searchResults;this._scheduleRefresh(preserveBoundaries,userGesture);},_selectRecord:function(record)
+{if(record===this._lastSelectedRecord)
+return;if(this._lastSelectedRecord){var listRow=(this._lastSelectedRecord.getUserObject("WebInspector.TimelineRecordListRow"));if(listRow)
+listRow.renderAsSelected(false);var graphRow=(this._lastSelectedRecord.getUserObject("WebInspector.TimelineRecordGraphRow"));if(graphRow)
+graphRow.renderAsSelected(false);}
+if(!record){this._updateSelectionDetails();return;}
+this._lastSelectedRecord=record;this._revealRecord(record);var listRow=(record.getUserObject("WebInspector.TimelineRecordListRow"));if(listRow)
+listRow.renderAsSelected(true);var graphRow=(record.getUserObject("WebInspector.TimelineRecordGraphRow"));if(graphRow)
+graphRow.renderAsSelected(true);record.generatePopupContent(showCallback.bind(this));function showCallback(element)
+{this._detailsView.setContent(record.title,element);}},_updateSelectionDetails:function()
+{var startTime=this.windowStartTime()*1000;var endTime=this.windowEndTime()*1000;if(startTime<0)
+return;var aggregatedStats={};function compareEndTime(value,task)
+{return value<task.endTime?-1:1;}
+function aggregateTimeForRecordWithinWindow(rawRecord)
+{if(!rawRecord.endTime||rawRecord.endTime<startTime||rawRecord.startTime>endTime)
+return;var childrenTime=0;var children=rawRecord.children||[];for(var i=0;i<children.length;++i){var child=children[i];if(!child.endTime||child.endTime<startTime||child.startTime>endTime)
+continue;childrenTime+=Math.min(endTime,child.endTime)-Math.max(startTime,child.startTime);aggregateTimeForRecordWithinWindow(child);}
+var categoryName=WebInspector.TimelinePresentationModel.categoryForRecord(rawRecord).name;var ownTime=Math.min(endTime,rawRecord.endTime)-Math.max(startTime,rawRecord.startTime)-childrenTime;aggregatedStats[categoryName]=(aggregatedStats[categoryName]||0)+ownTime/1000;}
+var taskIndex=insertionIndexForObjectInListSortedByFunction(startTime,this._mainThreadTasks,compareEndTime);for(;taskIndex<this._mainThreadTasks.length;++taskIndex){var task=this._mainThreadTasks[taskIndex];if(task.startTime>endTime)
+break;aggregateTimeForRecordWithinWindow(task);}
+var aggregatedTotal=0;for(var categoryName in aggregatedStats)
+aggregatedTotal+=aggregatedStats[categoryName];aggregatedStats["idle"]=Math.max(0,(endTime-startTime)/1000-aggregatedTotal);var fragment=document.createDocumentFragment();var pie=WebInspector.TimelinePresentationModel.generatePieChart(aggregatedStats);fragment.appendChild(pie.element);if(this._frameMode&&this._lastFrameStatistics){var title=WebInspector.UIString("%s \u2013 %s (%d frames)",Number.secondsToString(this._lastFrameStatistics.startOffset,true),Number.secondsToString(this._lastFrameStatistics.endOffset,true),this._lastFrameStatistics.frameCount);fragment.appendChild(WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics(this._lastFrameStatistics));}else{var title=WebInspector.UIString("%s \u2013 %s",this._calculator.formatTime(0,true),this._calculator.formatTime(this._calculator.boundarySpan(),true));}
+this._detailsView.setContent(title,fragment);},windowChanged:function(left,right)
+{var windowTimes=this.overviewControl().windowTimes(left,right);this._windowStartTime=windowTimes.startTime;this._windowEndTime=windowTimes.endTime;this._windowFilter.setWindowTimes(windowTimes.startTime,windowTimes.endTime);this._invalidateAndScheduleRefresh(false,true);this._selectRecord(null);},_scheduleRefresh:function(preserveBoundaries,userGesture)
 {this._closeRecordDetails();this._boundariesAreValid&=preserveBoundaries;if(!this.isShowing())
 return;if(preserveBoundaries||userGesture)
 this._refresh();else{if(!this._refreshTimeout)
 this._refreshTimeout=setTimeout(this._refresh.bind(this),300);}},_refresh:function()
 {if(this._refreshTimeout){clearTimeout(this._refreshTimeout);delete this._refreshTimeout;}
-this._timelinePaddingLeft=this._expandOffset;this._calculator.setWindow(this._overviewPane.windowStartTime(),this._overviewPane.windowEndTime());this._calculator.setDisplayWindow(this._timelinePaddingLeft,this._graphRowsElementWidth);var recordsInWindowCount=this._refreshRecords();this._updateRecordsCounter(recordsInWindowCount);if(!this._boundariesAreValid){this._updateEventDividers();var frames=this._frameController&&this._presentationModel.filteredFrames(this._overviewPane.windowStartTime(),this._overviewPane.windowEndTime());if(frames){this._updateFrameStatistics(frames);const maxFramesForFrameBars=30;if(frames.length&&frames.length<maxFramesForFrameBars){this._timelineGrid.removeDividers();this._updateFrameBars(frames);}else
+this._timelinePaddingLeft=this._expandOffset;this._calculator.setWindow(this.windowStartTime(),this.windowEndTime());this._calculator.setDisplayWindow(this._timelinePaddingLeft,this._graphRowsElementWidth);var recordsInWindowCount=this._refreshRecords();this._updateRecordsCounter(recordsInWindowCount);if(!this._boundariesAreValid){this._updateEventDividers();var frames=this._frameController&&this._presentationModel.filteredFrames(this.windowStartTime(),this.windowEndTime());if(frames){this._updateFrameStatistics(frames);const maxFramesForFrameBars=30;if(frames.length&&frames.length<maxFramesForFrameBars){this._timelineGrid.removeDividers();this._updateFrameBars(frames);}else
 this._timelineGrid.updateDividers(this._calculator);}else
-this._timelineGrid.updateDividers(this._calculator);if(this._mainThreadMonitoringEnabled)
-this._refreshMainThreadBars();}
-if(this._memoryStatistics.visible())
-this._memoryStatistics.refresh();this._boundariesAreValid=true;},revealRecordAt:function(time)
+this._timelineGrid.updateDividers(this._calculator);this._refreshAllUtilizationBars();}
+if(this._currentMode===WebInspector.TimelinePanel.Mode.Memory)
+this._memoryStatistics.refresh();this._updateWindowBoundaries();this._boundariesAreValid=true;},revealRecordAt:function(time)
 {var recordToReveal;function findRecordToReveal(record)
 {if(record.containsTime(time)){recordToReveal=record;return true;}
 if(!recordToReveal||record.endTime<time&&recordToReveal.endTime<record.endTime)
 recordToReveal=record;return false;}
 WebInspector.TimelinePresentationModel.forAllRecords(this._presentationModel.rootRecord().children,null,findRecordToReveal);if(!recordToReveal){this._containerElement.scrollTop=0;return;}
-this._revealRecord(recordToReveal);},_revealRecord:function(recordToReveal)
-{for(var parent=recordToReveal.parent;parent!==this._rootRecord();parent=parent.parent){if(!parent.collapsed)
-continue;this._presentationModel.invalidateFilteredRecords();parent.collapsed=false;}
-var recordsInWindow=this._presentationModel.filteredRecords();var index=recordsInWindow.indexOf(recordToReveal);this._recordToHighlight=recordToReveal;var oldScrollTop=this._containerElement.scrollTop;this._containerElement.scrollTop=index*WebInspector.TimelinePanel.rowHeight;if(this._containerElement.scrollTop===oldScrollTop)
-this._refresh();},_refreshRecords:function()
-{var recordsInWindow=this._presentationModel.filteredRecords();var visibleTop=this._scrollTop;var visibleBottom=visibleTop+this._containerElementHeight;const rowHeight=WebInspector.TimelinePanel.rowHeight;const headerHeight=WebInspector.TimelinePanel.headerHeight;var startIndex=Math.max(0,Math.min(Math.floor(visibleTop/rowHeight)-this._headerLineCount,recordsInWindow.length-1));var endIndex=Math.min(recordsInWindow.length,Math.ceil(visibleBottom/rowHeight));var lastVisibleLine=Math.max(0,Math.floor(visibleBottom/rowHeight)-this._headerLineCount);if(this._automaticallySizeWindow&&recordsInWindow.length>lastVisibleLine){this._automaticallySizeWindow=false;var windowStartTime=startIndex?recordsInWindow[startIndex].startTime:this._model.minimumRecordTime();this._overviewPane.setWindowTimes(windowStartTime,recordsInWindow[Math.max(0,lastVisibleLine-1)].endTime);recordsInWindow=this._presentationModel.filteredRecords();endIndex=Math.min(recordsInWindow.length,lastVisibleLine);}
-this._topGapElement.style.height=(startIndex*rowHeight)+"px";this.sidebarTreeElement.style.height=((startIndex+this._headerLineCount)*rowHeight)+"px";this._bottomGapElement.style.height=(recordsInWindow.length-endIndex)*rowHeight+"px";var rowsHeight=headerHeight+recordsInWindow.length*rowHeight;var totalHeight=Math.max(this._containerElementHeight,rowsHeight);this.splitView.firstElement().style.height=totalHeight+"px";this.splitView.secondElement().style.height=totalHeight+"px";this.splitView.resizerElement().style.height=totalHeight+"px";var listRowElement=this._sidebarListElement.firstChild;var width=this._graphRowsElementWidth;this._itemsGraphsElement.removeChild(this._graphRowsElement);var graphRowElement=this._graphRowsElement.firstChild;var scheduleRefreshCallback=this._invalidateAndScheduleRefresh.bind(this,true,true);this._itemsGraphsElement.removeChild(this._expandElements);this._expandElements.removeChildren();var highlightedRecord=this._recordToHighlight;delete this._recordToHighlight;var highlightedListRowElement;var highlightedGraphRowElement;for(var i=0;i<endIndex;++i){var record=recordsInWindow[i];var isEven=!(i%2);if(i<startIndex){var lastChildIndex=i+record.visibleChildrenCount;if(lastChildIndex>=startIndex&&lastChildIndex<endIndex){var expandElement=new WebInspector.TimelineExpandableElement(this._expandElements);var positions=this._calculator.computeBarGraphWindowPosition(record);expandElement._update(record,i,positions.left-this._expandOffset,positions.width);}}else{if(!listRowElement){listRowElement=new WebInspector.TimelineRecordListRow().element;this._sidebarListElement.appendChild(listRowElement);}
-if(!graphRowElement){graphRowElement=new WebInspector.TimelineRecordGraphRow(this._itemsGraphsElement,scheduleRefreshCallback).element;this._graphRowsElement.appendChild(graphRowElement);}
-if(highlightedRecord===record){highlightedListRowElement=listRowElement;highlightedGraphRowElement=graphRowElement;}
-listRowElement.row.update(record,isEven,visibleTop);graphRowElement.row.update(record,isEven,this._calculator,this._expandOffset,i);listRowElement=listRowElement.nextSibling;graphRowElement=graphRowElement.nextSibling;}}
+this._selectRecord(recordToReveal);},_revealRecord:function(recordToReveal)
+{var needRefresh=false;for(var parent=recordToReveal.parent;parent!==this._rootRecord();parent=parent.parent){if(!parent.collapsed)
+continue;this._presentationModel.invalidateFilteredRecords();parent.collapsed=false;needRefresh=true;}
+var recordsInWindow=this._presentationModel.filteredRecords();var index=recordsInWindow.indexOf(recordToReveal);var itemOffset=index*WebInspector.TimelinePanel.rowHeight;var visibleTop=this._scrollTop-WebInspector.TimelinePanel.headerHeight;var visibleBottom=visibleTop+this._containerElementHeight-WebInspector.TimelinePanel.rowHeight;if(itemOffset<visibleTop)
+this._containerElement.scrollTop=itemOffset;else if(itemOffset>visibleBottom)
+this._containerElement.scrollTop=itemOffset-this._containerElementHeight+WebInspector.TimelinePanel.headerHeight+WebInspector.TimelinePanel.rowHeight;else if(needRefresh)
+this._refreshRecords();},_refreshRecords:function()
+{var recordsInWindow=this._presentationModel.filteredRecords();var visibleTop=this._scrollTop;var visibleBottom=visibleTop+this._containerElementHeight;var rowHeight=WebInspector.TimelinePanel.rowHeight;var headerHeight=WebInspector.TimelinePanel.headerHeight;var startIndex=Math.max(0,Math.min(Math.floor((visibleTop-headerHeight)/rowHeight),recordsInWindow.length-1));var endIndex=Math.min(recordsInWindow.length,Math.ceil(visibleBottom/rowHeight));var lastVisibleLine=Math.max(0,Math.floor((visibleBottom-headerHeight)/rowHeight));if(this._automaticallySizeWindow&&recordsInWindow.length>lastVisibleLine){this._automaticallySizeWindow=false;this._selectRecord(null);var windowStartTime=startIndex?recordsInWindow[startIndex].startTime:this._model.minimumRecordTime();this._setWindowTimes(windowStartTime,recordsInWindow[Math.max(0,lastVisibleLine-1)].endTime);recordsInWindow=this._presentationModel.filteredRecords();endIndex=Math.min(recordsInWindow.length,lastVisibleLine);}else{this._updateWindowBoundaries();}
+this._topGapElement.style.height=(startIndex*rowHeight)+"px";this._recordsView.sidebarElement().firstChild.style.flexBasis=(startIndex*rowHeight+headerHeight)+"px";this._bottomGapElement.style.height=(recordsInWindow.length-endIndex)*rowHeight+"px";var rowsHeight=headerHeight+recordsInWindow.length*rowHeight;var totalHeight=Math.max(this._containerElementHeight,rowsHeight);this._recordsView.firstElement().style.height=totalHeight+"px";this._recordsView.secondElement().style.height=totalHeight+"px";this._recordsView.resizerElement().style.height=totalHeight+"px";var listRowElement=this._sidebarListElement.firstChild;var width=this._graphRowsElementWidth;this._itemsGraphsElement.removeChild(this._graphRowsElement);var graphRowElement=this._graphRowsElement.firstChild;var scheduleRefreshCallback=this._invalidateAndScheduleRefresh.bind(this,true,true);var selectRecordCallback=this._selectRecord.bind(this);this._itemsGraphsElement.removeChild(this._expandElements);this._expandElements.removeChildren();for(var i=0;i<endIndex;++i){var record=recordsInWindow[i];if(i<startIndex){var lastChildIndex=i+record.visibleChildrenCount;if(lastChildIndex>=startIndex&&lastChildIndex<endIndex){var expandElement=new WebInspector.TimelineExpandableElement(this._expandElements);var positions=this._calculator.computeBarGraphWindowPosition(record);expandElement._update(record,i,positions.left-this._expandOffset,positions.width);}}else{if(!listRowElement){listRowElement=new WebInspector.TimelineRecordListRow(selectRecordCallback,scheduleRefreshCallback).element;this._sidebarListElement.appendChild(listRowElement);}
+if(!graphRowElement){graphRowElement=new WebInspector.TimelineRecordGraphRow(this._itemsGraphsElement,selectRecordCallback,scheduleRefreshCallback).element;this._graphRowsElement.appendChild(graphRowElement);}
+listRowElement.row.update(record,visibleTop);graphRowElement.row.update(record,this._calculator,this._expandOffset,i);if(this._lastSelectedRecord===record){listRowElement.row.renderAsSelected(true);graphRowElement.row.renderAsSelected(true);}
+listRowElement=listRowElement.nextSibling;graphRowElement=graphRowElement.nextSibling;}}
 while(listRowElement){var nextElement=listRowElement.nextSibling;listRowElement.row.dispose();listRowElement=nextElement;}
 while(graphRowElement){var nextElement=graphRowElement.nextSibling;graphRowElement.row.dispose();graphRowElement=nextElement;}
-this._itemsGraphsElement.insertBefore(this._graphRowsElement,this._bottomGapElement);this._itemsGraphsElement.appendChild(this._expandElements);this._adjustScrollPosition((recordsInWindow.length+this._headerLineCount)*rowHeight);this._updateSearchHighlight(false,true);if(highlightedListRowElement){highlightedListRowElement.addStyleClass("highlighted-timeline-record");highlightedGraphRowElement.addStyleClass("highlighted-timeline-record");}
-return recordsInWindow.length;},_refreshMainThreadBars:function()
-{const barOffset=3;const minGap=3;var minWidth=WebInspector.TimelineCalculator._minWidth;var widthAdjustment=minWidth/2;var width=this._graphRowsElementWidth;var boundarySpan=this._overviewPane.windowEndTime()-this._overviewPane.windowStartTime();var scale=boundarySpan/(width-minWidth-this._timelinePaddingLeft);var startTime=this._overviewPane.windowStartTime()-this._timelinePaddingLeft*scale;var endTime=startTime+width*scale;var tasks=this._mainThreadMonitoringEnabled?this._mainThreadTasks:[];function compareEndTime(value,task)
+this._itemsGraphsElement.insertBefore(this._graphRowsElement,this._bottomGapElement);this._itemsGraphsElement.appendChild(this._expandElements);this._adjustScrollPosition(recordsInWindow.length*rowHeight+headerHeight);this._updateSearchHighlight(false,true);return recordsInWindow.length;},_refreshAllUtilizationBars:function()
+{this._refreshUtilizationBars(WebInspector.UIString("CPU"),this._mainThreadTasks,this._cpuBarsElement);if(WebInspector.experimentsSettings.gpuTimeline.isEnabled())
+this._refreshUtilizationBars(WebInspector.UIString("GPU"),this._gpuTasks,this._gpuBarsElement);},_refreshUtilizationBars:function(name,tasks,container)
+{if(!container)
+return;const barOffset=3;const minGap=3;var minWidth=WebInspector.TimelineCalculator._minWidth;var widthAdjustment=minWidth/2;var width=this._graphRowsElementWidth;var boundarySpan=this.windowEndTime()-this.windowStartTime();var scale=boundarySpan/(width-minWidth-this._timelinePaddingLeft);var startTime=(this.windowStartTime()-this._timelinePaddingLeft*scale)*1000;var endTime=startTime+width*scale*1000;function compareEndTime(value,task)
 {return value<task.endTime?-1:1;}
-var taskIndex=insertionIndexForObjectInListSortedByFunction(startTime,tasks,compareEndTime);var container=this._cpuBarsElement;var element=container.firstChild;var lastElement;var lastLeft;var lastRight;for(;taskIndex<tasks.length;++taskIndex){var task=tasks[taskIndex];if(task.startTime>endTime)
-break;var left=Math.max(0,this._calculator.computePosition(task.startTime)+barOffset-widthAdjustment);var right=Math.min(width,this._calculator.computePosition(task.endTime)+barOffset+widthAdjustment);if(lastElement){var gap=Math.floor(left)-Math.ceil(lastRight);if(gap<minGap){lastRight=right;lastElement._tasksInfo.lastTaskIndex=taskIndex;continue;}
+var taskIndex=insertionIndexForObjectInListSortedByFunction(startTime,tasks,compareEndTime);var foreignStyle="gpu-task-foreign";var element=container.firstChild;var lastElement;var lastLeft;var lastRight;for(;taskIndex<tasks.length;++taskIndex){var task=tasks[taskIndex];if(task.startTime>endTime)
+break;var left=Math.max(0,this._calculator.computePosition(WebInspector.TimelineModel.startTimeInSeconds(task))+barOffset-widthAdjustment);var right=Math.min(width,this._calculator.computePosition(WebInspector.TimelineModel.endTimeInSeconds(task))+barOffset+widthAdjustment);if(lastElement){var gap=Math.floor(left)-Math.ceil(lastRight);if(gap<minGap){if(!task.data["foreign"])
+lastElement.classList.remove(foreignStyle);lastRight=right;lastElement._tasksInfo.lastTaskIndex=taskIndex;continue;}
 lastElement.style.width=(lastRight-lastLeft)+"px";}
 if(!element)
-element=container.createChild("div","timeline-graph-bar");element.style.left=left+"px";element._tasksInfo={tasks:tasks,firstTaskIndex:taskIndex,lastTaskIndex:taskIndex};lastLeft=left;lastRight=right;lastElement=element;element=element.nextSibling;}
+element=container.createChild("div","timeline-graph-bar");element.style.left=left+"px";element._tasksInfo={name:name,tasks:tasks,firstTaskIndex:taskIndex,lastTaskIndex:taskIndex};if(task.data["foreign"])
+element.classList.add(foreignStyle);lastLeft=left;lastRight=right;lastElement=element;element=element.nextSibling;}
 if(lastElement)
-lastElement.style.width=(lastRight-lastLeft)+"px";while(element){var nextElement=element.nextSibling;element._tasksInfo=null;container.removeChild(element);element=nextElement;}},_adjustHeaderHeight:function()
-{const headerBorderWidth=1;const headerMargin=2;var headerHeight=this._headerLineCount*WebInspector.TimelinePanel.rowHeight;this.sidebarElement.firstChild.style.height=headerHeight+"px";this._timelineGrid.dividersLabelBarElement.style.height=headerHeight+headerMargin+"px";this._itemsGraphsElement.style.top=headerHeight+headerBorderWidth+"px";},_adjustScrollPosition:function(totalHeight)
+lastElement.style.width=(lastRight-lastLeft)+"px";while(element){var nextElement=element.nextSibling;element._tasksInfo=null;container.removeChild(element);element=nextElement;}},_adjustScrollPosition:function(totalHeight)
 {if((this._scrollTop+this._containerElementHeight)>totalHeight+1)
 this._containerElement.scrollTop=(totalHeight-this._containerElement.offsetHeight);},_getPopoverAnchor:function(element)
-{return element.enclosingNodeOrSelfWithClass("timeline-graph-bar")||element.enclosingNodeOrSelfWithClass("timeline-tree-item")||element.enclosingNodeOrSelfWithClass("timeline-frame-strip");},_mouseOut:function(e)
+{var anchor=element.enclosingNodeOrSelfWithClass("timeline-graph-bar");if(anchor&&anchor._tasksInfo)
+return anchor;return element.enclosingNodeOrSelfWithClass("timeline-frame-strip");},_mouseOut:function()
 {this._hideQuadHighlight();},_mouseMove:function(e)
-{var anchor=this._getPopoverAnchor(e.target);if(anchor&&anchor.row&&anchor.row._record.highlightQuad)
-this._highlightQuad(anchor.row._record.highlightQuad);else
-this._hideQuadHighlight();if(anchor&&anchor._tasksInfo){var offset=anchor.offsetLeft;this._timelineGrid.showCurtains(offset>=0?offset:0,anchor.offsetWidth);}else
-this._timelineGrid.hideCurtains();},_highlightQuad:function(quad)
+{var rowElement=e.target.enclosingNodeOrSelfWithClass("timeline-tree-item");if(rowElement&&rowElement.row&&rowElement.row._record.highlightQuad)
+this._highlightQuad(rowElement.row._record.highlightQuad);else
+this._hideQuadHighlight();var taskBarElement=e.target.enclosingNodeOrSelfWithClass("timeline-graph-bar");if(taskBarElement&&taskBarElement._tasksInfo){var offset=taskBarElement.offsetLeft;this._timelineGrid.showCurtains(offset>=0?offset:0,taskBarElement.offsetWidth);}else
+this._timelineGrid.hideCurtains();},_keyDown:function(event)
+{if(!this._lastSelectedRecord||event.shiftKey||event.metaKey||event.ctrlKey)
+return;var record=this._lastSelectedRecord;var recordsInWindow=this._presentationModel.filteredRecords();var index=recordsInWindow.indexOf(record);var recordsInPage=Math.floor(this._containerElementHeight/WebInspector.TimelinePanel.rowHeight);var rowHeight=WebInspector.TimelinePanel.rowHeight;if(index===-1)
+index=0;switch(event.keyIdentifier){case"Left":if(record.parent){if((!record.expandable||record.collapsed)&&record.parent!==this._presentationModel.rootRecord()){this._selectRecord(record.parent);}else{record.collapsed=true;record.clicked=true;this._invalidateAndScheduleRefresh(true,true);}}
+event.consume(true);break;case"Up":if(--index<0)
+break;this._selectRecord(recordsInWindow[index]);event.consume(true);break;case"Right":if(record.expandable&&record.collapsed){record.collapsed=false;record.clicked=true;this._invalidateAndScheduleRefresh(true,true);}else{if(++index>=recordsInWindow.length)
+break;this._selectRecord(recordsInWindow[index]);}
+event.consume(true);break;case"Down":if(++index>=recordsInWindow.length)
+break;this._selectRecord(recordsInWindow[index]);event.consume(true);break;case"PageUp":index=Math.max(0,index-recordsInPage);this._scrollTop=Math.max(0,this._scrollTop-recordsInPage*rowHeight);this._containerElement.scrollTop=this._scrollTop;this._selectRecord(recordsInWindow[index]);event.consume(true);break;case"PageDown":index=Math.min(recordsInWindow.length-1,index+recordsInPage);this._scrollTop=Math.min(this._containerElement.scrollHeight-this._containerElementHeight,this._scrollTop+recordsInPage*rowHeight);this._containerElement.scrollTop=this._scrollTop;this._selectRecord(recordsInWindow[index]);event.consume(true);break;case"Home":index=0;this._selectRecord(recordsInWindow[index]);event.consume(true);break;case"End":index=recordsInWindow.length-1;this._selectRecord(recordsInWindow[index]);event.consume(true);break;}},_highlightQuad:function(quad)
 {if(this._highlightedQuad===quad)
 return;this._highlightedQuad=quad;DOMAgent.highlightQuad(quad,WebInspector.Color.PageHighlight.Content.toProtocolRGBA(),WebInspector.Color.PageHighlight.ContentOutline.toProtocolRGBA());},_hideQuadHighlight:function()
 {if(this._highlightedQuad){delete this._highlightedQuad;DOMAgent.hideHighlight();}},_showPopover:function(anchor,popover)
-{if(anchor.hasStyleClass("timeline-frame-strip")){var frame=anchor._frame;popover.show(WebInspector.TimelinePresentationModel.generatePopupContentForFrame(frame),anchor);}else{if(anchor.row&&anchor.row._record)
+{if(anchor.classList.contains("timeline-frame-strip")){var frame=anchor._frame;popover.show(WebInspector.TimelinePresentationModel.generatePopupContentForFrame(frame),anchor);}else{if(anchor.row&&anchor.row._record)
 anchor.row._record.generatePopupContent(showCallback);else if(anchor._tasksInfo)
 popover.show(this._presentationModel.generateMainThreadBarPopupContent(anchor._tasksInfo),anchor,null,null,WebInspector.Popover.Orientation.Bottom);}
 function showCallback(popupContent)
@@ -756,12 +814,11 @@
 {if(!this._searchResults||!this._searchResults.length)
 return;var index=this._selectedSearchResult?this._searchResults.indexOf(this._selectedSearchResult):0;this._jumpToSearchResult(index-1);},_jumpToSearchResult:function(index)
 {this._selectSearchResult((index+this._searchResults.length)%this._searchResults.length);this._highlightSelectedSearchResult(true);},_selectSearchResult:function(index)
-{this._selectedSearchResult=this._searchResults[index];WebInspector.searchController.updateCurrentMatchIndex(index,this);},_highlightSelectedSearchResult:function(revealRecord)
+{this._selectedSearchResult=this._searchResults[index];this._searchableView.updateCurrentMatchIndex(index);},_highlightSelectedSearchResult:function(selectRecord)
 {this._clearHighlight();if(this._searchFilter)
 return;var record=this._selectedSearchResult;if(!record)
-return;for(var element=this._sidebarListElement.firstChild;element;element=element.nextSibling){if(element.row._record===record){element.row.highlight(this._searchRegExp,this._highlightDomChanges);return;}}
-if(revealRecord)
-this._revealRecord(record);},_clearHighlight:function()
+return;if(selectRecord)
+this._selectRecord(record);for(var element=this._sidebarListElement.firstChild;element;element=element.nextSibling){if(element.row._record===record){element.row.highlight(this._searchRegExp,this._highlightDomChanges);break;}}},_clearHighlight:function()
 {if(this._highlightDomChanges)
 WebInspector.revertDomChanges(this._highlightDomChanges);this._highlightDomChanges=[];},_updateSearchHighlight:function(revealRecord,shouldJump)
 {if(this._searchFilter||!this._searchRegExp){this._clearHighlight();return;}
@@ -771,10 +828,10 @@
 return;var matches=[];var presentationModel=this._presentationModel;function processRecord(record)
 {if(presentationModel.isVisible(record)&&WebInspector.TimelineRecordListRow.testContentMatching(record,searchRegExp))
 matches.push(record);return false;}
-WebInspector.TimelinePresentationModel.forAllRecords(presentationModel.rootRecord().children,processRecord);var matchesCount=matches.length;if(matchesCount){this._searchResults=matches;WebInspector.searchController.updateSearchMatchesCount(matchesCount,this);var selectedIndex=matches.indexOf(this._selectedSearchResult);if(shouldJump&&selectedIndex===-1)
-selectedIndex=0;this._selectSearchResult(selectedIndex);}else{WebInspector.searchController.updateSearchMatchesCount(0,this);delete this._selectedSearchResult;}},searchCanceled:function()
+WebInspector.TimelinePresentationModel.forAllRecords(presentationModel.rootRecord().children,processRecord);var matchesCount=matches.length;if(matchesCount){this._searchResults=matches;this._searchableView.updateSearchMatchesCount(matchesCount);var selectedIndex=matches.indexOf(this._selectedSearchResult);if(shouldJump&&selectedIndex===-1)
+selectedIndex=0;this._selectSearchResult(selectedIndex);}else{this._searchableView.updateSearchMatchesCount(0);delete this._selectedSearchResult;}},searchCanceled:function()
 {this._clearHighlight();delete this._searchResults;delete this._selectedSearchResult;delete this._searchRegExp;},performSearch:function(query,shouldJump)
-{this._searchRegExp=createPlainTextSearchRegex(query,"i");delete this._searchResults;this._updateSearchHighlight(true,shouldJump);},__proto__:WebInspector.Panel.prototype}
+{this._searchRegExp=createPlainTextSearchRegex(query,"i");delete this._searchResults;this._updateSearchHighlight(true,shouldJump);},__proto__:WebInspector.View.prototype}
 WebInspector.TimelineCalculator=function(model)
 {this._model=model;}
 WebInspector.TimelineCalculator._minWidth=5;WebInspector.TimelineCalculator.prototype={computePosition:function(time)
@@ -784,43 +841,50 @@
 var widthWithChildren=(percentages.endWithChildren-percentages.start)/100*this._workingArea+widthAdjustment;var cpuWidth=percentages.cpuWidth/100*this._workingArea+widthAdjustment;if(percentages.endWithChildren>percentages.end)
 widthWithChildren+=widthAdjustment;return{left:left,width:width,widthWithChildren:widthWithChildren,cpuWidth:cpuWidth};},setWindow:function(minimumBoundary,maximumBoundary)
 {this._minimumBoundary=minimumBoundary;this._maximumBoundary=maximumBoundary;},setDisplayWindow:function(paddingLeft,clientWidth)
-{this._workingArea=clientWidth-WebInspector.TimelineCalculator._minWidth-paddingLeft;this.paddingLeft=paddingLeft;},formatTime:function(value)
-{return Number.secondsToString(value+this._minimumBoundary-this._model.minimumRecordTime());},maximumBoundary:function()
+{this._workingArea=clientWidth-WebInspector.TimelineCalculator._minWidth-paddingLeft;this.paddingLeft=paddingLeft;},formatTime:function(value,hires)
+{return Number.secondsToString(value+this._minimumBoundary-this._model.minimumRecordTime(),hires);},maximumBoundary:function()
 {return this._maximumBoundary;},minimumBoundary:function()
 {return this._minimumBoundary;},zeroTime:function()
 {return this._model.minimumRecordTime();},boundarySpan:function()
 {return this._maximumBoundary-this._minimumBoundary;}}
-WebInspector.TimelineRecordListRow=function()
-{this.element=document.createElement("div");this.element.row=this;this.element.style.cursor="pointer";var iconElement=document.createElement("span");iconElement.className="timeline-tree-icon";this.element.appendChild(iconElement);this._typeElement=document.createElement("span");this._typeElement.className="type";this.element.appendChild(this._typeElement);var separatorElement=document.createElement("span");separatorElement.className="separator";separatorElement.textContent=" ";this._dataElement=document.createElement("span");this._dataElement.className="data dimmed";this.element.appendChild(separatorElement);this.element.appendChild(this._dataElement);}
-WebInspector.TimelineRecordListRow.prototype={update:function(record,isEven,offset)
-{this._record=record;this._offset=offset;this.element.className="timeline-tree-item timeline-category-"+record.category.name;if(isEven)
-this.element.addStyleClass("even");if(record.hasWarnings())
-this.element.addStyleClass("warning");else if(record.childHasWarnings())
-this.element.addStyleClass("child-warning");if(record.isBackground)
-this.element.addStyleClass("background");this._typeElement.textContent=record.title;if(this._dataElement.firstChild)
-this._dataElement.removeChildren();if(record.detailsNode())
-this._dataElement.appendChild(record.detailsNode());},highlight:function(regExp,domChanges)
+WebInspector.TimelineRecordListRow=function(selectRecord,scheduleRefresh)
+{this.element=document.createElement("div");this.element.row=this;this.element.style.cursor="pointer";this.element.addEventListener("click",this._onClick.bind(this),false);this.element.addEventListener("mouseover",this._onMouseOver.bind(this),false);this.element.addEventListener("mouseout",this._onMouseOut.bind(this),false);this._warningElement=this.element.createChild("div","timeline-tree-item-warning hidden");this._expandArrowElement=this.element.createChild("div","timeline-tree-item-expand-arrow");this._expandArrowElement.addEventListener("click",this._onExpandClick.bind(this),false);var iconElement=this.element.createChild("span","timeline-tree-icon");this._typeElement=this.element.createChild("span","type");this._dataElement=this.element.createChild("span","data dimmed");this._scheduleRefresh=scheduleRefresh;this._selectRecord=selectRecord;}
+WebInspector.TimelineRecordListRow.prototype={update:function(record,offset)
+{this._record=record;this._offset=offset;this.element.className="timeline-tree-item timeline-category-"+record.category.name;var paddingLeft=5;var step=-3;for(var currentRecord=record.parent?record.parent.parent:null;currentRecord;currentRecord=currentRecord.parent)
+paddingLeft+=12/(Math.max(1,step++));this.element.style.paddingLeft=paddingLeft+"px";if(record.isBackground)
+this.element.classList.add("background");this._typeElement.textContent=record.title;if(this._dataElement.firstChild)
+this._dataElement.removeChildren();this._warningElement.enableStyleClass("hidden",!record.hasWarnings()&&!record.childHasWarnings());this._warningElement.enableStyleClass("timeline-tree-item-child-warning",record.childHasWarnings()&&!record.hasWarnings());if(record.detailsNode())
+this._dataElement.appendChild(record.detailsNode());this._expandArrowElement.enableStyleClass("parent",record.children&&record.children.length);this._expandArrowElement.enableStyleClass("expanded",record.visibleChildrenCount);this._record.setUserObject("WebInspector.TimelineRecordListRow",this);},highlight:function(regExp,domChanges)
 {var matchInfo=this.element.textContent.match(regExp);if(matchInfo)
 WebInspector.highlightSearchResult(this.element,matchInfo.index,matchInfo[0].length,domChanges);},dispose:function()
-{this.element.remove();}}
+{this.element.remove();},_onExpandClick:function(event)
+{this._record.collapsed=!this._record.collapsed;this._record.clicked=true;this._scheduleRefresh();event.consume(true);},_onClick:function(event)
+{this._selectRecord(this._record);},renderAsSelected:function(selected)
+{this.element.enableStyleClass("selected",selected);},_onMouseOver:function(event)
+{this.element.classList.add("hovered");var graphRow=(this._record.getUserObject("WebInspector.TimelineRecordGraphRow"));graphRow.element.classList.add("hovered");},_onMouseOut:function(event)
+{this.element.classList.remove("hovered");var graphRow=(this._record.getUserObject("WebInspector.TimelineRecordGraphRow"));graphRow.element.classList.remove("hovered");}}
 WebInspector.TimelineRecordListRow.testContentMatching=function(record,regExp)
 {var toSearchText=record.title;if(record.detailsNode())
 toSearchText+=" "+record.detailsNode().textContent;return regExp.test(toSearchText);}
-WebInspector.TimelineRecordGraphRow=function(graphContainer,scheduleRefresh)
-{this.element=document.createElement("div");this.element.row=this;this._barAreaElement=document.createElement("div");this._barAreaElement.className="timeline-graph-bar-area";this.element.appendChild(this._barAreaElement);this._barWithChildrenElement=document.createElement("div");this._barWithChildrenElement.className="timeline-graph-bar with-children";this._barWithChildrenElement.row=this;this._barAreaElement.appendChild(this._barWithChildrenElement);this._barCpuElement=document.createElement("div");this._barCpuElement.className="timeline-graph-bar cpu"
-this._barCpuElement.row=this;this._barAreaElement.appendChild(this._barCpuElement);this._barElement=document.createElement("div");this._barElement.className="timeline-graph-bar";this._barElement.row=this;this._barAreaElement.appendChild(this._barElement);this._expandElement=new WebInspector.TimelineExpandableElement(graphContainer);this._expandElement._element.addEventListener("click",this._onClick.bind(this));this._scheduleRefresh=scheduleRefresh;}
-WebInspector.TimelineRecordGraphRow.prototype={update:function(record,isEven,calculator,expandOffset,index)
-{this._record=record;this.element.className="timeline-graph-side timeline-category-"+record.category.name;if(isEven)
-this.element.addStyleClass("even");if(record.isBackground)
-this.element.addStyleClass("background");var barPosition=calculator.computeBarGraphWindowPosition(record);this._barWithChildrenElement.style.left=barPosition.left+"px";this._barWithChildrenElement.style.width=barPosition.widthWithChildren+"px";this._barElement.style.left=barPosition.left+"px";this._barElement.style.width=barPosition.width+"px";this._barCpuElement.style.left=barPosition.left+"px";this._barCpuElement.style.width=barPosition.cpuWidth+"px";this._expandElement._update(record,index,barPosition.left-expandOffset,barPosition.width);},_onClick:function(event)
-{this._record.collapsed=!this._record.collapsed;this._record.clicked=true;this._scheduleRefresh(false,true);},dispose:function()
+WebInspector.TimelineRecordGraphRow=function(graphContainer,selectRecord,scheduleRefresh)
+{this.element=document.createElement("div");this.element.row=this;this.element.addEventListener("mouseover",this._onMouseOver.bind(this),false);this.element.addEventListener("mouseout",this._onMouseOut.bind(this),false);this.element.addEventListener("click",this._onClick.bind(this),false);this._barAreaElement=document.createElement("div");this._barAreaElement.className="timeline-graph-bar-area";this.element.appendChild(this._barAreaElement);this._barWithChildrenElement=document.createElement("div");this._barWithChildrenElement.className="timeline-graph-bar with-children";this._barWithChildrenElement.row=this;this._barAreaElement.appendChild(this._barWithChildrenElement);this._barCpuElement=document.createElement("div");this._barCpuElement.className="timeline-graph-bar cpu"
+this._barCpuElement.row=this;this._barAreaElement.appendChild(this._barCpuElement);this._barElement=document.createElement("div");this._barElement.className="timeline-graph-bar";this._barElement.row=this;this._barAreaElement.appendChild(this._barElement);this._expandElement=new WebInspector.TimelineExpandableElement(graphContainer);this._selectRecord=selectRecord;this._scheduleRefresh=scheduleRefresh;}
+WebInspector.TimelineRecordGraphRow.prototype={update:function(record,calculator,expandOffset,index)
+{this._record=record;this.element.className="timeline-graph-side timeline-category-"+record.category.name;if(record.isBackground)
+this.element.classList.add("background");var barPosition=calculator.computeBarGraphWindowPosition(record);this._barWithChildrenElement.style.left=barPosition.left+"px";this._barWithChildrenElement.style.width=barPosition.widthWithChildren+"px";this._barElement.style.left=barPosition.left+"px";this._barElement.style.width=barPosition.width+"px";this._barCpuElement.style.left=barPosition.left+"px";this._barCpuElement.style.width=barPosition.cpuWidth+"px";this._expandElement._update(record,index,barPosition.left-expandOffset,barPosition.width);this._record.setUserObject("WebInspector.TimelineRecordGraphRow",this);},_onClick:function(event)
+{if(this._expandElement._arrow.containsEventPoint(event))
+this._expand();this._selectRecord(this._record);},renderAsSelected:function(selected)
+{this.element.enableStyleClass("selected",selected);},_expand:function()
+{this._record.collapsed=!this._record.collapsed;this._record.clicked=true;this._scheduleRefresh();},_onMouseOver:function(event)
+{this.element.classList.add("hovered");var listRow=(this._record.getUserObject("WebInspector.TimelineRecordListRow"));listRow.element.classList.add("hovered");},_onMouseOut:function(event)
+{this.element.classList.remove("hovered");var listRow=(this._record.getUserObject("WebInspector.TimelineRecordListRow"));listRow.element.classList.remove("hovered");},dispose:function()
 {this.element.remove();this._expandElement._dispose();}}
 WebInspector.TimelineExpandableElement=function(container)
-{this._element=container.createChild("div","timeline-expandable");this._element.createChild("div","timeline-expandable-left");this._element.createChild("div","timeline-expandable-arrow");}
+{this._element=container.createChild("div","timeline-expandable");this._element.createChild("div","timeline-expandable-left");this._arrow=this._element.createChild("div","timeline-expandable-arrow");}
 WebInspector.TimelineExpandableElement.prototype={_update:function(record,index,left,width)
-{const rowHeight=WebInspector.TimelinePanel.rowHeight;if(record.visibleChildrenCount||record.expandable){this._element.style.top=index*rowHeight+"px";this._element.style.left=left+"px";this._element.style.width=Math.max(12,width+25)+"px";if(!record.collapsed){this._element.style.height=(record.visibleChildrenCount+1)*rowHeight+"px";this._element.addStyleClass("timeline-expandable-expanded");this._element.removeStyleClass("timeline-expandable-collapsed");}else{this._element.style.height=rowHeight+"px";this._element.addStyleClass("timeline-expandable-collapsed");this._element.removeStyleClass("timeline-expandable-expanded");}
-this._element.removeStyleClass("hidden");}else
-this._element.addStyleClass("hidden");},_dispose:function()
+{const rowHeight=WebInspector.TimelinePanel.rowHeight;if(record.visibleChildrenCount||record.expandable){this._element.style.top=index*rowHeight+"px";this._element.style.left=left+"px";this._element.style.width=Math.max(12,width+25)+"px";if(!record.collapsed){this._element.style.height=(record.visibleChildrenCount+1)*rowHeight+"px";this._element.classList.add("timeline-expandable-expanded");this._element.classList.remove("timeline-expandable-collapsed");}else{this._element.style.height=rowHeight+"px";this._element.classList.add("timeline-expandable-collapsed");this._element.classList.remove("timeline-expandable-expanded");}
+this._element.classList.remove("hidden");}else
+this._element.classList.add("hidden");},_dispose:function()
 {this._element.remove();}}
 WebInspector.TimelineCategoryFilter=function()
 {}
@@ -834,4 +898,66 @@
 WebInspector.TimelineSearchFilter=function(regExp)
 {this._regExp=regExp;}
 WebInspector.TimelineSearchFilter.prototype={accept:function(record)
-{return WebInspector.TimelineRecordListRow.testContentMatching(record,this._regExp);}}
\ No newline at end of file
+{return WebInspector.TimelineRecordListRow.testContentMatching(record,this._regExp);}}
+WebInspector.TimelineWindowFilter=function()
+{this.reset();}
+WebInspector.TimelineWindowFilter.prototype={reset:function()
+{this._windowStartTime=0;this._windowEndTime=Infinity;},setWindowTimes:function(windowStartTime,windowEndTime)
+{this._windowStartTime=windowStartTime;this._windowEndTime=windowEndTime;},accept:function(record)
+{return record.lastChildEndTime>=this._windowStartTime&&record.startTime<=this._windowEndTime;}}
+WebInspector.TimelineDetailsView=function()
+{WebInspector.View.call(this);this.element=document.createElement("div");this.element.className="timeline-details-view fill vbox";this._titleElement=this.element.createChild("div","timeline-details-view-title");this._titleElement.textContent=WebInspector.UIString("DETAILS");this._contentElement=this.element.createChild("div","timeline-details-view-body");}
+WebInspector.TimelineDetailsView.prototype={titleElement:function()
+{return this._titleElement;},setContent:function(title,node)
+{this._titleElement.textContent=WebInspector.UIString("DETAILS: %s",title);this._contentElement.removeChildren();this._contentElement.appendChild(node);},setVertical:function(vertical)
+{this._contentElement.enableStyleClass("hbox",!vertical);this._contentElement.enableStyleClass("vbox",vertical);},__proto__:WebInspector.View.prototype};WebInspector.TimelinePanel=function()
+{WebInspector.Panel.call(this,"timeline");this.registerRequiredCSS("timelinePanel.css");this.registerRequiredCSS("filter.css");this.element.classList.add("vbox");this.element.addEventListener("contextmenu",this._contextMenu.bind(this),false);this._model=new WebInspector.TimelineModel();this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStarted,this._onRecordingStarted,this);this._model.addEventListener(WebInspector.TimelineModel.Events.RecordingStopped,this._onRecordingStopped,this);this._presentationModeSetting=WebInspector.settings.createSetting("timelineOverviewMode",WebInspector.TimelinePanel.Mode.Events);this._glueRecordsSetting=WebInspector.settings.createSetting("timelineGlueRecords",false);this._createStatusBarItems();this._createPresentationSelector();this._overviewPane=new WebInspector.TimelineOverviewPane(this._model);this._overviewPane.addEventListener(WebInspector.TimelineOverviewPane.Events.WindowChanged,this._onWindowChanged.bind(this));this._overviewPane.show(this._presentationSelector.element);this._createFileSelector();this._registerShortcuts();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage,this._willReloadPage,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._loadEventFired,this);this._selectPresentationMode(this._presentationModeSetting.get());}
+WebInspector.TimelinePanel.Mode={Events:"Events",Frames:"Frames",Memory:"Memory"};WebInspector.TimelinePanel.rowHeight=18;WebInspector.TimelinePanel.headerHeight=20;WebInspector.TimelinePanel.durationFilterPresetsMs=[0,1,15];WebInspector.TimelinePanel.prototype={setSidebarWidth:function(width)
+{this._topPaneSidebarElement.style.flexBasis=width+"px";},_onWindowChanged:function()
+{this._currentView.windowChanged(this._overviewPane.windowLeft(),this._overviewPane.windowRight());},setWindow:function(left,right)
+{this._overviewPane.setWindow(left,right);},_viewForMode:function(mode)
+{var view=this._views[mode];if(!view){switch(mode){case WebInspector.TimelinePanel.Mode.Events:case WebInspector.TimelinePanel.Mode.Frames:case WebInspector.TimelinePanel.Mode.Memory:view=new WebInspector.TimelineView(this,this._model,this._glueRecordsSetting,mode);this._views[mode]=view;break;default:console.assert(false,"Unknown mode: "+mode);}}
+return view;},_createPresentationSelector:function()
+{this._views={};this._presentationSelector=new WebInspector.View();this._presentationSelector.element.classList.add("hbox");this._presentationSelector.element.id="timeline-overview-panel";this._presentationSelector.show(this.element);this._topPaneSidebarElement=this._presentationSelector.element.createChild("div");this._topPaneSidebarElement.id="timeline-overview-sidebar";var overviewTreeElement=this._topPaneSidebarElement.createChild("ol","sidebar-tree vbox");var topPaneSidebarTree=new TreeOutline(overviewTreeElement);this._overviewItems={};for(var mode in WebInspector.TimelinePanel.Mode){this._overviewItems[mode]=new WebInspector.SidebarTreeElement("timeline-overview-sidebar-"+mode.toLowerCase(),WebInspector.UIString(mode));var item=this._overviewItems[mode];item.onselect=this._onModeChanged.bind(this,mode);topPaneSidebarTree.appendChild(item);}},_createStatusBarItems:function()
+{var panelStatusBarElement=this.element.createChild("div","panel-status-bar");this._statusBarButtons=([]);this.toggleTimelineButton=new WebInspector.StatusBarButton(WebInspector.UIString("Record"),"record-profile-status-bar-item");this.toggleTimelineButton.addEventListener("click",this._toggleTimelineButtonClicked,this);this._statusBarButtons.push(this.toggleTimelineButton);panelStatusBarElement.appendChild(this.toggleTimelineButton.element);this.clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-status-bar-item");this.clearButton.addEventListener("click",this._onClearButtonClick,this);this._statusBarButtons.push(this.clearButton);panelStatusBarElement.appendChild(this.clearButton.element);this._filterBar=new WebInspector.FilterBar();panelStatusBarElement.appendChild(this._filterBar.filterButton().element);this.garbageCollectButton=new WebInspector.StatusBarButton(WebInspector.UIString("Collect Garbage"),"garbage-collect-status-bar-item");this.garbageCollectButton.addEventListener("click",this._garbageCollectButtonClicked,this);this._statusBarButtons.push(this.garbageCollectButton);panelStatusBarElement.appendChild(this.garbageCollectButton.element);this._glueParentButton=new WebInspector.StatusBarButton(WebInspector.UIString("Glue asynchronous events to causes"),"glue-async-status-bar-item");this._glueParentButton.toggled=this._glueRecordsSetting.get();this._glueParentButton.addEventListener("click",this._glueParentButtonClicked,this);this._statusBarButtons.push(this._glueParentButton);panelStatusBarElement.appendChild(this._glueParentButton.element);panelStatusBarElement.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Capture stacks"),WebInspector.settings.timelineCaptureStacks,true,undefined,WebInspector.UIString("Capture JavaScript stack on every timeline event")));this._statusTextContainer=panelStatusBarElement.createChild("div");this.recordsCounter=new WebInspector.StatusBarText("","timeline-records-counter");this._statusTextContainer.appendChild(this.recordsCounter.element);this._miscStatusBarItems=panelStatusBarElement.createChild("div","status-bar-item");this._filtersContainer=this.element.createChild("div","timeline-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);},_updateFiltersBar:function()
+{this._filterBar.clear();var hasFilters=this._currentView.createUIFilters(this._filterBar);this._filterBar.filterButton().setEnabled(hasFilters);},defaultFocusedElement:function()
+{return this.element;},searchableView:function()
+{return this._currentView.searchableView();},_onFiltersToggled:function(event)
+{var toggled=(event.data);this._filtersContainer.enableStyleClass("hidden",!toggled);this.onResize();},_prepareToLoadTimeline:function()
+{if(this._operationInProgress)
+return null;if(this._recordingInProgress()){this.toggleTimelineButton.toggled=false;this._stopRecording();}
+var progressIndicator=new WebInspector.ProgressIndicator();progressIndicator.addEventListener(WebInspector.ProgressIndicator.Events.Done,this._setOperationInProgress.bind(this,null));this._setOperationInProgress(progressIndicator);return progressIndicator;},_setOperationInProgress:function(indicator)
+{this._operationInProgress=!!indicator;for(var i=0;i<this._statusBarButtons.length;++i)
+this._statusBarButtons[i].setEnabled(!this._operationInProgress);this._glueParentButton.setEnabled(!this._operationInProgress&&!this._currentView.supportsGlueParentMode());this._statusTextContainer.enableStyleClass("hidden",!!indicator);this._miscStatusBarItems.removeChildren();if(indicator)
+this._miscStatusBarItems.appendChild(indicator.element);},_registerShortcuts:function()
+{this.registerShortcuts(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.StartStopRecording,this._toggleTimelineButtonClicked.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.SaveToFile,this._saveToFile.bind(this));this.registerShortcuts(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.LoadFromFile,this._selectFileToLoad.bind(this));},_createFileSelector:function()
+{if(this._fileSelectorElement)
+this._fileSelectorElement.remove();this._fileSelectorElement=WebInspector.createFileSelectorElement(this._loadFromFile.bind(this));this.element.appendChild(this._fileSelectorElement);},_contextMenu:function(event)
+{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Save Timeline data\u2026":"Save Timeline Data\u2026"),this._saveToFile.bind(this),this._operationInProgress);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Load Timeline data\u2026":"Load Timeline Data\u2026"),this._selectFileToLoad.bind(this),this._operationInProgress);contextMenu.show();},_saveToFile:function()
+{if(this._operationInProgress)
+return true;this._model.saveToFile();return true;},_selectFileToLoad:function(){this._fileSelectorElement.click();return true;},_loadFromFile:function(file)
+{var progressIndicator=this._prepareToLoadTimeline();if(!progressIndicator)
+return;this._model.loadFromFile(file,progressIndicator);this._createFileSelector();},loadFromURL:function(url)
+{var progressIndicator=this._prepareToLoadTimeline();if(!progressIndicator)
+return;this._model.loadFromURL(url,progressIndicator);},_selectPresentationMode:function(mode)
+{if(!this._overviewItems[mode])
+mode=WebInspector.TimelinePanel.Mode.Events;this._overviewItems[mode].revealAndSelect(false);},_onModeChanged:function(mode)
+{this.element.classList.remove("timeline-"+this._presentationModeSetting.get().toLowerCase()+"-view");this._presentationModeSetting.set(mode);this.element.classList.add("timeline-"+mode.toLowerCase()+"-view");var windowTimes=null;if(this._currentView){this._currentView.detach();windowTimes=this._currentView.windowTimes();}
+this._currentView=this._viewForMode(mode);this._updateFiltersBar();this._currentView.setWindowTimes(windowTimes);this._overviewPane.setOverviewControl(this._currentView.overviewControl());this._currentView.show(this.element);this._glueParentButton.setEnabled(this._currentView.supportsGlueParentMode());},_startRecording:function(userInitiated)
+{this._userInitiatedRecording=userInitiated;this._model.startRecording(true);if(userInitiated)
+WebInspector.userMetrics.TimelineStarted.record();},_stopRecording:function()
+{this._userInitiatedRecording=false;this._model.stopRecording();},_toggleTimelineButtonClicked:function()
+{if(this._operationInProgress)
+return true;if(this._recordingInProgress())
+this._stopRecording();else
+this._startRecording(true);return true;},_garbageCollectButtonClicked:function()
+{HeapProfilerAgent.collectGarbage();},_glueParentButtonClicked:function()
+{var newValue=!this._glueParentButton.toggled;this._glueParentButton.toggled=newValue;this._glueRecordsSetting.set(newValue);},_onClearButtonClick:function()
+{this._model.reset();},_onRecordingStarted:function()
+{this.toggleTimelineButton.title=WebInspector.UIString("Stop");this.toggleTimelineButton.toggled=true;},_recordingInProgress:function()
+{return this.toggleTimelineButton.toggled;},_onRecordingStopped:function()
+{this.toggleTimelineButton.title=WebInspector.UIString("Record");this.toggleTimelineButton.toggled=false;},_willReloadPage:function(event)
+{if(this._operationInProgress||this._userInitiatedRecording||!this.isShowing())
+return;this._startRecording(false);},_loadEventFired:function(event)
+{if(!this._recordingInProgress()||this._userInitiatedRecording)
+return;this._stopRecording();},__proto__:WebInspector.Panel.prototype}
\ No newline at end of file
diff --git a/resources/inspector/accelerometer.css b/resources/inspector/accelerometer.css
new file mode 100644
index 0000000..9e40c40
--- /dev/null
+++ b/resources/inspector/accelerometer.css
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+.accelerometer-stage {
+    -webkit-perspective: 700px;
+    -webkit-perspective-origin: 50% 50%;
+    width: 200px;
+    height: 130px;
+}
+
+.accelerometer-box {
+    pointer-events:none;
+    margin-top: -54px;
+    margin-left: -40px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    width: 80px;
+    height: 108px;
+    -webkit-transform-style: preserve-3d;
+}
+
+.accelerometer-box section {
+    margin-top: -54px;
+    margin-left: -40px;
+    position: absolute;
+    display: block;
+    overflow: hidden;
+    top: 50%;
+    left: 50%;
+    -webkit-transform-style: flat;
+    -webkit-box-shadow: inset 0px 0px 15px rgba(0, 0, 0, 0.7);
+}
+
+.accelerometer-box .front {
+    border:15px solid black;
+    width: 80px;
+    height: 107px;
+    background-color: gray;
+    -webkit-transform: translate3d(0px, 0px, 10px);
+}
+
+.accelerometer-box .back {
+    width: 80px;
+    height: 107px;
+    background-color: black;
+    -webkit-transform: rotateY(-180deg) translate3d(0px, 0px, 10px);
+}
+
+.accelerometer-box .top {
+    overflow: hidden;
+    width: 80px;
+    height: 20px;
+    background-color: #75CE89;
+    -webkit-transform: rotateX(-90deg) translate3d(0px, 0px, -10px);
+}
+
+.accelerometer-box .bottom {
+    overflow: hidden;
+    width: 80px;
+    height: 20px;
+    background-color: #865C6C;
+    -webkit-transform: rotateX(90deg) translate3d(0px, 0px, -97px);
+}
+
+.accelerometer-box .left {
+    width: 20px;
+    height: 107px;
+    background-color: #7992CB;
+    -webkit-transform: rotateY(90deg) translate3d(0px, 0px, 70px);
+}
+
+.accelerometer-box .right {
+    width: 20px;
+    height: 107px;
+    background-color: #7992CB;
+    -webkit-transform: rotateY(-90deg) translate3d(0px, 0px, 10px);
+}
+
+.accelerometer-axis-input-container {
+    margin-bottom: 10px;
+}
+
+.accelerometer-inputs-cell {
+    vertical-align: top;
+}
+
+.accelerometer-reset-button {
+    width: 100%;
+}
\ No newline at end of file
diff --git a/resources/inspector/auditsPanel.css b/resources/inspector/auditsPanel.css
index 28b9300..2a68a80 100644
--- a/resources/inspector/auditsPanel.css
+++ b/resources/inspector/auditsPanel.css
@@ -120,7 +120,7 @@
 .audit-result-view .severity-warning,
 .audit-result-view .severity-info {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     display: inline-block;
     width: 10px;
     height: 10px;
@@ -152,7 +152,7 @@
 .audit-result-tree li.parent::before {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     float: left;
     width: 8px;
diff --git a/resources/inspector/canvasProfiler.css b/resources/inspector/canvasProfiler.css
index 56394ba..22604b9 100644
--- a/resources/inspector/canvasProfiler.css
+++ b/resources/inspector/canvasProfiler.css
@@ -28,7 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-.canvas-profile-view {
+.canvas-profile-view,
+#canvas-replay-image-container {
     overflow: hidden;
     position: absolute;
     top: 0;
diff --git a/resources/inspector/codemirror.css b/resources/inspector/codemirror.css
index 4e300b2..23eaf74 100644
--- a/resources/inspector/codemirror.css
+++ b/resources/inspector/codemirror.css
@@ -74,7 +74,6 @@
 .cm-s-default .cm-string {color: #a11;}
 .cm-s-default .cm-string-2 {color: #f50;}
 .cm-s-default .cm-meta {color: #555;}
-.cm-s-default .cm-error {color: #f00;}
 .cm-s-default .cm-qualifier {color: #555;}
 .cm-s-default .cm-builtin {color: #30a;}
 .cm-s-default .cm-bracket {color: #997;}
@@ -91,6 +90,7 @@
 .cm-em {font-style: italic;}
 .cm-link {text-decoration: underline;}
 
+.cm-s-default .cm-error {color: #f00;}
 .cm-invalidchar {color: #f00;}
 
 div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
diff --git a/resources/inspector/dataGrid.css b/resources/inspector/dataGrid.css
index 066bd39..a6ed3ad 100644
--- a/resources/inspector/dataGrid.css
+++ b/resources/inspector/dataGrid.css
@@ -160,7 +160,7 @@
     top: 1px;
     right: 0;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     width: 8px;
     height: 10px;
@@ -198,7 +198,7 @@
 .data-grid tr.parent td.disclosure::before {
     -webkit-user-select: none;
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     float: left;
     width: 8px;
     margin-right: 2px;
@@ -257,5 +257,4 @@
     bottom: 0;
     width: 5px;
     z-index: 500;
-    cursor: col-resize;
 }
diff --git a/resources/inspector/devtools_extension_api.js b/resources/inspector/devtools_extension_api.js
index cd8e62f..a68bb28 100644
--- a/resources/inspector/devtools_extension_api.js
+++ b/resources/inspector/devtools_extension_api.js
@@ -77,6 +77,7 @@
         AddAuditResult: "addAuditResult",
         AddConsoleMessage: "addConsoleMessage",
         AddRequestHeaders: "addRequestHeaders",
+        ApplyStyleSheet: "applyStyleSheet",
         CreatePanel: "createPanel",
         CreateSidebarPane: "createSidebarPane",
         CreateStatusBarButton: "createStatusBarButton",
@@ -87,6 +88,8 @@
         GetPageResources: "getPageResources",
         GetRequestContent: "getRequestContent",
         GetResourceContent: "getResourceContent",
+        InspectedURLChanged: "inspectedURLChanged",
+        OpenResource: "openResource",
         Reload: "Reload",
         Subscribe: "subscribe",
         SetOpenResourceHandler: "setOpenResourceHandler",
@@ -96,15 +99,16 @@
         SetSidebarPage: "setSidebarPage",
         ShowPanel: "showPanel",
         StopAuditCategoryRun: "stopAuditCategoryRun",
-        OpenResource: "openResource",
-        Reload: "Reload",
         Unsubscribe: "unsubscribe",
         UpdateAuditProgress: "updateAuditProgress",
-        UpdateButton: "updateButton",
-        InspectedURLChanged: "inspectedURLChanged"
+        UpdateButton: "updateButton"
     };
 }
 
+/**
+ * @param {number} injectedScriptId
+ * @return {!Object}
+ */
 function injectedExtensionAPI(injectedScriptId)
 {
 
@@ -157,7 +161,10 @@
             extensionServer.sendRequest({ command: commands.Unsubscribe, type: this._type });
     },
 
-    _fire: function()
+    /**
+     * @param {...} vararg
+     */
+    _fire: function(vararg)
     {
         var listeners = this._listeners.slice();
         for (var i = 0; i < listeners.length; ++i)
@@ -217,6 +224,9 @@
  */
 function Network()
 {
+    /**
+     * @this {EventSinkImpl}
+     */
     function dispatchRequestEvent(message)
     {
         var request = message.arguments[1];
@@ -284,6 +294,7 @@
     }
     for (var panel in panels)
         this.__defineGetter__(panel, panelGetter.bind(null, panel));
+    this.applyStyleSheet = function(styleSheet) { extensionServer.sendRequest({ command: commands.ApplyStyleSheet, styleSheet: styleSheet }); };
 }
 
 Panels.prototype = {
@@ -304,21 +315,22 @@
     {
         var hadHandler = extensionServer.hasHandler(events.OpenResource);
 
+        function callbackWrapper(message)
+        {
+            // Allow the panel to show itself when handling the event.
+            userAction = true;
+            try {
+                callback.call(null, new Resource(message.resource), message.lineNumber);
+            } finally {
+                userAction = false;
+            }
+        }
+
         if (!callback)
             extensionServer.unregisterHandler(events.OpenResource);
-        else {
-            function callbackWrapper(message)
-            {
-                // Allow the panel to show itself when handling the event.
-                userAction = true;
-                try {
-                    callback.call(null, new Resource(message.resource), message.lineNumber);
-                } finally {
-                    userAction = false;
-                }
-            }
+        else
             extensionServer.registerHandler(events.OpenResource, callbackWrapper);
-        }
+
         // Only send command if we either removed an existing handler or added handler and had none before.
         if (hadHandler === !callback)
             extensionServer.sendRequest({ command: commands.SetOpenResourceHandler, "handlerPresent": !!callback });
@@ -342,6 +354,9 @@
 {
     this._id = id;
 
+    /**
+     * @this {EventSinkImpl}
+     */
     function dispatchShowEvent(message)
     {
         var frameIndex = message.arguments[0];
@@ -356,6 +371,7 @@
 
 /**
  * @constructor
+ * @extends {ExtensionViewImpl}
  */
 function PanelWithSidebarImpl(hostPanelName)
 {
@@ -383,6 +399,47 @@
     __proto__: ExtensionViewImpl.prototype
 }
 
+function declareInterfaceClass(implConstructor)
+{
+    return function()
+    {
+        var impl = { __proto__: implConstructor.prototype };
+        implConstructor.apply(impl, arguments);
+        populateInterfaceClass(this, impl);
+    }
+}
+
+function defineDeprecatedProperty(object, className, oldName, newName)
+{
+    var warningGiven = false;
+    function getter()
+    {
+        if (!warningGiven) {
+            console.warn(className + "." + oldName + " is deprecated. Use " + className + "." + newName + " instead");
+            warningGiven = true;
+        }
+        return object[newName];
+    }
+    object.__defineGetter__(oldName, getter);
+}
+
+function extractCallbackArgument(args)
+{
+    var lastArgument = args[args.length - 1];
+    return typeof lastArgument === "function" ? lastArgument : undefined;
+}
+
+var AuditCategory = declareInterfaceClass(AuditCategoryImpl);
+var AuditResult = declareInterfaceClass(AuditResultImpl);
+var Button = declareInterfaceClass(ButtonImpl);
+var EventSink = declareInterfaceClass(EventSinkImpl);
+var ExtensionPanel = declareInterfaceClass(ExtensionPanelImpl);
+var ExtensionSidebarPane = declareInterfaceClass(ExtensionSidebarPaneImpl);
+var PanelWithSidebar = declareInterfaceClass(PanelWithSidebarImpl);
+var Request = declareInterfaceClass(RequestImpl);
+var Resource = declareInterfaceClass(ResourceImpl);
+var Timeline = declareInterfaceClass(TimelineImpl);
+
 /**
  * @constructor
  * @extends {PanelWithSidebar}
@@ -392,6 +449,10 @@
     PanelWithSidebar.call(this, "elements");
 }
 
+ElementsPanel.prototype = {
+    __proto__: PanelWithSidebar.prototype
+}
+
 /**
  * @constructor
  * @extends {PanelWithSidebar}
@@ -401,6 +462,10 @@
     PanelWithSidebar.call(this, "sources");
 }
 
+SourcesPanel.prototype = {
+    __proto__: PanelWithSidebar.prototype
+}
+
 /**
  * @constructor
  * @extends {ExtensionViewImpl}
@@ -479,7 +544,9 @@
     setPage: function(page)
     {
         extensionServer.sendRequest({ command: commands.SetSidebarPage, id: this._id, page: page });
-    }
+    },
+
+    __proto__: ExtensionViewImpl.prototype
 }
 
 /**
@@ -528,6 +595,9 @@
  */
 function AuditCategoryImpl(id)
 {
+    /**
+     * @this {EventSinkImpl}
+     */
     function dispatchAuditEvent(request)
     {
         var auditResult = new AuditResult(request.arguments[0]);
@@ -635,14 +705,22 @@
  */
 function InspectedWindow()
 {
+    /**
+     * @this {EventSinkImpl}
+     */
     function dispatchResourceEvent(message)
     {
         this._fire(new Resource(message.arguments[0]));
     }
+
+    /**
+     * @this {EventSinkImpl}
+     */
     function dispatchResourceContentEvent(message)
     {
         this._fire(new Resource(message.arguments[0]), message.arguments[1]);
     }
+
     this.onResourceAdded = new EventSink(events.ResourceAdded, dispatchResourceEvent);
     this.onResourceContentCommitted = new EventSink(events.ResourceContentCommitted, dispatchResourceContentEvent);
 }
@@ -855,47 +933,6 @@
     }
 }
 
-function declareInterfaceClass(implConstructor)
-{
-    return function()
-    {
-        var impl = { __proto__: implConstructor.prototype };
-        implConstructor.apply(impl, arguments);
-        populateInterfaceClass(this, impl);
-    }
-}
-
-function defineDeprecatedProperty(object, className, oldName, newName)
-{
-    var warningGiven = false;
-    function getter()
-    {
-        if (!warningGiven) {
-            console.warn(className + "." + oldName + " is deprecated. Use " + className + "." + newName + " instead");
-            warningGiven = true;
-        }
-        return object[newName];
-    }
-    object.__defineGetter__(oldName, getter);
-}
-
-function extractCallbackArgument(args)
-{
-    var lastArgument = args[args.length - 1];
-    return typeof lastArgument === "function" ? lastArgument : undefined;
-}
-
-var AuditCategory = declareInterfaceClass(AuditCategoryImpl);
-var AuditResult = declareInterfaceClass(AuditResultImpl);
-var Button = declareInterfaceClass(ButtonImpl);
-var EventSink = declareInterfaceClass(EventSinkImpl);
-var ExtensionPanel = declareInterfaceClass(ExtensionPanelImpl);
-var ExtensionSidebarPane = declareInterfaceClass(ExtensionSidebarPaneImpl);
-var PanelWithSidebar = declareInterfaceClass(PanelWithSidebarImpl);
-var Request = declareInterfaceClass(RequestImpl);
-var Resource = declareInterfaceClass(ResourceImpl);
-var Timeline = declareInterfaceClass(TimelineImpl);
-
 // extensionServer is a closure variable defined by the glue below -- make sure we fail if it's not there.
 if (!extensionServer)
     extensionServer = new ExtensionServerClient();
@@ -904,7 +941,7 @@
 }
 
 /**
- * @param {ExtensionDescriptor} extensionInfo
+ * @param {!ExtensionDescriptor} extensionInfo
  * @return {string}
  */
 function buildExtensionAPIInjectedScript(extensionInfo)
diff --git a/resources/inspector/elementsPanel.css b/resources/inspector/elementsPanel.css
index 549e0d1..7816ec4 100644
--- a/resources/inspector/elementsPanel.css
+++ b/resources/inspector/elementsPanel.css
@@ -147,7 +147,6 @@
     padding: 3px;
     margin: 3px;
     min-width: 80px;
-    text-align: center;
     overflow: visible;
 }
 
@@ -158,6 +157,7 @@
 .metrics .editing {
     position: relative;
     z-index: 100;
+    cursor: text;
 }
 
 .metrics .left {
@@ -204,7 +204,7 @@
     height: 16px;
 }
 
-.styles-section.read-only {
+.styles-section.read-only:not(.computed-style) {
     background-color: rgb(240, 240, 240);
 }
 
@@ -219,9 +219,9 @@
 .styles-section .properties li.not-parsed-ok .exclamation-mark {
     display: inline-block;
     position: relative;
-    width: 12px;
+    width: 11px;
     height: 10px;
-    margin: 0 6px 0 0;
+    margin: 0 7px 0 0;
     top: 1px;
     left: -36px; /* outdent to compensate for the top-level property indent */
     -webkit-user-select: none;
@@ -363,7 +363,7 @@
 .styles-section.matched-styles .properties li.parent .expand-element {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     margin-right: 2px;
     margin-left: -6px;
     opacity: 0.55;
@@ -427,6 +427,10 @@
     color: inherit;
 }
 
+.styles-section.computed-style .properties {
+    margin-top: 18px;
+}
+
 .styles-section.computed-style .properties .disabled {
     text-decoration: none;
     opacity: 0.5;
@@ -474,7 +478,7 @@
     display: none;
 }
 
-.body.show-inherited .styles-section .properties .inherited {
+.styles-section.styles-show-inherited .properties .inherited {
     display: block;
 }
 
@@ -522,7 +526,7 @@
 .event-bars .event-bar .header::before {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     content: "a";
     color: transparent;
@@ -579,21 +583,21 @@
     -webkit-justify-content: center;
 }
 
-.sidebar-pane.composite .computed-style {
-    border-bottom: 1px solid rgb(64%, 64%, 64%);
-}
-
 .sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar {
     margin-top: 4px;
     margin-bottom: -4px;
     position: relative;
 }
 
-.sidebar-pane.composite .platform-fonts {
+.sidebar-pane.composite .platform-fonts .body {
     padding: 1ex;
     -webkit-user-select: text;
 }
 
+.sidebar-pane.composite .platform-fonts .sidebar-separator {
+    border-top: none;
+}
+
 .sidebar-pane.composite .platform-fonts .stats-section {
     margin-bottom: 5px;
 }
@@ -614,12 +618,18 @@
     border-bottom: none;
 }
 
-.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle {
+.styles-section.computed-style > .header > .sidebar-pane-subtitle {
+    top: 4px;
     left: 8px;
+    -webkit-user-select: none;
 }
 
-.sidebar-pane.composite .styles-section.read-only {
-    background-color: inherit;
+.styles-section.computed-style > .header > .sidebar-pane-subtitle > input {
+    vertical-align: middle;
+}
+
+.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle {
+    left: 8px;
 }
 
 .panel.elements .sidebar-pane-toolbar > select {
@@ -663,3 +673,9 @@
     text-decoration: underline;
     cursor: default;
 }
+
+.styles-clipboard-only {
+    display: inline-block;
+    width: 0;
+    opacity: 0;
+}
diff --git a/resources/inspector/filter.css b/resources/inspector/filter.css
index ce6060e..6666cc3 100644
--- a/resources/inspector/filter.css
+++ b/resources/inspector/filter.css
@@ -29,12 +29,17 @@
  */
 
 .filter-text-filter {
+    display: flex;
     margin-top: 1px;
     margin-left: 1px;
     margin-right: 1px;
     flex: 0 0 100px;
 }
 
+.filter-text-filter.supports-regex {
+    flex: 0 0 155px;
+}
+
 .filter-bitset-filter {
     line-height: 19px;
     padding-right: 10px !important;
@@ -43,7 +48,7 @@
 
 .filter-bitset-filter li {
     display: inline-block;
-    margin: 1px 2px;
+    margin: 2px;
     padding: 0px 6px;
     background: transparent;
     text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
@@ -96,6 +101,10 @@
     overflow: hidden;
 }
 
+.filter-text-invalid {
+    background-color: rgb(255, 200, 200);
+}
+
 .filter-checkbox-filter .checkbox-filter-checkbox {
     width: 10px;
     height: 10px;
@@ -120,7 +129,7 @@
 
 .filter-checkbox-filter .checkbox-filter-checkbox-checked {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     background-position: -129px -110px;
 }
 
diff --git a/resources/inspector/heapProfiler.css b/resources/inspector/heapProfiler.css
index c0fba8a..d74ea2d 100644
--- a/resources/inspector/heapProfiler.css
+++ b/resources/inspector/heapProfiler.css
@@ -230,7 +230,6 @@
     border-top: 1px solid rgb(202, 202, 202);
     background-repeat: no-repeat;
     background-position: right center, center;
-    cursor: row-resize;
     height: 23px;
     display: block;
     position: absolute;
diff --git a/resources/inspector/helpScreen.css b/resources/inspector/helpScreen.css
index 0271cc2..e060e40 100644
--- a/resources/inspector/helpScreen.css
+++ b/resources/inspector/helpScreen.css
@@ -184,7 +184,7 @@
     margin: 0 0.5em;
 }
 
-.settings-tab fieldset {
+.help-window-outer fieldset {
     margin: 0;
     padding: 0;
     border: none;
@@ -295,8 +295,7 @@
     border: none transparent;
     height: auto;
     width: 110px;
-    position: relative;
-    top: 14px;
+    margin-top: 14px;
     flex: auto;
 }
 
@@ -677,6 +676,11 @@
     background-color: rgba(255, 255, 255, 0.4) !important;
 }
 
-#overrides-tab-content .help-container {
-    -webkit-column-width: auto !important;
+.help-indent-labels label {
+    padding-left: 10px;
+}
+
+.help-field-note {
+    opacity: 0.6;
+    padding-left: 19px;
 }
diff --git a/resources/inspector/inspector.css b/resources/inspector/inspector.css
index ac3faf2..7a33cd6 100644
--- a/resources/inspector/inspector.css
+++ b/resources/inspector/inspector.css
@@ -121,6 +121,7 @@
     white-space: nowrap;
     text-overflow: ellipsis;
     overflow: hidden;
+    cursor: default;
 }
 
 .tabbed-pane-header-tab.measuring {
@@ -315,18 +316,16 @@
 
 body.dock-to-bottom .toolbar-background {
     padding-top: 0;
-    border-top: 1px solid rgb(100, 100, 100);
+}
+
+body.dock-to-bottom .toolbar-background .tabbed-pane-header {
+    cursor: ns-resize;
+}
+
+body.dock-to-bottom .toolbar-background .tabbed-pane-header .tabbed-pane-header-tabs {
     cursor: default;
 }
 
-body.dock-to-bottom.platform-mac .toolbar-background {
-    border-top-color: white;
-}
-
-body.dock-to-bottom.inactive .toolbar-background {
-    border-top: 1px solid rgb(64%, 64%, 64%);
-}
-
 body.platform-windows .toolbar-background,
 body.platform-windows.inactive .toolbar-background {
     background-image: none;
@@ -334,26 +333,32 @@
 
 body.undocked.platform-mac-leopard .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(175, 175, 175)), to(rgb(151, 151, 151))) !important;
+    color: #333 !important;
 }
 
 body.undocked.platform-mac-leopard.inactive .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(221, 221, 221)), to(rgb(207, 207, 207))) !important;
+    color: #555 !important;
 }
 
 body.undocked.platform-mac-snowleopard .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(189, 189, 189)), to(rgb(167, 167, 167))) !important;
+    color: #333 !important;
 }
 
 body.undocked.platform-mac-snowleopard.inactive .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(228, 228, 228)), to(rgb(216, 216, 216))) !important;
+    color: #555 !important;
 }
 
-body.undocked.platform-mac-mountain-lion .toolbar-background {
+body.undocked.platform-mac .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(208, 208, 208)), to(rgb(200, 200, 200))) !important;
+    color: #333 !important;
 }
 
-body.undocked.platform-mac-mountain-lion.inactive .toolbar-background {
+body.undocked.platform-mac.inactive .toolbar-background {
     background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(238, 238, 238)), to(rgb(224, 224, 224))) !important;
+    color: #555 !important;
 }
 
 .toolbar > .tabbed-pane-header {
@@ -528,20 +533,20 @@
 .close-button,
 .close-button-gray {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     display: inline-block;
 }
 
 .close-button {
     width: 14px;
     height: 14px;
-    background-position: -128px -216px;
+    background-position: -128px -96px;
 }
 
 .close-button-gray {
     width: 13px;
     height: 13px;
-    background-position: -175px -216px;
+    background-position: -175px -96px;
 }
 
 @media (-webkit-min-device-pixel-ratio: 1.5) {
@@ -552,22 +557,21 @@
 } /* media */
 
 .close-button:hover {
-    background-position: -96px -216px;
+    background-position: -96px -96px;
 }
 
 .close-button:active {
-    background-position: -111px -216px;
+    background-position: -111px -96px;
 }
 
 .close-button-gray:hover {
-    background-position: -143px -216px;
+    background-position: -143px -96px;
 }
 
 .close-button-gray:active {
-    background-position: -160px -216px;
+    background-position: -160px -96px;
 }
 
-
 body.undocked .toolbar-item .close-button {
     display: none;
 }
@@ -579,12 +583,21 @@
 .panel-status-bar {
     border-top: none;
     display: flex;
-    pointer-events: none;
     background-color: white;
     flex: 0 0 23px;
     position: relative;
 }
 
+.panel-status-bar label {
+    margin: 2px 20px 0 0;
+}
+
+.panel-status-bar label > input {
+    height: 13px;
+    width: 13px;
+    vertical-align: -2px;
+}
+
 .status-bar {
     position: relative;
     white-space: nowrap;
@@ -604,7 +617,6 @@
 
 .status-bar-item {
     display: inline-block;
-    pointer-events: auto;
     cursor: default;
     height: 22px;
     padding: 0;
@@ -644,7 +656,7 @@
 .glyph.shadow {
     top: 0;
     bottom: 0;
-    background-color: white !important;
+    background-color: white;
     z-index: 0;
 }
 
@@ -652,7 +664,7 @@
     background-color: rgba(0, 0, 0, 0.75);
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
     -webkit-mask-position: -288px -48px;
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     z-index: 1;
 }
 
@@ -678,11 +690,11 @@
 }
 
 button.status-bar-item .glyph.shadow {
-    background-color: rgba(255, 255, 255, 0.33) !important;
+    background-color: rgba(255, 255, 255, 0.33);
 }
 
-button.status-bar-item.toggled-on .glyph {
-    background-color: rgb(66, 129, 235);
+button.status-bar-item.toggled-on .glyph:not(.shadow) {
+    background-color: rgb(66, 129, 235) !important;
 }
 
 button.status-bar-item:hover .glyph {
@@ -707,7 +719,7 @@
 
 .status-bar-select-arrow {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.7;
     width: 10px;
     height: 10px;
@@ -738,9 +750,13 @@
     line-height: 20px;
 }
 
+.status-bar-item.checkbox {
+    margin: 2px 0 0 0;
+}
+
 .status-bar-item > .glyph {
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     opacity: 0.8;
 }
 
@@ -754,18 +770,16 @@
 }
 } /* media */
 
-button.status-bar-item.dock-status-bar-item.toggled-undock .glyph {
+button.status-bar-item.dock-status-bar-item.toggled-undocked .glyph {
     -webkit-mask-position: 0 -48px;
 }
 
 button.status-bar-item.dock-status-bar-item.toggled-bottom .glyph {
     -webkit-mask-position: -32px -24px;
-    background-color: rgba(0, 0, 0, 0.75);
 }
 
 button.status-bar-item.dock-status-bar-item.toggled-right .glyph {
     -webkit-mask-position: -256px -48px;
-    background-color: rgba(0, 0, 0, 0.75);
 }
 
 body.undocked .alternate-status-bar-buttons-bar {
@@ -804,6 +818,7 @@
     width: 16px;
     margin: 4px 2px 2px 2px;
     border: none;
+    z-index: 10;
 }
 
 button.status-bar-item.left-sidebar-show-hide-button:active,
@@ -837,7 +852,6 @@
     right: 0;
     height: 24px;
     width: 16px;
-    cursor: ew-resize;
     background-image: url(Images/statusbarResizerHorizontal.png);
     background-repeat: no-repeat;
     background-position: center;
@@ -856,10 +870,18 @@
     -webkit-mask-position: -64px -24px;
 }
 
-.screencast-status-bar-item .glyph {
+.screencast-status-bar-item.toggled-left .glyph {
     -webkit-mask-position: -256px -96px;
 }
 
+.screencast-status-bar-item.toggled-top .glyph {
+    -webkit-mask-position: -288px -96px;
+}
+
+.screencast-status-bar-item.toggled-disabled .glyph {
+    -webkit-mask-position: 0px -120px;
+}
+
 .clear-status-bar-item .glyph {
     -webkit-mask-position: -64px 0;
 }
@@ -870,7 +892,7 @@
 .green-ball,
 .orange-ball {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     width: 10px;
     height: 10px;
     display: inline-block;
@@ -948,7 +970,6 @@
 
 #drawer-contents > .tabbed-pane > .tabbed-pane-header {
     background-color: rgb(236, 236, 236);
-    cursor: ns-resize;
     border-top: 1px solid rgb(124, 124, 124);
     border-bottom: 1px solid rgb(203, 203, 203);
 }
@@ -1008,7 +1029,16 @@
     font-family: dejavu sans mono, monospace;
 }
 
-.console-status-bar {
+.console-view {
+    background-color: white;
+}
+
+.console-view-wrapper {
+    background-color: rgb(236, 236, 236);
+}
+
+.console-status-bar,
+.console-filters-header {
     flex: 0 0 23px;
     overflow: hidden;
 }
@@ -1076,7 +1106,7 @@
     margin-top: -6px;
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
 }
 
 @media (-webkit-min-device-pixel-ratio: 1.5) {
@@ -1092,6 +1122,10 @@
     top: 0;
 }
 
+.console-message .outline-disclosure .stacktrace-entry:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+}
+
 .console-message .bubble {
     display: inline-block;
     height: 14px;
@@ -1143,7 +1177,7 @@
 .console-group-title::before {
     -webkit-user-select: none;
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     float: left;
     width: 8px;
     content: "a";
@@ -1205,7 +1239,7 @@
 .console-debug-level::before,
 .console-info-level::before {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     width: 10px;
     height: 10px;
 }
@@ -1419,7 +1453,7 @@
 }
 
 .panel.visible {
-    display: block;
+    display: flex;
 }
 
 .panel.extension-panel.visible {
@@ -1429,7 +1463,6 @@
 
 .extension-view {
     flex: auto;
-    position: relative;
 }
 
 iframe.extension {
@@ -1534,11 +1567,6 @@
     margin-left: -12px;
 }
 
-.webkit-html-tag.shadow,
-.webkit-html-fragment.shadow {
-    opacity: 0.6;
-}
-
 .outline-disclosure li.parent::before {
     float: left;
     width: 8px;
@@ -1548,7 +1576,7 @@
 .outline-disclosure li.parent::before {
     -webkit-user-select: none;
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     content: "a";
     color: transparent;
     text-shadow: none;
@@ -1583,11 +1611,16 @@
 
 .placard {
     position: relative;
+    border-top: 1px solid transparent;
     padding: 3px 8px 4px 18px;
     min-height: 18px;
     white-space: nowrap;
 }
 
+.placard.grouped {
+    padding-left: 36px;
+}
+
 .placard:nth-of-type(2n) {
     background-color: rgb(234, 243, 255);
 }
@@ -1655,7 +1688,7 @@
 .section > .header::before {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     content: "a";
     color: transparent;
@@ -1763,7 +1796,7 @@
 .properties-tree li.parent::before {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     content: "a";
     width: 8px;
@@ -1904,7 +1937,7 @@
     display: none;
 }
 
-.tabbed-pane-content .watch-expressions li:first-child .delete-button {
+.sidebar-tabbed-pane .watch-expressions li:first-child .delete-button {
     right: 55px;
     top: 3px;
 }
@@ -2099,7 +2132,6 @@
     bottom: 0;
     width: 5px;
     z-index: 500;
-    cursor: ew-resize;
 }
 
 .sidebar-tree,
@@ -2174,7 +2206,7 @@
     height: 10px;
     border: 0;
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     -webkit-appearance: none;
     background-color: rgba(0, 0, 0, 0.75);
     position: relative;
@@ -2356,25 +2388,6 @@
     background-color: rgb(216, 35, 35) !important;
 }
 
-.bubble.search-matches {
-    background-image: url(Images/searchSmallWhite.png);
-    background-repeat: no-repeat;
-    background-position: 3px 2px;
-    padding-left: 13px !important;
-}
-
-li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallBlue.png);
-}
-
-:focus li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallBrightBlue.png);
-}
-
-body.inactive li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallGray.png);
-}
-
 .storage-application-cache-status-icon,
 .storage-application-cache-connectivity-icon {
     margin: 5px 5px 0;
@@ -2711,7 +2724,7 @@
 #search-results-pane-file-based li.parent::before {
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     width: 8px;
     content: "a";
@@ -2810,8 +2823,8 @@
     -webkit-mask-position: -288px 0;
 }
 
-.record-cpu-profile-status-bar-item.toggled-on .glyph,
-.record-profile-status-bar-item.toggled-on .glyph {
+button.record-cpu-profile-status-bar-item.toggled-on .glyph:not(.shadow),
+button.record-profile-status-bar-item.toggled-on .glyph:not(.shadow) {
     -webkit-mask-position: -288px -24px;
     background-color: rgb(216, 0, 0) !important;
 }
@@ -2967,6 +2980,10 @@
     max-width: 200px;
 }
 
+.inspector-view {
+    overflow: hidden;
+}
+
 .inspector-footer.status-bar {
     flex: 0 0 auto;
     background-color: rgb(236, 236, 236);
@@ -3001,6 +3018,12 @@
     top: 0 !important;
 }
 
+.elements-tree-outline li.shadow-root + ol {
+    margin-left: 5px;
+    padding-left: 5px;
+    border-left: 1px solid gray;
+}
+
 #drawer-editor-view {
     flex: auto;
 }
@@ -3016,6 +3039,11 @@
 body.undocked .toolbar-close-button-item {
     display: none;
 }
+
+body.dock-to-bottom #inspector-split-view > .split-view-resizer {
+    display: none;
+}
+
 /* inspectorCommon.css */
 
 html {
@@ -3052,14 +3080,6 @@
   font-family: 'Segoe UI', Tahoma, sans-serif;
 }
 
-body.dock-to-right:not(.undocked) {
-    border-left: 1px solid rgb(80, 80, 80);
-}
-
-body.dock-to-right.inactive:not(.undocked) {
-    border-left: 1px solid rgb(64%, 64%, 64%);
-}
-
 * {
     box-sizing: border-box;
 }
@@ -3120,7 +3140,7 @@
     top: 0;
     left: 0;
     right: 0;
-    background-color: rgba(255, 255, 255, 0.8);
+    background-color: rgba(255, 255, 255, 0.85);
     background-clip: padding-box;
     height: 20px;
     z-index: 200;
@@ -3128,10 +3148,6 @@
     overflow: hidden;
 }
 
-.resize-enabled .resources-dividers-label-bar {
-    cursor: move;
-}
-
 .resources-divider {
     position: absolute;
     width: 1px;
@@ -3200,7 +3216,7 @@
     opacity: 0.2;
     border-right: 1px solid black;
     border-left: 1px solid black;
-    z-index: 150;
+    z-index: 250;
     pointer-events: none;
 }
 
@@ -3217,10 +3233,6 @@
     box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
 }
 
-.resize-enabled .overview-grid-window-resizer {
-    cursor: ew-resize;
-}
-
 .overview-grid-window-resizer-right {
     margin-left: -3px;
     margin-right: -2px;
@@ -3346,6 +3358,16 @@
     color: brown;
 }
 
+.webkit-html-text-node {
+    unicode-bidi: -webkit-isolate;
+}
+
+.webkit-html-entity-value {
+    /* This one is non-standard. */
+    background-color: rgba(0, 0, 0, 0.15);
+    unicode-bidi: -webkit-isolate;
+}
+
 .webkit-html-doctype {
     /* Keep this in sync with view-source.css (.webkit-html-doctype) */
     color: rgb(192, 192, 192);
@@ -3354,11 +3376,13 @@
 .webkit-html-attribute-name {
     /* Keep this in sync with view-source.css (.webkit-html-attribute-name) */
     color: rgb(153, 69, 0);
+    unicode-bidi: -webkit-isolate;
 }
 
 .webkit-html-attribute-value {
     /* Keep this in sync with view-source.css (.webkit-html-attribute-value) */
     color: rgb(26, 26, 166);
+    unicode-bidi: -webkit-isolate;
 }
 
 .webkit-html-external-link,
@@ -3481,2857 +3505,3 @@
     background-position: 0 -57px;
 }
 
-.popover-details {
-    -webkit-user-select: text;
-    vertical-align: top;
-}
-
-.popover-function-name {
-    text-align: right;
-}
-
-.popover-stacktrace-title {
-    padding-top: 4px;
-}
-
-.popover-details-row-title {
-    font-weight: bold;
-    text-align: right;
-    white-space: nowrap;
-}
-
-.popover-details-row-data {
-    white-space: nowrap;
-}
-
-.popover-details-title {
-    border-bottom: 1px solid #B8B8B8;
-    font-weight: bold;
-    padding-bottom: 5px;
-    padding-top: 0;
-    white-space: nowrap;
-}
-
-/* inspector.css */
-
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
- * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-input[type="search"]:focus,
-input[type="text"]:focus {
-    outline: auto 5px -webkit-focus-ring-color;
-}
-
-.fill {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.hbox {
-    display: flex !important;
-    flex-direction: row;
-}
-
-.vbox {
-    display: flex !important;
-    flex-direction: column;
-}
-
-.inline-block {
-    display: inline-block;
-}
-
-.hidden {
-    display: none !important;
-}
-
-.nowrap,
-.nowrap-below,
-.nowrap-below div,
-.nowrap-below span {
-    white-space: nowrap !important;
-}
-
-.toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(191, 191, 191)), to(rgb(151, 151, 151)));
-    padding: 1px 0 0 1px;
-    border-bottom: 1px solid rgb(80, 80, 80);
-    background-origin: padding-box;
-    background-clip: padding-box;
-}
-
-.toolbar {
-    flex: 0 0 25px;
-    display: flex;
-    flex-direction: row;
-    position: relative;
-}
-
-.toolbar .tabbed-pane-header {
-    border: none;
-}
-
-.toolbar .tabbed-pane-header-contents {
-    margin: 0;
-}
-
-.toolbar .tabbed-pane-header-tab {
-    border-width: 0 2px 0 2px;
-    background: none;
-    padding-right: 3px;
-}
-
-.toolbar .tabbed-pane-header-tab.selected {
-    border-width: 0 2px 0 2px;
-    -webkit-border-image: url(Images/toolbarItemSelected.png) 0 2 0 2;
-}
-
-.toolbar button.status-bar-item {
-    border: none;
-    margin: 0 -2px;
-}
-
-button,
-input,
-select {
-  font-family: inherit;
-  font-size: inherit;
-}
-
-body.inactive .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(233, 233, 233)), to(rgb(207, 207, 207)));
-    border-bottom: 1px solid rgb(64%, 64%, 64%);
-}
-
-body.dock-to-bottom .toolbar-background {
-    padding-top: 0;
-    border-top: 1px solid rgb(100, 100, 100);
-    cursor: default;
-}
-
-body.dock-to-bottom.platform-mac .toolbar-background {
-    border-top-color: white;
-}
-
-body.dock-to-bottom.inactive .toolbar-background {
-    border-top: 1px solid rgb(64%, 64%, 64%);
-}
-
-body.platform-windows .toolbar-background,
-body.platform-windows.inactive .toolbar-background {
-    background-image: none;
-}
-
-body.undocked.platform-mac-leopard .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(175, 175, 175)), to(rgb(151, 151, 151))) !important;
-}
-
-body.undocked.platform-mac-leopard.inactive .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(221, 221, 221)), to(rgb(207, 207, 207))) !important;
-}
-
-body.undocked.platform-mac-snowleopard .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(189, 189, 189)), to(rgb(167, 167, 167))) !important;
-}
-
-body.undocked.platform-mac-snowleopard.inactive .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(228, 228, 228)), to(rgb(216, 216, 216))) !important;
-}
-
-body.undocked.platform-mac-mountain-lion .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(208, 208, 208)), to(rgb(200, 200, 200))) !important;
-}
-
-body.undocked.platform-mac-mountain-lion.inactive .toolbar-background {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(238, 238, 238)), to(rgb(224, 224, 224))) !important;
-}
-
-.toolbar > .tabbed-pane-header {
-    flex: auto;
-}
-
-.toolbar-controls-left {
-    flex: none;
-    opacity: 0.8;
-    padding-top: 1px;
-}
-
-.toolbar-controls-right {
-    flex: none;
-    margin-right: 2px;
-    padding-top: 1px;
-}
-
-.toolbar-controls-right #error-warning-count,
-.toolbar-controls-right .console-status-bar-item,
-.toolbar-controls-right .settings-status-bar-item,
-.toolbar-controls-right .dock-status-bar-item
-{
-    opacity: 0.8;
-}
-
-.scrollable-content {
-    position: static;
-    height: 100%;
-    overflow-y: auto;
-    width: 100%;
-    margin-right: 12px;
-    padding-right: 3px;
-}
-
-.scrollable-content::-webkit-scrollbar {
-    width: 11px;
-}
-
-.scrollable-content::-webkit-scrollbar-corner,
-.scrollable-content::-webkit-resizer {
-    display: none;
-}
-
-.scrollable-content::-webkit-scrollbar-thumb:vertical {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(192, 192, 192)), to(rgb(192, 192, 192)), color-stop(40%, rgb(214, 214, 214)));
-    border-radius: 5px;
-    min-height: 20px;
-}
-
-.scrollable-content::-webkit-scrollbar-thumb:vertical:hover,
-.scrollable-content::-webkit-scrollbar-thumb:vertical:active {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(230, 230, 230)), to(rgb(230, 230, 230)), color-stop(40%, rgb(252, 252, 252)));
-}
-
-.scrollable-content::-webkit-scrollbar-track:vertical {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(128, 128, 128)), to(rgb(164, 164, 164)), color-stop(25%, rgb(164, 164, 164)));
-    border-radius: 5px;
-}
-
-.search-replace {
-    -webkit-appearance: none;
-    border: 0;
-    padding: 0 2px;
-    margin: 0;
-    -webkit-flex: 1;
-}
-
-.search-replace:focus {
-    outline: none;
-}
-
-.toolbar-search {
-    border-spacing: 1px;
-}
-
-.toolbar-search td {
-    padding: 0 5px 0 0;
-}
-
-.toolbar-search-navigation-controls {
-    vertical-align: top;
-    background-image: -webkit-linear-gradient(rgb(228, 228, 228), rgb(206, 206, 206));
-}
-
-.toolbar-search-navigation {
-    display: inline-block;
-    width: 18px;
-    height: 18px;
-    background-repeat: no-repeat;
-    background-position: 4px 7px;
-    border-left: 1px solid rgb(170, 170, 170);
-    opacity: 0.3;
-}
-
-.toolbar-search-navigation.enabled {
-    opacity: 1.0;
-}
-
-.toolbar-search label {
-    vertical-align: bottom;
-}
-
-.toolbar-search input[type="checkbox"] {
-    position: relative;
-    margin-top: -1px;
-    margin-left: 15px;
-    top: 2px;
-}
-
-.toolbar-search button {
-    border: 1px solid rgb(163, 163, 163);
-    border-radius: 8px;
-    margin: 0;
-    background-image: -webkit-linear-gradient(rgb(241, 241, 241), rgb(220, 220, 220));
-    width: 100%;
-    height: 20px;
-}
-
-.toolbar-search button:active {
-    background-image: -webkit-linear-gradient(rgb(185, 185, 185), rgb(156, 156, 156));
-}
-
-.toolbar-search-control {
-    display: -webkit-flex;
-    width: 253px;
-    position: relative;
-    background-color: white;
-    border: 1px solid rgb(163, 163, 163);
-    height: 20px;
-    border-radius: 2px;
-}
-
-.toolbar-replace-control {
-    border: 1px solid rgb(163, 163, 163);
-    height: 20px;
-    border-radius: 2px;
-    width: 100%;
-}
-
-.toolbar-search-navigation.enabled:active {
-    background-position: 4px 7px, 0 0;
-}
-
-.toolbar-search-navigation.toolbar-search-navigation-prev {
-    background-image: url(Images/searchPrev.png);
-    border-left: 1px solid rgb(163, 163, 163);
-}
-
-.toolbar-search-navigation.toolbar-search-navigation-prev.enabled:active {
-    background-image: url(Images/searchPrev.png), -webkit-linear-gradient(rgb(168, 168, 168), rgb(116, 116, 116));
-}
-
-.toolbar-search-navigation.toolbar-search-navigation-next {
-    background-image: url(Images/searchNext.png);
-    border-left: 1px solid rgb(230, 230, 230);
-}
-
-.toolbar-search-navigation.toolbar-search-navigation-next.enabled:active {
-    background-image: url(Images/searchNext.png), -webkit-linear-gradient(rgb(168, 168, 168), rgb(116, 116, 116));
-}
-
-.search-results-matches {
-    display: inline-block;
-    min-height: 10px;
-    text-align: right;
-    font-size: 11px;
-    padding: 1px 4px;
-    color: rgb(165, 165, 165);
-}
-
-.close-button,
-.close-button-gray {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    display: inline-block;
-}
-
-.close-button {
-    width: 14px;
-    height: 14px;
-    background-position: -128px -216px;
-}
-
-.close-button-gray {
-    width: 13px;
-    height: 13px;
-    background-position: -175px -216px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.close-button,
-.close-button-gray {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.close-button:hover {
-    background-position: -96px -216px;
-}
-
-.close-button:active {
-    background-position: -111px -216px;
-}
-
-.close-button-gray:hover {
-    background-position: -143px -216px;
-}
-
-.close-button-gray:active {
-    background-position: -160px -216px;
-}
-
-
-body.undocked .toolbar-item .close-button {
-    display: none;
-}
-
-body.remote .toolbar-item .close-button {
-    display: none;
-}
-
-.panel-status-bar {
-    border-top: none;
-    display: flex;
-    pointer-events: none;
-    background-color: white;
-    flex: 0 0 23px;
-    position: relative;
-}
-
-.status-bar {
-    position: relative;
-    white-space: nowrap;
-    height: 23px;
-    overflow: hidden;
-    width: 100%;
-    z-index: 12;
-    border-top: 1px solid rgb(202, 202, 202);
-    display: -webkit-flex;
-}
-
-.status-bar > div {
-    display: inline-block;
-    vertical-align: top;
-    overflow: visible;
-}
-
-.status-bar-item {
-    display: inline-block;
-    pointer-events: auto;
-    cursor: default;
-    height: 22px;
-    padding: 0;
-    margin-left: -1px;
-    margin-right: 0;
-    vertical-align: top;
-    border: 0 transparent none;
-    background-color: transparent;
-    flex: none;
-}
-
-.status-bar-text {
-    padding-left: 5px;
-    padding-right: 15px;
-    padding-top: 3px;
-}
-
-#drawer-view-anchor {
-    display: inline-block;
-}
-
-.status-bar-item:active {
-    position: relative;
-    z-index: 200;
-}
-
-.glyph {
-    position: absolute;
-    top: -1px;
-    bottom: 1px;
-    left: 0;
-    right: 0;
-    background-color: rgba(0, 0, 0, 0.75);
-    z-index: 1;
-}
-
-.glyph.shadow {
-    top: 0;
-    bottom: 0;
-    background-color: white !important;
-    z-index: 0;
-}
-
-.long-click-glyph {
-    background-color: rgba(0, 0, 0, 0.75);
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-position: -288px -48px;
-    -webkit-mask-size: 320px 120px;
-    z-index: 1;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.long-click-glyph {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.long-click-glyph.shadow {
-    top: 1px;
-    background-color: white !important;
-    z-index: 0;
-}
-
-button.status-bar-item {
-    position: relative;
-    width: 32px;
-}
-
-.status-bar button.status-bar-item .glyph {
-    margin: 0 -1px;
-}
-
-button.status-bar-item .glyph.shadow {
-    background-color: rgba(255, 255, 255, 0.33) !important;
-}
-
-button.status-bar-item.toggled-on .glyph {
-    background-color: rgb(66, 129, 235);
-}
-
-button.status-bar-item:hover .glyph {
-    opacity: 1;
-}
-
-button.status-bar-item:disabled {
-    background-position: 0 0 !important;
-}
-
-button.status-bar-item:disabled .glyph {
-    opacity: 0.5 !important;
-}
-
-button.status-bar-item.extension {
-    background-image: none;
-}
-
-.status-bar-select-container {
-    display: inline-block;
-}
-
-.status-bar-select-arrow {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    opacity: 0.7;
-    width: 10px;
-    height: 10px;
-    background-position: -20px -96px;
-    display: inline-block;
-    pointer-events: none;
-    position: relative;
-    top: 3px;
-    left: -3px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.status-bar-select-arrow {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-select.status-bar-item {
-    min-width: 48px;
-    color: rgb(48, 48, 48);
-    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
-    -webkit-appearance: none;
-    border: 0;
-    border-radius: 0;
-    padding: 0 15px 0 5px;
-    margin-right: -10px;
-    position: relative;
-    line-height: 20px;
-}
-
-.status-bar-item > .glyph {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
-    opacity: 0.8;
-}
-
-.console-filter > .glyph {
-    -webkit-mask-position: -32px -48px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.status-bar-item > .glyph {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-button.status-bar-item.dock-status-bar-item.toggled-undock .glyph {
-    -webkit-mask-position: 0 -48px;
-}
-
-button.status-bar-item.dock-status-bar-item.toggled-bottom .glyph {
-    -webkit-mask-position: -32px -24px;
-    background-color: rgba(0, 0, 0, 0.75);
-}
-
-button.status-bar-item.dock-status-bar-item.toggled-right .glyph {
-    -webkit-mask-position: -256px -48px;
-    background-color: rgba(0, 0, 0, 0.75);
-}
-
-body.undocked .alternate-status-bar-buttons-bar {
-    margin-left: 1px;
-}
-
-.alternate-status-bar-buttons-bar {
-    position: absolute;
-    width: 31px;
-    bottom: -3px;
-    background: white;
-}
-
-.alternate-status-bar-buttons-bar .status-bar-item {
-    height: 24px;
-    margin-top: -1px;
-    border: 1px solid rgb(202, 202, 202);
-}
-
-.alternate-status-bar-buttons-bar .status-bar-item.emulate-active {
-    background-color: rgb(163,163,163);
-    border: 1px solid rgb(120, 120, 120);
-}
-
-button.status-bar-item.settings-status-bar-item,
-button.status-bar-item.settings-status-bar-item:active {
-    border-right: 0 transparent none;
-}
-
-button.status-bar-item.left-sidebar-show-hide-button,
-button.status-bar-item.right-sidebar-show-hide-button {
-    position: absolute;
-    top: 0;
-    background-image: none;
-    height: 16px;
-    width: 16px;
-    margin: 4px 2px 2px 2px;
-    border: none;
-}
-
-button.status-bar-item.left-sidebar-show-hide-button:active,
-button.status-bar-item.right-sidebar-show-hide-button:active {
-    margin: 5px 1px 1px 3px;
-}
-
-button.status-bar-item.left-sidebar-show-hide-button.toggled-left > .glyph {
-    -webkit-mask-position: -199px -76px;
-}
-
-button.status-bar-item.left-sidebar-show-hide-button.toggled-right > .glyph {
-    -webkit-mask-position: -168px -76px;
-}
-
-button.status-bar-item.right-sidebar-show-hide-button.toggled-left > .glyph {
-    -webkit-mask-position: -296px -76px;
-}
-
-button.status-bar-item.right-sidebar-show-hide-button.toggled-right > .glyph {
-    -webkit-mask-position: -264px -76px;
-}
-
-button.status-bar-item.left-sidebar-show-hide-button.toggled-overlay > .glyph {
-    -webkit-mask-position: -231px -76px;
-}
-
-div.resizer-widget {
-    position: absolute;
-    top: 0;
-    right: 0;
-    height: 24px;
-    width: 16px;
-    cursor: ew-resize;
-    background-image: url(Images/statusbarResizerHorizontal.png);
-    background-repeat: no-repeat;
-    background-position: center;
-    z-index: 13;
-}
-
-.settings-status-bar-item .glyph {
-    -webkit-mask-position: -160px -24px;
-}
-
-body.remote .dock-status-bar-item {
-    display: none;
-}
-
-.console-status-bar-item .glyph {
-    -webkit-mask-position: -64px -24px;
-}
-
-.screencast-status-bar-item .glyph {
-    -webkit-mask-position: -256px -96px;
-}
-
-.clear-status-bar-item .glyph {
-    -webkit-mask-position: -64px 0;
-}
-
-.error-icon-small,
-.warning-icon-small,
-.red-ball,
-.green-ball,
-.orange-ball {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    width: 10px;
-    height: 10px;
-    display: inline-block;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.error-icon-small,
-.warning-icon-small,
-.red-ball,
-.green-ball,
-.orange-ball {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.error-icon-small {
-    background-position: -213px -96px;
-}
-
-.warning-icon-small {
-    background-position: -202px -107px;
-}
-
-.red-ball {
-    background-position: -224px -96px;
-}
-
-.green-ball {
-    background-position: -235px -96px;
-}
-
-.orange-ball {
-    background-position: -246px -96px;
-}
-
-#error-warning-count {
-    display: inline-block;
-    padding: 4px 6px 6px 0;
-    font-size: 11px;
-    height: 19px;
-    cursor: pointer;
-    line-height: 14px;
-}
-
-#error-warning-count:hover {
-    border-bottom: 1px solid rgb(96, 96, 96);
-}
-
-#error-warning-count .error-icon-small,
-#error-warning-count .warning-icon-small {
-    vertical-align: -1px;
-    margin-right: 2px;
-}
-
-#error-warning-count .warning-icon-small {
-    margin-left: 6px;
-}
-
-.drawer {
-    display: none;
-    flex: 0 0 200px;
-    position: relative;
-    background-color: white;
-    z-index: 1;
-}
-
-#drawer-contents {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    display: flex;
-}
-
-#drawer-contents > .tabbed-pane > .tabbed-pane-header {
-    background-color: rgb(236, 236, 236);
-    cursor: ns-resize;
-    border-top: 1px solid rgb(124, 124, 124);
-    border-bottom: 1px solid rgb(203, 203, 203);
-}
-
-body.inactive #drawer-contents .tabbed-pane-header {
-    border-top: 1px solid rgb(64%, 64%, 64%);
-}
-
-#drawer-contents .tabbed-pane-header .tabbed-pane-header-tab {
-    cursor: default;
-}
-
-.drawer-resizer {
-    position: absolute;
-    right: 0;
-    top: 8px;
-    content: url(Images/statusbarResizerVertical.png);
-    height: 8px;
-    pointer-events: none;
-}
-
-#drawer-footer {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    font-size: 11px;
-    height: 23px;
-    background-color: rgb(236, 236, 236);
-}
-
-body.drawer-visible .drawer {
-    display: block;
-}
-
-body.platform-mac .monospace,
-body.platform-mac .source-code {
-    font-size: 11px !important;
-    font-family: Menlo, monospace;
-}
-
-body.platform-mac.platform-mac-tiger .monospace,
-body.platform-mac.platform-mac-tiger .source-code {
-    font-size: 10px !important;
-    font-family: Monaco, monospace;
-}
-
-body.platform-windows .monospace,
-body.platform-windows .source-code {
-    font-size: 12px !important;
-    font-family: Consolas, Lucida Console, monospace;
-}
-
-body.platform-linux .monospace,
-body.platform-linux .source-code {
-    font-size: 11px !important;
-    font-family: dejavu sans mono, monospace;
-}
-
-.console-status-bar {
-    flex: 0 0 23px;
-    overflow: hidden;
-}
-
-#console-messages {
-    flex: 1 1;
-    padding: 2px 0;
-    overflow-y: auto;
-    word-wrap: break-word;
-    -webkit-user-select: text;
-    border-top: 1px solid rgb(230, 230, 230);
-}
-
-#console-prompt {
-    clear: right;
-    position: relative;
-    padding: 1px 22px 1px 0;
-    margin-left: 24px;
-    min-height: 16px;
-    white-space: pre-wrap;
-    -webkit-user-modify: read-write-plaintext-only;
-}
-
-#console-prompt::before {
-    background-position: -192px -96px;
-}
-
-.console-user-command-result.console-log-level::before {
-    background-position: -202px -96px;
-}
-
-.console-message,
-.console-user-command {
-    clear: right;
-    position: relative;
-    border-bottom: 1px solid rgb(240, 240, 240);
-    padding: 1px 22px 1px 0;
-    margin-left: 24px;
-    min-height: 16px;
-}
-
-.console-mesage:first-child {
-    border-top: none;
-}
-
-.console-adjacent-user-command-result {
-    border-bottom: none;
-}
-
-.console-adjacent-user-command-result + .console-user-command-result.console-log-level::before {
-    background-image: none;
-}
-
-.console-message::before,
-.console-user-command::before,
-#console-prompt::before,
-.console-group-title::before {
-    position: absolute;
-    display: block;
-    content: "";
-    left: -17px;
-    top: 0.8em;
-    width: 10px;
-    height: 10px;
-    margin-top: -6px;
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.console-message::before,
-.console-user-command::before,
-#console-prompt::before,
-.console-group-title::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.console-message > .outline-disclosure li.parent::before {
-    top: 0;
-}
-
-.console-message .bubble {
-    display: inline-block;
-    height: 14px;
-    background-color: rgb(128, 151, 189);
-    vertical-align: middle;
-    white-space: nowrap;
-    padding: 1px 4px;
-    margin-top: -1px;
-    margin-right: 4px;
-    margin-left: -18px;
-    text-align: left;
-    font-size: 11px;
-    line-height: normal;
-    font-weight: bold;
-    text-shadow: none;
-    color: white;
-    border-radius: 7px;
-}
-
-.console-message-text {
-    white-space: pre-wrap;
-}
-
-.repeated-message.console-error-level::before,
-.repeated-message.console-warning-level:before,
-.repeated-message.console-debug-level:before,
-.repeated-message.console-info-level:before {
-    visibility: hidden;
-}
-
-.repeated-message .outline-disclosure,
-.repeated-message > .console-message-text {
-    -webkit-flex: 1;
-}
-
-.console-info {
-    color: rgb(128, 128, 128);
-    font-style: italic;
-}
-
-.console-group .console-group > .console-group-messages {
-    margin-left: 16px;
-}
-
-.console-group-title {
-    font-weight: bold;
-}
-
-.console-group-title::before {
-    -webkit-user-select: none;
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
-    float: left;
-    width: 8px;
-    content: "a";
-    color: transparent;
-    text-shadow: none;
-    margin-left: 3px;
-    margin-top: -7px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.console-group-title::before {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.console-group .console-group-title::before {
-    -webkit-mask-position: -20px -96px;
-    background-color: rgb(110, 110, 110);
-}
-
-.console-group.collapsed .console-group-title::before {
-    -webkit-mask-position: -4px -96px;
-}
-
-.console-group.collapsed > .console-group-messages {
-    display: none;
-}
-
-.console-group {
-    position: relative;
-}
-
-.console-group-bracket {
-    position:absolute;
-    top: 15px;
-    left: 13px;
-    bottom: 5px;
-    width: 3px;
-    border-style: solid;
-    border-color: #A3A3A3;
-    border-width: 0 0 1px 1px;
-}
-
-.console-group.collapsed > .console-group-bracket {
-    display: none;
-}
-
-.console-error-level .console-message-text,
-.console-error-level .section > .header .title {
-    color: red !important;
-}
-
-.console-debug-level .console-message-text {
-    color: blue;
-}
-
-.console-error-level::before,
-.console-warning-level::before,
-.console-debug-level::before,
-.console-info-level::before {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    width: 10px;
-    height: 10px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.console-error-level::before,
-.console-warning-level::before,
-.console-debug-level::before,
-.console-info-level::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.console-warning-level::before {
-    background-position: -202px -107px;
-}
-
-.console-error-level::before {
-    background-position: -213px -96px;
-}
-
-.console-info-level::before {
-    background-position: -213px -107px;
-}
-
-.console-user-command .console-message {
-    margin-left: -24px;
-    padding-right: 0;
-    border-bottom: none;
-}
-
-.console-user-command::before {
-    background-position: -192px -107px;
-}
-
-.console-user-command > .console-message-text {
-    color: rgb(0, 128, 255);
-}
-
-#console-messages a {
-    color: rgb(33%, 33%, 33%);
-    cursor: pointer;
-}
-
-#console-messages a:hover {
-    color: rgb(15%, 15%, 15%);
-}
-
-ol.watch-expressions > li.hovered {
-    background-color: #F0F0F0;
-}
-
-.console-message-url {
-    float: right;
-    text-align: right;
-    max-width: 100%;
-    margin-left: 4px;
-}
-
-.console-group-messages .section {
-    margin: 0 0 0 12px !important;
-}
-
-.console-group-messages .section > .header {
-    padding: 0 8px 0 0;
-    background-image: none;
-    border: none;
-    min-height: 0;
-}
-
-.console-group-messages .section > .header::before {
-    margin-left: -12px;
-}
-
-.console-group-messages .section > .header .title {
-    color: #222;
-    font-weight: normal;
-    line-height: 13px;
-}
-
-.console-group-messages .section .properties li .info {
-    padding-top: 0;
-    padding-bottom: 0;
-    color: rgb(60%, 60%, 60%);
-}
-
-.console-group-messages .outline-disclosure {
-    padding-left: 0;
-}
-
-.console-group-messages .outline-disclosure > ol {
-    padding: 0 0 0 12px !important;
-}
-
-.console-group-messages .outline-disclosure,
-.console-group-messages .outline-disclosure ol {
-    font-size: inherit;
-    line-height: 12px;
-}
-
-.console-group-messages .outline-disclosure.single-node li {
-    padding-left: 2px;
-}
-
-.console-group-messages .outline-disclosure li .selection {
-    margin-left: -6px;
-    margin-right: -6px;
-}
-
-.console-group-messages .add-attribute {
-    display: none;
-}
-
-.console-formatted-object,
-.console-formatted-node,
-.console-formatted-array {
-    position: relative;
-    display: inline-block;
-    vertical-align: top;
-    color: #222;
-}
-
-.console-formatted-node:hover {
-    background-color: rgba(56, 121, 217, 0.1);
-}
-
-.console-formatted-object .section,
-.console-formatted-node .section,
-.console-formatted-array .section {
-    position: static;
-}
-
-.console-formatted-object .section > .header::before {
-    margin-top: 0;
-}
-
-.console-formatted-object .properties,
-.console-formatted-node .properties {
-    padding-left: 0 !important;
-}
-
-.console-formatted-number {
-    color: rgb(28, 0, 207);
-}
-
-.console-formatted-string,
-.console-formatted-regexp {
-    color: rgb(196, 26, 22);
-    white-space: pre;
-}
-
-.console-formatted-null,
-.console-formatted-undefined {
-    color: rgb(128, 128, 128);
-}
-
-.console-formatted-preview-node,
-.section .console-formatted-node {
-    color: rgb(136, 18, 128);
-}
-
-.console-object-preview {
-    font-style: italic;
-}
-
-.object-info-state-note {
-    display: none;
-    width: 11px;
-    height: 11px;
-    background-color: rgb(179, 203, 247);
-    color: white;
-    text-align: center;
-    border-radius: 3px;
-    line-height: 13px;
-    margin: 0 6px;
-    font-size: 9px;
-}
-
-.object-info-state-note::before {
-    content: "i";
-}
-
-.section.expanded .object-info-state-note {
-    display: inline-block;
-}
-
-.error-message {
-    color: red;
-}
-
-.error-input {
-    background-color: rgb(220, 130, 130);
-}
-
-.auto-complete-text,
-.editing .auto-complete-text {
-    color: rgb(128, 128, 128) !important;
-    -webkit-user-select: none;
-    -webkit-user-modify: read-only;
-}
-
-.panel {
-    display: none;
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    z-index: 0;
-}
-
-.panel.visible {
-    display: block;
-}
-
-.panel.extension-panel.visible {
-    display: flex !important;
-    flex-direction: column;
-}
-
-.extension-view {
-    flex: auto;
-    position: relative;
-}
-
-iframe.extension {
-    width: 100%;
-    height: 100%;
-}
-
-iframe.panel.extension {
-    display: block;
-    height: 100%;
-}
-
-.webkit-line-gutter-backdrop {
-    /* Keep this in sync with view-source.css (.webkit-line-gutter-backdrop) */
-    width: 31px;
-    background-color: rgb(240, 240, 240);
-    border-right: 1px solid rgb(187, 187, 187);
-    position: absolute;
-    z-index: -1;
-    left: 0;
-    top: 0;
-    height: 100%
-}
-
-.outline-disclosure li.hovered:not(.selected) .selection {
-    display: block;
-    left: 3px;
-    right: 3px;
-    background-color: rgba(56, 121, 217, 0.1);
-    border-radius: 5px;
-}
-
-.outline-disclosure li .selection {
-    display: none;
-    position: absolute;
-    left: 0;
-    right: 0;
-    height: 15px;
-    z-index: -1;
-}
-
-.outline-disclosure li.selected .selection {
-    display: block;
-    background-color: rgb(212, 212, 212);
-}
-
-.outline-disclosure li.elements-drag-over .selection {
-    display: block;
-    margin-top: -2px;
-    border-top: 2px solid rgb(56, 121, 217);
-}
-
-.outline-disclosure ol:focus li.selected .selection {
-    background-color: rgb(56, 121, 217);
-}
-
-.outline-disclosure ol:focus li.parent.selected::before {
-    background-color: white;
-}
-
-.outline-disclosure > ol {
-    position: relative;
-    padding: 2px 6px !important;
-    margin: 0;
-    cursor: default;
-    min-width: 100%;
-}
-
-.outline-disclosure,
-.outline-disclosure ol {
-    list-style-type: none;
-    -webkit-padding-start: 12px;
-    margin: 0;
-}
-
-.source-code {
-    font-family: monospace;
-    font-size: 11px !important;
-    white-space: pre-wrap;
-}
-
-.outline-disclosure li {
-    padding: 0 0 0 14px;
-    margin-top: 1px;
-    margin-left: -2px;
-    word-wrap: break-word;
-}
-
-.outline-disclosure ol:focus li.selected {
-    color: white;
-}
-
-.outline-disclosure ol:focus li.selected * {
-    color: inherit;
-}
-
-.outline-disclosure li.parent {
-    margin-left: -12px
-}
-
-.outline-disclosure li .webkit-html-tag.close {
-    margin-left: -12px;
-}
-
-.webkit-html-tag.shadow,
-.webkit-html-fragment.shadow {
-    opacity: 0.6;
-}
-
-.outline-disclosure li.parent::before {
-    float: left;
-    width: 8px;
-    padding-right: 2px;
-}
-
-.outline-disclosure li.parent::before {
-    -webkit-user-select: none;
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
-    content: "a";
-    color: transparent;
-    text-shadow: none;
-    position: relative;
-    top: 2px;
-    margin-right: 1px;
-    height: 12px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.outline-disclosure li.parent::before {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.outline-disclosure li.parent::before {
-    -webkit-mask-position: -4px -96px;
-    background-color: rgb(110, 110, 110);
-}
-
-.outline-disclosure li.parent.expanded::before {
-    -webkit-mask-position: -20px -96px;
-}
-
-.outline-disclosure ol.children {
-    display: none;
-}
-
-.outline-disclosure ol.children.expanded {
-    display: block;
-}
-
-.placard {
-    position: relative;
-    padding: 3px 8px 4px 18px;
-    min-height: 18px;
-    white-space: nowrap;
-}
-
-.placard:nth-of-type(2n) {
-    background-color: rgb(234, 243, 255);
-}
-
-.placard.selected {
-    border-top: 1px solid rgb(172, 172, 172);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(182, 182, 182)), to(rgb(162, 162, 162)));
-    background-origin: padding-box;
-    background-clip: padding-box;
-}
-
-:focus .placard.selected {
-    border-top: 1px solid rgb(70, 103, 215);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(56, 121, 217)));
-}
-
-.placard .title {
-    font-weight: normal;
-    word-wrap: break-word;
-    white-space: normal;
-}
-
-.placard.selected .title {
-    color: white;
-    font-weight: bold;
-}
-
-.placard .subtitle {
-    float: right;
-    font-size: 10px;
-    margin-left: 5px;
-    color: rgba(0, 0, 0, 0.7);
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
-
-.placard.selected .subtitle {
-    color: rgba(255, 255, 255, 0.7);
-}
-
-.placard .subtitle a {
-    color: inherit;
-}
-
-.section {
-    position: relative;
-    margin-top: 1px;
-}
-
-.events-pane .section {
-    margin: 0;
-}
-.events-pane .section:not(:nth-of-type(1)) {
-    border-top: 1px solid rgb(231, 231, 231);
-}
-
-.section > .header {
-    padding: 0 8px 0 5px;
-    min-height: 18px;
-    white-space: nowrap;
-    background-origin: padding-box;
-    background-clip: padding-box;
-}
-
-.section > .header::before {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    opacity: 0.5;
-    content: "a";
-    color: transparent;
-    text-shadow: none;
-    float: left;
-    width: 8px;
-    margin-right: 4px;
-    margin-top: 2px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.section > .header::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.section > .header::before {
-    background-position: -4px -96px;
-}
-
-.section.expanded > .header::before {
-    background-position: -20px -96px;
-}
-
-.section > .header .title,
-.event-bar .header .title {
-    font-weight: normal;
-    word-wrap: break-word;
-    white-space: normal;
-    line-height: 18px;
-}
-
-.section > .header .title.blank-title {
-    font-style: italic;
-}
-
-.section > .header label,
-.event-bar .header label {
-    display: none;
-}
-
-.section.expanded .header label,
-.event-bar.expanded .header label {
-    display: inline;
-}
-
-.section > .header .subtitle,
-.event-bar .header .subtitle {
-    float: right;
-    margin-left: 5px;
-    max-width: 55%;
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
-
-.section > .header .subtitle a {
-    color: inherit;
-}
-
-.section .properties,
-.event-bar .event-properties {
-    display: none;
-}
-
-.section.expanded .properties,
-.event-bar.expanded .event-properties {
-    display: block;
-}
-
-.event-bar .event-properties {
-    padding-left: 16px;
-}
-
-.section.no-affect .properties li {
-    opacity: 0.5;
-}
-
-.section.no-affect .properties li.editing {
-    opacity: 1.0;
-}
-
-.properties-tree {
-    margin: 0;
-    padding: 0 6px 2px;
-    list-style: none;
-    min-height: 18px;
-}
-
-.properties-tree li {
-    margin-left: 12px;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    -webkit-user-select: text;
-    cursor: default;
-    padding-top: 2px;
-    line-height: 12px;
-}
-
-.properties-tree li.parent {
-    margin-left: 1px;
-}
-
-
-.properties-tree li.parent::before {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    opacity: 0.5;
-    content: "a";
-    width: 8px;
-    float: left;
-    margin-right: 4px;
-    color: transparent;
-    text-shadow: none;
-}
-
-.properties-calculate-value-button:hover {
-    text-decoration: underline;
-}
-
-.properties-accessor-property-name {
-    font-style: italic;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.properties-tree li.parent::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.properties-tree li.parent::before {
-    background-position: -4px -96px;
-}
-
-.properties-tree li.parent.expanded::before {
-    background-position: -20px -96px;
-}
-
-.properties-tree li .info {
-    padding-top: 4px;
-    padding-bottom: 3px;
-}
-
-.properties-tree ol {
-    display: none;
-    margin: 0;
-    -webkit-padding-start: 12px;
-    list-style: none;
-}
-
-.properties-tree ol.expanded {
-    display: block;
-}
-
-.editing {
-    -webkit-user-select: text;
-    box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;
-    outline: 1px solid rgb(66%, 66%, 66%) !important;
-    background-color: white;
-    -webkit-user-modify: read-write-plaintext-only;
-    text-overflow: clip !important;
-    padding-left: 2px;
-    margin-left: -2px;
-    padding-right: 2px;
-    margin-right: -2px;
-    margin-bottom: -1px;
-    padding-bottom: 1px;
-    opacity: 1.0 !important;
-}
-
-.editing,
-.editing * {
-    color: #222 !important;
-    text-decoration: none !important;
-}
-
-.child-editing {
-    color: #222 !important;
-    text-decoration: none !important;
-    overflow: visible !important;
-}
-
-.editing br {
-    display: none;
-}
-
-.section .properties li.editing {
-    margin-left: 10px;
-    text-overflow: clip;
-}
-
-li.editing .swatch, li.editing .enabled-button,
-li.editing-sub-part .delete-button {
-    display: none !important;
-}
-
-.properties-tree.watch-expressions {
-    padding-left: 0 !important;
-}
-
-.properties-tree.watch-expressions > li {
-    padding-left: 4px;
-}
-
-.properties-tree.watch-expressions > li > .value {
-    display: inline;
-    position: static;
-}
-
-.properties-tree.watch-expressions > li:not(.parent) {
-    margin-left: 1px;
-    padding-left: 15px;
-}
-
-.properties-tree.watch-expressions > li.hovered {
-    padding-right: 14px;
-}
-
-.watch-expressions > li.editing-sub-part .text-prompt {
-    display: block;
-    width: 100%;
-}
-
-.watch-expressions > li.editing-sub-part .value,
-.watch-expressions > li.editing-sub-part .separator  {
-    display: none;
-}
-
-.section .properties li.editing-sub-part {
-    padding: 3px 6px 8px 18px;
-    margin: -3px -6px -8px -6px;
-    text-overflow: clip;
-}
-
-.section .properties .delete-button {
-    width: 10px;
-    height: 10px;
-    background-image: url(Images/deleteIcon.png);
-    background-position: 0 0;
-    background-color: transparent;
-    background-repeat: no-repeat;
-    border: 0 none transparent;
-    position: absolute;
-    right: 8px;
-    display: none;
-}
-
-.tabbed-pane-content .watch-expressions li:first-child .delete-button {
-    right: 55px;
-    top: 3px;
-}
-
-.section .properties li.hovered .delete-button {
-    display: inline;
-}
-
-.section .properties .name,
-.event-properties .name,
-.console-formatted-object .name {
-    color: rgb(136, 19, 145);
-}
-
-.section .properties .dimmed {
-    opacity: 0.6;
-}
-
-.section .properties .value.error {
-    color: red;
-}
-
-.section .properties .number,
-.event-properties .number {
-    color: blue;
-}
-
-.section .properties .keyword,
-.event-properties .keyword {
-    color: rgb(136, 19, 79);
-}
-
-.section .properties .color,
-.event-properties .color {
-    color: rgb(118, 15, 21);
-}
-
-.swatch {
-    margin-left: 1px;
-    margin-right: 2px;
-    width: 1em;
-    height: 1em;
-    position: relative;
-    top: 1px;
-    display: inline-block;
-    background-image: url(Images/checker.png);
-    -webkit-user-select: none;
-}
-
-.swatch-inner {
-    width: 100%;
-    height: 100%;
-    display: inline-block;
-    border: 1px solid rgba(128, 128, 128, 0.6);
-}
-
-.swatch-inner:hover {
-    border: 1px solid rgba(64, 64, 64, 0.8);
-}
-
-.sidebar {
-    overflow-x: hidden;
-    background-color: rgb(214, 221, 229);
-}
-
-body.inactive .sidebar {
-    background-color: rgb(232, 232, 232);
-}
-
-.pane-title-button {
-    color: rgb(6, 6, 6);
-    background-color: transparent;
-    border: 1px solid rgb(165, 165, 165);
-    background-color: rgb(237, 237, 237);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
-    border-radius: 12px;
-    -webkit-appearance: none;
-}
-
-.pane-title-button:active {
-    background-color: rgb(215, 215, 215);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
-}
-
-button.show-all-nodes {
-    font-size: 13px;
-    margin: 0;
-    padding: 0 20px;
-    height: 20px;
-    color: rgb(6, 6, 6);
-    background-color: transparent;
-    border: 1px solid rgb(165, 165, 165);
-    background-color: rgb(237, 237, 237);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
-    border-radius: 12px;
-    -webkit-appearance: none;
-}
-
-body.inactive button.show-all-nodes {
-    color: rgb(130, 130, 130);
-    border-color: rgb(212, 212, 212);
-    background-color: rgb(239, 239, 239);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235)));
-}
-
-button.show-all-nodes:active {
-    background-color: rgb(215, 215, 215);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
-}
-
-button.enable-toggle-status-bar-item .glyph {
-    -webkit-mask-position: -192px 0;
-}
-
-button.enable-toggle-status-bar-item.toggled-on .glyph {
-    -webkit-mask-position: -96px -24px;
-}
-
-#console-messages.console-filter-top {
-    margin-top: 23px;
-}
-
-.scope-bar {
-    line-height: 19px;
-    padding-right: 10px;
-    overflow: hidden;
-}
-
-.scope-bar li {
-    display: inline-block;
-    margin: 0 2px;
-    padding: 2px 6px;
-    line-height: 12px;
-    background: transparent;
-    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
-    border-radius: 8px;
-    vertical-align: middle;
-}
-
-.scope-bar-divider {
-    background-color: rgba(0, 0, 0, 0.4);
-    height: 16px;
-    width: 1px;
-    vertical-align: middle;
-    display: inline-block;
-}
-
-.scope-bar li.selected,
-.scope-bar li:hover,
-.scope-bar li:active {
-    color: white;
-    text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
-}
-
-.scope-bar li.all {
-    margin: 0 8px;
-}
-
-.scope-bar li:hover {
-    background: rgba(0, 0, 0, 0.2);
-}
-
-.scope-bar li.selected {
-    background: rgba(0, 0, 0, 0.3);
-}
-
-.scope-bar li:active {
-    background: rgba(0, 0, 0, 0.5);
-}
-
-
-.console-warning-level.repeated-message,
-.console-error-level.repeated-message,
-.console-log-level.repeated-message,
-.console-debug-level.repeated-message,
-.console-info-level.repeated-message {
-    display: -webkit-flex;
-}
-
-.console-user-command-result {
-    display: block;
-}
-
-.source-view-frame {
-    width: 100%;
-    height: 100%;
-}
-
-.sidebar-resizer-vertical {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    width: 5px;
-    z-index: 500;
-    cursor: ew-resize;
-}
-
-.sidebar-tree,
-.sidebar-tree .children {
-    position: relative;
-    padding: 0;
-    margin: 0;
-    list-style: none;
-}
-
-.sidebar-tree-section {
-    position: relative;
-    height: 18px;
-    padding: 1px 10px 6px 10px;
-    white-space: nowrap;
-    margin-top: 1px;
-    color: rgb(92, 110, 129);
-    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
-}
-
-.sidebar-tree-item {
-    position: relative;
-    height: 36px;
-    padding: 0 5px 0 5px;
-    white-space: nowrap;
-    overflow-x: hidden;
-    overflow-y: hidden;
-    margin-top: 1px;
-    line-height: 34px;
-    border-top: 1px solid transparent;
-}
-
-.sidebar-tree .children {
-    display: none;
-}
-
-.sidebar-tree .children.expanded {
-    display: block;
-}
-
-.sidebar-tree-section + .children > .sidebar-tree-item {
-    padding-left: 10px !important;
-}
-
-.sidebar-tree-section + .children.small > .sidebar-tree-item {
-    padding-left: 17px !important;
-}
-
-.sidebar-tree > .children > .sidebar-tree-item {
-    padding-left: 37px;
-}
-
-.sidebar-tree > .children > .children > .sidebar-tree-item {
-    padding-left: 37px;
-}
-
-.sidebar-tree.hide-disclosure-buttons > .children {
-    display: none;
-}
-
-.sidebar-tree > .children.hide-disclosure-buttons > .children {
-    display: none;
-}
-
-.sidebar-tree.some-expandable:not(.hide-disclosure-buttons) > .sidebar-tree-item:not(.parent) .icon {
-    margin-left: 16px;
-}
-
-.sidebar-tree-item .disclosure-button {
-    float: left;
-    width: 10px;
-    height: 10px;
-    border: 0;
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
-    -webkit-appearance: none;
-    background-color: rgba(0, 0, 0, 0.75);
-    position: relative;
-    top: 10px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.sidebar-tree-item .disclosure-button {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.sidebar-tree.hide-disclosure-buttons .sidebar-tree-item .disclosure-button {
-    display: none;
-}
-
-.sidebar-tree-item .disclosure-button {
-    -webkit-mask-position: -4px -96px;
-}
-
-.sidebar-tree-item.selected .disclosure-button {
-    background-color: white;
-    -webkit-mask-position: -4px -96px;
-}
-
-.sidebar-tree-item.expanded .disclosure-button {
-    -webkit-mask-position: -20px -96px;
-}
-
-.sidebar-tree-item.selected.expanded .disclosure-button {
-    background-color: white;
-    -webkit-mask-position: -20px -96px;
-}
-
-.sidebar-tree-item .icon {
-    float: left;
-    width: 32px;
-    height: 32px;
-    margin-top: 1px;
-    margin-right: 3px;
-}
-
-li .status {
-    float: right;
-    height: 16px;
-    margin-top: 9px;
-    margin-left: 4px;
-    line-height: 1em;
-}
-
-li .status:empty {
-    display: none;
-}
-
-li .status .bubble {
-    display: inline-block;
-    height: 14px;
-    min-width: 16px;
-    margin-top: 1px;
-    background-color: rgb(128, 151, 189);
-    vertical-align: middle;
-    white-space: nowrap;
-    padding: 1px 4px;
-    text-align: center;
-    font-size: 11px;
-    line-height: normal;
-    font-weight: bold;
-    text-shadow: none;
-    color: white;
-    border-radius: 7px;
-}
-
-li .status .bubble:empty {
-    display: none;
-}
-
-li.selected .status .bubble {
-    background-color: white !important;
-    color: rgb(132, 154, 190) !important;
-}
-
-:focus li.selected .status .bubble {
-    color: rgb(36, 98, 172) !important;
-}
-
-body.inactive li.selected .status .bubble {
-    color: rgb(159, 159, 159) !important;
-}
-
-.sidebar-tree.small .sidebar-tree-item,
-.sidebar-tree .children.small .sidebar-tree-item,
-.sidebar-tree-item.small,
-.small .resources-graph-side {
-    height: 20px;
-}
-
-.sidebar-tree.small .sidebar-tree-item .icon,
-.sidebar-tree .children.small .sidebar-tree-item .icon,
-.sidebar-tree-item.small .icon {
-    width: 16px;
-    height: 16px;
-}
-
-.sidebar-tree.small .sidebar-tree-item .status,
-.sidebar-tree .children.small .sidebar-tree-item .status,
-.sidebar-tree-item.small .status {
-    margin-top: 1px;
-}
-
-.sidebar-tree-item.selected {
-    color: white;
-    text-shadow: rgba(0, 0, 0, 0.33) 1px 1px 0;
-    background-origin: padding-box;
-    background-clip: padding-box;
-    background-color: rgb(56, 121, 217);
-}
-
-:focus .sidebar-tree-item.selected {
-    background-color: rgb(56, 121, 217);
-}
-
-body.inactive .sidebar-tree-item.selected {
-    background-color: rgb(180,180,180);
-}
-
-.sidebar-tree-item .titles {
-    position: relative;
-    top: 5px;
-    line-height: 12px;
-    padding-bottom: 1px;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    white-space: nowrap;
-}
-
-.sidebar-tree-item .titles.no-subtitle {
-    top: 10px;
-}
-
-.sidebar-tree.small .sidebar-tree-item .titles,
-.sidebar-tree .children.small .sidebar-tree-item .titles,
-.sidebar-tree-item.small .titles {
-    top: 2px;
-    line-height: normal;
-}
-
-.sidebar-tree:not(.small) .sidebar-tree-item:not(.small) .title::after,
-.sidebar-tree .children:not(.small) .sidebar-tree-item .title::after {
-    content: "\A";
-    white-space: pre;
-}
-
-.sidebar-tree-item .subtitle {
-    font-size: 80%;
-}
-
-.sidebar-tree.small .sidebar-tree-item .subtitle,
-.sidebar-tree .children.small .sidebar-tree-item .subtitle,
-.sidebar-tree-item.small .subtitle {
-    display: none;
-}
-
-.sidebar-tree-item.selected .subtitle {
-    color: white;
-}
-
-.bubble.debug,
-.console-debug-level .bubble {
-    background-color: rgb(0, 0, 255) !important;
-}
-
-.bubble.warning,
-.console-warning-level .bubble {
-    background-color: rgb(232, 164, 0) !important;
-}
-
-.bubble.error,
-.console-error-level .bubble {
-    background-color: rgb(216, 35, 35) !important;
-}
-
-.bubble.search-matches {
-    background-image: url(Images/searchSmallWhite.png);
-    background-repeat: no-repeat;
-    background-position: 3px 2px;
-    padding-left: 13px !important;
-}
-
-li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallBlue.png);
-}
-
-:focus li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallBrightBlue.png);
-}
-
-body.inactive li.selected .bubble.search-matches {
-    background-image: url(Images/searchSmallGray.png);
-}
-
-.storage-application-cache-status-icon,
-.storage-application-cache-connectivity-icon {
-    margin: 5px 5px 0;
-    vertical-align: middle;
-}
-
-.status-bar-divider {
-    margin-left: 7px;
-    border-right: 1px solid #CCC;
-}
-
-.storage-application-cache-status,
-.storage-application-cache-connectivity {
-    position: relative;
-    top: 4px;
-}
-
-.status-bar-items {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    overflow: hidden;
-    border-left: 1px solid rgb(184, 184, 184);
-    margin-left: -1px;
-}
-
-.node-search-status-bar-item .glyph {
-    -webkit-mask-position: -224px -24px;
-}
-
-.delete-storage-status-bar-item .glyph {
-    -webkit-mask-position: -128px 0;
-}
-
-.clear-storage-status-bar-item .glyph {
-    -webkit-mask-position: -64px 0;
-}
-
-.refresh-storage-status-bar-item .glyph {
-    -webkit-mask-position: 0 0;
-}
-
-.webkit-html-js-node,
-.webkit-html-css-node {
-    white-space: pre;
-}
-
-.source-frame-breakpoint-condition {
-    z-index: 30;
-    padding: 4px;
-    background-color: rgb(203, 226, 255);
-    border-radius: 7px;
-    border: 2px solid rgb(169, 172, 203);
-    width: 90%;
-    pointer-events: auto;
-}
-
-.source-frame-breakpoint-message {
-    background-color: transparent;
-    font-weight: normal;
-    font-size: 11px;
-    text-align: left;
-    text-shadow: none;
-    color: rgb(85, 85, 85);
-    cursor: default;
-    margin: 0 0 2px 0;
-}
-
-#source-frame-breakpoint-condition {
-    margin: 0;
-    border: 1px inset rgb(190, 190, 190) !important;
-    width: 100%;
-    box-shadow: none !important;
-    outline: none !important;
-    -webkit-user-modify: read-write;
-}
-
-.source-frame-popover-title {
-    text-overflow: ellipsis;
-    overflow: hidden;
-    white-space: nowrap;
-    font-weight: bold;
-    padding-left: 18px;
-}
-
-.source-frame-popover-tree {
-    border-top: 1px solid rgb(194, 194, 147);
-    overflow: auto;
-    position: absolute;
-    top: 15px;
-    bottom: 0;
-    left: 0;
-    right: 0;
-}
-
-.source-frame-eval-expression {
-    outline: 1px solid rgb(163, 41, 34);
-    background-color: rgb(255, 255, 194);
-}
-
-.source-frame-stepin-mark {
-    cursor: pointer;
-    text-decoration: underline;
-}
-
-.source-frame-stepin-mark-highlighted {
-    font-weight: 800;
-    cursor: pointer;
-    text-decoration: underline;
-}
-
-.workers-list {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-.resource-content-unavailable {
-    color: rgb(50%, 50%, 50%);
-    font-style: italic;
-    font-size: 14px;
-    text-align: center;
-    padding: 32px;
-}
-
-.node-link {
-    text-decoration: underline;
-    cursor: pointer;
-}
-
-.cursor-pointer {
-    cursor: pointer;
-}
-
-.cursor-auto {
-    cursor: auto;
-}
-
-.please-wait-msg {
-    position: absolute;
-    left: 0;
-    top: 0;
-    border: 4px black solid;
-    border-radius: 4px;
-    background-color: black;
-    opacity: 0.85;
-    color: white;
-    font-size: 12px;
-    font-weight: bold;
-    z-index: 10000;
-}
-
-.resource-view.json {
-    padding: 5px;
-}
-
-.resource-view.html iframe {
-    width: 100%;
-    height: 100%;
-    position: absolute;
-}
-
-.soft-context-menu-glass-pane {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 20000;
-}
-
-.soft-context-menu {
-    position: absolute;
-    border: 1px solid rgba(196, 196, 196, 0.9);
-    border-top: 1px solid rgba(196, 196, 196, 0.5);
-    border-bottom: 1px solid rgba(150, 150, 150, 0.9);
-    padding: 4px 0 4px 0;
-    border-radius: 4px;
-    background-color: white;
-    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.25);
-}
-
-.soft-context-menu-item {
-    width: 100%;
-    line-height: 13px;
-    font-size: 14px;
-    border-top: 1px solid transparent;
-    border-bottom: 1px solid transparent;
-    padding: 2px 7px 2px 6px;
-    margin: 0 13px 0 0;
-    white-space: nowrap;
-}
-
-.soft-context-menu-separator {
-    height: 10px;
-    margin: 0 1px;
-}
-
-.soft-context-menu-separator > .separator-line {
-    margin: 0;
-    height: 5px;
-    border-bottom: 1px solid rgb(227, 227, 227);
-    pointer-events: none;
-}
-
-.soft-context-menu-item-mouse-over {
-    border-top: 1px solid rgb(56, 121, 217);
-    border-bottom: 1px solid rgb(56, 121, 217);
-    background-color: rgb(56, 121, 217);
-    color: white;
-}
-
-body.platform-mac .soft-context-menu-item-mouse-over {
-    border-top: 1px solid rgb(90, 131, 236);
-    border-bottom: 1px solid rgb(18, 88, 233);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(100, 140, 243)), to(rgb(36, 101, 243)));
-}
-
-.soft-context-menu-item-checkmark {
-    color: rgb(108, 108, 108);
-    pointer-events: none;
-}
-
-.soft-context-menu-item-submenu-arrow {
-    color: #222;
-    float: right;
-    pointer-events: none;
-}
-
-.soft-context-menu-item-mouse-over .soft-context-menu-item-checkmark {
-    color: white;
-}
-
-.search-view {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-}
-
-.search-drawer-header {
-    flex: none;
-    padding: 4px;
-}
-
-.search-drawer-header input[type="text"].search-config-search {
-    -webkit-appearance: none;
-    padding: 0 2px;
-    margin: 0;
-    border: 1px solid rgb(163, 163, 163);
-    height: 20px;
-    border-radius: 2px;
-    color: #303030;
-}
-
-.search-drawer-header input[type="search"].search-config-search:focus {
-    border: 1px solid rgb(190, 190, 190);
-    outline: none;
-}
-
-body.platform-mac .search-drawer-header input[type="search"].search-config-search {
-    top: 1px;
-}
-
-.search-drawer-header label.search-config-label {
-    margin-left: 8px;
-    color: #303030;
-}
-
-.search-drawer-header input[type="checkbox"].search-config-checkbox {
-    vertical-align: bottom;
-}
-
-body:not(.platform-mac) .search-drawer-header input[type="checkbox"].search-config-checkbox {
-    margin-bottom: 5px;
-}
-
-body.platform-mac .search-drawer-header input[type="checkbox"].search-config-checkbox {
-    margin-bottom: 4px;
-}
-
-#bottom-status-bar-container {
-    -webkit-flex: 1 1 0;
-    width: 0;
-    overflow: hidden;
-}
-
-.search-status-bar-summary {
-    background-color: rgb(236, 236, 236);
-    border-top: 1px solid #ccc;
-    padding-left: 5px;
-    flex: 0 0 19px;
-}
-
-.search-status-bar-summary .progress-bar-container {
-    margin-top: -4px;
-}
-
-.progress-bar-stop-button-item {
-    width: 19px;
-    height: 24px;
-    overflow: hidden;
-}
-
-.progress-bar-stop-button .glyph {
-    -webkit-mask-position: -96px -48px;
-    background-color: rgb(216, 0, 0) !important;
-}
-
-.search-view .search-results {
-    overflow-y: auto;
-    flex: auto;
-}
-
-#search-results-pane-file-based li {
-    list-style: none;
-}
-
-#search-results-pane-file-based ol {
-    -webkit-padding-start: 0;
-    margin-top: 0;
-}
-
-#search-results-pane-file-based ol.children {
-    display: none;
-}
-
-#search-results-pane-file-based ol.children.expanded {
-    display: block;
-}
-
-#search-results-pane-file-based li.parent::before {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
-    opacity: 0.5;
-    width: 8px;
-    content: "a";
-    color: transparent;
-    margin-left: -5px;
-    padding-right: 4px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-#search-results-pane-file-based li.parent::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-#search-results-pane-file-based li.parent::before {
-    background-position: -4px -96px;
-}
-
-#search-results-pane-file-based li.parent.expanded::before {
-    background-position: -20px -96px;
-}
-
-#search-results-pane-file-based .search-result {
-    font-size: 11px;
-    padding: 2px 0 2px 10px;
-    word-wrap: normal;
-    white-space: pre;
-    cursor: pointer;
-}
-
-#search-results-pane-file-based .search-result:hover {
-    background-color: rgba(121, 121, 121, 0.1);
-}
-
-#search-results-pane-file-based .search-result .search-result-file-name {
-    font-weight: bold;
-    color: #222;
-}
-
-#search-results-pane-file-based .search-result .search-result-matches-count {
-    margin-left: 5px;
-    color: #222;
-}
-
-#search-results-pane-file-based .show-more-matches {
-    padding: 4px 0;
-    color: #222;
-    cursor: pointer;
-    font-size: 11px;
-    margin-left: 20px;
-}
-
-#search-results-pane-file-based .show-more-matches:hover {
-    text-decoration: underline;
-}
-
-#search-results-pane-file-based .search-match {
-    word-wrap: normal;
-    white-space: pre;
-}
-
-#search-results-pane-file-based .search-match .search-match-line-number {
-    color: rgb(128, 128, 128);
-    text-align: right;
-    vertical-align: top;
-    word-break: normal;
-    padding-right: 4px;
-    padding-left: 6px;
-    margin-right: 5px;
-    border-right: 1px solid #BBB;
-}
-
-#search-results-pane-file-based .search-match:not(:hover) .search-match-line-number {
-    background-color: #F0F0F0;
-}
-
-#search-results-pane-file-based .search-match:hover {
-    background-color: rgba(56, 121, 217, 0.1);
-}
-
-#search-results-pane-file-based .search-match .highlighted-match {
-    background-color: #F1EA00;
-}
-
-#search-results-pane-file-based a {
-    text-decoration: none;
-    display: block;
-}
-
-#search-results-pane-file-based .search-match .search-match-content {
-    color: #000;
-}
-
-.record-cpu-profile-status-bar-item .glyph,
-.record-profile-status-bar-item .glyph {
-    -webkit-mask-position: -288px 0;
-}
-
-.record-cpu-profile-status-bar-item.toggled-on .glyph,
-.record-profile-status-bar-item.toggled-on .glyph {
-    -webkit-mask-position: -288px -24px;
-    background-color: rgb(216, 0, 0) !important;
-}
-
-.empty-view,
-.storage-view .storage-table-error {
-    position: absolute;
-    top: 0;
-    bottom: 25%;
-    left: 0;
-    right: 0;
-    font-size: 24px;
-    color: rgb(75%, 75%, 75%);
-    margin-top: auto;
-    margin-bottom: auto;
-    height: 50px;
-    line-height: 26px;
-    text-align: center;
-    font-weight: bold;
-    padding: 10px;
-    white-space: pre-wrap;
-}
-
-/* Generic suggest box style */
-
-.suggest-box.generic-suggest {
-    margin-left: -1px;
-    border-color: rgb(66%, 66%, 66%);
-}
-
-.suggest-box.generic-suggest.above-anchor {
-   border-radius: 5px 5px 5px 0;
-}
-
-.suggest-box.generic-suggest.under-anchor {
-   border-radius: 0 5px 5px 5px;
-}
-
-/* Custom popup scrollers */
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar,
-.custom-popup-vertical-scroll ::-webkit-scrollbar {
-    width: 11px;
-    height: 11px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-corner,
-.custom-popup-vertical-scroll ::-webkit-scrollbar-corner {
-    display: none;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-resizer,
-.custom-popup-vertical-scroll ::-webkit-resizer {
-    display: none;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-button,
-.custom-popup-vertical-scroll ::-webkit-scrollbar-button {
-    display: none;
-}
-
-/* Custom Horizontal Scrollbar Styles */
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar:horizontal:corner-present {
-    border-right-width: 0;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-thumb:horizontal {
-    -webkit-border-image: url(Images/thumbHoriz.png) 0 11 0 11;
-    border-color: transparent;
-    border-width: 0 11px;
-    min-width: 20px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-thumb:horizontal:hover {
-    -webkit-border-image: url(Images/thumbHoverHoriz.png) 0 11 0 11;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-thumb:horizontal:active {
-    -webkit-border-image: url(Images/thumbActiveHoriz.png) 0 11 0 11;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-track-piece:horizontal:start {
-    margin-left: 5px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-track-piece:horizontal:end {
-    margin-right: 5px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-track-piece:horizontal:end:corner-present {
-    margin-right: 4px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-track-piece:horizontal:decrement {
-    -webkit-border-image: url(Images/trackHoriz.png) 0 11 0 11;
-    border-color: transparent;
-    border-width: 0 0 0 11px;
-}
-
-.custom-popup-horizontal-scroll ::-webkit-scrollbar-track-piece:horizontal:increment {
-    -webkit-border-image: url(Images/trackHoriz.png) 0 11 0 11;
-    border-color: transparent;
-    border-width: 0 11px 0 0;
-}
-
-/* Custom Vertical Scrollbar Styles */
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar:vertical:corner-present {
-    border-bottom-width: 0;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-thumb:vertical {
-    -webkit-border-image: url(Images/thumbVert.png) 11 0 11 0;
-    border-color: transparent;
-    border-width: 11px 0;
-    min-height: 20px;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-thumb:vertical:hover {
-    -webkit-border-image: url(Images/thumbHoverVert.png) 11 0 11 0;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-thumb:vertical:active {
-    -webkit-border-image: url(Images/thumbActiveVert.png) 11 0 11 0;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:start {
-    margin-top: 5px;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:end {
-    margin-bottom: 5px;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:end:corner-present {
-    margin-bottom: 4px;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:decrement {
-    -webkit-border-image: url(Images/trackVert.png) 11 0 11 0;
-    border-color: transparent;
-    border-width: 11px 0 0 0;
-}
-
-.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:increment {
-    -webkit-border-image: url(Images/trackVert.png) 11 0 11 0;
-    border-color: transparent;
-    border-width: 0 0 11px 0;
-}
-
-.console-context {
-    max-width: 200px;
-}
-
-.inspector-footer.status-bar {
-    flex: 0 0 auto;
-    background-color: rgb(236, 236, 236);
-    height: auto;
-}
-
-.progress-bar-container {
-    display: inline-flex;
-    margin: 0 8px;
-    -webkit-flex: 1 0;
-}
-
-.progress-bar-container span {
-    padding: 6px;
-}
-
-.progress-bar-container progress {
-    margin-top: 7px;
-    -webkit-flex: 1 0;
-}
-
-body.platform-mac .progress-bar-container progress {
-    margin-top: 6px;
-}
-
-.progress-bar-container button.status-bar-item {
-    border-left: none;
-    margin-top: 1px;
-}
-
-.elements-tree-outline li.parent::before {
-    top: 0 !important;
-}
-
-#drawer-editor-view {
-    flex: auto;
-}
-
-.toolbar-close-button-item {
-    display: inline-block;
-    float: right;
-    padding-right: 4px;
-    padding-top: 4px;
-    padding-left: 2px;
-}
-
-body.undocked .toolbar-close-button-item {
-    display: none;
-}
diff --git a/resources/inspector/inspector.js b/resources/inspector/inspector.js
index b3ed5e0..57a2d56 100644
--- a/resources/inspector/inspector.js
+++ b/resources/inspector/inspector.js
@@ -48,6 +48,9 @@
 {return!this.lastIndexOf(substring,0);}
 String.prototype.endsWith=function(substring)
 {return this.indexOf(substring,this.length-substring.length)!==-1;}
+String.prototype.hashCode=function()
+{var result=0;for(var i=0;i<this.length;++i)
+result=result*3+this.charCodeAt(i);return result;}
 String.naturalOrderComparator=function(a,b)
 {var chunk=/^\d+|^\D+/;var chunka,chunkb,anum,bnum;while(1){if(a){if(!b)
 return 1;}else{if(b)
@@ -101,7 +104,15 @@
 if(leftBound===0&&rightBound===(this.length-1)&&sortWindowLeft===0&&sortWindowRight>=rightBound)
 this.sort(comparator);else
 quickSortRange(this,comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight);return this;}}
-Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
+Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"stableSort",{value:function(comparator)
+{function defaultComparator(a,b)
+{return a<b?-1:(a>b?1:0);}
+comparator=comparator||defaultComparator;var indices=new Array(this.length);for(var i=0;i<this.length;++i)
+indices[i]=i;var self=this;function indexComparator(a,b)
+{var result=comparator(self[a],self[b]);return result?result:a-b;}
+indices.sort(indexComparator);for(var i=0;i<this.length;++i){if(indices[i]<0||i===indices[i])
+continue;var cyclical=i;var saved=this[i];while(true){var next=indices[cyclical];indices[cyclical]=-1;if(next===i){this[cyclical]=saved;break;}else{this[cyclical]=this[next];cyclical=next;}}}
+return this;}});Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator)
 {if(k<0||k>=this.length)
 return;if(!comparator)
 comparator=function(a,b){return a-b;}
@@ -124,7 +135,15 @@
 {var index=this.lowerBound(value,comparator);return index<this.length&&comparator(value,this[index])===0?index:-1;}});Object.defineProperty(Array.prototype,"select",{value:function(field)
 {var result=new Array(this.length);for(var i=0;i<this.length;++i)
 result[i]=this[i][field];return result;}});Object.defineProperty(Array.prototype,"peekLast",{value:function()
-{return this[this.length-1];}});function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
+{return this[this.length-1];}});(function(){function mergeOrIntersect(array1,array2,comparator,mergeNotIntersect)
+{var result=[];var i=0;var j=0;while(i<array1.length||j<array2.length){if(i===array1.length){result=result.concat(array2.slice(j));j=array2.length;}else if(j===array2.length){result=result.concat(array1.slice(i));i=array1.length;}else{var compareValue=comparator(array1[i],array2[j])
+if(compareValue<0){if(mergeNotIntersect)
+result.push(array1[i]);++i;}else if(compareValue>0){if(mergeNotIntersect)
+result.push(array2[j]);++j;}else{result.push(array1[i]);++i;++j;}}}
+return result;}
+Object.defineProperty(Array.prototype,"intersectOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,false);}});Object.defineProperty(Array.prototype,"mergeOrdered",{value:function(array,comparator)
+{return mergeOrIntersect(this,array,comparator,true);}});}());function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter)
 {if(insertionIndexAfter)
 return list.upperBound(object,comparator);else
 return list.lowerBound(object,comparator);}
@@ -257,7 +276,7 @@
 var _importedScripts={};function importScript(scriptName)
 {if(_importedScripts[scriptName])
 return;var xhr=new XMLHttpRequest();_importedScripts[scriptName]=true;xhr.open("GET",scriptName,false);xhr.send(null);if(!xhr.responseText)
-throw"empty response arrived for script '"+scriptName+"'";var sourceURL=WebInspector.ParsedURL.completeURL(window.location.href,scriptName);window.eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
+throw"empty response arrived for script '"+scriptName+"'";var baseUrl=location.href;baseUrl=baseUrl.substring(0,baseUrl.lastIndexOf("/"));var sourceURL=baseUrl+"/"+scriptName;eval(xhr.responseText+"\n//# sourceURL="+sourceURL);}
 var loadScript=importScript;function CallbackBarrier()
 {this._pendingIncomingCallbacksCount=0;}
 CallbackBarrier.prototype={createCallback:function(userCallback)
@@ -329,24 +348,19 @@
 {var node=this.traverseNextTextNode(this);while(node&&offset>node.nodeValue.length){offset-=node.nodeValue.length;node=node.traverseNextTextNode(this);}
 if(!node)
 return{container:this,offset:0};return{container:node,offset:offset};}
-Element.prototype.removeStyleClass=function(className)
-{this.classList.remove(className);}
 Element.prototype.removeMatchingStyleClasses=function(classNameRegex)
 {var regex=new RegExp("(^|\\s+)"+classNameRegex+"($|\\s+)");if(regex.test(this.className))
 this.className=this.className.replace(regex," ");}
-Element.prototype.addStyleClass=function(className)
-{this.classList.add(className);}
-Element.prototype.hasStyleClass=function(className)
-{return this.classList.contains(className);}
 Element.prototype.enableStyleClass=function(className,enable)
 {if(enable)
-this.addStyleClass(className);else
-this.removeStyleClass(className);}
-Element.prototype.positionAt=function(x,y)
-{if(typeof x==="number")
-this.style.setProperty("left",x+"px");else
+this.classList.add(className);else
+this.classList.remove(className);}
+Element.prototype.positionAt=function(x,y,relativeTo)
+{var shift={x:0,y:0};if(relativeTo)
+shift=relativeTo.boxInWindow(this.ownerDocument.defaultView);if(typeof x==="number")
+this.style.setProperty("left",(shift.x+x)+"px");else
 this.style.removeProperty("left");if(typeof y==="number")
-this.style.setProperty("top",y+"px");else
+this.style.setProperty("top",(shift.y+y)+"px");else
 this.style.removeProperty("top");}
 Element.prototype.isScrolledToBottom=function()
 {return this.scrollTop+this.clientHeight===this.scrollHeight;}
@@ -356,6 +370,8 @@
 {this.width=width;this.height=height;}
 Element.prototype.measurePreferredSize=function(containerElement)
 {containerElement=containerElement||document.body;containerElement.appendChild(this);this.positionAt(0,0);var result=new Size(this.offsetWidth,this.offsetHeight);this.positionAt(undefined,undefined);this.remove();return result;}
+Element.prototype.containsEventPoint=function(event)
+{var box=this.getBoundingClientRect();return box.left<event.x&&event.x<box.right&&box.top<event.y&&event.y<box.bottom;}
 Node.prototype.enclosingNodeOrSelfWithNodeNameInArray=function(nameArray)
 {for(var node=this;node&&node!==this.ownerDocument;node=node.parentNode)
 for(var i=0;i<nameArray.length;++i)
@@ -365,7 +381,7 @@
 {return this.enclosingNodeOrSelfWithNodeNameInArray([nodeName]);}
 Node.prototype.enclosingNodeOrSelfWithClass=function(className,stayWithin)
 {for(var node=this;node&&node!==stayWithin&&node!==this.ownerDocument;node=node.parentNode)
-if(node.nodeType===Node.ELEMENT_NODE&&node.hasStyleClass(className))
+if(node.nodeType===Node.ELEMENT_NODE&&node.classList.contains(className))
 return node;return null;}
 Element.prototype.query=function(query)
 {return this.ownerDocument.evaluate(query,this,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}
@@ -393,7 +409,9 @@
 return{left:curLeft,top:curTop};}
 function AnchorBox(x,y,width,height)
 {this.x=x||0;this.y=y||0;this.width=width||0;this.height=height||0;}
-Element.prototype.offsetRelativeToWindow=function(targetWindow)
+AnchorBox.prototype.relativeTo=function(box)
+{return new AnchorBox(this.x-box.x,this.y-box.y,this.width,this.height);};AnchorBox.prototype.relativeToElement=function(element)
+{return this.relativeTo(element.boxInWindow(element.ownerDocument.defaultView));};Element.prototype.offsetRelativeToWindow=function(targetWindow)
 {var elementOffset=new AnchorBox();var curElement=this;var curWindow=this.ownerDocument.defaultView;while(curWindow&&curElement){elementOffset.x+=curElement.totalOffsetLeft();elementOffset.y+=curElement.totalOffsetTop();if(curWindow===targetWindow)
 break;curElement=curWindow.frameElement;curWindow=curWindow.parent;}
 return elementOffset;}
@@ -550,7 +568,7 @@
 TreeOutline.prototype.revealAndSelect=function(omitFocus)
 {}
 function TreeElement(title,representedObject,hasChildren)
-{this._title=title;this.representedObject=(representedObject||{});this._hidden=false;this._selectable=true;this.expanded=false;this.selected=false;this.hasChildren=hasChildren;this.children=[];this.treeOutline=null;this.parent=null;this.previousSibling=null;this.nextSibling=null;this._listItemNode=null;}
+{this._title=title;this.representedObject=(representedObject||{});this.root=false;this._hidden=false;this._selectable=true;this.expanded=false;this.selected=false;this.hasChildren=hasChildren;this.children=[];this.treeOutline=null;this.parent=null;this.previousSibling=null;this.nextSibling=null;this._listItemNode=null;}
 TreeElement.prototype={arrowToggleWidth:10,get selectable(){if(this._hidden)
 return false;return this._selectable;},set selectable(x){this._selectable=x;},get listItemElement(){return this._listItemNode;},get childrenListElement(){return this._childrenListNode;},get title(){return this._title;},set title(x){this._title=x;this._setListItemNodeContent();},get tooltip(){return this._tooltip;},set tooltip(x){this._tooltip=x;if(this._listItemNode)
 this._listItemNode.title=x?x:"";},get hasChildren(){return this._hasChildren;},set hasChildren(x){if(this._hasChildren===x)
@@ -631,7 +649,7 @@
 TreeElement.prototype.reveal=function()
 {var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor.root){if(!currentAncestor.expanded)
 currentAncestor.expand();currentAncestor=currentAncestor.parent;}
-this.onreveal(this);}
+this.onreveal();}
 TreeElement.prototype.revealed=function()
 {var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor.root){if(!currentAncestor.expanded)
 return false;currentAncestor=currentAncestor.parent;}
@@ -653,15 +671,15 @@
 return false;this.selected=false;this.treeOutline.selectedTreeElement=null;if(this._listItemNode)
 this._listItemNode.classList.remove("selected");return true;}
 TreeElement.prototype.onpopulate=function(){}
-TreeElement.prototype.onenter=function(){}
-TreeElement.prototype.ondelete=function(){}
-TreeElement.prototype.onspace=function(){}
+TreeElement.prototype.onenter=function(){return false;}
+TreeElement.prototype.ondelete=function(){return false;}
+TreeElement.prototype.onspace=function(){return false;}
 TreeElement.prototype.onattach=function(){}
 TreeElement.prototype.onexpand=function(){}
 TreeElement.prototype.oncollapse=function(){}
-TreeElement.prototype.ondblclick=function(){}
+TreeElement.prototype.ondblclick=function(e){return false;}
 TreeElement.prototype.onreveal=function(){}
-TreeElement.prototype.onselect=function(selectedByUser){}
+TreeElement.prototype.onselect=function(selectedByUser){return false;}
 TreeElement.prototype.traverseNextTreeElement=function(skipUnrevealed,stayWithin,dontPopulate,info)
 {if(!dontPopulate&&this.hasChildren)
 this.onpopulate();if(info)
@@ -682,44 +700,32 @@
 return null;return this.parent;}
 TreeElement.prototype.isEventWithinDisclosureTriangle=function(event)
 {var paddingLeftValue=window.getComputedStyle(this._listItemNode).getPropertyCSSValue("padding-left");var computedLeftPadding=paddingLeftValue?paddingLeftValue.getFloatValue(CSSPrimitiveValue.CSS_PX):0;var left=this._listItemNode.totalOffsetLeft()+computedLeftPadding;return event.pageX>=left&&event.pageX<=left+this.arrowToggleWidth&&this.hasChildren;}
-var WebInspector={_panelDescriptors:function()
-{this.panels={};WebInspector.inspectorView=new WebInspector.InspectorView();WebInspector.inspectorView.show(document.body);var elements=new WebInspector.ElementsPanelDescriptor();var network=new WebInspector.NetworkPanelDescriptor();var sources=new WebInspector.SourcesPanelDescriptor();var timeline=new WebInspector.TimelinePanelDescriptor();var profiles=new WebInspector.ProfilesPanelDescriptor();var resources=new WebInspector.PanelDescriptor("resources",WebInspector.UIString("Resources"),"ResourcesPanel","ResourcesPanel.js");var audits=new WebInspector.PanelDescriptor("audits",WebInspector.UIString("Audits"),"AuditsPanel","AuditsPanel.js");var console=new WebInspector.PanelDescriptor("console",WebInspector.UIString("Console"),"ConsolePanel");if(WebInspector.WorkerManager.isWorkerFrontend())
-return[sources,timeline,profiles,console];var panelDescriptors=[elements,network,sources,timeline,profiles,resources,audits,console];if(WebInspector.experimentsSettings.layersPanel.isEnabled()){var layers=new WebInspector.LayersPanelDescriptor();panelDescriptors.push(layers);}
-return panelDescriptors;},_createGlobalStatusBarItems:function()
+var WebInspector={_registerPanelModules:function()
+{if(!WebInspector.WorkerManager.isWorkerFrontend())
+new WebInspector.ElementsPanelDescriptor();if(!WebInspector.WorkerManager.isWorkerFrontend())
+new WebInspector.NetworkPanelDescriptor();new WebInspector.SourcesPanelDescriptor();new WebInspector.TimelinePanelDescriptor();new WebInspector.ProfilesPanelDescriptor();if(!WebInspector.WorkerManager.isWorkerFrontend()){WebInspector.moduleManager.registerModule({name:"ResourcesPanel",extensions:[{type:"@WebInspector.Panel",name:"resources",title:"Resources",order:5,className:"WebInspector.ResourcesPanel"}],scripts:["ResourcesPanel.js"]});}
+if(!WebInspector.WorkerManager.isWorkerFrontend())
+new WebInspector.AuditsPanelDescriptor();WebInspector.moduleManager.registerModule({name:"ConsolePanel",extensions:[{type:"@WebInspector.Panel",name:"console",title:"Console",order:10,className:"WebInspector.ConsolePanel"},{type:"@WebInspector.Drawer.ViewFactory",name:"console",title:"Console",order:"0",className:"WebInspector.ConsolePanel.ViewFactory"}]});if(WebInspector.experimentsSettings.layersPanel.isEnabled()&&!WebInspector.WorkerManager.isWorkerFrontend())
+new WebInspector.LayersPanelDescriptor();},_createGlobalStatusBarItems:function()
 {if(this.inspectElementModeController)
-this.inspectorView.appendToLeftToolbar(this.inspectElementModeController.toggleSearchButton.element);if(Capabilities.canScreencast){this._toggleScreencastButton=new WebInspector.StatusBarButton(WebInspector.UIString("Toggle screencast."),"screencast-status-bar-item");this._toggleScreencastButton.addEventListener("click",this._toggleScreencastButtonClicked.bind(this),false);this.inspectorView.appendToLeftToolbar(this._toggleScreencastButton.element);}
-this.inspectorView.appendToRightToolbar(this.settingsController.statusBarItem);if(!WebInspector.queryParamsObject["remoteFrontend"])
-this.inspectorView.appendToRightToolbar(this.dockController.element);var closeButtonToolbarItem=document.createElementWithClass("div","toolbar-close-button-item");var closeButtonElement=closeButtonToolbarItem.createChild("div","close-button");closeButtonElement.addEventListener("click",WebInspector.close.bind(WebInspector),true);this.inspectorView.appendToRightToolbar(closeButtonToolbarItem);},isInspectingDevice:function()
-{return!!WebInspector.queryParamsObject["remoteFrontend"];},_toggleScreencastButtonClicked:function()
-{this._toggleScreencastButton.toggled=!this._toggleScreencastButton.toggled;WebInspector.settings.screencastEnabled.set(this._toggleScreencastButton.toggled);if(this._toggleScreencastButton.toggled){if(!this._screencastView){this._screencastView=new WebInspector.ScreencastView();this._screencastSplitView=new WebInspector.SplitView(true,WebInspector.settings.screencastSidebarWidth.name);this._screencastSplitView.markAsRoot();this._screencastSplitView.show(document.body);this._screencastView.show(this._screencastSplitView.firstElement());this.inspectorView.element.remove();this.inspectorView.show(this._screencastSplitView.secondElement());}
-this._screencastSplitView.showBoth();}else{this._screencastSplitView.showOnlySecond();}},showConsole:function()
+this.inspectorView.appendToLeftToolbar(this.inspectElementModeController.toggleSearchButton.element);this.inspectorView.appendToRightToolbar(this.settingsController.statusBarItem);if(this.dockController.element)
+this.inspectorView.appendToRightToolbar(this.dockController.element);if(Capabilities.canScreencast){var placeholder=document.createElement("div");this._screencastView=new WebInspector.ScreencastView(placeholder);this.inspectorView.appendToRightToolbar(placeholder);}},isInspectingDevice:function()
+{return!!WebInspector.queryParamsObject["remoteFrontend"];},showConsole:function()
 {if(this.consoleView.isShowing()&&!WebInspector.inspectorView.drawer().isHiding())
 return;this.inspectorView.showViewInDrawer("console");},_resetErrorAndWarningCounts:function()
-{var errorWarningElement=document.getElementById("error-warning-count");if(!errorWarningElement)
-return;errorWarningElement.addStyleClass("hidden");},_updateErrorAndWarningCounts:function()
-{var errors=WebInspector.console.errors;var warnings=WebInspector.console.warnings;if(!errors&&!warnings){this._resetErrorAndWarningCounts();return;}
-var errorWarningElement=document.getElementById("error-warning-count");if(!errorWarningElement)
-return;errorWarningElement.removeStyleClass("hidden");errorWarningElement.removeChildren();if(errors){var errorImageElement=errorWarningElement.createChild("div","error-icon-small");var errorElement=errorWarningElement.createChild("span");errorElement.id="error-count";errorElement.textContent=errors;}
-if(warnings){var warningsImageElement=errorWarningElement.createChild("div","warning-icon-small");var warningsElement=errorWarningElement.createChild("span");warningsElement.id="warning-count";warningsElement.textContent=warnings;}
-if(errors){if(warnings){if(errors==1){if(warnings==1)
-errorWarningElement.title=WebInspector.UIString("%d error, %d warning",errors,warnings);else
-errorWarningElement.title=WebInspector.UIString("%d error, %d warnings",errors,warnings);}else if(warnings==1)
-errorWarningElement.title=WebInspector.UIString("%d errors, %d warning",errors,warnings);else
-errorWarningElement.title=WebInspector.UIString("%d errors, %d warnings",errors,warnings);}else if(errors==1)
-errorWarningElement.title=WebInspector.UIString("%d error",errors);else
-errorWarningElement.title=WebInspector.UIString("%d errors",errors);}else if(warnings==1)
-errorWarningElement.title=WebInspector.UIString("%d warning",warnings);else if(warnings)
-errorWarningElement.title=WebInspector.UIString("%d warnings",warnings);else
-errorWarningElement.title=null;},get inspectedPageDomain()
+{WebInspector.inspectorView.setErrorAndWarningCounts(0,0);},_updateErrorAndWarningCounts:function()
+{var errors=WebInspector.console.errors;var warnings=WebInspector.console.warnings;WebInspector.inspectorView.setErrorAndWarningCounts(errors,warnings);},get inspectedPageDomain()
 {var parsedURL=WebInspector.inspectedPageURL&&WebInspector.inspectedPageURL.asParsedURL();return parsedURL?parsedURL.host:"";},_initializeCapability:function(name,callback,error,result)
 {Capabilities[name]=result;if(callback)
 callback();},_zoomIn:function()
 {this._zoomLevel=Math.min(this._zoomLevel+1,WebInspector.Zoom.Table.length-WebInspector.Zoom.DefaultOffset-1);this._requestZoom();},_zoomOut:function()
 {this._zoomLevel=Math.max(this._zoomLevel-1,-WebInspector.Zoom.DefaultOffset);this._requestZoom();},_resetZoom:function()
-{this._zoomLevel=0;this._requestZoom();},_requestZoom:function()
-{WebInspector.settings.zoomLevel.set(this._zoomLevel);var index=this._zoomLevel+WebInspector.Zoom.DefaultOffset;index=Math.min(WebInspector.Zoom.Table.length-1,index);index=Math.max(0,index);InspectorFrontendHost.setZoomFactor(WebInspector.Zoom.Table[index]);},_debuggerPaused:function()
+{this._zoomLevel=0;this._requestZoom();},_adjustExternalZoomFactor:function()
+{var realZoomFactor=InspectorFrontendHost.zoomFactor();var expectedZoomFactor=this.zoomFactor();if(Math.abs(realZoomFactor-expectedZoomFactor)>1e-3){WebInspector.settings.externalZoomFactor.set(realZoomFactor);this._requestZoom();}},zoomFactor:function()
+{var index=this._zoomLevel+WebInspector.Zoom.DefaultOffset;index=Math.min(WebInspector.Zoom.Table.length-1,index);index=Math.max(0,index);return WebInspector.Zoom.Table[index]*WebInspector.settings.externalZoomFactor.get();},_requestZoom:function()
+{WebInspector.settings.zoomLevel.set(this._zoomLevel);InspectorFrontendHost.setZoomFactor(this.zoomFactor());},_debuggerPaused:function()
 {this.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPaused,this);WebInspector.showPanel("sources");}}
-WebInspector.Events={InspectorLoaded:"InspectorLoaded",InspectorClosing:"InspectorClosing"}
+WebInspector.Events={InspectorLoaded:"InspectorLoaded"}
 {(function parseQueryParameters()
 {WebInspector.queryParamsObject={};var queryParams=window.location.search;if(!queryParams)
 return;var params=queryParams.substring(1).split("&");for(var i=0;i<params.length;++i){var pair=params[i].split("=");WebInspector.queryParamsObject[pair[0]]=pair[1];}})();}
@@ -745,35 +751,34 @@
 WebInspector.doLoadedDone();if(InspectorFrontendHost.isStub){InspectorFrontendAPI.dispatchQueryParameters(WebInspector.queryParamsObject);WebInspector._doLoadedDoneWithCapabilities();}}
 WebInspector.doLoadedDone=function()
 {WebInspector.installPortStyles();if(WebInspector.socket)
-document.body.addStyleClass("remote");if(WebInspector.queryParamsObject.toolbarColor&&WebInspector.queryParamsObject.textColor)
+document.body.classList.add("remote");if(WebInspector.queryParamsObject.toolbarColor&&WebInspector.queryParamsObject.textColor)
 WebInspector.setToolbarColors(WebInspector.queryParamsObject.toolbarColor,WebInspector.queryParamsObject.textColor);WebInspector.WorkerManager.loaded();PageAgent.canScreencast(WebInspector._initializeCapability.bind(WebInspector,"canScreencast",null));WorkerAgent.canInspectWorkers(WebInspector._initializeCapability.bind(WebInspector,"canInspectWorkers",WebInspector._doLoadedDoneWithCapabilities.bind(WebInspector)));}
 WebInspector._doLoadedDoneWithCapabilities=function()
-{new WebInspector.VersionController().updateVersion();WebInspector.shortcutsScreen=new WebInspector.ShortcutsScreen();this._registerShortcuts();WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));this.console=new WebInspector.ConsoleModel();this.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._resetErrorAndWarningCounts,this);this.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._updateErrorAndWarningCounts,this);this.console.addEventListener(WebInspector.ConsoleModel.Events.RepeatCountUpdated,this._updateErrorAndWarningCounts,this);this.networkManager=new WebInspector.NetworkManager();this.resourceTreeModel=new WebInspector.ResourceTreeModel(this.networkManager);this.debuggerModel=new WebInspector.DebuggerModel();this.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPaused,this);this.networkLog=new WebInspector.NetworkLog();this.domAgent=new WebInspector.DOMAgent();this.domAgent.addEventListener(WebInspector.DOMAgent.Events.InspectNodeRequested,this._inspectNodeRequested,this);this.runtimeModel=new WebInspector.RuntimeModel(this.resourceTreeModel);var panelDescriptors=this._panelDescriptors();this.advancedSearchController=new WebInspector.AdvancedSearchController();for(var i=0;i<panelDescriptors.length;++i)
-panelDescriptors[i].registerShortcuts();WebInspector.CSSMetadata.requestCSSShorthandData();this.consoleView=new WebInspector.ConsoleView(WebInspector.WorkerManager.isWorkerFrontend());InspectorBackend.registerInspectorDispatcher(this);this.isolatedFileSystemManager=new WebInspector.IsolatedFileSystemManager();this.isolatedFileSystemDispatcher=new WebInspector.IsolatedFileSystemDispatcher(this.isolatedFileSystemManager);this.workspace=new WebInspector.Workspace(this.isolatedFileSystemManager.mapping());this.cssModel=new WebInspector.CSSStyleModel(this.workspace);this.timelineManager=new WebInspector.TimelineManager();this.profileManager=new WebInspector.ProfileManager();this.tracingAgent=new WebInspector.TracingAgent();this.searchController=new WebInspector.SearchController();if(!WebInspector.WorkerManager.isWorkerFrontend())
-this.inspectElementModeController=new WebInspector.InspectElementModeController();this.settingsController=new WebInspector.SettingsController();this.domBreakpointsSidebarPane=new WebInspector.DOMBreakpointsSidebarPane();this._zoomLevel=WebInspector.settings.zoomLevel.get();if(this._zoomLevel)
-this._requestZoom();var autoselectPanel=WebInspector.UIString("a panel chosen automatically");var openAnchorLocationSetting=WebInspector.settings.createSetting("openLinkHandler",autoselectPanel);this.openAnchorLocationRegistry=new WebInspector.HandlerRegistry(openAnchorLocationSetting);this.openAnchorLocationRegistry.registerHandler(autoselectPanel,function(){return false;});this.workspaceController=new WebInspector.WorkspaceController(this.workspace);this.fileSystemWorkspaceProvider=new WebInspector.FileSystemWorkspaceProvider(this.isolatedFileSystemManager,this.workspace);this.networkWorkspaceProvider=new WebInspector.SimpleWorkspaceProvider(this.workspace,WebInspector.projectTypes.Network);new WebInspector.NetworkUISourceCodeProvider(this.networkWorkspaceProvider,this.workspace);this.breakpointManager=new WebInspector.BreakpointManager(WebInspector.settings.breakpoints,this.debuggerModel,this.workspace);this.scriptSnippetModel=new WebInspector.ScriptSnippetModel(this.workspace);this.overridesSupport=new WebInspector.OverridesSupport();this.overridesSupport.applyInitialOverrides();new WebInspector.DebuggerScriptMapping(this.workspace,this.networkWorkspaceProvider);this.liveEditSupport=new WebInspector.LiveEditSupport(this.workspace);new WebInspector.CSSStyleSheetMapping(this.cssModel,this.workspace,this.networkWorkspaceProvider);new WebInspector.PresentationConsoleMessageHelper(this.workspace);this._createGlobalStatusBarItems();WebInspector.startBatchUpdate();for(var i=0;i<panelDescriptors.length;++i)
-WebInspector.inspectorView.addPanel(panelDescriptors[i]);WebInspector.endBatchUpdate();this.addMainEventListeners(document);window.addEventListener("resize",this.windowResize.bind(this),true);var errorWarningCount=document.getElementById("error-warning-count");errorWarningCount.addEventListener("click",this.showConsole.bind(this),false);this._updateErrorAndWarningCounts();this.extensionServer.initExtensions();this.console.enableAgent();InspectorAgent.enable(WebInspector.inspectorView.showInitialPanel.bind(WebInspector.inspectorView));this.databaseModel=new WebInspector.DatabaseModel();this.domStorageModel=new WebInspector.DOMStorageModel();ProfilerAgent.enable();HeapProfilerAgent.enable();WebInspector.settings.forceCompositingMode=WebInspector.settings.createBackendSetting("forceCompositingMode",false,PageAgent.setForceCompositingMode.bind(PageAgent));WebInspector.settings.showPaintRects=WebInspector.settings.createBackendSetting("showPaintRects",false,PageAgent.setShowPaintRects.bind(PageAgent));WebInspector.settings.showDebugBorders=WebInspector.settings.createBackendSetting("showDebugBorders",false,PageAgent.setShowDebugBorders.bind(PageAgent));WebInspector.settings.continuousPainting=WebInspector.settings.createBackendSetting("continuousPainting",false,PageAgent.setContinuousPaintingEnabled.bind(PageAgent));WebInspector.settings.showFPSCounter=WebInspector.settings.createBackendSetting("showFPSCounter",false,PageAgent.setShowFPSCounter.bind(PageAgent));WebInspector.settings.showScrollBottleneckRects=WebInspector.settings.createBackendSetting("showScrollBottleneckRects",false,PageAgent.setShowScrollBottleneckRects.bind(PageAgent));WebInspector.settings.showMetricsRulers.addChangeListener(showRulersChanged);function showRulersChanged()
+{new WebInspector.VersionController().updateVersion();WebInspector.shortcutsScreen=new WebInspector.ShortcutsScreen();this._registerShortcuts();WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));WebInspector.ShortcutsScreen.registerShortcuts();this.console=new WebInspector.ConsoleModel();this.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._resetErrorAndWarningCounts,this);this.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._updateErrorAndWarningCounts,this);this.console.addEventListener(WebInspector.ConsoleModel.Events.RepeatCountUpdated,this._updateErrorAndWarningCounts,this);this.networkManager=new WebInspector.NetworkManager();this.resourceTreeModel=new WebInspector.ResourceTreeModel(this.networkManager);this.debuggerModel=new WebInspector.DebuggerModel();this.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPaused,this);this.networkLog=new WebInspector.NetworkLog();this.domAgent=new WebInspector.DOMAgent();this.domAgent.addEventListener(WebInspector.DOMAgent.Events.InspectNodeRequested,this._inspectNodeRequested,this);this.runtimeModel=new WebInspector.RuntimeModel(this.resourceTreeModel);this._zoomLevel=WebInspector.settings.zoomLevel.get();WebInspector.settings.externalZoomFactor.set(InspectorFrontendHost.zoomFactor());if(this._zoomLevel)
+this._requestZoom();this.advancedSearchController=new WebInspector.AdvancedSearchController();WebInspector.CSSMetadata.requestCSSShorthandData();this.consoleView=new WebInspector.ConsoleView(WebInspector.WorkerManager.isWorkerFrontend());InspectorBackend.registerInspectorDispatcher(this);this.isolatedFileSystemManager=new WebInspector.IsolatedFileSystemManager();this.isolatedFileSystemDispatcher=new WebInspector.IsolatedFileSystemDispatcher(this.isolatedFileSystemManager);this.workspace=new WebInspector.Workspace(this.isolatedFileSystemManager.mapping());this.cssModel=new WebInspector.CSSStyleModel(this.workspace);this.timelineManager=new WebInspector.TimelineManager();this.tracingAgent=new WebInspector.TracingAgent();if(!WebInspector.WorkerManager.isWorkerFrontend())
+this.inspectElementModeController=new WebInspector.InspectElementModeController();this.settingsController=new WebInspector.SettingsController();this.domBreakpointsSidebarPane=new WebInspector.DOMBreakpointsSidebarPane();var autoselectPanel=WebInspector.UIString("a panel chosen automatically");var openAnchorLocationSetting=WebInspector.settings.createSetting("openLinkHandler",autoselectPanel);this.openAnchorLocationRegistry=new WebInspector.HandlerRegistry(openAnchorLocationSetting);this.openAnchorLocationRegistry.registerHandler(autoselectPanel,function(){return false;});new WebInspector.WorkspaceController(this.workspace);this.fileSystemWorkspaceProvider=new WebInspector.FileSystemWorkspaceProvider(this.isolatedFileSystemManager,this.workspace);this.networkWorkspaceProvider=new WebInspector.SimpleWorkspaceProvider(this.workspace,WebInspector.projectTypes.Network);new WebInspector.NetworkUISourceCodeProvider(this.networkWorkspaceProvider,this.workspace);this.breakpointManager=new WebInspector.BreakpointManager(WebInspector.settings.breakpoints,this.debuggerModel,this.workspace);this.scriptSnippetModel=new WebInspector.ScriptSnippetModel(this.workspace);this.overridesSupport=new WebInspector.OverridesSupport();this.overridesSupport.applyInitialOverrides();new WebInspector.DebuggerScriptMapping(this.workspace,this.networkWorkspaceProvider);this.liveEditSupport=new WebInspector.LiveEditSupport(this.workspace);new WebInspector.CSSStyleSheetMapping(this.cssModel,this.workspace,this.networkWorkspaceProvider);new WebInspector.PresentationConsoleMessageHelper(this.workspace);WebInspector.settings.initializeBackendSettings();this._registerPanelModules();this.panels={};WebInspector.inspectorView=new WebInspector.InspectorView();WebInspector.inspectorView.show(document.body);this._createGlobalStatusBarItems();if(this.overridesSupport.hasActiveOverrides()){if(!WebInspector.settings.showEmulationViewInDrawer.get())
+WebInspector.settings.showEmulationViewInDrawer.set(true);WebInspector.inspectorView.showViewInDrawer("emulation");}
+this.addMainEventListeners(document);window.addEventListener("resize",this.windowResize.bind(this),true);var errorWarningCount=document.getElementById("error-warning-count");errorWarningCount.addEventListener("click",this.showConsole.bind(this),false);this._updateErrorAndWarningCounts();this.extensionServer.initExtensions();this.console.enableAgent();InspectorAgent.enable(WebInspector.inspectorView.showInitialPanel.bind(WebInspector.inspectorView));this.databaseModel=new WebInspector.DatabaseModel();this.domStorageModel=new WebInspector.DOMStorageModel();this.cpuProfilerModel=new WebInspector.CPUProfilerModel();HeapProfilerAgent.enable();if(WebInspector.settings.showPaintRects.get()||WebInspector.settings.showDebugBorders.get()||WebInspector.settings.continuousPainting.get()||WebInspector.settings.showFPSCounter.get()||WebInspector.settings.showScrollBottleneckRects.get()){WebInspector.settings.showRenderingViewInDrawer.set(true);}
+WebInspector.settings.showMetricsRulers.addChangeListener(showRulersChanged);function showRulersChanged()
 {PageAgent.setShowViewportSizeOnResize(true,WebInspector.settings.showMetricsRulers.get());}
-showRulersChanged();WebInspector.WorkerManager.loadCompleted();InspectorFrontendAPI.loadCompleted();if(Capabilities.canScreencast&&WebInspector.settings.screencastEnabled.get())
-this._toggleScreencastButtonClicked();WebInspector.notifications.dispatchEventToListeners(WebInspector.Events.InspectorLoaded);}
+showRulersChanged();WebInspector.WorkerManager.loadCompleted();InspectorFrontendAPI.loadCompleted();if(Capabilities.canScreencast)
+this._screencastView.initialize();WebInspector.notifications.dispatchEventToListeners(WebInspector.Events.InspectorLoaded);}
 var windowLoaded=function()
 {WebInspector.loaded();window.removeEventListener("DOMContentLoaded",windowLoaded,false);delete windowLoaded;};window.addEventListener("DOMContentLoaded",windowLoaded,false);var messagesToDispatch=[];WebInspector.dispatchQueueIsEmpty=function(){return messagesToDispatch.length==0;}
 WebInspector.dispatch=function(message){messagesToDispatch.push(message);setTimeout(function(){InspectorBackend.dispatch(messagesToDispatch.shift());},0);}
 WebInspector.windowResize=function(event)
-{if(WebInspector.inspectorView)
+{this._adjustExternalZoomFactor();if(WebInspector.inspectorView)
 WebInspector.inspectorView.onResize();if(WebInspector.settingsController)
-WebInspector.settingsController.resize();if(WebInspector._screencastSplitView)
-WebInspector._screencastSplitView.doResize();}
+WebInspector.settingsController.resize();}
 WebInspector.close=function(event)
-{if(this._isClosing)
-return;this._isClosing=true;this.notifications.dispatchEventToListeners(WebInspector.Events.InspectorClosing);InspectorFrontendHost.closeWindow();}
+{InspectorFrontendHost.closeWindow();}
 WebInspector.documentClick=function(event)
 {var anchor=event.target.enclosingNodeOrSelfWithNodeName("a");if(!anchor||(anchor.target==="_blank"))
 return;event.consume(true);function followLink()
 {if(WebInspector.isBeingEdited(event.target))
 return;if(WebInspector.openAnchorLocationRegistry.dispatch({url:anchor.href,lineNumber:anchor.lineNumber}))
 return;if(WebInspector.showAnchorLocation(anchor))
-return;const profileMatch=WebInspector.ProfilesPanelDescriptor.ProfileURLRegExp.exec(anchor.href);if(profileMatch){WebInspector.showPanel("profiles").showProfile(profileMatch[1],profileMatch[2]);return;}
+return;const profileMatch=WebInspector.CPUProfilerModel.ProfileURLRegExp.exec(anchor.href);if(profileMatch){WebInspector.showPanel("profiles").showProfile(profileMatch[1],profileMatch[2]);return;}
 var parsedURL=anchor.href.asParsedURL();if(parsedURL&&parsedURL.scheme==="webkit-link-action"){if(parsedURL.host==="show-panel"){var panel=parsedURL.path.substring(1);if(WebInspector.panel(panel))
 WebInspector.showPanel(panel);}
 return;}
@@ -787,35 +792,28 @@
 WebInspector.showPanel("resources").showResource(resource);else
 InspectorFrontendHost.openInNewTab(resourceURL);}
 WebInspector._registerShortcuts=function()
-{var shortcut=WebInspector.KeyboardShortcut;var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("All Panels"));var keys=[shortcut.makeDescriptor("[",shortcut.Modifiers.CtrlOrMeta),shortcut.makeDescriptor("]",shortcut.Modifiers.CtrlOrMeta)];section.addRelatedKeys(keys,WebInspector.UIString("Go to the panel to the left/right"));keys=[shortcut.makeDescriptor("[",shortcut.Modifiers.CtrlOrMeta|shortcut.Modifiers.Alt),shortcut.makeDescriptor("]",shortcut.Modifiers.CtrlOrMeta|shortcut.Modifiers.Alt)];section.addRelatedKeys(keys,WebInspector.UIString("Go back/forward in panel history"));var toggleConsoleLabel=WebInspector.UIString("Toggle console");if(WebInspector.experimentsSettings.openConsoleWithCtrlTilde.isEnabled())
-section.addKey(shortcut.makeDescriptor(shortcut.Keys.Esc),toggleConsoleLabel);else
-section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tilde,shortcut.Modifiers.CtrlOrMeta),toggleConsoleLabel);section.addKey(shortcut.makeDescriptor("f",shortcut.Modifiers.CtrlOrMeta),WebInspector.UIString("Search"));var advancedSearchShortcut=WebInspector.AdvancedSearchController.createShortcut();section.addKey(advancedSearchShortcut,WebInspector.UIString("Search across all sources"));var inspectElementModeShortcut=WebInspector.InspectElementModeController.createShortcut();section.addKey(inspectElementModeShortcut,WebInspector.UIString("Select node to inspect"));var openResourceShortcut=WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);section.addKey(openResourceShortcut,WebInspector.UIString("Go to source"));if(WebInspector.isMac()){keys=[shortcut.makeDescriptor("g",shortcut.Modifiers.Meta),shortcut.makeDescriptor("g",shortcut.Modifiers.Meta|shortcut.Modifiers.Shift)];section.addRelatedKeys(keys,WebInspector.UIString("Find next/previous"));}
+{var shortcut=WebInspector.KeyboardShortcut;var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("All Panels"));var keys=[shortcut.makeDescriptor("[",shortcut.Modifiers.CtrlOrMeta),shortcut.makeDescriptor("]",shortcut.Modifiers.CtrlOrMeta)];section.addRelatedKeys(keys,WebInspector.UIString("Go to the panel to the left/right"));keys=[shortcut.makeDescriptor("[",shortcut.Modifiers.CtrlOrMeta|shortcut.Modifiers.Alt),shortcut.makeDescriptor("]",shortcut.Modifiers.CtrlOrMeta|shortcut.Modifiers.Alt)];section.addRelatedKeys(keys,WebInspector.UIString("Go back/forward in panel history"));var toggleConsoleLabel=WebInspector.UIString("Show console");section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tilde,shortcut.Modifiers.Ctrl),toggleConsoleLabel);var doNotOpenDrawerOnEsc=WebInspector.experimentsSettings.doNotOpenDrawerOnEsc.isEnabled();var toggleDrawerLabel=doNotOpenDrawerOnEsc?WebInspector.UIString("Hide drawer"):WebInspector.UIString("Toggle drawer");section.addKey(shortcut.makeDescriptor(shortcut.Keys.Esc),toggleDrawerLabel);section.addKey(shortcut.makeDescriptor("f",shortcut.Modifiers.CtrlOrMeta),WebInspector.UIString("Search"));var advancedSearchShortcut=WebInspector.AdvancedSearchController.createShortcut();section.addKey(advancedSearchShortcut,WebInspector.UIString("Search across all sources"));var inspectElementModeShortcut=WebInspector.InspectElementModeController.createShortcut();section.addKey(inspectElementModeShortcut,WebInspector.UIString("Select node to inspect"));var openResourceShortcut=WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);section.addKey(openResourceShortcut,WebInspector.UIString("Go to source"));if(WebInspector.isMac()){keys=[shortcut.makeDescriptor("g",shortcut.Modifiers.Meta),shortcut.makeDescriptor("g",shortcut.Modifiers.Meta|shortcut.Modifiers.Shift)];section.addRelatedKeys(keys,WebInspector.UIString("Find next/previous"));}
 var goToShortcut=WebInspector.GoToLineDialog.createShortcut();section.addKey(goToShortcut,WebInspector.UIString("Go to line"));keys=[shortcut.Keys.F1,shortcut.makeDescriptor("?")];section.addAlternateKeys(keys,WebInspector.UIString("Show general settings"));}
-WebInspector.documentKeyDown=function(event)
-{if(WebInspector.currentFocusElement()&&WebInspector.currentFocusElement().handleKeyEvent){WebInspector.currentFocusElement().handleKeyEvent(event);if(event.handled){event.consume(true);return;}}
-if(WebInspector.inspectorView.currentPanel()){WebInspector.inspectorView.currentPanel().handleShortcut(event);if(event.handled){event.consume(true);return;}}
-if(WebInspector.searchController.handleShortcut(event))
-return;if(WebInspector.advancedSearchController.handleShortcut(event))
+WebInspector.postDocumentKeyDown=function(event)
+{if(event.handled)
+return;if(WebInspector.inspectorView.currentPanel()){WebInspector.inspectorView.currentPanel().handleShortcut(event);if(event.handled){event.consume(true);return;}}
+if(WebInspector.advancedSearchController.handleShortcut(event))
 return;if(WebInspector.inspectElementModeController&&WebInspector.inspectElementModeController.handleShortcut(event))
 return;switch(event.keyIdentifier){case"U+004F":case"U+0050":if(!event.shiftKey&&!event.altKey&&WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)){WebInspector.showPanel("sources").showGoToSourceDialog();event.consume(true);}
-break;case"U+0052":if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)){WebInspector.debuggerModel.skipAllPauses(true,true);PageAgent.reload(event.shiftKey);event.consume(true);}
+break;case"U+0052":if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)){WebInspector.debuggerModel.skipAllPauses(true,true);WebInspector.resourceTreeModel.reloadPage(event.shiftKey);event.consume(true);}
 if(window.DEBUG&&event.altKey){WebInspector.reload();return;}
-break;case"F5":if(!WebInspector.isMac()){PageAgent.reload(event.ctrlKey||event.shiftKey);event.consume(true);}
+break;case"F5":if(!WebInspector.isMac()){WebInspector.resourceTreeModel.reloadPage(event.ctrlKey||event.shiftKey);event.consume(true);}
 break;}
-var isValidZoomShortcut=WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&!event.altKey&&!InspectorFrontendHost.isStub;switch(event.keyCode){case 107:case 187:if(isValidZoomShortcut){WebInspector._zoomIn();event.consume(true);}
-break;case 109:case 189:if(isValidZoomShortcut){WebInspector._zoomOut();event.consume(true);}
-break;case 48:if(isValidZoomShortcut&&!event.shiftKey){WebInspector._resetZoom();event.consume(true);}
-break;}}
-WebInspector.postDocumentKeyDown=function(event)
-{const helpKey=WebInspector.isMac()?"U+003F":"U+00BF";if(event.keyIdentifier==="F1"||(event.keyIdentifier===helpKey&&event.shiftKey&&(!WebInspector.isBeingEdited(event.target)||event.metaKey))){this.settingsController.showSettingsScreen(WebInspector.SettingsScreen.Tabs.General);event.consume(true);return;}
-const Esc="U+001B";if(event.handled)
-return;var openConsoleWithCtrlTildeEnabled=WebInspector.experimentsSettings.openConsoleWithCtrlTilde.isEnabled();if(event.keyIdentifier===Esc){if(WebInspector.searchController.isSearchVisible()){WebInspector.searchController.closeSearch();return;}
-if(this.inspectorView.drawer().visible())
-this.inspectorView.drawer().hide();else if(!openConsoleWithCtrlTildeEnabled)
+var isValidZoomShortcut=WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&!event.altKey&&!InspectorFrontendHost.isStub;switch(event.keyCode){case 107:case 187:if(isValidZoomShortcut){WebInspector._zoomIn();event.consume(true);return;}
+break;case 109:case 189:if(isValidZoomShortcut){WebInspector._zoomOut();event.consume(true);return;}
+break;case 48:case 96:if(isValidZoomShortcut&&!event.shiftKey){WebInspector._resetZoom();event.consume(true);return;}
+break;}
+if(event.keyCode===WebInspector.KeyboardShortcut.Keys.F1.code||(event.keyCode===WebInspector.KeyboardShortcut.Keys.QuestionMark.code&&event.shiftKey&&(!WebInspector.isBeingEdited(event.target)||event.metaKey))){this.settingsController.showSettingsScreen(WebInspector.SettingsScreen.Tabs.General);event.consume(true);return;}
+var Esc="U+001B";var doNotOpenDrawerOnEsc=WebInspector.experimentsSettings.doNotOpenDrawerOnEsc.isEnabled();if(event.keyIdentifier===Esc){if(this.inspectorView.drawer().visible())
+this.inspectorView.drawer().hide();else if(!doNotOpenDrawerOnEsc)
 this.inspectorView.drawer().show();}
-if(openConsoleWithCtrlTildeEnabled){if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Tilde.code&&WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)){if(this.inspectorView.drawer().visible())
-this.inspectorView.drawer().hide();else
-this.showConsole();}}}
+if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Tilde.code&&event.ctrlKey&&!event.shiftKey&&!event.altKey&&!event.metaKey)
+this.showConsole();}
 WebInspector.documentCanCopy=function(event)
 {if(WebInspector.inspectorView.currentPanel()&&WebInspector.inspectorView.currentPanel().handleCopyEvent)
 event.preventDefault();}
@@ -823,7 +821,7 @@
 {if(WebInspector.inspectorView.currentPanel()&&WebInspector.inspectorView.currentPanel().handleCopyEvent)
 WebInspector.inspectorView.currentPanel().handleCopyEvent(event);}
 WebInspector.contextMenuEventFired=function(event)
-{if(event.handled||event.target.hasStyleClass("popup-glasspane"))
+{if(event.handled||event.target.classList.contains("popup-glasspane"))
 event.preventDefault();}
 WebInspector.showPanel=function(panel)
 {return WebInspector.inspectorView.showPanel(panel);}
@@ -880,12 +878,12 @@
 return true;return false;}
 WebInspector._showAnchorLocationInPanel=function(anchor,panel)
 {if(!panel)
-return false;var result=panel.showAnchorLocation(anchor);if(result){if(anchor.hasStyleClass("webkit-html-external-link")){anchor.removeStyleClass("webkit-html-external-link");anchor.addStyleClass("webkit-html-resource-link");}}
+return false;var result=panel.showAnchorLocation(anchor);if(result){if(anchor.classList.contains("webkit-html-external-link")){anchor.classList.remove("webkit-html-external-link");anchor.classList.add("webkit-html-resource-link");}}
 return result;}
 WebInspector.evaluateInConsole=function(expression,showResultOnly)
 {this.showConsole();this.consoleView.evaluateUsingTextPrompt(expression,showResultOnly);}
 WebInspector.addMainEventListeners=function(doc)
-{doc.addEventListener("keydown",this.documentKeyDown.bind(this),true);doc.addEventListener("keydown",this.postDocumentKeyDown.bind(this),false);doc.addEventListener("beforecopy",this.documentCanCopy.bind(this),true);doc.addEventListener("copy",this.documentCopy.bind(this),false);doc.addEventListener("contextmenu",this.contextMenuEventFired.bind(this),true);doc.addEventListener("click",this.documentClick.bind(this),true);}
+{doc.addEventListener("keydown",this.postDocumentKeyDown.bind(this),false);doc.addEventListener("beforecopy",this.documentCanCopy.bind(this),true);doc.addEventListener("copy",this.documentCopy.bind(this),false);doc.addEventListener("contextmenu",this.contextMenuEventFired.bind(this),true);doc.addEventListener("click",this.documentClick.bind(this),true);}
 WebInspector.Zoom={Table:[0.25,0.33,0.5,0.66,0.75,0.9,1,1.1,1.25,1.5,1.75,2,2.5,3,4,5],DefaultOffset:6}
 function buildPlatformExtensionAPI(extensionInfo)
 {return"var extensionInfo = "+JSON.stringify(extensionInfo)+";"+"var tabId = "+WebInspector._inspectedTabId+";"+
@@ -896,7 +894,91 @@
 {return InspectorFrontendHost.getSelectionBackgroundColor();}
 WebInspector.getSelectionForegroundColor=function()
 {return InspectorFrontendHost.getSelectionForegroundColor();}
-window.DEBUG=true;WebInspector.UIString=function(string,vararg)
+window.DEBUG=true;WebInspector.ModuleManager=function()
+{this._modules=[];this._extensions=[];}
+WebInspector.ModuleManager.prototype={registerModule:function(json)
+{this._modules.push(new WebInspector.ModuleManager.Module(this,(json)));},extensions:function(type)
+{function filter(extension)
+{return extension._type===type||extension._typeClass===type;}
+return this._extensions.filter(filter);},instances:function(type)
+{function instantiate(extension)
+{return extension.instance();}
+return this.extensions(type).filter(instantiate).map(instantiate);},orderComparator:function(type,nameProperty,orderProperty)
+{var extensions=this.extensions(type);var orderForName={};for(var i=0;i<extensions.length;++i){var descriptor=extensions[i].descriptor();orderForName[descriptor[nameProperty]]=descriptor[orderProperty];}
+function result(name1,name2)
+{if(name1 in orderForName&&name2 in orderForName)
+return orderForName[name1]-orderForName[name2];if(name1 in orderForName)
+return-1;if(name2 in orderForName)
+return 1;return name1.compareTo(name2);}
+return result;}}
+WebInspector.ModuleManager.ModuleDescriptor=function()
+{this.name;this.extensions;this.scripts;}
+WebInspector.ModuleManager.ExtensionDescriptor=function()
+{this.type;this.className;this.contextTypes;}
+WebInspector.ModuleManager.Module=function(manager,descriptor)
+{this._manager=manager;this._descriptor=descriptor;this._name=descriptor.name;var extensions=(descriptor.extensions);for(var i=0;extensions&&i<extensions.length;++i)
+this._manager._extensions.push(new WebInspector.ModuleManager.Extension(this,extensions[i]));this._loaded=false;}
+WebInspector.ModuleManager.Module.prototype={name:function()
+{return this._name;},_load:function()
+{if(this._loaded)
+return;if(this._isLoading){var oldStackTraceLimit=Error.stackTraceLimit;Error.stackTraceLimit=50;console.assert(false,"Module "+this._name+" is loaded from itself: "+new Error().stack);Error.stackTraceLimit=oldStackTraceLimit;return;}
+this._isLoading=true;var scripts=this._descriptor.scripts;for(var i=0;scripts&&i<scripts.length;++i)
+loadScript(scripts[i]);this._isLoading=false;this._loaded=true;}}
+WebInspector.ModuleManager.Extension=function(module,descriptor)
+{this._module=module;this._descriptor=descriptor;this._type=descriptor.type;if(this._type.startsWith("@"))
+this._typeClass=(window.eval(this._type.substring(1)));this._className=descriptor.className||null;}
+WebInspector.ModuleManager.Extension.prototype={descriptor:function()
+{return this._descriptor;},module:function()
+{return this._module;},isApplicable:function(context)
+{var contextTypes=(this._descriptor.contextTypes);if(!contextTypes)
+return true;for(var i=0;i<contextTypes.length;++i){var contextType=(window.eval(contextTypes[i]));if(context instanceof contextType)
+return true;}
+return false;},instance:function()
+{if(!this._className)
+return null;if(!this._instance){this._module._load();var constructorFunction=window.eval(this._className);if(!(constructorFunction instanceof Function))
+return null;this._instance=new constructorFunction();}
+return this._instance;}}
+WebInspector.moduleManager=new WebInspector.ModuleManager();WebInspector.platform=function()
+{if(!WebInspector._platform)
+WebInspector._platform=InspectorFrontendHost.platform();return WebInspector._platform;}
+WebInspector.isMac=function()
+{if(typeof WebInspector._isMac==="undefined")
+WebInspector._isMac=WebInspector.platform()==="mac";return WebInspector._isMac;}
+WebInspector.isWin=function()
+{if(typeof WebInspector._isWin==="undefined")
+WebInspector._isWin=WebInspector.platform()==="windows";return WebInspector._isWin;}
+WebInspector.PlatformFlavor={WindowsVista:"windows-vista",MacTiger:"mac-tiger",MacLeopard:"mac-leopard",MacSnowLeopard:"mac-snowleopard",MacLion:"mac-lion"}
+WebInspector.platformFlavor=function()
+{function detectFlavor()
+{const userAgent=navigator.userAgent;if(WebInspector.platform()==="windows"){var match=userAgent.match(/Windows NT (\d+)\.(?:\d+)/);if(match&&match[1]>=6)
+return WebInspector.PlatformFlavor.WindowsVista;return null;}else if(WebInspector.platform()==="mac"){var match=userAgent.match(/Mac OS X\s*(?:(\d+)_(\d+))?/);if(!match||match[1]!=10)
+return WebInspector.PlatformFlavor.MacSnowLeopard;switch(Number(match[2])){case 4:return WebInspector.PlatformFlavor.MacTiger;case 5:return WebInspector.PlatformFlavor.MacLeopard;case 6:return WebInspector.PlatformFlavor.MacSnowLeopard;case 7:return WebInspector.PlatformFlavor.MacLion;case 8:case 9:default:return"";}}}
+if(!WebInspector._platformFlavor)
+WebInspector._platformFlavor=detectFlavor();return WebInspector._platformFlavor;}
+WebInspector.port=function()
+{if(!WebInspector._port)
+WebInspector._port=InspectorFrontendHost.port();return WebInspector._port;}
+WebInspector.Geometry={};WebInspector.Geometry._Eps=1e-5;WebInspector.Geometry.Vector=function(x,y,z)
+{this.x=x;this.y=y;this.z=z;}
+WebInspector.Geometry.Vector.prototype={length:function()
+{return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z);},normalize:function()
+{var length=this.length();if(length<=WebInspector.Geometry._Eps)
+return;this.x/=length;this.y/=length;this.z/=length;}}
+WebInspector.Geometry.EulerAngles=function(alpha,beta,gamma)
+{this.alpha=alpha;this.beta=beta;this.gamma=gamma;}
+WebInspector.Geometry.EulerAngles.fromRotationMatrix=function(rotationMatrix)
+{var beta=Math.atan2(rotationMatrix.m23,rotationMatrix.m33);var gamma=Math.atan2(-rotationMatrix.m13,Math.sqrt(rotationMatrix.m11*rotationMatrix.m11+rotationMatrix.m12*rotationMatrix.m12));var alpha=Math.atan2(rotationMatrix.m12,rotationMatrix.m11);return new WebInspector.Geometry.EulerAngles(WebInspector.Geometry.radToDeg(alpha),WebInspector.Geometry.radToDeg(beta),WebInspector.Geometry.radToDeg(gamma));}
+WebInspector.Geometry.scalarProduct=function(u,v)
+{return u.x*v.x+u.y*v.y+u.z*v.z;}
+WebInspector.Geometry.crossProduct=function(u,v)
+{var x=u.y*v.z-u.z*v.y;var y=u.z*v.x-u.x*v.z;var z=u.x*v.y-u.y*v.x;return new WebInspector.Geometry.Vector(x,y,z);}
+WebInspector.Geometry.calculateAngle=function(u,v)
+{var uLength=u.length();var vLength=v.length();if(uLength<=WebInspector.Geometry._Eps||vLength<=WebInspector.Geometry._Eps)
+return 0;var cos=WebInspector.Geometry.scalarProduct(u,v)/uLength/vLength;if(Math.abs(cos)>1)
+return 0;return WebInspector.Geometry.radToDeg(Math.acos(cos));}
+WebInspector.Geometry.radToDeg=function(rad)
+{return rad*180/Math.PI;}
+WebInspector.UIString=function(string,vararg)
 {return String.vsprintf(string,Array.prototype.slice.call(arguments,1));}
 function InspectorBackendClass()
 {this._lastCallbackId=1;this._pendingResponsesCount=0;this._callbacks={};this._domainDispatchers={};this._eventArgs={};this._replyArgs={};this._hasErrorData={};this.dumpInspectorTimeStats=false;this.dumpInspectorProtocolMessages=false;this._initialized=false;}
@@ -950,7 +1032,13 @@
 for(var id=0;id<scripts.length;++id)
 scripts[id].call(this);}},loadFromJSONIfNeeded:function(jsonUrl)
 {if(this._initialized)
-return;var xhr=new XMLHttpRequest();xhr.open("GET",jsonUrl,false);xhr.send(null);var schema=JSON.parse(xhr.responseText);var code=InspectorBackendClass._generateCommands(schema);eval(code);}}
+return;var xhr=new XMLHttpRequest();xhr.open("GET",jsonUrl,false);xhr.send(null);var schema=JSON.parse(xhr.responseText);var code=InspectorBackendClass._generateCommands(schema);eval(code);},wrapClientCallback:function(clientCallback,errorPrefix,constructor,defaultValue)
+{function callbackWrapper(error,value)
+{if(error){console.error(errorPrefix+error);clientCallback(defaultValue);return;}
+if(constructor)
+clientCallback(new constructor(value));else
+clientCallback(value);}
+return callbackWrapper;}}
 InspectorBackendClass._generateCommands=function(schema){var jsTypes={integer:"number",array:"object"};var rawTypes={};var result=[];var domains=schema["domains"]||[];for(var i=0;i<domains.length;++i){var domain=domains[i];for(var j=0;domain.types&&j<domain.types.length;++j){var type=domain.types[j];rawTypes[domain.domain+"."+type.id]=jsTypes[type.type]||type.type;}}
 function toUpperCase(groupIndex,group0,group1)
 {return[group0,group1][groupIndex].toUpperCase();}
@@ -972,7 +1060,7 @@
 result.push("InspectorBackend.registerEvent(\""+domain.domain+"."+event.name+"\", ["+paramsText.join(", ")+"]);");}
 result.push("InspectorBackend.register"+domain.domain+"Dispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, \""+domain.domain+"\");");}
 return result.join("\n");}
-InspectorBackend=new InspectorBackendClass();InspectorBackend.registerInspectorDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Inspector");InspectorBackend.registerEvent("Inspector.evaluateForTestInFrontend",["testCallId","script"]);InspectorBackend.registerEvent("Inspector.inspect",["object","hints"]);InspectorBackend.registerEvent("Inspector.detached",["reason"]);InspectorBackend.registerEvent("Inspector.targetCrashed",[]);InspectorBackend.registerCommand("Inspector.enable",[],[],false);InspectorBackend.registerCommand("Inspector.disable",[],[],false);InspectorBackend.registerCommand("Inspector.reset",[],[],false);InspectorBackend.registerMemoryDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Memory");InspectorBackend.registerEvent("Memory.addNativeSnapshotChunk",["chunk"]);InspectorBackend.registerCommand("Memory.getDOMCounters",[],["documents","nodes","jsEventListeners"],false);InspectorBackend.registerPageDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Page");InspectorBackend.registerEnum("Page.ResourceType",{Document:"Document",Stylesheet:"Stylesheet",Image:"Image",Font:"Font",Script:"Script",XHR:"XHR",WebSocket:"WebSocket",Other:"Other"});InspectorBackend.registerEvent("Page.domContentEventFired",["timestamp"]);InspectorBackend.registerEvent("Page.loadEventFired",["timestamp"]);InspectorBackend.registerEvent("Page.frameAttached",["frameId"]);InspectorBackend.registerEvent("Page.frameNavigated",["frame"]);InspectorBackend.registerEvent("Page.frameDetached",["frameId"]);InspectorBackend.registerEvent("Page.frameStartedLoading",["frameId"]);InspectorBackend.registerEvent("Page.frameStoppedLoading",["frameId"]);InspectorBackend.registerEvent("Page.frameScheduledNavigation",["frameId","delay"]);InspectorBackend.registerEvent("Page.frameClearedScheduledNavigation",["frameId"]);InspectorBackend.registerEvent("Page.javascriptDialogOpening",["message"]);InspectorBackend.registerEvent("Page.javascriptDialogClosed",[]);InspectorBackend.registerEvent("Page.scriptsEnabled",["isEnabled"]);InspectorBackend.registerEvent("Page.screencastFrame",["data","deviceScaleFactor","pageScaleFactor","viewport","offsetTop","offsetBottom"]);InspectorBackend.registerEvent("Page.screencastVisibilityChanged",["visible"]);InspectorBackend.registerCommand("Page.enable",[],[],false);InspectorBackend.registerCommand("Page.disable",[],[],false);InspectorBackend.registerCommand("Page.addScriptToEvaluateOnLoad",[{"name":"scriptSource","type":"string","optional":false}],["identifier"],false);InspectorBackend.registerCommand("Page.removeScriptToEvaluateOnLoad",[{"name":"identifier","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.reload",[{"name":"ignoreCache","type":"boolean","optional":true},{"name":"scriptToEvaluateOnLoad","type":"string","optional":true},{"name":"scriptPreprocessor","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Page.navigate",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.getNavigationHistory",[],["currentIndex","entries"],false);InspectorBackend.registerCommand("Page.navigateToHistoryEntry",[{"name":"entryId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Page.getCookies",[],["cookies","cookiesString"],false);InspectorBackend.registerCommand("Page.deleteCookie",[{"name":"cookieName","type":"string","optional":false},{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.getResourceTree",[],["frameTree"],false);InspectorBackend.registerCommand("Page.getResourceContent",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false}],["content","base64Encoded"],false);InspectorBackend.registerCommand("Page.searchInResource",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false},{"name":"query","type":"string","optional":false},{"name":"caseSensitive","type":"boolean","optional":true},{"name":"isRegex","type":"boolean","optional":true}],["result"],false);InspectorBackend.registerCommand("Page.setDocumentContent",[{"name":"frameId","type":"string","optional":false},{"name":"html","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.setDeviceMetricsOverride",[{"name":"width","type":"number","optional":false},{"name":"height","type":"number","optional":false},{"name":"deviceScaleFactor","type":"number","optional":false},{"name":"emulateViewport","type":"boolean","optional":false},{"name":"fitWindow","type":"boolean","optional":false},{"name":"textAutosizing","type":"boolean","optional":true},{"name":"fontScaleFactor","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.setShowPaintRects",[{"name":"result","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowDebugBorders",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowFPSCounter",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setContinuousPaintingEnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowScrollBottleneckRects",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.getScriptExecutionStatus",[],["result"],false);InspectorBackend.registerCommand("Page.setScriptExecutionDisabled",[{"name":"value","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setGeolocationOverride",[{"name":"latitude","type":"number","optional":true},{"name":"longitude","type":"number","optional":true},{"name":"accuracy","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.clearGeolocationOverride",[],[],false);InspectorBackend.registerCommand("Page.setDeviceOrientationOverride",[{"name":"alpha","type":"number","optional":false},{"name":"beta","type":"number","optional":false},{"name":"gamma","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Page.clearDeviceOrientationOverride",[],[],false);InspectorBackend.registerCommand("Page.setTouchEmulationEnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setEmulatedMedia",[{"name":"media","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.captureScreenshot",[{"name":"format","type":"string","optional":true},{"name":"quality","type":"number","optional":true},{"name":"maxWidth","type":"number","optional":true},{"name":"maxHeight","type":"number","optional":true}],["data","deviceScaleFactor","pageScaleFactor","viewport"],false);InspectorBackend.registerCommand("Page.canScreencast",[],["result"],false);InspectorBackend.registerCommand("Page.startScreencast",[{"name":"format","type":"string","optional":true},{"name":"quality","type":"number","optional":true},{"name":"maxWidth","type":"number","optional":true},{"name":"maxHeight","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.stopScreencast",[],[],false);InspectorBackend.registerCommand("Page.handleJavaScriptDialog",[{"name":"accept","type":"boolean","optional":false},{"name":"promptText","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Page.setShowViewportSizeOnResize",[{"name":"show","type":"boolean","optional":false},{"name":"showGrid","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Page.setForceCompositingMode",[{"name":"force","type":"boolean","optional":false}],[],false);InspectorBackend.registerRuntimeDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Runtime");InspectorBackend.registerEnum("Runtime.RemoteObjectType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean"});InspectorBackend.registerEnum("Runtime.RemoteObjectSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEnum("Runtime.PropertyPreviewType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean",Accessor:"accessor"});InspectorBackend.registerEnum("Runtime.PropertyPreviewSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEvent("Runtime.executionContextCreated",["context"]);InspectorBackend.registerCommand("Runtime.evaluate",[{"name":"expression","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true},{"name":"includeCommandLineAPI","type":"boolean","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"contextId","type":"number","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Runtime.callFunctionOn",[{"name":"objectId","type":"string","optional":false},{"name":"functionDeclaration","type":"string","optional":false},{"name":"arguments","type":"object","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Runtime.getProperties",[{"name":"objectId","type":"string","optional":false},{"name":"ownProperties","type":"boolean","optional":true},{"name":"accessorPropertiesOnly","type":"boolean","optional":true}],["result","internalProperties"],false);InspectorBackend.registerCommand("Runtime.releaseObject",[{"name":"objectId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Runtime.releaseObjectGroup",[{"name":"objectGroup","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Runtime.run",[],[],false);InspectorBackend.registerCommand("Runtime.enable",[],[],false);InspectorBackend.registerCommand("Runtime.disable",[],[],false);InspectorBackend.registerConsoleDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Console");InspectorBackend.registerEnum("Console.ConsoleMessageSource",{XML:"xml",Javascript:"javascript",Network:"network",ConsoleAPI:"console-api",Storage:"storage",Appcache:"appcache",Rendering:"rendering",Css:"css",Security:"security",Other:"other",Deprecation:"deprecation"});InspectorBackend.registerEnum("Console.ConsoleMessageLevel",{Log:"log",Warning:"warning",Error:"error",Debug:"debug",Info:"info"});InspectorBackend.registerEnum("Console.ConsoleMessageType",{Log:"log",Dir:"dir",DirXML:"dirxml",Table:"table",Trace:"trace",Clear:"clear",StartGroup:"startGroup",StartGroupCollapsed:"startGroupCollapsed",EndGroup:"endGroup",Assert:"assert",Profile:"profile",ProfileEnd:"profileEnd"});InspectorBackend.registerEvent("Console.messageAdded",["message"]);InspectorBackend.registerEvent("Console.messageRepeatCountUpdated",["count","timestamp"]);InspectorBackend.registerEvent("Console.messagesCleared",[]);InspectorBackend.registerCommand("Console.enable",[],[],false);InspectorBackend.registerCommand("Console.disable",[],[],false);InspectorBackend.registerCommand("Console.clearMessages",[],[],false);InspectorBackend.registerCommand("Console.setMonitoringXHREnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Console.addInspectedNode",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Console.addInspectedHeapObject",[{"name":"heapObjectId","type":"number","optional":false}],[],false);InspectorBackend.registerNetworkDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Network");InspectorBackend.registerEnum("Network.InitiatorType",{Parser:"parser",Script:"script",Other:"other"});InspectorBackend.registerEvent("Network.requestWillBeSent",["requestId","frameId","loaderId","documentURL","request","timestamp","initiator","redirectResponse"]);InspectorBackend.registerEvent("Network.requestServedFromCache",["requestId"]);InspectorBackend.registerEvent("Network.responseReceived",["requestId","frameId","loaderId","timestamp","type","response"]);InspectorBackend.registerEvent("Network.dataReceived",["requestId","timestamp","dataLength","encodedDataLength"]);InspectorBackend.registerEvent("Network.loadingFinished",["requestId","timestamp"]);InspectorBackend.registerEvent("Network.loadingFailed",["requestId","timestamp","errorText","canceled"]);InspectorBackend.registerEvent("Network.webSocketWillSendHandshakeRequest",["requestId","timestamp","request"]);InspectorBackend.registerEvent("Network.webSocketHandshakeResponseReceived",["requestId","timestamp","response"]);InspectorBackend.registerEvent("Network.webSocketCreated",["requestId","url"]);InspectorBackend.registerEvent("Network.webSocketClosed",["requestId","timestamp"]);InspectorBackend.registerEvent("Network.webSocketFrameReceived",["requestId","timestamp","response"]);InspectorBackend.registerEvent("Network.webSocketFrameError",["requestId","timestamp","errorMessage"]);InspectorBackend.registerEvent("Network.webSocketFrameSent",["requestId","timestamp","response"]);InspectorBackend.registerCommand("Network.enable",[],[],false);InspectorBackend.registerCommand("Network.disable",[],[],false);InspectorBackend.registerCommand("Network.setUserAgentOverride",[{"name":"userAgent","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Network.setExtraHTTPHeaders",[{"name":"headers","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("Network.getResponseBody",[{"name":"requestId","type":"string","optional":false}],["body","base64Encoded"],false);InspectorBackend.registerCommand("Network.replayXHR",[{"name":"requestId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Network.canClearBrowserCache",[],["result"],false);InspectorBackend.registerCommand("Network.clearBrowserCache",[],[],false);InspectorBackend.registerCommand("Network.canClearBrowserCookies",[],["result"],false);InspectorBackend.registerCommand("Network.clearBrowserCookies",[],[],false);InspectorBackend.registerCommand("Network.setCacheDisabled",[{"name":"cacheDisabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Network.loadResourceForFrontend",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false},{"name":"requestHeaders","type":"object","optional":true}],["statusCode","responseHeaders","content"],false);InspectorBackend.registerDatabaseDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Database");InspectorBackend.registerEvent("Database.addDatabase",["database"]);InspectorBackend.registerCommand("Database.enable",[],[],false);InspectorBackend.registerCommand("Database.disable",[],[],false);InspectorBackend.registerCommand("Database.getDatabaseTableNames",[{"name":"databaseId","type":"string","optional":false}],["tableNames"],false);InspectorBackend.registerCommand("Database.executeSQL",[{"name":"databaseId","type":"string","optional":false},{"name":"query","type":"string","optional":false}],["columnNames","values","sqlError"],false);InspectorBackend.registerIndexedDBDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"IndexedDB");InspectorBackend.registerEnum("IndexedDB.KeyType",{Number:"number",String:"string",Date:"date",Array:"array"});InspectorBackend.registerEnum("IndexedDB.KeyPathType",{Null:"null",String:"string",Array:"array"});InspectorBackend.registerCommand("IndexedDB.enable",[],[],false);InspectorBackend.registerCommand("IndexedDB.disable",[],[],false);InspectorBackend.registerCommand("IndexedDB.requestDatabaseNames",[{"name":"securityOrigin","type":"string","optional":false}],["databaseNames"],false);InspectorBackend.registerCommand("IndexedDB.requestDatabase",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false}],["databaseWithObjectStores"],false);InspectorBackend.registerCommand("IndexedDB.requestData",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false},{"name":"objectStoreName","type":"string","optional":false},{"name":"indexName","type":"string","optional":false},{"name":"skipCount","type":"number","optional":false},{"name":"pageSize","type":"number","optional":false},{"name":"keyRange","type":"object","optional":true}],["objectStoreDataEntries","hasMore"],false);InspectorBackend.registerCommand("IndexedDB.clearObjectStore",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false},{"name":"objectStoreName","type":"string","optional":false}],[],false);InspectorBackend.registerDOMStorageDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOMStorage");InspectorBackend.registerEvent("DOMStorage.domStorageItemsCleared",["storageId"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemRemoved",["storageId","key"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemAdded",["storageId","key","newValue"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemUpdated",["storageId","key","oldValue","newValue"]);InspectorBackend.registerCommand("DOMStorage.enable",[],[],false);InspectorBackend.registerCommand("DOMStorage.disable",[],[],false);InspectorBackend.registerCommand("DOMStorage.getDOMStorageItems",[{"name":"storageId","type":"object","optional":false}],["entries"],false);InspectorBackend.registerCommand("DOMStorage.setDOMStorageItem",[{"name":"storageId","type":"object","optional":false},{"name":"key","type":"string","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMStorage.removeDOMStorageItem",[{"name":"storageId","type":"object","optional":false},{"name":"key","type":"string","optional":false}],[],false);InspectorBackend.registerApplicationCacheDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"ApplicationCache");InspectorBackend.registerEvent("ApplicationCache.applicationCacheStatusUpdated",["frameId","manifestURL","status"]);InspectorBackend.registerEvent("ApplicationCache.networkStateUpdated",["isNowOnline"]);InspectorBackend.registerCommand("ApplicationCache.getFramesWithManifests",[],["frameIds"],false);InspectorBackend.registerCommand("ApplicationCache.enable",[],[],false);InspectorBackend.registerCommand("ApplicationCache.getManifestForFrame",[{"name":"frameId","type":"string","optional":false}],["manifestURL"],false);InspectorBackend.registerCommand("ApplicationCache.getApplicationCacheForFrame",[{"name":"frameId","type":"string","optional":false}],["applicationCache"],false);InspectorBackend.registerFileSystemDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"FileSystem");InspectorBackend.registerCommand("FileSystem.enable",[],[],false);InspectorBackend.registerCommand("FileSystem.disable",[],[],false);InspectorBackend.registerCommand("FileSystem.requestFileSystemRoot",[{"name":"origin","type":"string","optional":false},{"name":"type","type":"string","optional":false}],["errorCode","root"],false);InspectorBackend.registerCommand("FileSystem.requestDirectoryContent",[{"name":"url","type":"string","optional":false}],["errorCode","entries"],false);InspectorBackend.registerCommand("FileSystem.requestMetadata",[{"name":"url","type":"string","optional":false}],["errorCode","metadata"],false);InspectorBackend.registerCommand("FileSystem.requestFileContent",[{"name":"url","type":"string","optional":false},{"name":"readAsText","type":"boolean","optional":false},{"name":"start","type":"number","optional":true},{"name":"end","type":"number","optional":true},{"name":"charset","type":"string","optional":true}],["errorCode","content","charset"],false);InspectorBackend.registerCommand("FileSystem.deleteEntry",[{"name":"url","type":"string","optional":false}],["errorCode"],false);InspectorBackend.registerDOMDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOM");InspectorBackend.registerEnum("DOM.PseudoType",{Before:"before",After:"after"});InspectorBackend.registerEvent("DOM.documentUpdated",[]);InspectorBackend.registerEvent("DOM.inspectNodeRequested",["nodeId"]);InspectorBackend.registerEvent("DOM.setChildNodes",["parentId","nodes"]);InspectorBackend.registerEvent("DOM.attributeModified",["nodeId","name","value"]);InspectorBackend.registerEvent("DOM.attributeRemoved",["nodeId","name"]);InspectorBackend.registerEvent("DOM.inlineStyleInvalidated",["nodeIds"]);InspectorBackend.registerEvent("DOM.characterDataModified",["nodeId","characterData"]);InspectorBackend.registerEvent("DOM.childNodeCountUpdated",["nodeId","childNodeCount"]);InspectorBackend.registerEvent("DOM.childNodeInserted",["parentNodeId","previousNodeId","node"]);InspectorBackend.registerEvent("DOM.childNodeRemoved",["parentNodeId","nodeId"]);InspectorBackend.registerEvent("DOM.shadowRootPushed",["hostId","root"]);InspectorBackend.registerEvent("DOM.shadowRootPopped",["hostId","rootId"]);InspectorBackend.registerEvent("DOM.pseudoElementAdded",["parentId","pseudoElement"]);InspectorBackend.registerEvent("DOM.pseudoElementRemoved",["parentId","pseudoElementId"]);InspectorBackend.registerCommand("DOM.getDocument",[],["root"],false);InspectorBackend.registerCommand("DOM.requestChildNodes",[{"name":"nodeId","type":"number","optional":false},{"name":"depth","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("DOM.querySelector",[{"name":"nodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.querySelectorAll",[{"name":"nodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["nodeIds"],false);InspectorBackend.registerCommand("DOM.setNodeName",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.setNodeValue",[{"name":"nodeId","type":"number","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.removeNode",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setAttributeValue",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setAttributesAsText",[{"name":"nodeId","type":"number","optional":false},{"name":"text","type":"string","optional":false},{"name":"name","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("DOM.removeAttribute",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.getEventListenersForNode",[{"name":"nodeId","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["listeners"],false);InspectorBackend.registerCommand("DOM.getOuterHTML",[{"name":"nodeId","type":"number","optional":false}],["outerHTML"],false);InspectorBackend.registerCommand("DOM.setOuterHTML",[{"name":"nodeId","type":"number","optional":false},{"name":"outerHTML","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.performSearch",[{"name":"query","type":"string","optional":false}],["searchId","resultCount"],false);InspectorBackend.registerCommand("DOM.getSearchResults",[{"name":"searchId","type":"string","optional":false},{"name":"fromIndex","type":"number","optional":false},{"name":"toIndex","type":"number","optional":false}],["nodeIds"],false);InspectorBackend.registerCommand("DOM.discardSearchResults",[{"name":"searchId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.requestNode",[{"name":"objectId","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.setInspectModeEnabled",[{"name":"enabled","type":"boolean","optional":false},{"name":"inspectShadowDOM","type":"boolean","optional":true},{"name":"highlightConfig","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightRect",[{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"width","type":"number","optional":false},{"name":"height","type":"number","optional":false},{"name":"color","type":"object","optional":true},{"name":"outlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightQuad",[{"name":"quad","type":"object","optional":false},{"name":"color","type":"object","optional":true},{"name":"outlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightNode",[{"name":"highlightConfig","type":"object","optional":false},{"name":"nodeId","type":"number","optional":true},{"name":"objectId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("DOM.hideHighlight",[],[],false);InspectorBackend.registerCommand("DOM.highlightFrame",[{"name":"frameId","type":"string","optional":false},{"name":"contentColor","type":"object","optional":true},{"name":"contentOutlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.pushNodeByPathToFrontend",[{"name":"path","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.pushNodeByBackendIdToFrontend",[{"name":"backendNodeId","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.releaseBackendNodeIds",[{"name":"nodeGroup","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.resolveNode",[{"name":"nodeId","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["object"],false);InspectorBackend.registerCommand("DOM.getAttributes",[{"name":"nodeId","type":"number","optional":false}],["attributes"],false);InspectorBackend.registerCommand("DOM.moveTo",[{"name":"nodeId","type":"number","optional":false},{"name":"targetNodeId","type":"number","optional":false},{"name":"insertBeforeNodeId","type":"number","optional":true}],["nodeId"],false);InspectorBackend.registerCommand("DOM.undo",[],[],false);InspectorBackend.registerCommand("DOM.redo",[],[],false);InspectorBackend.registerCommand("DOM.markUndoableState",[],[],false);InspectorBackend.registerCommand("DOM.focus",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setFileInputFiles",[{"name":"nodeId","type":"number","optional":false},{"name":"files","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("DOM.getBoxModel",[{"name":"nodeId","type":"number","optional":false}],["model"],false);InspectorBackend.registerCommand("DOM.getNodeForLocation",[{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.getRelayoutBoundary",[{"name":"nodeId","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCSSDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"CSS");InspectorBackend.registerEnum("CSS.StyleSheetOrigin",{User:"user",UserAgent:"user-agent",Inspector:"inspector",Regular:"regular"});InspectorBackend.registerEnum("CSS.CSSPropertyStatus",{Active:"active",Inactive:"inactive",Disabled:"disabled",Style:"style"});InspectorBackend.registerEnum("CSS.CSSMediaSource",{MediaRule:"mediaRule",ImportRule:"importRule",LinkedSheet:"linkedSheet",InlineSheet:"inlineSheet"});InspectorBackend.registerEnum("CSS.RegionRegionOverset",{Overset:"overset",Fit:"fit",Empty:"empty"});InspectorBackend.registerEvent("CSS.mediaQueryResultChanged",[]);InspectorBackend.registerEvent("CSS.styleSheetChanged",["styleSheetId"]);InspectorBackend.registerEvent("CSS.styleSheetAdded",["header"]);InspectorBackend.registerEvent("CSS.styleSheetRemoved",["styleSheetId"]);InspectorBackend.registerEvent("CSS.namedFlowCreated",["namedFlow"]);InspectorBackend.registerEvent("CSS.namedFlowRemoved",["documentNodeId","flowName"]);InspectorBackend.registerEvent("CSS.regionLayoutUpdated",["namedFlow"]);InspectorBackend.registerEvent("CSS.regionOversetChanged",["namedFlow"]);InspectorBackend.registerCommand("CSS.enable",[],[],false);InspectorBackend.registerCommand("CSS.disable",[],[],false);InspectorBackend.registerCommand("CSS.getMatchedStylesForNode",[{"name":"nodeId","type":"number","optional":false},{"name":"includePseudo","type":"boolean","optional":true},{"name":"includeInherited","type":"boolean","optional":true}],["matchedCSSRules","pseudoElements","inherited"],false);InspectorBackend.registerCommand("CSS.getInlineStylesForNode",[{"name":"nodeId","type":"number","optional":false}],["inlineStyle","attributesStyle"],false);InspectorBackend.registerCommand("CSS.getComputedStyleForNode",[{"name":"nodeId","type":"number","optional":false}],["computedStyle"],false);InspectorBackend.registerCommand("CSS.getPlatformFontsForNode",[{"name":"nodeId","type":"number","optional":false}],["cssFamilyName","fonts"],false);InspectorBackend.registerCommand("CSS.getAllStyleSheets",[],["headers"],false);InspectorBackend.registerCommand("CSS.getStyleSheet",[{"name":"styleSheetId","type":"string","optional":false}],["styleSheet"],false);InspectorBackend.registerCommand("CSS.getStyleSheetText",[{"name":"styleSheetId","type":"string","optional":false}],["text"],false);InspectorBackend.registerCommand("CSS.setStyleSheetText",[{"name":"styleSheetId","type":"string","optional":false},{"name":"text","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("CSS.setStyleText",[{"name":"styleId","type":"object","optional":false},{"name":"text","type":"string","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.setPropertyText",[{"name":"styleId","type":"object","optional":false},{"name":"propertyIndex","type":"number","optional":false},{"name":"text","type":"string","optional":false},{"name":"overwrite","type":"boolean","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.toggleProperty",[{"name":"styleId","type":"object","optional":false},{"name":"propertyIndex","type":"number","optional":false},{"name":"disable","type":"boolean","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.setRuleSelector",[{"name":"ruleId","type":"object","optional":false},{"name":"selector","type":"string","optional":false}],["rule"],false);InspectorBackend.registerCommand("CSS.addRule",[{"name":"contextNodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["rule"],false);InspectorBackend.registerCommand("CSS.getSupportedCSSProperties",[],["cssProperties"],false);InspectorBackend.registerCommand("CSS.forcePseudoState",[{"name":"nodeId","type":"number","optional":false},{"name":"forcedPseudoClasses","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("CSS.getNamedFlowCollection",[{"name":"documentNodeId","type":"number","optional":false}],["namedFlows"],false);InspectorBackend.registerTimelineDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Timeline");InspectorBackend.registerEvent("Timeline.eventRecorded",["record"]);InspectorBackend.registerEvent("Timeline.started",["consoleTimeline"]);InspectorBackend.registerEvent("Timeline.stopped",["consoleTimeline"]);InspectorBackend.registerCommand("Timeline.enable",[],[],false);InspectorBackend.registerCommand("Timeline.disable",[],[],false);InspectorBackend.registerCommand("Timeline.start",[{"name":"maxCallStackDepth","type":"number","optional":true},{"name":"bufferEvents","type":"boolean","optional":true},{"name":"includeDomCounters","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Timeline.stop",[],["events"],false);InspectorBackend.registerDebuggerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Debugger");InspectorBackend.registerEnum("Debugger.ScopeType",{Global:"global",Local:"local",With:"with",Closure:"closure",Catch:"catch"});InspectorBackend.registerEvent("Debugger.globalObjectCleared",[]);InspectorBackend.registerEvent("Debugger.scriptParsed",["scriptId","url","startLine","startColumn","endLine","endColumn","isContentScript","sourceMapURL","hasSourceURL"]);InspectorBackend.registerEvent("Debugger.scriptFailedToParse",["url","scriptSource","startLine","errorLine","errorMessage"]);InspectorBackend.registerEvent("Debugger.breakpointResolved",["breakpointId","location"]);InspectorBackend.registerEvent("Debugger.paused",["callFrames","reason","data","hitBreakpoints"]);InspectorBackend.registerEvent("Debugger.resumed",[]);InspectorBackend.registerCommand("Debugger.enable",[],[],false);InspectorBackend.registerCommand("Debugger.disable",[],[],false);InspectorBackend.registerCommand("Debugger.setBreakpointsActive",[{"name":"active","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.setSkipAllPauses",[{"name":"skipped","type":"boolean","optional":false},{"name":"untilReload","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.setBreakpointByUrl",[{"name":"lineNumber","type":"number","optional":false},{"name":"url","type":"string","optional":true},{"name":"urlRegex","type":"string","optional":true},{"name":"columnNumber","type":"number","optional":true},{"name":"condition","type":"string","optional":true},{"name":"isAntibreakpoint","type":"boolean","optional":true}],["breakpointId","locations"],false);InspectorBackend.registerCommand("Debugger.setBreakpoint",[{"name":"location","type":"object","optional":false},{"name":"condition","type":"string","optional":true}],["breakpointId","actualLocation"],false);InspectorBackend.registerCommand("Debugger.removeBreakpoint",[{"name":"breakpointId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.continueToLocation",[{"name":"location","type":"object","optional":false},{"name":"interstatementLocation","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.stepOver",[{"name":"callFrameId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.stepInto",[],[],false);InspectorBackend.registerCommand("Debugger.stepOut",[{"name":"callFrameId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.pause",[],[],false);InspectorBackend.registerCommand("Debugger.resume",[],[],false);InspectorBackend.registerCommand("Debugger.searchInContent",[{"name":"scriptId","type":"string","optional":false},{"name":"query","type":"string","optional":false},{"name":"caseSensitive","type":"boolean","optional":true},{"name":"isRegex","type":"boolean","optional":true}],["result"],false);InspectorBackend.registerCommand("Debugger.canSetScriptSource",[],["result"],false);InspectorBackend.registerCommand("Debugger.setScriptSource",[{"name":"scriptId","type":"string","optional":false},{"name":"scriptSource","type":"string","optional":false},{"name":"preview","type":"boolean","optional":true}],["callFrames","result"],true);InspectorBackend.registerCommand("Debugger.restartFrame",[{"name":"callFrameId","type":"string","optional":false}],["callFrames","result"],false);InspectorBackend.registerCommand("Debugger.getScriptSource",[{"name":"scriptId","type":"string","optional":false}],["scriptSource"],false);InspectorBackend.registerCommand("Debugger.getFunctionDetails",[{"name":"functionId","type":"string","optional":false}],["details"],false);InspectorBackend.registerCommand("Debugger.setPauseOnExceptions",[{"name":"state","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.evaluateOnCallFrame",[{"name":"callFrameId","type":"string","optional":false},{"name":"expression","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true},{"name":"includeCommandLineAPI","type":"boolean","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Debugger.compileScript",[{"name":"expression","type":"string","optional":false},{"name":"sourceURL","type":"string","optional":false}],["scriptId","syntaxErrorMessage"],false);InspectorBackend.registerCommand("Debugger.runScript",[{"name":"scriptId","type":"string","optional":false},{"name":"contextId","type":"number","optional":true},{"name":"objectGroup","type":"string","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Debugger.setOverlayMessage",[{"name":"message","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.setVariableValue",[{"name":"scopeNumber","type":"number","optional":false},{"name":"variableName","type":"string","optional":false},{"name":"newValue","type":"object","optional":false},{"name":"callFrameId","type":"string","optional":true},{"name":"functionObjectId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.getStepInPositions",[{"name":"callFrameId","type":"string","optional":false}],["stepInPositions"],false);InspectorBackend.registerCommand("Debugger.getBacktrace",[],["callFrames"],false);InspectorBackend.registerCommand("Debugger.skipStackFrames",[{"name":"script","type":"string","optional":true}],[],false);InspectorBackend.registerDOMDebuggerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOMDebugger");InspectorBackend.registerEnum("DOMDebugger.DOMBreakpointType",{SubtreeModified:"subtree-modified",AttributeModified:"attribute-modified",NodeRemoved:"node-removed"});InspectorBackend.registerCommand("DOMDebugger.setDOMBreakpoint",[{"name":"nodeId","type":"number","optional":false},{"name":"type","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeDOMBreakpoint",[{"name":"nodeId","type":"number","optional":false},{"name":"type","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setEventListenerBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeEventListenerBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setInstrumentationBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeInstrumentationBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setXHRBreakpoint",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeXHRBreakpoint",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerProfilerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Profiler");InspectorBackend.registerEvent("Profiler.addProfileHeader",["header"]);InspectorBackend.registerEvent("Profiler.setRecordingProfile",["isProfiling"]);InspectorBackend.registerEvent("Profiler.resetProfiles",[]);InspectorBackend.registerCommand("Profiler.enable",[],[],false);InspectorBackend.registerCommand("Profiler.disable",[],[],false);InspectorBackend.registerCommand("Profiler.setSamplingInterval",[{"name":"interval","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Profiler.start",[],[],false);InspectorBackend.registerCommand("Profiler.stop",[],["header"],false);InspectorBackend.registerCommand("Profiler.getCPUProfile",[{"name":"uid","type":"number","optional":false}],["profile"],false);InspectorBackend.registerCommand("Profiler.removeProfile",[{"name":"type","type":"string","optional":false},{"name":"uid","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Profiler.clearProfiles",[],[],false);InspectorBackend.registerHeapProfilerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"HeapProfiler");InspectorBackend.registerEvent("HeapProfiler.addProfileHeader",["header"]);InspectorBackend.registerEvent("HeapProfiler.addHeapSnapshotChunk",["uid","chunk"]);InspectorBackend.registerEvent("HeapProfiler.resetProfiles",[]);InspectorBackend.registerEvent("HeapProfiler.reportHeapSnapshotProgress",["done","total"]);InspectorBackend.registerEvent("HeapProfiler.lastSeenObjectId",["lastSeenObjectId","timestamp"]);InspectorBackend.registerEvent("HeapProfiler.heapStatsUpdate",["statsUpdate"]);InspectorBackend.registerCommand("HeapProfiler.enable",[],[],false);InspectorBackend.registerCommand("HeapProfiler.disable",[],[],false);InspectorBackend.registerCommand("HeapProfiler.startTrackingHeapObjects",[],[],false);InspectorBackend.registerCommand("HeapProfiler.stopTrackingHeapObjects",[],[],false);InspectorBackend.registerCommand("HeapProfiler.getHeapSnapshot",[{"name":"uid","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("HeapProfiler.removeProfile",[{"name":"uid","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("HeapProfiler.clearProfiles",[],[],false);InspectorBackend.registerCommand("HeapProfiler.takeHeapSnapshot",[{"name":"reportProgress","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("HeapProfiler.collectGarbage",[],[],false);InspectorBackend.registerCommand("HeapProfiler.getObjectByHeapObjectId",[{"name":"objectId","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true}],["result"],false);InspectorBackend.registerCommand("HeapProfiler.getHeapObjectId",[{"name":"objectId","type":"string","optional":false}],["heapSnapshotObjectId"],false);InspectorBackend.registerWorkerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Worker");InspectorBackend.registerEvent("Worker.workerCreated",["workerId","url","inspectorConnected"]);InspectorBackend.registerEvent("Worker.workerTerminated",["workerId"]);InspectorBackend.registerEvent("Worker.dispatchMessageFromWorker",["workerId","message"]);InspectorBackend.registerEvent("Worker.disconnectedFromWorker",[]);InspectorBackend.registerCommand("Worker.enable",[],[],false);InspectorBackend.registerCommand("Worker.disable",[],[],false);InspectorBackend.registerCommand("Worker.sendMessageToWorker",[{"name":"workerId","type":"number","optional":false},{"name":"message","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("Worker.canInspectWorkers",[],["result"],false);InspectorBackend.registerCommand("Worker.connectToWorker",[{"name":"workerId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Worker.disconnectFromWorker",[{"name":"workerId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Worker.setAutoconnectToWorkers",[{"name":"value","type":"boolean","optional":false}],[],false);InspectorBackend.registerCanvasDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Canvas");InspectorBackend.registerEnum("Canvas.CallArgumentType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean"});InspectorBackend.registerEnum("Canvas.CallArgumentSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEvent("Canvas.contextCreated",["frameId"]);InspectorBackend.registerEvent("Canvas.traceLogsRemoved",["frameId","traceLogId"]);InspectorBackend.registerCommand("Canvas.enable",[],[],false);InspectorBackend.registerCommand("Canvas.disable",[],[],false);InspectorBackend.registerCommand("Canvas.dropTraceLog",[{"name":"traceLogId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Canvas.hasUninstrumentedCanvases",[],["result"],false);InspectorBackend.registerCommand("Canvas.captureFrame",[{"name":"frameId","type":"string","optional":true}],["traceLogId"],false);InspectorBackend.registerCommand("Canvas.startCapturing",[{"name":"frameId","type":"string","optional":true}],["traceLogId"],false);InspectorBackend.registerCommand("Canvas.stopCapturing",[{"name":"traceLogId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Canvas.getTraceLog",[{"name":"traceLogId","type":"string","optional":false},{"name":"startOffset","type":"number","optional":true},{"name":"maxLength","type":"number","optional":true}],["traceLog"],false);InspectorBackend.registerCommand("Canvas.replayTraceLog",[{"name":"traceLogId","type":"string","optional":false},{"name":"stepNo","type":"number","optional":false}],["resourceState","replayTime"],false);InspectorBackend.registerCommand("Canvas.getResourceState",[{"name":"traceLogId","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],["resourceState"],false);InspectorBackend.registerCommand("Canvas.evaluateTraceLogCallArgument",[{"name":"traceLogId","type":"string","optional":false},{"name":"callIndex","type":"number","optional":false},{"name":"argumentIndex","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["result","resourceState"],false);InspectorBackend.registerInputDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Input");InspectorBackend.registerEnum("Input.TouchPointState",{TouchPressed:"touchPressed",TouchReleased:"touchReleased",TouchMoved:"touchMoved",TouchStationary:"touchStationary",TouchCancelled:"touchCancelled"});InspectorBackend.registerCommand("Input.dispatchKeyEvent",[{"name":"type","type":"string","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true},{"name":"text","type":"string","optional":true},{"name":"unmodifiedText","type":"string","optional":true},{"name":"keyIdentifier","type":"string","optional":true},{"name":"windowsVirtualKeyCode","type":"number","optional":true},{"name":"nativeVirtualKeyCode","type":"number","optional":true},{"name":"macCharCode","type":"number","optional":true},{"name":"autoRepeat","type":"boolean","optional":true},{"name":"isKeypad","type":"boolean","optional":true},{"name":"isSystemKey","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchMouseEvent",[{"name":"type","type":"string","optional":false},{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true},{"name":"button","type":"string","optional":true},{"name":"clickCount","type":"number","optional":true},{"name":"deviceSpace","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchTouchEvent",[{"name":"type","type":"string","optional":false},{"name":"touchPoints","type":"object","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchGestureEvent",[{"name":"type","type":"string","optional":false},{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"timestamp","type":"number","optional":true},{"name":"deltaX","type":"number","optional":true},{"name":"deltaY","type":"number","optional":true},{"name":"pinchScale","type":"number","optional":true}],[],false);InspectorBackend.registerLayerTreeDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"LayerTree");InspectorBackend.registerEvent("LayerTree.layerTreeDidChange",["layers"]);InspectorBackend.registerEvent("LayerTree.layerPainted",["layerId","clip"]);InspectorBackend.registerCommand("LayerTree.enable",[],[],false);InspectorBackend.registerCommand("LayerTree.disable",[],[],false);InspectorBackend.registerCommand("LayerTree.compositingReasons",[{"name":"layerId","type":"string","optional":false}],["compositingReasons"],false);InspectorBackend.registerTracingDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Tracing");InspectorBackend.registerEvent("Tracing.dataCollected",["value"]);InspectorBackend.registerEvent("Tracing.tracingComplete",[]);InspectorBackend.registerCommand("Tracing.start",[{"name":"categories","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Tracing.end",[],[],false);if(!window.InspectorExtensionRegistry){WebInspector.InspectorExtensionRegistryStub=function()
+InspectorBackend=new InspectorBackendClass();InspectorBackend.registerInspectorDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Inspector");InspectorBackend.registerEvent("Inspector.evaluateForTestInFrontend",["testCallId","script"]);InspectorBackend.registerEvent("Inspector.inspect",["object","hints"]);InspectorBackend.registerEvent("Inspector.detached",["reason"]);InspectorBackend.registerEvent("Inspector.targetCrashed",[]);InspectorBackend.registerCommand("Inspector.enable",[],[],false);InspectorBackend.registerCommand("Inspector.disable",[],[],false);InspectorBackend.registerCommand("Inspector.reset",[],[],false);InspectorBackend.registerMemoryDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Memory");InspectorBackend.registerCommand("Memory.getDOMCounters",[],["documents","nodes","jsEventListeners"],false);InspectorBackend.registerPageDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Page");InspectorBackend.registerEnum("Page.ResourceType",{Document:"Document",Stylesheet:"Stylesheet",Image:"Image",Font:"Font",Script:"Script",XHR:"XHR",WebSocket:"WebSocket",Other:"Other"});InspectorBackend.registerEnum("Page.UsageItemId",{Filesystem:"filesystem",Database:"database",Appcache:"appcache",Indexeddatabase:"indexeddatabase"});InspectorBackend.registerEvent("Page.domContentEventFired",["timestamp"]);InspectorBackend.registerEvent("Page.loadEventFired",["timestamp"]);InspectorBackend.registerEvent("Page.frameAttached",["frameId","parentFrameId"]);InspectorBackend.registerEvent("Page.frameNavigated",["frame"]);InspectorBackend.registerEvent("Page.frameDetached",["frameId"]);InspectorBackend.registerEvent("Page.frameStartedLoading",["frameId"]);InspectorBackend.registerEvent("Page.frameStoppedLoading",["frameId"]);InspectorBackend.registerEvent("Page.frameScheduledNavigation",["frameId","delay"]);InspectorBackend.registerEvent("Page.frameClearedScheduledNavigation",["frameId"]);InspectorBackend.registerEvent("Page.frameResized",[]);InspectorBackend.registerEvent("Page.javascriptDialogOpening",["message"]);InspectorBackend.registerEvent("Page.javascriptDialogClosed",[]);InspectorBackend.registerEvent("Page.scriptsEnabled",["isEnabled"]);InspectorBackend.registerEvent("Page.screencastFrame",["data","metadata"]);InspectorBackend.registerEvent("Page.screencastVisibilityChanged",["visible"]);InspectorBackend.registerCommand("Page.enable",[],[],false);InspectorBackend.registerCommand("Page.disable",[],[],false);InspectorBackend.registerCommand("Page.addScriptToEvaluateOnLoad",[{"name":"scriptSource","type":"string","optional":false}],["identifier"],false);InspectorBackend.registerCommand("Page.removeScriptToEvaluateOnLoad",[{"name":"identifier","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.reload",[{"name":"ignoreCache","type":"boolean","optional":true},{"name":"scriptToEvaluateOnLoad","type":"string","optional":true},{"name":"scriptPreprocessor","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Page.navigate",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.getNavigationHistory",[],["currentIndex","entries"],false);InspectorBackend.registerCommand("Page.navigateToHistoryEntry",[{"name":"entryId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Page.getCookies",[],["cookies"],false);InspectorBackend.registerCommand("Page.deleteCookie",[{"name":"cookieName","type":"string","optional":false},{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.getResourceTree",[],["frameTree"],false);InspectorBackend.registerCommand("Page.getResourceContent",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false}],["content","base64Encoded"],false);InspectorBackend.registerCommand("Page.searchInResource",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false},{"name":"query","type":"string","optional":false},{"name":"caseSensitive","type":"boolean","optional":true},{"name":"isRegex","type":"boolean","optional":true}],["result"],false);InspectorBackend.registerCommand("Page.setDocumentContent",[{"name":"frameId","type":"string","optional":false},{"name":"html","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.setDeviceMetricsOverride",[{"name":"width","type":"number","optional":false},{"name":"height","type":"number","optional":false},{"name":"deviceScaleFactor","type":"number","optional":false},{"name":"emulateViewport","type":"boolean","optional":false},{"name":"fitWindow","type":"boolean","optional":false},{"name":"textAutosizing","type":"boolean","optional":true},{"name":"fontScaleFactor","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.setShowPaintRects",[{"name":"result","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowDebugBorders",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowFPSCounter",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setContinuousPaintingEnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setShowScrollBottleneckRects",[{"name":"show","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.getScriptExecutionStatus",[],["result"],false);InspectorBackend.registerCommand("Page.setScriptExecutionDisabled",[{"name":"value","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setGeolocationOverride",[{"name":"latitude","type":"number","optional":true},{"name":"longitude","type":"number","optional":true},{"name":"accuracy","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.clearGeolocationOverride",[],[],false);InspectorBackend.registerCommand("Page.setDeviceOrientationOverride",[{"name":"alpha","type":"number","optional":false},{"name":"beta","type":"number","optional":false},{"name":"gamma","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Page.clearDeviceOrientationOverride",[],[],false);InspectorBackend.registerCommand("Page.setTouchEmulationEnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Page.setEmulatedMedia",[{"name":"media","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Page.captureScreenshot",[{"name":"format","type":"string","optional":true},{"name":"quality","type":"number","optional":true},{"name":"maxWidth","type":"number","optional":true},{"name":"maxHeight","type":"number","optional":true}],["data","metadata"],false);InspectorBackend.registerCommand("Page.canScreencast",[],["result"],false);InspectorBackend.registerCommand("Page.startScreencast",[{"name":"format","type":"string","optional":true},{"name":"quality","type":"number","optional":true},{"name":"maxWidth","type":"number","optional":true},{"name":"maxHeight","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Page.stopScreencast",[],[],false);InspectorBackend.registerCommand("Page.handleJavaScriptDialog",[{"name":"accept","type":"boolean","optional":false},{"name":"promptText","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Page.setShowViewportSizeOnResize",[{"name":"show","type":"boolean","optional":false},{"name":"showGrid","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Page.queryUsageAndQuota",[{"name":"securityOrigin","type":"string","optional":false}],["quota","usage"],false);InspectorBackend.registerRuntimeDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Runtime");InspectorBackend.registerEnum("Runtime.RemoteObjectType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean"});InspectorBackend.registerEnum("Runtime.RemoteObjectSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEnum("Runtime.PropertyPreviewType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean",Accessor:"accessor"});InspectorBackend.registerEnum("Runtime.PropertyPreviewSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEvent("Runtime.executionContextCreated",["context"]);InspectorBackend.registerCommand("Runtime.evaluate",[{"name":"expression","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true},{"name":"includeCommandLineAPI","type":"boolean","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"contextId","type":"number","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Runtime.callFunctionOn",[{"name":"objectId","type":"string","optional":false},{"name":"functionDeclaration","type":"string","optional":false},{"name":"arguments","type":"object","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Runtime.getProperties",[{"name":"objectId","type":"string","optional":false},{"name":"ownProperties","type":"boolean","optional":true},{"name":"accessorPropertiesOnly","type":"boolean","optional":true}],["result","internalProperties"],false);InspectorBackend.registerCommand("Runtime.releaseObject",[{"name":"objectId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Runtime.releaseObjectGroup",[{"name":"objectGroup","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Runtime.run",[],[],false);InspectorBackend.registerCommand("Runtime.enable",[],[],false);InspectorBackend.registerCommand("Runtime.disable",[],[],false);InspectorBackend.registerConsoleDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Console");InspectorBackend.registerEnum("Console.ConsoleMessageSource",{XML:"xml",Javascript:"javascript",Network:"network",ConsoleAPI:"console-api",Storage:"storage",Appcache:"appcache",Rendering:"rendering",Css:"css",Security:"security",Other:"other",Deprecation:"deprecation"});InspectorBackend.registerEnum("Console.ConsoleMessageLevel",{Log:"log",Warning:"warning",Error:"error",Debug:"debug",Info:"info"});InspectorBackend.registerEnum("Console.ConsoleMessageType",{Log:"log",Dir:"dir",DirXML:"dirxml",Table:"table",Trace:"trace",Clear:"clear",StartGroup:"startGroup",StartGroupCollapsed:"startGroupCollapsed",EndGroup:"endGroup",Assert:"assert",Profile:"profile",ProfileEnd:"profileEnd"});InspectorBackend.registerEvent("Console.messageAdded",["message"]);InspectorBackend.registerEvent("Console.messageRepeatCountUpdated",["count","timestamp"]);InspectorBackend.registerEvent("Console.messagesCleared",[]);InspectorBackend.registerCommand("Console.enable",[],[],false);InspectorBackend.registerCommand("Console.disable",[],[],false);InspectorBackend.registerCommand("Console.clearMessages",[],[],false);InspectorBackend.registerCommand("Console.setMonitoringXHREnabled",[{"name":"enabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Console.addInspectedNode",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Console.addInspectedHeapObject",[{"name":"heapObjectId","type":"number","optional":false}],[],false);InspectorBackend.registerNetworkDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Network");InspectorBackend.registerEnum("Network.InitiatorType",{Parser:"parser",Script:"script",Other:"other"});InspectorBackend.registerEvent("Network.requestWillBeSent",["requestId","frameId","loaderId","documentURL","request","timestamp","initiator","redirectResponse"]);InspectorBackend.registerEvent("Network.requestServedFromCache",["requestId"]);InspectorBackend.registerEvent("Network.responseReceived",["requestId","frameId","loaderId","timestamp","type","response"]);InspectorBackend.registerEvent("Network.dataReceived",["requestId","timestamp","dataLength","encodedDataLength"]);InspectorBackend.registerEvent("Network.loadingFinished",["requestId","timestamp"]);InspectorBackend.registerEvent("Network.loadingFailed",["requestId","timestamp","errorText","canceled"]);InspectorBackend.registerEvent("Network.webSocketWillSendHandshakeRequest",["requestId","timestamp","request"]);InspectorBackend.registerEvent("Network.webSocketHandshakeResponseReceived",["requestId","timestamp","response"]);InspectorBackend.registerEvent("Network.webSocketCreated",["requestId","url"]);InspectorBackend.registerEvent("Network.webSocketClosed",["requestId","timestamp"]);InspectorBackend.registerEvent("Network.webSocketFrameReceived",["requestId","timestamp","response"]);InspectorBackend.registerEvent("Network.webSocketFrameError",["requestId","timestamp","errorMessage"]);InspectorBackend.registerEvent("Network.webSocketFrameSent",["requestId","timestamp","response"]);InspectorBackend.registerCommand("Network.enable",[],[],false);InspectorBackend.registerCommand("Network.disable",[],[],false);InspectorBackend.registerCommand("Network.setUserAgentOverride",[{"name":"userAgent","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Network.setExtraHTTPHeaders",[{"name":"headers","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("Network.getResponseBody",[{"name":"requestId","type":"string","optional":false}],["body","base64Encoded"],false);InspectorBackend.registerCommand("Network.replayXHR",[{"name":"requestId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Network.canClearBrowserCache",[],["result"],false);InspectorBackend.registerCommand("Network.clearBrowserCache",[],[],false);InspectorBackend.registerCommand("Network.canClearBrowserCookies",[],["result"],false);InspectorBackend.registerCommand("Network.clearBrowserCookies",[],[],false);InspectorBackend.registerCommand("Network.setCacheDisabled",[{"name":"cacheDisabled","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Network.loadResourceForFrontend",[{"name":"frameId","type":"string","optional":false},{"name":"url","type":"string","optional":false},{"name":"requestHeaders","type":"object","optional":true}],["statusCode","responseHeaders","content"],false);InspectorBackend.registerDatabaseDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Database");InspectorBackend.registerEvent("Database.addDatabase",["database"]);InspectorBackend.registerCommand("Database.enable",[],[],false);InspectorBackend.registerCommand("Database.disable",[],[],false);InspectorBackend.registerCommand("Database.getDatabaseTableNames",[{"name":"databaseId","type":"string","optional":false}],["tableNames"],false);InspectorBackend.registerCommand("Database.executeSQL",[{"name":"databaseId","type":"string","optional":false},{"name":"query","type":"string","optional":false}],["columnNames","values","sqlError"],false);InspectorBackend.registerIndexedDBDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"IndexedDB");InspectorBackend.registerEnum("IndexedDB.KeyType",{Number:"number",String:"string",Date:"date",Array:"array"});InspectorBackend.registerEnum("IndexedDB.KeyPathType",{Null:"null",String:"string",Array:"array"});InspectorBackend.registerCommand("IndexedDB.enable",[],[],false);InspectorBackend.registerCommand("IndexedDB.disable",[],[],false);InspectorBackend.registerCommand("IndexedDB.requestDatabaseNames",[{"name":"securityOrigin","type":"string","optional":false}],["databaseNames"],false);InspectorBackend.registerCommand("IndexedDB.requestDatabase",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false}],["databaseWithObjectStores"],false);InspectorBackend.registerCommand("IndexedDB.requestData",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false},{"name":"objectStoreName","type":"string","optional":false},{"name":"indexName","type":"string","optional":false},{"name":"skipCount","type":"number","optional":false},{"name":"pageSize","type":"number","optional":false},{"name":"keyRange","type":"object","optional":true}],["objectStoreDataEntries","hasMore"],false);InspectorBackend.registerCommand("IndexedDB.clearObjectStore",[{"name":"securityOrigin","type":"string","optional":false},{"name":"databaseName","type":"string","optional":false},{"name":"objectStoreName","type":"string","optional":false}],[],false);InspectorBackend.registerDOMStorageDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOMStorage");InspectorBackend.registerEvent("DOMStorage.domStorageItemsCleared",["storageId"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemRemoved",["storageId","key"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemAdded",["storageId","key","newValue"]);InspectorBackend.registerEvent("DOMStorage.domStorageItemUpdated",["storageId","key","oldValue","newValue"]);InspectorBackend.registerCommand("DOMStorage.enable",[],[],false);InspectorBackend.registerCommand("DOMStorage.disable",[],[],false);InspectorBackend.registerCommand("DOMStorage.getDOMStorageItems",[{"name":"storageId","type":"object","optional":false}],["entries"],false);InspectorBackend.registerCommand("DOMStorage.setDOMStorageItem",[{"name":"storageId","type":"object","optional":false},{"name":"key","type":"string","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMStorage.removeDOMStorageItem",[{"name":"storageId","type":"object","optional":false},{"name":"key","type":"string","optional":false}],[],false);InspectorBackend.registerApplicationCacheDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"ApplicationCache");InspectorBackend.registerEvent("ApplicationCache.applicationCacheStatusUpdated",["frameId","manifestURL","status"]);InspectorBackend.registerEvent("ApplicationCache.networkStateUpdated",["isNowOnline"]);InspectorBackend.registerCommand("ApplicationCache.getFramesWithManifests",[],["frameIds"],false);InspectorBackend.registerCommand("ApplicationCache.enable",[],[],false);InspectorBackend.registerCommand("ApplicationCache.getManifestForFrame",[{"name":"frameId","type":"string","optional":false}],["manifestURL"],false);InspectorBackend.registerCommand("ApplicationCache.getApplicationCacheForFrame",[{"name":"frameId","type":"string","optional":false}],["applicationCache"],false);InspectorBackend.registerFileSystemDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"FileSystem");InspectorBackend.registerCommand("FileSystem.enable",[],[],false);InspectorBackend.registerCommand("FileSystem.disable",[],[],false);InspectorBackend.registerCommand("FileSystem.requestFileSystemRoot",[{"name":"origin","type":"string","optional":false},{"name":"type","type":"string","optional":false}],["errorCode","root"],false);InspectorBackend.registerCommand("FileSystem.requestDirectoryContent",[{"name":"url","type":"string","optional":false}],["errorCode","entries"],false);InspectorBackend.registerCommand("FileSystem.requestMetadata",[{"name":"url","type":"string","optional":false}],["errorCode","metadata"],false);InspectorBackend.registerCommand("FileSystem.requestFileContent",[{"name":"url","type":"string","optional":false},{"name":"readAsText","type":"boolean","optional":false},{"name":"start","type":"number","optional":true},{"name":"end","type":"number","optional":true},{"name":"charset","type":"string","optional":true}],["errorCode","content","charset"],false);InspectorBackend.registerCommand("FileSystem.deleteEntry",[{"name":"url","type":"string","optional":false}],["errorCode"],false);InspectorBackend.registerDOMDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOM");InspectorBackend.registerEnum("DOM.PseudoType",{Before:"before",After:"after"});InspectorBackend.registerEnum("DOM.ShadowRootType",{UserAgent:"user-agent",Author:"author"});InspectorBackend.registerEvent("DOM.documentUpdated",[]);InspectorBackend.registerEvent("DOM.inspectNodeRequested",["nodeId"]);InspectorBackend.registerEvent("DOM.setChildNodes",["parentId","nodes"]);InspectorBackend.registerEvent("DOM.attributeModified",["nodeId","name","value"]);InspectorBackend.registerEvent("DOM.attributeRemoved",["nodeId","name"]);InspectorBackend.registerEvent("DOM.inlineStyleInvalidated",["nodeIds"]);InspectorBackend.registerEvent("DOM.characterDataModified",["nodeId","characterData"]);InspectorBackend.registerEvent("DOM.childNodeCountUpdated",["nodeId","childNodeCount"]);InspectorBackend.registerEvent("DOM.childNodeInserted",["parentNodeId","previousNodeId","node"]);InspectorBackend.registerEvent("DOM.childNodeRemoved",["parentNodeId","nodeId"]);InspectorBackend.registerEvent("DOM.shadowRootPushed",["hostId","root"]);InspectorBackend.registerEvent("DOM.shadowRootPopped",["hostId","rootId"]);InspectorBackend.registerEvent("DOM.pseudoElementAdded",["parentId","pseudoElement"]);InspectorBackend.registerEvent("DOM.pseudoElementRemoved",["parentId","pseudoElementId"]);InspectorBackend.registerCommand("DOM.getDocument",[],["root"],false);InspectorBackend.registerCommand("DOM.requestChildNodes",[{"name":"nodeId","type":"number","optional":false},{"name":"depth","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("DOM.querySelector",[{"name":"nodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.querySelectorAll",[{"name":"nodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["nodeIds"],false);InspectorBackend.registerCommand("DOM.setNodeName",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.setNodeValue",[{"name":"nodeId","type":"number","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.removeNode",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setAttributeValue",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false},{"name":"value","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setAttributesAsText",[{"name":"nodeId","type":"number","optional":false},{"name":"text","type":"string","optional":false},{"name":"name","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("DOM.removeAttribute",[{"name":"nodeId","type":"number","optional":false},{"name":"name","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.getEventListenersForNode",[{"name":"nodeId","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["listeners"],false);InspectorBackend.registerCommand("DOM.getOuterHTML",[{"name":"nodeId","type":"number","optional":false}],["outerHTML"],false);InspectorBackend.registerCommand("DOM.setOuterHTML",[{"name":"nodeId","type":"number","optional":false},{"name":"outerHTML","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.performSearch",[{"name":"query","type":"string","optional":false}],["searchId","resultCount"],false);InspectorBackend.registerCommand("DOM.getSearchResults",[{"name":"searchId","type":"string","optional":false},{"name":"fromIndex","type":"number","optional":false},{"name":"toIndex","type":"number","optional":false}],["nodeIds"],false);InspectorBackend.registerCommand("DOM.discardSearchResults",[{"name":"searchId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.requestNode",[{"name":"objectId","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.setInspectModeEnabled",[{"name":"enabled","type":"boolean","optional":false},{"name":"inspectShadowDOM","type":"boolean","optional":true},{"name":"highlightConfig","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightRect",[{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"width","type":"number","optional":false},{"name":"height","type":"number","optional":false},{"name":"color","type":"object","optional":true},{"name":"outlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightQuad",[{"name":"quad","type":"object","optional":false},{"name":"color","type":"object","optional":true},{"name":"outlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.highlightNode",[{"name":"highlightConfig","type":"object","optional":false},{"name":"nodeId","type":"number","optional":true},{"name":"objectId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("DOM.hideHighlight",[],[],false);InspectorBackend.registerCommand("DOM.highlightFrame",[{"name":"frameId","type":"string","optional":false},{"name":"contentColor","type":"object","optional":true},{"name":"contentOutlineColor","type":"object","optional":true}],[],false);InspectorBackend.registerCommand("DOM.pushNodeByPathToFrontend",[{"name":"path","type":"string","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.pushNodeByBackendIdToFrontend",[{"name":"backendNodeId","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.releaseBackendNodeIds",[{"name":"nodeGroup","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOM.resolveNode",[{"name":"nodeId","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["object"],false);InspectorBackend.registerCommand("DOM.getAttributes",[{"name":"nodeId","type":"number","optional":false}],["attributes"],false);InspectorBackend.registerCommand("DOM.moveTo",[{"name":"nodeId","type":"number","optional":false},{"name":"targetNodeId","type":"number","optional":false},{"name":"insertBeforeNodeId","type":"number","optional":true}],["nodeId"],false);InspectorBackend.registerCommand("DOM.undo",[],[],false);InspectorBackend.registerCommand("DOM.redo",[],[],false);InspectorBackend.registerCommand("DOM.markUndoableState",[],[],false);InspectorBackend.registerCommand("DOM.focus",[{"name":"nodeId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("DOM.setFileInputFiles",[{"name":"nodeId","type":"number","optional":false},{"name":"files","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("DOM.getBoxModel",[{"name":"nodeId","type":"number","optional":false}],["model"],false);InspectorBackend.registerCommand("DOM.getNodeForLocation",[{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCommand("DOM.getRelayoutBoundary",[{"name":"nodeId","type":"number","optional":false}],["nodeId"],false);InspectorBackend.registerCSSDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"CSS");InspectorBackend.registerEnum("CSS.StyleSheetOrigin",{User:"user",UserAgent:"user-agent",Inspector:"inspector",Regular:"regular"});InspectorBackend.registerEnum("CSS.CSSPropertyStatus",{Active:"active",Inactive:"inactive",Disabled:"disabled",Style:"style"});InspectorBackend.registerEnum("CSS.CSSMediaSource",{MediaRule:"mediaRule",ImportRule:"importRule",LinkedSheet:"linkedSheet",InlineSheet:"inlineSheet"});InspectorBackend.registerEnum("CSS.RegionRegionOverset",{Overset:"overset",Fit:"fit",Empty:"empty"});InspectorBackend.registerEvent("CSS.mediaQueryResultChanged",[]);InspectorBackend.registerEvent("CSS.styleSheetChanged",["styleSheetId"]);InspectorBackend.registerEvent("CSS.styleSheetAdded",["header"]);InspectorBackend.registerEvent("CSS.styleSheetRemoved",["styleSheetId"]);InspectorBackend.registerEvent("CSS.namedFlowCreated",["namedFlow"]);InspectorBackend.registerEvent("CSS.namedFlowRemoved",["documentNodeId","flowName"]);InspectorBackend.registerEvent("CSS.regionLayoutUpdated",["namedFlow"]);InspectorBackend.registerEvent("CSS.regionOversetChanged",["namedFlow"]);InspectorBackend.registerCommand("CSS.enable",[],[],false);InspectorBackend.registerCommand("CSS.disable",[],[],false);InspectorBackend.registerCommand("CSS.getMatchedStylesForNode",[{"name":"nodeId","type":"number","optional":false},{"name":"includePseudo","type":"boolean","optional":true},{"name":"includeInherited","type":"boolean","optional":true}],["matchedCSSRules","pseudoElements","inherited"],false);InspectorBackend.registerCommand("CSS.getInlineStylesForNode",[{"name":"nodeId","type":"number","optional":false}],["inlineStyle","attributesStyle"],false);InspectorBackend.registerCommand("CSS.getComputedStyleForNode",[{"name":"nodeId","type":"number","optional":false}],["computedStyle"],false);InspectorBackend.registerCommand("CSS.getPlatformFontsForNode",[{"name":"nodeId","type":"number","optional":false}],["cssFamilyName","fonts"],false);InspectorBackend.registerCommand("CSS.getAllStyleSheets",[],["headers"],false);InspectorBackend.registerCommand("CSS.getStyleSheet",[{"name":"styleSheetId","type":"string","optional":false}],["styleSheet"],false);InspectorBackend.registerCommand("CSS.getStyleSheetText",[{"name":"styleSheetId","type":"string","optional":false}],["text"],false);InspectorBackend.registerCommand("CSS.setStyleSheetText",[{"name":"styleSheetId","type":"string","optional":false},{"name":"text","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("CSS.setStyleText",[{"name":"styleId","type":"object","optional":false},{"name":"text","type":"string","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.setPropertyText",[{"name":"styleId","type":"object","optional":false},{"name":"propertyIndex","type":"number","optional":false},{"name":"text","type":"string","optional":false},{"name":"overwrite","type":"boolean","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.toggleProperty",[{"name":"styleId","type":"object","optional":false},{"name":"propertyIndex","type":"number","optional":false},{"name":"disable","type":"boolean","optional":false}],["style"],false);InspectorBackend.registerCommand("CSS.setRuleSelector",[{"name":"ruleId","type":"object","optional":false},{"name":"selector","type":"string","optional":false}],["rule"],false);InspectorBackend.registerCommand("CSS.addRule",[{"name":"contextNodeId","type":"number","optional":false},{"name":"selector","type":"string","optional":false}],["rule"],false);InspectorBackend.registerCommand("CSS.getSupportedCSSProperties",[],["cssProperties"],false);InspectorBackend.registerCommand("CSS.forcePseudoState",[{"name":"nodeId","type":"number","optional":false},{"name":"forcedPseudoClasses","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("CSS.getNamedFlowCollection",[{"name":"documentNodeId","type":"number","optional":false}],["namedFlows"],false);InspectorBackend.registerTimelineDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Timeline");InspectorBackend.registerEvent("Timeline.eventRecorded",["record"]);InspectorBackend.registerEvent("Timeline.started",["consoleTimeline"]);InspectorBackend.registerEvent("Timeline.stopped",["consoleTimeline"]);InspectorBackend.registerCommand("Timeline.enable",[],[],false);InspectorBackend.registerCommand("Timeline.disable",[],[],false);InspectorBackend.registerCommand("Timeline.start",[{"name":"maxCallStackDepth","type":"number","optional":true},{"name":"bufferEvents","type":"boolean","optional":true},{"name":"includeCounters","type":"boolean","optional":true},{"name":"includeGPUEvents","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Timeline.stop",[],["events"],false);InspectorBackend.registerDebuggerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Debugger");InspectorBackend.registerEnum("Debugger.ScopeType",{Global:"global",Local:"local",With:"with",Closure:"closure",Catch:"catch"});InspectorBackend.registerEvent("Debugger.globalObjectCleared",[]);InspectorBackend.registerEvent("Debugger.scriptParsed",["scriptId","url","startLine","startColumn","endLine","endColumn","isContentScript","sourceMapURL","hasSourceURL"]);InspectorBackend.registerEvent("Debugger.scriptFailedToParse",["url","scriptSource","startLine","errorLine","errorMessage"]);InspectorBackend.registerEvent("Debugger.breakpointResolved",["breakpointId","location"]);InspectorBackend.registerEvent("Debugger.paused",["callFrames","reason","data","hitBreakpoints","asyncStackTrace"]);InspectorBackend.registerEvent("Debugger.resumed",[]);InspectorBackend.registerCommand("Debugger.enable",[],[],false);InspectorBackend.registerCommand("Debugger.disable",[],[],false);InspectorBackend.registerCommand("Debugger.setBreakpointsActive",[{"name":"active","type":"boolean","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.setSkipAllPauses",[{"name":"skipped","type":"boolean","optional":false},{"name":"untilReload","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.setBreakpointByUrl",[{"name":"lineNumber","type":"number","optional":false},{"name":"url","type":"string","optional":true},{"name":"urlRegex","type":"string","optional":true},{"name":"columnNumber","type":"number","optional":true},{"name":"condition","type":"string","optional":true},{"name":"isAntibreakpoint","type":"boolean","optional":true}],["breakpointId","locations"],false);InspectorBackend.registerCommand("Debugger.setBreakpoint",[{"name":"location","type":"object","optional":false},{"name":"condition","type":"string","optional":true}],["breakpointId","actualLocation"],false);InspectorBackend.registerCommand("Debugger.removeBreakpoint",[{"name":"breakpointId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.continueToLocation",[{"name":"location","type":"object","optional":false},{"name":"interstatementLocation","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.stepOver",[{"name":"callFrameId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.stepInto",[],[],false);InspectorBackend.registerCommand("Debugger.stepOut",[{"name":"callFrameId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.pause",[],[],false);InspectorBackend.registerCommand("Debugger.resume",[],[],false);InspectorBackend.registerCommand("Debugger.searchInContent",[{"name":"scriptId","type":"string","optional":false},{"name":"query","type":"string","optional":false},{"name":"caseSensitive","type":"boolean","optional":true},{"name":"isRegex","type":"boolean","optional":true}],["result"],false);InspectorBackend.registerCommand("Debugger.canSetScriptSource",[],["result"],false);InspectorBackend.registerCommand("Debugger.setScriptSource",[{"name":"scriptId","type":"string","optional":false},{"name":"scriptSource","type":"string","optional":false},{"name":"preview","type":"boolean","optional":true}],["callFrames","result","asyncStackTrace"],true);InspectorBackend.registerCommand("Debugger.restartFrame",[{"name":"callFrameId","type":"string","optional":false}],["callFrames","result","asyncStackTrace"],false);InspectorBackend.registerCommand("Debugger.getScriptSource",[{"name":"scriptId","type":"string","optional":false}],["scriptSource"],false);InspectorBackend.registerCommand("Debugger.getFunctionDetails",[{"name":"functionId","type":"string","optional":false}],["details"],false);InspectorBackend.registerCommand("Debugger.setPauseOnExceptions",[{"name":"state","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Debugger.evaluateOnCallFrame",[{"name":"callFrameId","type":"string","optional":false},{"name":"expression","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true},{"name":"includeCommandLineAPI","type":"boolean","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true},{"name":"returnByValue","type":"boolean","optional":true},{"name":"generatePreview","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Debugger.compileScript",[{"name":"expression","type":"string","optional":false},{"name":"sourceURL","type":"string","optional":false}],["scriptId","syntaxErrorMessage"],false);InspectorBackend.registerCommand("Debugger.runScript",[{"name":"scriptId","type":"string","optional":false},{"name":"contextId","type":"number","optional":true},{"name":"objectGroup","type":"string","optional":true},{"name":"doNotPauseOnExceptionsAndMuteConsole","type":"boolean","optional":true}],["result","wasThrown"],false);InspectorBackend.registerCommand("Debugger.setOverlayMessage",[{"name":"message","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.setVariableValue",[{"name":"scopeNumber","type":"number","optional":false},{"name":"variableName","type":"string","optional":false},{"name":"newValue","type":"object","optional":false},{"name":"callFrameId","type":"string","optional":true},{"name":"functionObjectId","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.getStepInPositions",[{"name":"callFrameId","type":"string","optional":false}],["stepInPositions"],false);InspectorBackend.registerCommand("Debugger.getBacktrace",[],["callFrames","asyncStackTrace"],false);InspectorBackend.registerCommand("Debugger.skipStackFrames",[{"name":"script","type":"string","optional":true}],[],false);InspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth",[{"name":"maxDepth","type":"number","optional":false}],[],false);InspectorBackend.registerDOMDebuggerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"DOMDebugger");InspectorBackend.registerEnum("DOMDebugger.DOMBreakpointType",{SubtreeModified:"subtree-modified",AttributeModified:"attribute-modified",NodeRemoved:"node-removed"});InspectorBackend.registerCommand("DOMDebugger.setDOMBreakpoint",[{"name":"nodeId","type":"number","optional":false},{"name":"type","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeDOMBreakpoint",[{"name":"nodeId","type":"number","optional":false},{"name":"type","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setEventListenerBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeEventListenerBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setInstrumentationBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeInstrumentationBreakpoint",[{"name":"eventName","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.setXHRBreakpoint",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("DOMDebugger.removeXHRBreakpoint",[{"name":"url","type":"string","optional":false}],[],false);InspectorBackend.registerProfilerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Profiler");InspectorBackend.registerEvent("Profiler.consoleProfileStarted",["id","location","title"]);InspectorBackend.registerEvent("Profiler.consoleProfileFinished",["id","location","profile","title"]);InspectorBackend.registerCommand("Profiler.enable",[],[],false);InspectorBackend.registerCommand("Profiler.disable",[],[],false);InspectorBackend.registerCommand("Profiler.setSamplingInterval",[{"name":"interval","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Profiler.start",[],[],false);InspectorBackend.registerCommand("Profiler.stop",[],["profile"],false);InspectorBackend.registerHeapProfilerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"HeapProfiler");InspectorBackend.registerEvent("HeapProfiler.addProfileHeader",["header"]);InspectorBackend.registerEvent("HeapProfiler.addHeapSnapshotChunk",["uid","chunk"]);InspectorBackend.registerEvent("HeapProfiler.resetProfiles",[]);InspectorBackend.registerEvent("HeapProfiler.reportHeapSnapshotProgress",["done","total"]);InspectorBackend.registerEvent("HeapProfiler.lastSeenObjectId",["lastSeenObjectId","timestamp"]);InspectorBackend.registerEvent("HeapProfiler.heapStatsUpdate",["statsUpdate"]);InspectorBackend.registerCommand("HeapProfiler.enable",[],[],false);InspectorBackend.registerCommand("HeapProfiler.disable",[],[],false);InspectorBackend.registerCommand("HeapProfiler.startTrackingHeapObjects",[],[],false);InspectorBackend.registerCommand("HeapProfiler.stopTrackingHeapObjects",[{"name":"reportProgress","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("HeapProfiler.getHeapSnapshot",[{"name":"uid","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("HeapProfiler.removeProfile",[{"name":"uid","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("HeapProfiler.clearProfiles",[],[],false);InspectorBackend.registerCommand("HeapProfiler.takeHeapSnapshot",[{"name":"reportProgress","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("HeapProfiler.collectGarbage",[],[],false);InspectorBackend.registerCommand("HeapProfiler.getObjectByHeapObjectId",[{"name":"objectId","type":"string","optional":false},{"name":"objectGroup","type":"string","optional":true}],["result"],false);InspectorBackend.registerCommand("HeapProfiler.getHeapObjectId",[{"name":"objectId","type":"string","optional":false}],["heapSnapshotObjectId"],false);InspectorBackend.registerWorkerDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Worker");InspectorBackend.registerEvent("Worker.workerCreated",["workerId","url","inspectorConnected"]);InspectorBackend.registerEvent("Worker.workerTerminated",["workerId"]);InspectorBackend.registerEvent("Worker.dispatchMessageFromWorker",["workerId","message"]);InspectorBackend.registerEvent("Worker.disconnectedFromWorker",[]);InspectorBackend.registerCommand("Worker.enable",[],[],false);InspectorBackend.registerCommand("Worker.disable",[],[],false);InspectorBackend.registerCommand("Worker.sendMessageToWorker",[{"name":"workerId","type":"number","optional":false},{"name":"message","type":"object","optional":false}],[],false);InspectorBackend.registerCommand("Worker.canInspectWorkers",[],["result"],false);InspectorBackend.registerCommand("Worker.connectToWorker",[{"name":"workerId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Worker.disconnectFromWorker",[{"name":"workerId","type":"number","optional":false}],[],false);InspectorBackend.registerCommand("Worker.setAutoconnectToWorkers",[{"name":"value","type":"boolean","optional":false}],[],false);InspectorBackend.registerCanvasDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Canvas");InspectorBackend.registerEnum("Canvas.CallArgumentType",{Object:"object",Function:"function",Undefined:"undefined",String:"string",Number:"number",Boolean:"boolean"});InspectorBackend.registerEnum("Canvas.CallArgumentSubtype",{Array:"array",Null:"null",Node:"node",Regexp:"regexp",Date:"date"});InspectorBackend.registerEvent("Canvas.contextCreated",["frameId"]);InspectorBackend.registerEvent("Canvas.traceLogsRemoved",["frameId","traceLogId"]);InspectorBackend.registerCommand("Canvas.enable",[],[],false);InspectorBackend.registerCommand("Canvas.disable",[],[],false);InspectorBackend.registerCommand("Canvas.dropTraceLog",[{"name":"traceLogId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Canvas.hasUninstrumentedCanvases",[],["result"],false);InspectorBackend.registerCommand("Canvas.captureFrame",[{"name":"frameId","type":"string","optional":true}],["traceLogId"],false);InspectorBackend.registerCommand("Canvas.startCapturing",[{"name":"frameId","type":"string","optional":true}],["traceLogId"],false);InspectorBackend.registerCommand("Canvas.stopCapturing",[{"name":"traceLogId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Canvas.getTraceLog",[{"name":"traceLogId","type":"string","optional":false},{"name":"startOffset","type":"number","optional":true},{"name":"maxLength","type":"number","optional":true}],["traceLog"],false);InspectorBackend.registerCommand("Canvas.replayTraceLog",[{"name":"traceLogId","type":"string","optional":false},{"name":"stepNo","type":"number","optional":false}],["resourceState","replayTime"],false);InspectorBackend.registerCommand("Canvas.getResourceState",[{"name":"traceLogId","type":"string","optional":false},{"name":"resourceId","type":"string","optional":false}],["resourceState"],false);InspectorBackend.registerCommand("Canvas.evaluateTraceLogCallArgument",[{"name":"traceLogId","type":"string","optional":false},{"name":"callIndex","type":"number","optional":false},{"name":"argumentIndex","type":"number","optional":false},{"name":"objectGroup","type":"string","optional":true}],["result","resourceState"],false);InspectorBackend.registerInputDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Input");InspectorBackend.registerEnum("Input.TouchPointState",{TouchPressed:"touchPressed",TouchReleased:"touchReleased",TouchMoved:"touchMoved",TouchStationary:"touchStationary",TouchCancelled:"touchCancelled"});InspectorBackend.registerCommand("Input.dispatchKeyEvent",[{"name":"type","type":"string","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true},{"name":"text","type":"string","optional":true},{"name":"unmodifiedText","type":"string","optional":true},{"name":"keyIdentifier","type":"string","optional":true},{"name":"windowsVirtualKeyCode","type":"number","optional":true},{"name":"nativeVirtualKeyCode","type":"number","optional":true},{"name":"macCharCode","type":"number","optional":true},{"name":"autoRepeat","type":"boolean","optional":true},{"name":"isKeypad","type":"boolean","optional":true},{"name":"isSystemKey","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchMouseEvent",[{"name":"type","type":"string","optional":false},{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true},{"name":"button","type":"string","optional":true},{"name":"clickCount","type":"number","optional":true},{"name":"deviceSpace","type":"boolean","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchTouchEvent",[{"name":"type","type":"string","optional":false},{"name":"touchPoints","type":"object","optional":false},{"name":"modifiers","type":"number","optional":true},{"name":"timestamp","type":"number","optional":true}],[],false);InspectorBackend.registerCommand("Input.dispatchGestureEvent",[{"name":"type","type":"string","optional":false},{"name":"x","type":"number","optional":false},{"name":"y","type":"number","optional":false},{"name":"timestamp","type":"number","optional":true},{"name":"deltaX","type":"number","optional":true},{"name":"deltaY","type":"number","optional":true},{"name":"pinchScale","type":"number","optional":true}],[],false);InspectorBackend.registerLayerTreeDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"LayerTree");InspectorBackend.registerEvent("LayerTree.layerTreeDidChange",["layers"]);InspectorBackend.registerEvent("LayerTree.layerPainted",["layerId","clip"]);InspectorBackend.registerCommand("LayerTree.enable",[],[],false);InspectorBackend.registerCommand("LayerTree.disable",[],[],false);InspectorBackend.registerCommand("LayerTree.compositingReasons",[{"name":"layerId","type":"string","optional":false}],["compositingReasons"],false);InspectorBackend.registerCommand("LayerTree.makeSnapshot",[{"name":"layerId","type":"string","optional":false}],["snapshotId"],false);InspectorBackend.registerCommand("LayerTree.releaseSnapshot",[{"name":"snapshotId","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("LayerTree.profileSnapshot",[{"name":"snapshotId","type":"string","optional":false},{"name":"minRepeatCount","type":"number","optional":true},{"name":"minDuration","type":"number","optional":true}],["timings"],false);InspectorBackend.registerCommand("LayerTree.replaySnapshot",[{"name":"snapshotId","type":"string","optional":false},{"name":"fromStep","type":"number","optional":true},{"name":"toStep","type":"number","optional":true}],["dataURL"],false);InspectorBackend.registerTracingDispatcher=InspectorBackend.registerDomainDispatcher.bind(InspectorBackend,"Tracing");InspectorBackend.registerEvent("Tracing.dataCollected",["value"]);InspectorBackend.registerEvent("Tracing.tracingComplete",[]);InspectorBackend.registerCommand("Tracing.start",[{"name":"categories","type":"string","optional":false},{"name":"options","type":"string","optional":false}],[],false);InspectorBackend.registerCommand("Tracing.end",[],[],false);if(!window.InspectorExtensionRegistry){WebInspector.InspectorExtensionRegistryStub=function()
 {}
 WebInspector.InspectorExtensionRegistryStub.prototype={getExtensionsAsync:function()
 {}}
@@ -986,9 +1074,10 @@
 {var uiSourceCode=(event.data);if(uiSourceCode.url===url){WebInspector.showPanel("sources").showUISourceCode(uiSourceCode,lineNumber,columnNumber);WebInspector.workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,listener);}}
 WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,listener);});},setToolbarColors:function(backgroundColor,color)
 {WebInspector.setToolbarColors(backgroundColor,color);},loadTimelineFromURL:function(url)
-{InspectorFrontendAPI._runOnceLoaded(function(){(WebInspector.showPanel("timeline")).loadFromURL(url);});},setAttachedWindow:function(side)
+{InspectorFrontendAPI._runOnceLoaded(function(){(WebInspector.showPanel("timeline")).loadFromURL(url);});},setUseSoftMenu:function(useSoftMenu)
+{WebInspector.ContextMenu.setUseSoftMenu(useSoftMenu);},setAttachedWindow:function(docked)
 {},setDockSide:function(side)
-{WebInspector.dockController.setDockSide(side);},dispatchMessage:function(messageObject)
+{},dispatchMessage:function(messageObject)
 {InspectorBackend.dispatch(messageObject);},contextMenuItemSelected:function(id)
 {WebInspector.contextMenuItemSelected(id);},contextMenuCleared:function()
 {WebInspector.contextMenuCleared();},fileSystemsLoaded:function(fileSystems)
@@ -999,7 +1088,8 @@
 {var projectDelegate=WebInspector.fileSystemWorkspaceProvider.delegate(fileSystemPath);projectDelegate.indexingWorked(requestId,worked);},indexingDone:function(requestId,fileSystemPath)
 {var projectDelegate=WebInspector.fileSystemWorkspaceProvider.delegate(fileSystemPath);projectDelegate.indexingDone(requestId);},searchCompleted:function(requestId,fileSystemPath,files)
 {var projectDelegate=WebInspector.fileSystemWorkspaceProvider.delegate(fileSystemPath);projectDelegate.searchCompleted(requestId,files);},savedURL:function(url)
-{WebInspector.fileManager.savedURL(url);},appendedToURL:function(url)
+{WebInspector.fileManager.savedURL(url);},canceledSaveURL:function(url)
+{WebInspector.fileManager.canceledSaveURL(url);},appendedToURL:function(url)
 {WebInspector.fileManager.appendedToURL(url);},embedderMessageAck:function(id,error)
 {InspectorFrontendHost.embedderMessageAck(id,error);},loadCompleted:function()
 {InspectorFrontendAPI._isLoaded=true;for(var i=0;i<InspectorFrontendAPI._pendingCommands.length;++i)
@@ -1012,11 +1102,11 @@
 {InspectorFrontendAPI._runOnceLoaded(function(){var methodName=signature.shift();return InspectorFrontendAPI[methodName].apply(InspectorFrontendAPI,signature);});},_runOnceLoaded:function(command)
 {if(InspectorFrontendAPI._isLoaded){command();return;}
 InspectorFrontendAPI._pendingCommands.push(command);}}
-if(window.opener&&window.dispatchStandaloneTestRunnerMessages){function onMessageFromOpener(event)
+function onMessageFromOpener(event)
 {if(event.source===window.opener)
 InspectorFrontendAPI._dispatch(event.data);}
-window.addEventListener("message",onMessageFromOpener,true);}
-WebInspector.Object=function(){}
+if(window.opener&&window.dispatchStandaloneTestRunnerMessages)
+window.addEventListener("message",onMessageFromOpener,true);WebInspector.Object=function(){}
 WebInspector.Object.prototype={addEventListener:function(eventType,listener,thisObject)
 {if(!listener)
 console.assert(false);if(!this._listeners)
@@ -1045,15 +1135,16 @@
 WebInspector.EventTarget=function()
 {}
 WebInspector.EventTarget.prototype={addEventListener:function(eventType,listener,thisObject){},removeEventListener:function(eventType,listener,thisObject){},removeAllListeners:function(){},hasEventListeners:function(eventType){},dispatchEventToListeners:function(eventType,eventData){},}
-WebInspector.notifications=new WebInspector.Object();var Preferences={maxInlineTextChildLength:80,minConsoleHeight:75,minSidebarWidth:100,minSidebarHeight:75,minElementsSidebarWidth:200,minElementsSidebarHeight:200,minScriptsSidebarWidth:200,applicationTitle:"Developer Tools - %s",experimentsEnabled:false}
+WebInspector.notifications=new WebInspector.Object();var Preferences={maxInlineTextChildLength:80,minConsoleHeight:25,minSidebarWidth:100,minSidebarHeight:75,minElementsSidebarWidth:200,minElementsSidebarHeight:200,minScriptsSidebarWidth:200,applicationTitle:"Developer Tools - %s",experimentsEnabled:false}
 var Capabilities={canInspectWorkers:false,canScreencast:false}
 WebInspector.Settings=function()
-{this._eventSupport=new WebInspector.Object();this._registry=({});this.colorFormat=this.createSetting("colorFormat","original");this.consoleHistory=this.createSetting("consoleHistory",[]);this.domWordWrap=this.createSetting("domWordWrap",true);this.eventListenersFilter=this.createSetting("eventListenersFilter","all");this.lastViewedScriptFile=this.createSetting("lastViewedScriptFile","application");this.monitoringXHREnabled=this.createSetting("monitoringXHREnabled",false);this.preserveConsoleLog=this.createSetting("preserveConsoleLog",false);this.resourcesLargeRows=this.createSetting("resourcesLargeRows",true);this.resourcesSortOptions=this.createSetting("resourcesSortOptions",{timeOption:"responseTime",sizeOption:"transferSize"});this.resourceViewTab=this.createSetting("resourceViewTab","preview");this.showInheritedComputedStyleProperties=this.createSetting("showInheritedComputedStyleProperties",false);this.showUserAgentStyles=this.createSetting("showUserAgentStyles",true);this.watchExpressions=this.createSetting("watchExpressions",[]);this.breakpoints=this.createSetting("breakpoints",[]);this.eventListenerBreakpoints=this.createSetting("eventListenerBreakpoints",[]);this.domBreakpoints=this.createSetting("domBreakpoints",[]);this.xhrBreakpoints=this.createSetting("xhrBreakpoints",[]);this.jsSourceMapsEnabled=this.createSetting("sourceMapsEnabled",true);this.cssSourceMapsEnabled=this.createSetting("cssSourceMapsEnabled",true);this.cacheDisabled=this.createSetting("cacheDisabled",false);this.overrideUserAgent=this.createSetting("overrideUserAgent",false);this.userAgent=this.createSetting("userAgent","");this.overrideDeviceMetrics=this.createSetting("overrideDeviceMetrics",false);this.deviceMetrics=this.createSetting("deviceMetrics","");this.deviceFitWindow=this.createSetting("deviceFitWindow",true);this.emulateViewport=this.createSetting("emulateViewport",false);this.emulateTouchEvents=this.createSetting("emulateTouchEvents",false);this.showShadowDOM=this.createSetting("showShadowDOM",false);this.zoomLevel=this.createSetting("zoomLevel",0);this.savedURLs=this.createSetting("savedURLs",{});this.javaScriptDisabled=this.createSetting("javaScriptDisabled",false);this.overrideGeolocation=this.createSetting("overrideGeolocation",false);this.geolocationOverride=this.createSetting("geolocationOverride","");this.overrideDeviceOrientation=this.createSetting("overrideDeviceOrientation",false);this.deviceOrientationOverride=this.createSetting("deviceOrientationOverride","");this.showAdvancedHeapSnapshotProperties=this.createSetting("showAdvancedHeapSnapshotProperties",false);this.highResolutionCpuProfiling=this.createSetting("highResolutionCpuProfiling",false);this.searchInContentScripts=this.createSetting("searchInContentScripts",false);this.textEditorIndent=this.createSetting("textEditorIndent","    ");this.textEditorAutoDetectIndent=this.createSetting("textEditorAutoIndentIndent",true);this.textEditorAutocompletion=this.createSetting("textEditorAutocompletion",true);this.textEditorBracketMatching=this.createSetting("textEditorBracketMatching",true);this.lastDockState=this.createSetting("lastDockState","");this.cssReloadEnabled=this.createSetting("cssReloadEnabled",false);this.showCpuOnTimelineRuler=this.createSetting("showCpuOnTimelineRuler",false);this.timelineStackFramesToCapture=this.createSetting("timelineStackFramesToCapture",30);this.timelineLimitStackFramesFlag=this.createSetting("timelineLimitStackFramesFlag",false);this.showMetricsRulers=this.createSetting("showMetricsRulers",false);this.overrideCSSMedia=this.createSetting("overrideCSSMedia",false);this.emulatedCSSMedia=this.createSetting("emulatedCSSMedia","print");this.workerInspectorWidth=this.createSetting("workerInspectorWidth",600);this.workerInspectorHeight=this.createSetting("workerInspectorHeight",600);this.messageURLFilters=this.createSetting("messageURLFilters",{});this.hideCSSErrorsInConsole=this.createSetting("hideCSSErrorsInConsole",true);this.messageLevelFilters=this.createSetting("messageLevelFilters",{});this.splitVerticallyWhenDockedToRight=this.createSetting("splitVerticallyWhenDockedToRight",true);this.visiblePanels=this.createSetting("visiblePanels",{});this.shortcutPanelSwitch=this.createSetting("shortcutPanelSwitch",false);this.showWhitespacesInEditor=this.createSetting("showWhitespacesInEditor",false);this.skipStackFramesSwitch=this.createSetting("skipStackFramesSwitch",false);this.skipStackFramesPattern=this.createSetting("skipStackFramesPattern","");this.screencastEnabled=this.createSetting("screencastEnabled",false);this.screencastSidebarWidth=this.createSetting("screencastSidebarWidth",300);this.showEmulationViewInDrawer=this.createSetting("showEmulationViewInDrawer",false);}
+{this._eventSupport=new WebInspector.Object();this._registry=({});this.colorFormat=this.createSetting("colorFormat","original");this.consoleHistory=this.createSetting("consoleHistory",[]);this.domWordWrap=this.createSetting("domWordWrap",true);this.eventListenersFilter=this.createSetting("eventListenersFilter","all");this.lastViewedScriptFile=this.createSetting("lastViewedScriptFile","application");this.monitoringXHREnabled=this.createSetting("monitoringXHREnabled",false);this.preserveConsoleLog=this.createSetting("preserveConsoleLog",false);this.resourcesLargeRows=this.createSetting("resourcesLargeRows",true);this.resourcesSortOptions=this.createSetting("resourcesSortOptions",{timeOption:"responseTime",sizeOption:"transferSize"});this.resourceViewTab=this.createSetting("resourceViewTab","preview");this.showInheritedComputedStyleProperties=this.createSetting("showInheritedComputedStyleProperties",false);this.showUserAgentStyles=this.createSetting("showUserAgentStyles",true);this.watchExpressions=this.createSetting("watchExpressions",[]);this.breakpoints=this.createSetting("breakpoints",[]);this.eventListenerBreakpoints=this.createSetting("eventListenerBreakpoints",[]);this.domBreakpoints=this.createSetting("domBreakpoints",[]);this.xhrBreakpoints=this.createSetting("xhrBreakpoints",[]);this.jsSourceMapsEnabled=this.createSetting("sourceMapsEnabled",true);this.cssSourceMapsEnabled=this.createSetting("cssSourceMapsEnabled",true);this.cacheDisabled=this.createSetting("cacheDisabled",false);this.overrideUserAgent=this.createSetting("overrideUserAgent",false);this.userAgent=this.createSetting("userAgent","");this.overrideDeviceMetrics=this.createSetting("overrideDeviceMetrics",false);this.deviceMetrics=this.createSetting("deviceMetrics","");this.deviceFitWindow=this.createSetting("deviceFitWindow",true);this.emulateViewport=this.createSetting("emulateViewport",false);this.emulateTouchEvents=this.createSetting("emulateTouchEvents",false);this.showShadowDOM=this.createSetting("showShadowDOM",false);this.zoomLevel=this.createSetting("zoomLevel",0);this.externalZoomFactor=this.createSetting("externalZoomFactor",1);this.savedURLs=this.createSetting("savedURLs",{});this.javaScriptDisabled=this.createSetting("javaScriptDisabled",false);this.overrideGeolocation=this.createSetting("overrideGeolocation",false);this.geolocationOverride=this.createSetting("geolocationOverride","");this.overrideDeviceOrientation=this.createSetting("overrideDeviceOrientation",false);this.deviceOrientationOverride=this.createSetting("deviceOrientationOverride","");this.showAdvancedHeapSnapshotProperties=this.createSetting("showAdvancedHeapSnapshotProperties",false);this.highResolutionCpuProfiling=this.createSetting("highResolutionCpuProfiling",false);this.searchInContentScripts=this.createSetting("searchInContentScripts",false);this.textEditorIndent=this.createSetting("textEditorIndent","    ");this.textEditorAutoDetectIndent=this.createSetting("textEditorAutoIndentIndent",true);this.textEditorAutocompletion=this.createSetting("textEditorAutocompletion",true);this.textEditorBracketMatching=this.createSetting("textEditorBracketMatching",true);this.cssReloadEnabled=this.createSetting("cssReloadEnabled",false);this.timelineCaptureStacks=this.createSetting("timelineCaptureStacks",true);this.showMetricsRulers=this.createSetting("showMetricsRulers",false);this.overrideCSSMedia=this.createSetting("overrideCSSMedia",false);this.emulatedCSSMedia=this.createSetting("emulatedCSSMedia","print");this.workerInspectorWidth=this.createSetting("workerInspectorWidth",600);this.workerInspectorHeight=this.createSetting("workerInspectorHeight",600);this.messageURLFilters=this.createSetting("messageURLFilters",{});this.networkHideDataURL=this.createSetting("networkHideDataURL",false);this.messageLevelFilters=this.createSetting("messageLevelFilters",{});this.splitVerticallyWhenDockedToRight=this.createSetting("splitVerticallyWhenDockedToRight",true);this.visiblePanels=this.createSetting("visiblePanels",{});this.shortcutPanelSwitch=this.createSetting("shortcutPanelSwitch",false);this.showWhitespacesInEditor=this.createSetting("showWhitespacesInEditor",false);this.skipStackFramesSwitch=this.createSetting("skipStackFramesSwitch",false);this.skipStackFramesPattern=this.createSetting("skipStackFramesPattern","");this.showEmulationViewInDrawer=this.createSetting("showEmulationViewInDrawer",true);this.showRenderingViewInDrawer=this.createSetting("showRenderingViewInDrawer",true);this.enableAsyncStackTraces=this.createSetting("enableAsyncStackTraces",false);}
 WebInspector.Settings.prototype={createSetting:function(key,defaultValue)
 {if(!this._registry[key])
 this._registry[key]=new WebInspector.Setting(key,defaultValue,this._eventSupport,window.localStorage);return this._registry[key];},createBackendSetting:function(key,defaultValue,setterCallback)
 {if(!this._registry[key])
-this._registry[key]=new WebInspector.BackendSetting(key,defaultValue,this._eventSupport,window.localStorage,setterCallback);return this._registry[key];}}
+this._registry[key]=new WebInspector.BackendSetting(key,defaultValue,this._eventSupport,window.localStorage,setterCallback);return this._registry[key];},initializeBackendSettings:function()
+{this.showPaintRects=WebInspector.settings.createBackendSetting("showPaintRects",false,PageAgent.setShowPaintRects.bind(PageAgent));this.showDebugBorders=WebInspector.settings.createBackendSetting("showDebugBorders",false,PageAgent.setShowDebugBorders.bind(PageAgent));this.continuousPainting=WebInspector.settings.createBackendSetting("continuousPainting",false,PageAgent.setContinuousPaintingEnabled.bind(PageAgent));this.showFPSCounter=WebInspector.settings.createBackendSetting("showFPSCounter",false,PageAgent.setShowFPSCounter.bind(PageAgent));this.showScrollBottleneckRects=WebInspector.settings.createBackendSetting("showScrollBottleneckRects",false,PageAgent.setShowScrollBottleneckRects.bind(PageAgent));}}
 WebInspector.Setting=function(name,defaultValue,eventSupport,storage)
 {this._name=name;this._defaultValue=defaultValue;this._eventSupport=eventSupport;this._storage=storage;}
 WebInspector.Setting.prototype={addChangeListener:function(listener,thisObject)
@@ -1066,13 +1157,14 @@
 {this._value=value;if(this._storage){try{this._storage[this._name]=JSON.stringify(value);}catch(e){console.error("Error saving setting with name:"+this._name);}}
 this._eventSupport.dispatchEventToListeners(this._name,value);}}
 WebInspector.BackendSetting=function(name,defaultValue,eventSupport,storage,setterCallback)
-{WebInspector.Setting.call(this,name,defaultValue,eventSupport,storage);this._setterCallback=setterCallback;var currentValue=this.get();if(currentValue!==defaultValue){this._value=defaultValue;this.set(currentValue);}}
+{WebInspector.Setting.call(this,name,defaultValue,eventSupport,storage);this._setterCallback=setterCallback;var currentValue=this.get();if(currentValue!==defaultValue)
+this.set(currentValue);}
 WebInspector.BackendSetting.prototype={set:function(value)
 {function callback(error)
 {if(error){WebInspector.log("Error applying setting "+this._name+": "+error);this._eventSupport.dispatchEventToListeners(this._name,this._value);return;}
 WebInspector.Setting.prototype.set.call(this,value);}
 this._setterCallback(value,callback.bind(this));},__proto__:WebInspector.Setting.prototype};WebInspector.ExperimentsSettings=function()
-{this._setting=WebInspector.settings.createSetting("experiments",{});this._experiments=[];this._enabledForTest={};this.fileSystemInspection=this._createExperiment("fileSystemInspection","FileSystem inspection");this.canvasInspection=this._createExperiment("canvasInspection ","Canvas inspection");this.cssRegions=this._createExperiment("cssRegions","CSS Regions Support");this.frameworksDebuggingSupport=this._createExperiment("frameworksDebuggingSupport","Enable frameworks debugging support");this.layersPanel=this._createExperiment("layersPanel","Show Layers panel");this.stepIntoSelection=this._createExperiment("stepIntoSelection","Show step-in candidates while debugging.");this.openConsoleWithCtrlTilde=this._createExperiment("openConsoleWithCtrlTilde","Open console with Ctrl/Cmd+Tilde, not Esc");this.showEditorInDrawer=this._createExperiment("showEditorInDrawer","Show editor in drawer");this._cleanUpSetting();}
+{this._setting=WebInspector.settings.createSetting("experiments",{});this._experiments=[];this._enabledForTest={};this.fileSystemInspection=this._createExperiment("fileSystemInspection","FileSystem inspection");this.canvasInspection=this._createExperiment("canvasInspection ","Canvas inspection");this.cssRegions=this._createExperiment("cssRegions","CSS Regions Support");this.frameworksDebuggingSupport=this._createExperiment("frameworksDebuggingSupport","Enable frameworks debugging support");this.layersPanel=this._createExperiment("layersPanel","Show Layers panel");this.stepIntoSelection=this._createExperiment("stepIntoSelection","Show step-in candidates while debugging.");this.doNotOpenDrawerOnEsc=this._createExperiment("doNotOpenDrawerWithEsc","Do not open drawer on Esc");this.showEditorInDrawer=this._createExperiment("showEditorInDrawer","Show editor in drawer");this.gpuTimeline=this._createExperiment("gpuTimeline","Show GPU data on timeline");this.applyCustomStylesheet=this._createExperiment("applyCustomStylesheet","Allow custom UI themes");this._cleanUpSetting();}
 WebInspector.ExperimentsSettings.prototype={get experiments()
 {return this._experiments.slice();},get experimentsEnabled()
 {return Preferences.experimentsEnabled||("experiments"in WebInspector.queryParamsObject);},_createExperiment:function(experimentName,experimentTitle)
@@ -1091,7 +1183,7 @@
 {return this._name;},get title()
 {return this._title;},isEnabled:function()
 {return this._experimentsSettings.isEnabled(this._name);},setEnabled:function(enabled)
-{return this._experimentsSettings.setEnabled(this._name,enabled);},enableForTest:function()
+{this._experimentsSettings.setEnabled(this._name,enabled);},enableForTest:function()
 {this._experimentsSettings._enableForTest(this._name);}}
 WebInspector.VersionController=function()
 {}
@@ -1135,16 +1227,16 @@
 {WebInspector.View._assert(parentElement,"Attempt to attach view with no parent element");if(this.element.parentElement!==parentElement){if(this.element.parentElement)
 this.detach();var currentParent=parentElement;while(currentParent&&!currentParent.__view)
 currentParent=currentParent.parentElement;if(currentParent){this._parentView=currentParent.__view;this._parentView._children.push(this);this._isRoot=false;}else
-WebInspector.View._assert(this._isRoot,"Attempt to attach view to orphan node");}else if(this._visible)
-return;this._visible=true;if(this._parentIsShowing())
-this._processWillShow();this.element.addStyleClass("visible");if(this.element.parentElement!==parentElement){WebInspector.View._incrementViewCounter(parentElement,this.element);if(insertBefore)
+WebInspector.View._assert(this._isRoot,"Attempt to attach view to orphan node");}else if(this._visible){return;}
+this._visible=true;if(this._parentIsShowing())
+this._processWillShow();this.element.classList.add("visible");if(this.element.parentElement!==parentElement){WebInspector.View._incrementViewCounter(parentElement,this.element);if(insertBefore)
 WebInspector.View._originalInsertBefore.call(parentElement,this.element,insertBefore);else
 WebInspector.View._originalAppendChild.call(parentElement,this.element);}
 if(this._parentIsShowing())
 this._processWasShown();},detach:function(overrideHideOnDetach)
 {var parentElement=this.element.parentElement;if(!parentElement)
 return;if(this._parentIsShowing())
-this._processWillHide();if(this._hideOnDetach&&!overrideHideOnDetach){this.element.removeStyleClass("visible");this._visible=false;if(this._parentIsShowing())
+this._processWillHide();if(this._hideOnDetach&&!overrideHideOnDetach){this.element.classList.remove("visible");this._visible=false;if(this._parentIsShowing())
 this._processWasHidden();return;}
 WebInspector.View._decrementViewCounter(parentElement,this.element);WebInspector.View._originalRemoveChild.call(parentElement,this.element);this._visible=false;if(this._parentIsShowing())
 this._processWasHidden();if(this._parentView){var childIndex=this._parentView._children.indexOf(this);WebInspector.View._assert(childIndex>=0,"Attempt to remove non-child view");this._parentView._children.splice(childIndex,1);this._parentView=null;}else
@@ -1191,9 +1283,10 @@
 return;while(parentElement){parentElement.__viewCounter-=count;parentElement=parentElement.parentElement;}}
 WebInspector.View._assert=function(condition,message)
 {if(!condition){console.trace();throw new Error(message);}}
-WebInspector.ViewFactory=function()
-{}
-WebInspector.ViewFactory.prototype={createView:function(id){}}
+WebInspector.ViewWithResizeCallback=function(resizeCallback)
+{WebInspector.View.call(this);this._resizeCallback=resizeCallback;}
+WebInspector.ViewWithResizeCallback.prototype={onResize:function()
+{this._resizeCallback();},__proto__:WebInspector.View.prototype}
 Element.prototype.appendChild=function(child)
 {WebInspector.View._assert(!child.__view,"Attempt to add view via regular DOM operation.");return WebInspector.View._originalAppendChild.call(this,child);}
 Element.prototype.insertBefore=function(child,anchor)
@@ -1202,12 +1295,13 @@
 {WebInspector.View._assert(!child.__viewCounter&&!child.__view,"Attempt to remove element containing view via regular DOM operation");return WebInspector.View._originalRemoveChild.call(this,child);}
 Element.prototype.removeChildren=function()
 {WebInspector.View._assert(!this.__viewCounter,"Attempt to remove element containing view via regular DOM operation");WebInspector.View._originalRemoveChildren.call(this);}
-WebInspector.installDragHandle=function(element,elementDragStart,elementDrag,elementDragEnd,cursor)
-{element.addEventListener("mousedown",WebInspector._elementDragStart.bind(WebInspector,elementDragStart,elementDrag,elementDragEnd,cursor),false);}
-WebInspector._elementDragStart=function(elementDragStart,elementDrag,elementDragEnd,cursor,event)
+WebInspector.installDragHandle=function(element,elementDragStart,elementDrag,elementDragEnd,cursor,hoverCursor)
+{element.addEventListener("mousedown",WebInspector.elementDragStart.bind(WebInspector,elementDragStart,elementDrag,elementDragEnd,cursor),false);if(hoverCursor!==null)
+element.style.cursor=hoverCursor||cursor;}
+WebInspector.elementDragStart=function(elementDragStart,elementDrag,elementDragEnd,cursor,event)
 {if(event.button||(WebInspector.isMac()&&event.ctrlKey))
 return;if(WebInspector._elementDraggingEventListener)
-return;if(elementDragStart&&!elementDragStart(event))
+return;if(elementDragStart&&!elementDragStart((event)))
 return;if(WebInspector._elementDraggingGlassPane){WebInspector._elementDraggingGlassPane.dispose();delete WebInspector._elementDraggingGlassPane;}
 var targetDocument=event.target.ownerDocument;WebInspector._elementDraggingEventListener=elementDrag;WebInspector._elementEndDraggingEventListener=elementDragEnd;WebInspector._mouseOutWhileDraggingTargetDocument=targetDocument;targetDocument.addEventListener("mousemove",WebInspector._elementDragMove,true);targetDocument.addEventListener("mouseup",WebInspector._elementDragEnd,true);targetDocument.addEventListener("mouseout",WebInspector._mouseOutWhileDragging,true);targetDocument.body.style.cursor=cursor;event.preventDefault();}
 WebInspector._mouseOutWhileDragging=function()
@@ -1216,14 +1310,14 @@
 {if(!WebInspector._mouseOutWhileDraggingTargetDocument)
 return;WebInspector._mouseOutWhileDraggingTargetDocument.removeEventListener("mouseout",WebInspector._mouseOutWhileDragging,true);delete WebInspector._mouseOutWhileDraggingTargetDocument;}
 WebInspector._elementDragMove=function(event)
-{if(WebInspector._elementDraggingEventListener(event))
+{if(WebInspector._elementDraggingEventListener((event)))
 WebInspector._cancelDragEvents(event);}
 WebInspector._cancelDragEvents=function(event)
 {var targetDocument=event.target.ownerDocument;targetDocument.removeEventListener("mousemove",WebInspector._elementDragMove,true);targetDocument.removeEventListener("mouseup",WebInspector._elementDragEnd,true);WebInspector._unregisterMouseOutWhileDragging();targetDocument.body.style.removeProperty("cursor");if(WebInspector._elementDraggingGlassPane)
 WebInspector._elementDraggingGlassPane.dispose();delete WebInspector._elementDraggingGlassPane;delete WebInspector._elementDraggingEventListener;delete WebInspector._elementEndDraggingEventListener;}
 WebInspector._elementDragEnd=function(event)
-{var elementDragEnd=WebInspector._elementEndDraggingEventListener;WebInspector._cancelDragEvents(event);event.preventDefault();if(elementDragEnd)
-elementDragEnd(event);}
+{var elementDragEnd=WebInspector._elementEndDraggingEventListener;WebInspector._cancelDragEvents((event));event.preventDefault();if(elementDragEnd)
+elementDragEnd((event));}
 WebInspector.GlassPane=function()
 {this.element=document.createElement("div");this.element.style.cssText="position:absolute;top:0;bottom:0;left:0;right:0;background-color:transparent;z-index:1000;";this.element.id="glass-pane";document.body.appendChild(this.element);WebInspector._glassPane=this;}
 WebInspector.GlassPane.prototype={dispose:function()
@@ -1254,15 +1348,15 @@
 return;duration=0;animateLoop();}
 window.requestAnimationFrame(animateLoop);return{forceComplete:forceComplete};}
 WebInspector.isBeingEdited=function(element)
-{if(element.hasStyleClass("text-prompt")||element.nodeName==="INPUT"||element.nodeName==="TEXTAREA")
+{if(element.classList.contains("text-prompt")||element.nodeName==="INPUT"||element.nodeName==="TEXTAREA")
 return true;if(!WebInspector.__editingCount)
 return false;while(element){if(element.__editing)
 return true;element=element.parentElement;}
 return false;}
 WebInspector.markBeingEdited=function(element,value)
 {if(value){if(element.__editing)
-return false;element.addStyleClass("being-edited");element.__editing=true;WebInspector.__editingCount=(WebInspector.__editingCount||0)+1;}else{if(!element.__editing)
-return false;element.removeStyleClass("being-edited");delete element.__editing;--WebInspector.__editingCount;}
+return false;element.classList.add("being-edited");element.__editing=true;WebInspector.__editingCount=(WebInspector.__editingCount||0)+1;}else{if(!element.__editing)
+return false;element.classList.remove("being-edited");delete element.__editing;--WebInspector.__editingCount;}
 return true;}
 WebInspector.EditingConfig=function(commitHandler,cancelHandler,context)
 {this.commitHandler=commitHandler;this.cancelHandler=cancelHandler
@@ -1312,7 +1406,7 @@
 {if(!WebInspector.markBeingEdited(element,true))
 return null;config=config||new WebInspector.EditingConfig(function(){},function(){});var committedCallback=config.commitHandler;var cancelledCallback=config.cancelHandler;var pasteCallback=config.pasteHandler;var context=config.context;var isMultiline=config.multiline||false;var oldText=isMultiline?config.initialValue:getContent(element);var moveDirection="";var oldTabIndex;var codeMirror;var cssLoadView;function consumeCopy(e)
 {e.consume();}
-if(isMultiline){loadScript("CodeMirrorTextEditor.js");cssLoadView=new WebInspector.CodeMirrorCSSLoadView();cssLoadView.show(element);WebInspector.setCurrentFocusElement(element);element.addEventListener("copy",consumeCopy,false);codeMirror=window.CodeMirror(element,{mode:config.mode,lineWrapping:config.lineWrapping,smartIndent:config.smartIndent,autofocus:true,theme:config.theme,value:oldText});codeMirror.getWrapperElement().addStyleClass("source-code");codeMirror.on("cursorActivity",function(cm){cm.display.cursor.scrollIntoViewIfNeeded(false);});}else{element.addStyleClass("editing");oldTabIndex=element.getAttribute("tabIndex");if(typeof oldTabIndex!=="number"||oldTabIndex<0)
+if(isMultiline){loadScript("CodeMirrorTextEditor.js");cssLoadView=new WebInspector.CodeMirrorCSSLoadView();cssLoadView.show(element);WebInspector.setCurrentFocusElement(element);element.addEventListener("copy",consumeCopy,false);codeMirror=window.CodeMirror(element,{mode:config.mode,lineWrapping:config.lineWrapping,smartIndent:config.smartIndent,autofocus:true,theme:config.theme,value:oldText});codeMirror.getWrapperElement().classList.add("source-code");codeMirror.on("cursorActivity",function(cm){cm.display.cursor.scrollIntoViewIfNeeded(false);});}else{element.classList.add("editing");oldTabIndex=element.getAttribute("tabIndex");if(typeof oldTabIndex!=="number"||oldTabIndex<0)
 element.tabIndex=0;WebInspector.setCurrentFocusElement(element);}
 function setWidth(width)
 {const padding=30;codeMirror.getWrapperElement().style.width=(width-codeMirror.getWrapperElement().offsetLeft-padding)+"px";codeMirror.refresh();}
@@ -1324,7 +1418,7 @@
 function cleanUpAfterEditing()
 {WebInspector.markBeingEdited(element,false);element.removeEventListener("blur",blurEventListener,isMultiline);element.removeEventListener("keydown",keyDownEventListener,true);if(pasteCallback)
 element.removeEventListener("paste",pasteEventListener,true);WebInspector.restoreFocusFromElement(element);if(isMultiline){element.removeEventListener("copy",consumeCopy,false);cssLoadView.detach();return;}
-this.removeStyleClass("editing");if(typeof oldTabIndex!=="number")
+this.classList.remove("editing");if(typeof oldTabIndex!=="number")
 element.removeAttribute("tabIndex");else
 this.tabIndex=oldTabIndex;this.scrollTop=0;this.scrollLeft=0;}
 function editingCancelled()
@@ -1376,35 +1470,15 @@
 {return WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Open link in new tab":"Open Link in New Tab");}
 WebInspector.copyLinkAddressLabel=function()
 {return WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy link address":"Copy Link Address");}
-WebInspector.platform=function()
-{if(!WebInspector._platform)
-WebInspector._platform=InspectorFrontendHost.platform();return WebInspector._platform;}
-WebInspector.isMac=function()
-{if(typeof WebInspector._isMac==="undefined")
-WebInspector._isMac=WebInspector.platform()==="mac";return WebInspector._isMac;}
-WebInspector.isWin=function()
-{if(typeof WebInspector._isWin==="undefined")
-WebInspector._isWin=WebInspector.platform()==="windows";return WebInspector._isWin;}
-WebInspector.PlatformFlavor={WindowsVista:"windows-vista",MacTiger:"mac-tiger",MacLeopard:"mac-leopard",MacSnowLeopard:"mac-snowleopard",MacLion:"mac-lion",MacMountainLion:"mac-mountain-lion"}
-WebInspector.platformFlavor=function()
-{function detectFlavor()
-{const userAgent=navigator.userAgent;if(WebInspector.platform()==="windows"){var match=userAgent.match(/Windows NT (\d+)\.(?:\d+)/);if(match&&match[1]>=6)
-return WebInspector.PlatformFlavor.WindowsVista;return null;}else if(WebInspector.platform()==="mac"){var match=userAgent.match(/Mac OS X\s*(?:(\d+)_(\d+))?/);if(!match||match[1]!=10)
-return WebInspector.PlatformFlavor.MacSnowLeopard;switch(Number(match[2])){case 4:return WebInspector.PlatformFlavor.MacTiger;case 5:return WebInspector.PlatformFlavor.MacLeopard;case 6:return WebInspector.PlatformFlavor.MacSnowLeopard;case 7:return WebInspector.PlatformFlavor.MacLion;case 8:return WebInspector.PlatformFlavor.MacMountainLion;default:return"";}}}
-if(!WebInspector._platformFlavor)
-WebInspector._platformFlavor=detectFlavor();return WebInspector._platformFlavor;}
-WebInspector.port=function()
-{if(!WebInspector._port)
-WebInspector._port=InspectorFrontendHost.port();return WebInspector._port;}
 WebInspector.installPortStyles=function()
-{var platform=WebInspector.platform();document.body.addStyleClass("platform-"+platform);var flavor=WebInspector.platformFlavor();if(flavor)
-document.body.addStyleClass("platform-"+flavor);var port=WebInspector.port();document.body.addStyleClass("port-"+port);}
+{var platform=WebInspector.platform();document.body.classList.add("platform-"+platform);var flavor=WebInspector.platformFlavor();if(flavor)
+document.body.classList.add("platform-"+flavor);var port=WebInspector.port();document.body.classList.add("port-"+port);}
 WebInspector._windowFocused=function(event)
 {if(event.target.document.nodeType===Node.DOCUMENT_NODE)
-document.body.removeStyleClass("inactive");}
+document.body.classList.remove("inactive");}
 WebInspector._windowBlurred=function(event)
 {if(event.target.document.nodeType===Node.DOCUMENT_NODE)
-document.body.addStyleClass("inactive");}
+document.body.classList.add("inactive");}
 WebInspector.previousFocusElement=function()
 {return WebInspector._previousFocusElement;}
 WebInspector.currentFocusElement=function()
@@ -1425,16 +1499,22 @@
 WebInspector.setCurrentFocusElement(WebInspector.previousFocusElement());}
 WebInspector.setToolbarColors=function(backgroundColor,color)
 {if(!WebInspector._themeStyleElement){WebInspector._themeStyleElement=document.createElement("style");document.head.appendChild(WebInspector._themeStyleElement);}
-WebInspector._themeStyleElement.textContent=".toolbar-background {\
-             background-image: none !important;\
-             background-color: "+backgroundColor+" !important;\
-             color: "+color+" !important;\
-         }";}
+var parsedColor=WebInspector.Color.parse(color);var shadowColor=parsedColor?parsedColor.invert().setAlpha(0.33).toString(WebInspector.Color.Format.RGBA):"white";var prefix=WebInspector.isMac()?"body:not(.undocked)":"";WebInspector._themeStyleElement.textContent=String.sprintf("%s .toolbar-background {\
+                 background-image: none !important;\
+                 background-color: %s !important;\
+                 color: %s !important;\
+             }",prefix,backgroundColor,color)+
+String.sprintf("%s .toolbar-background button.status-bar-item .glyph, %s .toolbar-background button.status-bar-item .long-click-glyph {\
+                 background-color: %s;\
+             }",prefix,prefix,color)+
+String.sprintf("%s .toolbar-background button.status-bar-item .glyph.shadow, %s .toolbar-background button.status-bar-item .long-click-glyph.shadow {\
+                 background-color: %s;\
+             }",prefix,prefix,shadowColor);}
 WebInspector.resetToolbarColors=function()
 {if(WebInspector._themeStyleElement)
 WebInspector._themeStyleElement.textContent="";}
 WebInspector.highlightSearchResult=function(element,offset,length,domChanges)
-{var result=WebInspector.highlightSearchResults(element,[{offset:offset,length:length}],domChanges);return result.length?result[0]:null;}
+{var result=WebInspector.highlightSearchResults(element,[new WebInspector.SourceRange(offset,length)],domChanges);return result.length?result[0]:null;}
 WebInspector.highlightSearchResults=function(element,resultRanges,changes)
 {return WebInspector.highlightRangesWithStyleClass(element,resultRanges,"highlighted-search-result",changes);}
 WebInspector.highlightRangesWithStyleClass=function(element,resultRanges,styleClass,changes)
@@ -1462,7 +1542,7 @@
 var methods=WebInspector._postUpdateHandlers.get(object);if(!methods){methods=new Map();WebInspector._postUpdateHandlers.put(object,methods);}
 methods.put(method);}
 WebInspector.CodeMirrorCSSLoadView=function()
-{WebInspector.View.call(this);this.element.addStyleClass("hidden");this.registerRequiredCSS("cm/codemirror.css");this.registerRequiredCSS("cm/cmdevtools.css");}
+{WebInspector.View.call(this);this.element.classList.add("hidden");this.registerRequiredCSS("cm/codemirror.css");this.registerRequiredCSS("cm/cmdevtools.css");}
 WebInspector.CodeMirrorCSSLoadView.prototype={__proto__:WebInspector.View.prototype};(function(){function windowLoaded()
 {window.addEventListener("focus",WebInspector._windowFocused,false);window.addEventListener("blur",WebInspector._windowBlurred,false);document.addEventListener("focus",WebInspector._focusChanged.bind(this),true);window.removeEventListener("DOMContentLoaded",windowLoaded,false);}
 window.addEventListener("DOMContentLoaded",windowLoaded,false);})();WebInspector.HelpScreen=function(title)
@@ -1475,17 +1555,20 @@
 {var closeButton=document.createElement("div");closeButton.className="help-close-button close-button-gray";closeButton.addEventListener("click",this.hide.bind(this),false);return closeButton;},showModal:function()
 {var visibleHelpScreen=WebInspector.HelpScreen._visibleScreen;if(visibleHelpScreen===this)
 return;if(visibleHelpScreen)
-visibleHelpScreen.hide();WebInspector.HelpScreen._visibleScreen=this;this.show(document.body);this.focus();},hide:function()
+visibleHelpScreen.hide();WebInspector.HelpScreen._visibleScreen=this;this.show(WebInspector.inspectorView.devtoolsElement());this.focus();},hide:function()
 {if(!this.isShowing())
 return;WebInspector.HelpScreen._visibleScreen=null;WebInspector.restoreFocusFromElement(this.element);this.detach();},isClosingKey:function(keyCode)
 {return[WebInspector.KeyboardShortcut.Keys.Enter.code,WebInspector.KeyboardShortcut.Keys.Esc.code,WebInspector.KeyboardShortcut.Keys.Space.code,].indexOf(keyCode)>=0;},_onKeyDown:function(event)
 {if(this.isShowing()&&this.isClosingKey(event.keyCode)){this.hide();event.consume();}},__proto__:WebInspector.View.prototype}
-WebInspector.HelpScreenUntilReload=function(title,message)
-{WebInspector.HelpScreen.call(this,title);var p=this.contentElement.createChild("p");p.addStyleClass("help-section");p.textContent=message;WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this.hide,this);}
-WebInspector.HelpScreenUntilReload.prototype={willHide:function()
-{WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this.hide,this);WebInspector.HelpScreen.prototype.willHide.call(this);},__proto__:WebInspector.HelpScreen.prototype}
+WebInspector.RemoteDebuggingTerminatedScreen=function(reason)
+{WebInspector.HelpScreen.call(this,WebInspector.UIString("Detached from the target"));var p=this.contentElement.createChild("p");p.classList.add("help-section");p.createChild("span").textContent=WebInspector.UIString("Remote debugging has been terminated with reason: ");p.createChild("span","error-message").textContent=reason;p.createChild("br");p.createChild("span").textContent=WebInspector.UIString("Please re-attach to the new target.");}
+WebInspector.RemoteDebuggingTerminatedScreen.prototype={__proto__:WebInspector.HelpScreen.prototype}
+function dispatchMethodByName(methodName)
+{var callId=++lastCallId;var argsArray=Array.prototype.slice.call(arguments,1);var callback=argsArray[argsArray.length-1];if(typeof callback==="function"){argsArray.pop();InspectorFrontendHost._callbacks[callId]=callback;}
+var message={"id":callId,"method":methodName};if(argsArray.length)
+message.params=argsArray;InspectorFrontendHost.sendMessageToEmbedder(JSON.stringify(message));}
 if(!window.InspectorFrontendHost){WebInspector.InspectorFrontendHostStub=function()
-{this.isStub=true;this._fileBuffers={};}
+{this.isStub=true;}
 WebInspector.InspectorFrontendHostStub.prototype={getSelectionBackgroundColor:function()
 {return"#6e86ff";},getSelectionForegroundColor:function()
 {return"#ffffff";},platform:function()
@@ -1495,8 +1578,8 @@
 {return"unknown";},bringToFront:function()
 {this._windowVisible=true;},closeWindow:function()
 {this._windowVisible=false;},requestSetDockSide:function(side)
-{InspectorFrontendAPI.setDockSide(side);},setWindowBounds:function(x,y,width,height,callback)
-{callback();},moveWindowBy:function(x,y)
+{},setContentsInsets:function(top,left,bottom,right)
+{},moveWindowBy:function(x,y)
 {},setInjectedScriptForOrigin:function(origin,script)
 {},loaded:function()
 {},localizedStringsURL:function()
@@ -1504,9 +1587,8 @@
 {document.title=WebInspector.UIString(Preferences.applicationTitle,url);},copyText:function(text)
 {WebInspector.log("Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect",WebInspector.ConsoleMessage.MessageLevel.Error,true);},openInNewTab:function(url)
 {window.open(url,"_blank");},save:function(url,content,forceSaveAs)
-{WebInspector.log("Saving files is not enabled in hosted mode. Please inspect using chrome://inspect",WebInspector.ConsoleMessage.MessageLevel.Error,true);},append:function(url,content)
-{WebInspector.log("Saving files is not enabled in hosted mode. Please inspect using chrome://inspect",WebInspector.ConsoleMessage.MessageLevel.Error,true);},close:function(url)
-{},sendMessageToBackend:function(message)
+{WebInspector.log("Saving files is not enabled in hosted mode. Please inspect using chrome://inspect",WebInspector.ConsoleMessage.MessageLevel.Error,true);WebInspector.fileManager.canceledSaveURL(url);},append:function(url,content)
+{WebInspector.log("Saving files is not enabled in hosted mode. Please inspect using chrome://inspect",WebInspector.ConsoleMessage.MessageLevel.Error,true);},sendMessageToBackend:function(message)
 {},sendMessageToEmbedder:function(message)
 {},recordActionTaken:function(actionCode)
 {},recordPanelShown:function(panelCode)
@@ -1516,34 +1598,32 @@
 {},addFileSystem:function()
 {},removeFileSystem:function(fileSystemPath)
 {},isolatedFileSystem:function(fileSystemId,registeredName)
-{return null;},indexPath:function(requestId,fileSystemPath)
+{return null;},upgradeDraggedFileSystemPermissions:function(domFileSystem)
+{},indexPath:function(requestId,fileSystemPath)
 {},stopIndexing:function(requestId)
 {},searchInPath:function(requestId,fileSystemPath,query)
 {},setZoomFactor:function(zoom)
-{},isUnderTest:function()
+{},zoomFactor:function()
+{return 1;},isUnderTest:function()
 {return false;}}
 InspectorFrontendHost=new WebInspector.InspectorFrontendHostStub();}else if(InspectorFrontendHost.sendMessageToEmbedder){var lastCallId=0;InspectorFrontendHost._callbacks=[];InspectorFrontendHost.embedderMessageAck=function(id,error)
 {var callback=InspectorFrontendHost._callbacks[id];delete InspectorFrontendHost._callbacks[id];if(callback)
 callback(error);}
-function dispatch(methodName)
-{var callId=++lastCallId;var argsArray=Array.prototype.slice.call(arguments,1);var callback=argsArray[argsArray.length-1];if(typeof callback==="function"){argsArray.pop();InspectorFrontendHost._callbacks[callId]=callback;}
-var message={"id":callId,"method":methodName};if(argsArray.length)
-message.params=argsArray;InspectorFrontendHost.sendMessageToEmbedder(JSON.stringify(message));};var methodList=["addFileSystem","append","bringToFront","indexPath","moveWindowBy","openInNewTab","removeFileSystem","requestFileSystems","requestSetDockSide","save","searchInPath","setWindowBounds","stopIndexing"];for(var i=0;i<methodList.length;++i)
-InspectorFrontendHost[methodList[i]]=dispatch.bind(null,methodList[i]);}
-WebInspector.RemoteDebuggingTerminatedScreen=function(reason)
-{WebInspector.HelpScreen.call(this,WebInspector.UIString("Detached from the target"));var p=this.contentElement.createChild("p");p.addStyleClass("help-section");p.createChild("span").textContent="Remote debugging has been terminated with reason: ";p.createChild("span","error-message").textContent=reason;p.createChild("br");p.createChild("span").textContent="Please re-attach to the new target.";}
-WebInspector.RemoteDebuggingTerminatedScreen.prototype={__proto__:WebInspector.HelpScreen.prototype}
+var methodList=["addFileSystem","append","bringToFront","closeWindow","indexPath","moveWindowBy","openInNewTab","removeFileSystem","requestFileSystems","requestSetDockSide","save","searchInPath","setContentsInsets","stopIndexing"];for(var i=0;i<methodList.length;++i)
+InspectorFrontendHost[methodList[i]]=dispatchMethodByName.bind(null,methodList[i]);}
 WebInspector.FileManager=function()
 {this._saveCallbacks={};}
 WebInspector.FileManager.EventTypes={SavedURL:"SavedURL",AppendedToURL:"AppendedToURL"}
 WebInspector.FileManager.prototype={canSave:function()
 {return true;},save:function(url,content,forceSaveAs,callback)
-{var savedURLs=WebInspector.settings.savedURLs.get();delete savedURLs[url];WebInspector.settings.savedURLs.set(savedURLs);InspectorFrontendHost.save(url,content,forceSaveAs);this._saveCallbacks[url]=callback;},savedURL:function(url)
-{var savedURLs=WebInspector.settings.savedURLs.get();savedURLs[url]=true;WebInspector.settings.savedURLs.set(savedURLs);this.dispatchEventToListeners(WebInspector.FileManager.EventTypes.SavedURL,url);var callback=this._saveCallbacks[url];delete this._saveCallbacks[url];if(callback)
-callback();},isURLSaved:function(url)
+{var savedURLs=WebInspector.settings.savedURLs.get();delete savedURLs[url];WebInspector.settings.savedURLs.set(savedURLs);this._saveCallbacks[url]=callback||null;InspectorFrontendHost.save(url,content,forceSaveAs);},savedURL:function(url)
+{var savedURLs=WebInspector.settings.savedURLs.get();savedURLs[url]=true;WebInspector.settings.savedURLs.set(savedURLs);this.dispatchEventToListeners(WebInspector.FileManager.EventTypes.SavedURL,url);this._invokeSaveCallback(url,true);},_invokeSaveCallback:function(url,accepted)
+{var callback=this._saveCallbacks[url];delete this._saveCallbacks[url];if(callback)
+callback(accepted);},canceledSaveURL:function(url)
+{this._invokeSaveCallback(url,false);},isURLSaved:function(url)
 {var savedURLs=WebInspector.settings.savedURLs.get();return savedURLs[url];},append:function(url,content)
 {InspectorFrontendHost.append(url,content);},close:function(url)
-{InspectorFrontendHost.close(url);},appendedToURL:function(url)
+{},appendedToURL:function(url)
 {this.dispatchEventToListeners(WebInspector.FileManager.EventTypes.AppendedToURL,url);},__proto__:WebInspector.Object.prototype}
 WebInspector.fileManager=new WebInspector.FileManager();WebInspector.Checkbox=function(label,className,tooltip)
 {this.element=document.createElement('label');this._inputElement=document.createElement('input');this._inputElement.type="checkbox";this.element.className=className;this.element.appendChild(this._inputElement);this.element.appendChild(document.createTextNode(label));if(tooltip)
@@ -1578,41 +1658,37 @@
 {var result={type:"subMenu",label:this._label,enabled:!this._disabled,subItems:[]};for(var i=0;i<this._items.length;++i)
 result.subItems.push(this._items[i]._buildDescriptor());return result;},__proto__:WebInspector.ContextMenuItem.prototype}
 WebInspector.ContextMenu=function(event){WebInspector.ContextSubMenuItem.call(this,this,"");this._event=event;this._handlers={};this._id=0;}
+WebInspector.ContextMenu.setUseSoftMenu=function(useSoftMenu)
+{WebInspector.ContextMenu._useSoftMenu=useSoftMenu;}
 WebInspector.ContextMenu.prototype={nextId:function()
 {return this._id++;},show:function()
-{var menuObject=this._buildDescriptor();if(menuObject.length){WebInspector._contextMenu=this;InspectorFrontendHost.showContextMenu(this._event,menuObject);this._event.consume();}},showSoftMenu:function()
-{var menuObject=this._buildDescriptor();if(menuObject.length){WebInspector._contextMenu=this;var softMenu=new WebInspector.SoftContextMenu(menuObject);softMenu.show(this._event,true);}
-this._event.consume();},_setHandler:function(id,handler)
+{var menuObject=this._buildDescriptor();if(menuObject.length){WebInspector._contextMenu=this;if(WebInspector.ContextMenu._useSoftMenu){var softMenu=new WebInspector.SoftContextMenu(menuObject);softMenu.show(this._event);}else{InspectorFrontendHost.showContextMenu(this._event,menuObject);}
+this._event.consume();}},_setHandler:function(id,handler)
 {if(handler)
 this._handlers[id]=handler;},_buildDescriptor:function()
 {var result=[];for(var i=0;i<this._items.length;++i)
 result.push(this._items[i]._buildDescriptor());return result;},_itemSelected:function(id)
 {if(this._handlers[id])
 this._handlers[id].call(this);},appendApplicableItems:function(target)
-{for(var i=0;i<WebInspector.ContextMenu._providers.length;++i){var provider=WebInspector.ContextMenu._providers[i];this.appendSeparator();provider.appendApplicableItems(this._event,this,target);this.appendSeparator();}},__proto__:WebInspector.ContextSubMenuItem.prototype}
+{WebInspector.moduleManager.extensions(WebInspector.ContextMenu.Provider).forEach(processProviders.bind(this));function processProviders(extension)
+{if(!extension.isApplicable(target))
+return;var provider=(extension.instance());this.appendSeparator();provider.appendApplicableItems(this._event,this,target);this.appendSeparator();}},__proto__:WebInspector.ContextSubMenuItem.prototype}
 WebInspector.ContextMenu.Provider=function(){}
 WebInspector.ContextMenu.Provider.prototype={appendApplicableItems:function(event,contextMenu,target){}}
-WebInspector.ContextMenu.registerProvider=function(provider)
-{WebInspector.ContextMenu._providers.push(provider);}
-WebInspector.ContextMenu._providers=[];WebInspector.contextMenuItemSelected=function(id)
+WebInspector.contextMenuItemSelected=function(id)
 {if(WebInspector._contextMenu)
 WebInspector._contextMenu._itemSelected(id);}
 WebInspector.contextMenuCleared=function()
 {}
 WebInspector.SoftContextMenu=function(items,parentMenu)
 {this._items=items;this._parentMenu=parentMenu;}
-WebInspector.SoftContextMenu.prototype={show:function(event,alignToCurrentTarget)
+WebInspector.SoftContextMenu.prototype={show:function(event)
 {this._x=event.x;this._y=event.y;this._time=new Date().getTime();var absoluteX=event.pageX;var absoluteY=event.pageY;var targetElement=event.target;while(targetElement&&window!==targetElement.ownerDocument.defaultView){var frameElement=targetElement.ownerDocument.defaultView.frameElement;absoluteY+=frameElement.totalOffsetTop();absoluteX+=frameElement.totalOffsetLeft();targetElement=frameElement;}
-var targetRect;this._contextMenuElement=document.createElement("div");this._contextMenuElement.className="soft-context-menu";this._contextMenuElement.tabIndex=0;if(alignToCurrentTarget){targetRect=event.currentTarget.getBoundingClientRect();absoluteX=targetRect.left;absoluteY=targetRect.bottom;}
-this._contextMenuElement.style.top=absoluteY+"px";this._contextMenuElement.style.left=absoluteX+"px";this._contextMenuElement.addEventListener("mouseup",consumeEvent,false);this._contextMenuElement.addEventListener("keydown",this._menuKeyDown.bind(this),false);for(var i=0;i<this._items.length;++i)
+var targetRect;this._contextMenuElement=document.createElement("div");this._contextMenuElement.className="soft-context-menu";this._contextMenuElement.tabIndex=0;this._contextMenuElement.style.top=absoluteY+"px";this._contextMenuElement.style.left=absoluteX+"px";this._contextMenuElement.addEventListener("mouseup",consumeEvent,false);this._contextMenuElement.addEventListener("keydown",this._menuKeyDown.bind(this),false);for(var i=0;i<this._items.length;++i)
 this._contextMenuElement.appendChild(this._createMenuItem(this._items[i]));if(!this._parentMenu){this._glassPaneElement=document.createElement("div");this._glassPaneElement.className="soft-context-menu-glass-pane";this._glassPaneElement.tabIndex=0;this._glassPaneElement.addEventListener("mouseup",this._glassPaneMouseUp.bind(this),false);this._glassPaneElement.appendChild(this._contextMenuElement);document.body.appendChild(this._glassPaneElement);this._focus();}else
-this._parentMenu._parentGlassPaneElement().appendChild(this._contextMenuElement);if(document.body.offsetWidth<this._contextMenuElement.offsetLeft+this._contextMenuElement.offsetWidth){if(alignToCurrentTarget)
-this._contextMenuElement.style.left=Math.max(0,targetRect.right-this._contextMenuElement.offsetWidth)+"px";else
-this._contextMenuElement.style.left=(absoluteX-this._contextMenuElement.offsetWidth)+"px";}
-if(document.body.offsetHeight<this._contextMenuElement.offsetTop+this._contextMenuElement.offsetHeight){if(alignToCurrentTarget)
-this._contextMenuElement.style.top=Math.max(0,targetRect.top-this._contextMenuElement.offsetHeight)+"px";else
-this._contextMenuElement.style.top=(document.body.offsetHeight-this._contextMenuElement.offsetHeight)+"px";}
-event.consume(true);},_parentGlassPaneElement:function()
+this._parentMenu._parentGlassPaneElement().appendChild(this._contextMenuElement);if(document.body.offsetWidth<this._contextMenuElement.offsetLeft+this._contextMenuElement.offsetWidth)
+this._contextMenuElement.style.left=(absoluteX-this._contextMenuElement.offsetWidth)+"px";if(document.body.offsetHeight<this._contextMenuElement.offsetTop+this._contextMenuElement.offsetHeight)
+this._contextMenuElement.style.top=(document.body.offsetHeight-this._contextMenuElement.offsetHeight)+"px";event.consume(true);},_parentGlassPaneElement:function()
 {if(this._glassPaneElement)
 return this._glassPaneElement;if(this._parentMenu)
 return this._parentMenu._parentGlassPaneElement();return null;},_createMenuItem:function(item)
@@ -1636,11 +1712,11 @@
 return;this._subMenu._discardSubMenus();this._focus();},_menuItemMouseOver:function(event)
 {this._highlightMenuItem(event.target);},_menuItemMouseOut:function(event)
 {if(!this._subMenu||!event.relatedTarget){this._highlightMenuItem(null);return;}
-var relatedTarget=event.relatedTarget;if(this._contextMenuElement.isSelfOrAncestor(relatedTarget)||relatedTarget.hasStyleClass("soft-context-menu-glass-pane"))
+var relatedTarget=event.relatedTarget;if(this._contextMenuElement.isSelfOrAncestor(relatedTarget)||relatedTarget.classList.contains("soft-context-menu-glass-pane"))
 this._highlightMenuItem(null);},_highlightMenuItem:function(menuItemElement)
 {if(this._highlightedMenuItemElement===menuItemElement)
-return;this._hideSubMenu();if(this._highlightedMenuItemElement){this._highlightedMenuItemElement.removeStyleClass("soft-context-menu-item-mouse-over");if(this._highlightedMenuItemElement._subItems&&this._highlightedMenuItemElement._subMenuTimer){clearTimeout(this._highlightedMenuItemElement._subMenuTimer);delete this._highlightedMenuItemElement._subMenuTimer;}}
-this._highlightedMenuItemElement=menuItemElement;if(this._highlightedMenuItemElement){this._highlightedMenuItemElement.addStyleClass("soft-context-menu-item-mouse-over");this._contextMenuElement.focus();if(this._highlightedMenuItemElement._subItems&&!this._highlightedMenuItemElement._subMenuTimer)
+return;this._hideSubMenu();if(this._highlightedMenuItemElement){this._highlightedMenuItemElement.classList.remove("soft-context-menu-item-mouse-over");if(this._highlightedMenuItemElement._subItems&&this._highlightedMenuItemElement._subMenuTimer){clearTimeout(this._highlightedMenuItemElement._subMenuTimer);delete this._highlightedMenuItemElement._subMenuTimer;}}
+this._highlightedMenuItemElement=menuItemElement;if(this._highlightedMenuItemElement){this._highlightedMenuItemElement.classList.add("soft-context-menu-item-mouse-over");this._contextMenuElement.focus();if(this._highlightedMenuItemElement._subItems&&!this._highlightedMenuItemElement._subMenuTimer)
 this._highlightedMenuItemElement._subMenuTimer=setTimeout(this._showSubMenu.bind(this,this._highlightedMenuItemElement,this._buildMouseEventForSubMenu(this._highlightedMenuItemElement)),150);}},_highlightPrevious:function()
 {var menuItemElement=this._highlightedMenuItemElement?this._highlightedMenuItemElement.previousSibling:this._contextMenuElement.lastChild;while(menuItemElement&&menuItemElement._isSeparator)
 menuItemElement=menuItemElement.previousSibling;if(menuItemElement)
@@ -1672,7 +1748,7 @@
 WebInspector.KeyboardShortcut=function()
 {}
 WebInspector.KeyboardShortcut.Modifiers={None:0,Shift:1,Ctrl:2,Alt:4,Meta:8,get CtrlOrMeta()
-{return WebInspector.isMac()?this.Meta:this.Ctrl;}};WebInspector.KeyboardShortcut.Key;WebInspector.KeyboardShortcut.Keys={Backspace:{code:8,name:"\u21a4"},Tab:{code:9,name:{mac:"\u21e5",other:"Tab"}},Enter:{code:13,name:{mac:"\u21a9",other:"Enter"}},Esc:{code:27,name:{mac:"\u238b",other:"Esc"}},Space:{code:32,name:"Space"},PageUp:{code:33,name:{mac:"\u21de",other:"PageUp"}},PageDown:{code:34,name:{mac:"\u21df",other:"PageDown"}},End:{code:35,name:{mac:"\u2197",other:"End"}},Home:{code:36,name:{mac:"\u2196",other:"Home"}},Left:{code:37,name:"\u2190"},Up:{code:38,name:"\u2191"},Right:{code:39,name:"\u2192"},Down:{code:40,name:"\u2193"},Delete:{code:46,name:"Del"},Zero:{code:48,name:"0"},F1:{code:112,name:"F1"},F2:{code:113,name:"F2"},F3:{code:114,name:"F3"},F4:{code:115,name:"F4"},F5:{code:116,name:"F5"},F6:{code:117,name:"F6"},F7:{code:118,name:"F7"},F8:{code:119,name:"F8"},F9:{code:120,name:"F9"},F10:{code:121,name:"F10"},F11:{code:122,name:"F11"},F12:{code:123,name:"F12"},Semicolon:{code:186,name:";"},Plus:{code:187,name:"+"},Comma:{code:188,name:","},Minus:{code:189,name:"-"},Period:{code:190,name:"."},Slash:{code:191,name:"/"},Apostrophe:{code:192,name:"`"},Backslash:{code:220,name:"\\"},SingleQuote:{code:222,name:"\'"},H:{code:72,name:"H"},Ctrl:{code:17,name:"Ctrl"},Meta:{code:91,name:"Meta"},Tilde:{code:192,name:"Tilde"},get CtrlOrMeta()
+{return WebInspector.isMac()?this.Meta:this.Ctrl;}};WebInspector.KeyboardShortcut.Key;WebInspector.KeyboardShortcut.Keys={Backspace:{code:8,name:"\u21a4"},Tab:{code:9,name:{mac:"\u21e5",other:"Tab"}},Enter:{code:13,name:{mac:"\u21a9",other:"Enter"}},Ctrl:{code:17,name:"Ctrl"},Esc:{code:27,name:{mac:"\u238b",other:"Esc"}},Space:{code:32,name:"Space"},PageUp:{code:33,name:{mac:"\u21de",other:"PageUp"}},PageDown:{code:34,name:{mac:"\u21df",other:"PageDown"}},End:{code:35,name:{mac:"\u2197",other:"End"}},Home:{code:36,name:{mac:"\u2196",other:"Home"}},Left:{code:37,name:"\u2190"},Up:{code:38,name:"\u2191"},Right:{code:39,name:"\u2192"},Down:{code:40,name:"\u2193"},Delete:{code:46,name:"Del"},Zero:{code:48,name:"0"},H:{code:72,name:"H"},Meta:{code:91,name:"Meta"},F1:{code:112,name:"F1"},F2:{code:113,name:"F2"},F3:{code:114,name:"F3"},F4:{code:115,name:"F4"},F5:{code:116,name:"F5"},F6:{code:117,name:"F6"},F7:{code:118,name:"F7"},F8:{code:119,name:"F8"},F9:{code:120,name:"F9"},F10:{code:121,name:"F10"},F11:{code:122,name:"F11"},F12:{code:123,name:"F12"},Semicolon:{code:186,name:";"},Plus:{code:187,name:"+"},Comma:{code:188,name:","},Minus:{code:189,name:"-"},Period:{code:190,name:"."},Slash:{code:191,name:"/"},QuestionMark:{code:191,name:"?"},Apostrophe:{code:192,name:"`"},Tilde:{code:192,name:"Tilde"},Backslash:{code:220,name:"\\"},SingleQuote:{code:222,name:"\'"},get CtrlOrMeta()
 {return WebInspector.isMac()?this.Meta:this.Ctrl;},};WebInspector.KeyboardShortcut.makeKey=function(keyCode,modifiers)
 {if(typeof keyCode==="string")
 keyCode=keyCode.charCodeAt(0)-32;modifiers=modifiers||WebInspector.KeyboardShortcut.Modifiers.None;return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyCode,modifiers);}
@@ -1710,12 +1786,12 @@
 {if(isScroll&&this._element.isAncestor(event.target)||!this.visible())
 return;this._updateBoxPosition(this._anchorBox);},setPosition:function(anchorBox)
 {this._updateBoxPosition(anchorBox);},_updateBoxPosition:function(anchorBox)
-{this._anchorBox=anchorBox;anchorBox=anchorBox||this._anchorElement.boxInWindow(window);this.contentElement.style.display="inline-block";document.body.appendChild(this.contentElement);this.contentElement.positionAt(0,0);var contentWidth=this.contentElement.offsetWidth;var contentHeight=this.contentElement.offsetHeight;this.contentElement.style.display="block";this.containerElement.appendChild(this.contentElement);const spacer=6;const suggestBoxPaddingX=21;const suggestBoxPaddingY=2;var maxWidth=document.body.offsetWidth-anchorBox.x-spacer;var width=Math.min(contentWidth,maxWidth-suggestBoxPaddingX)+suggestBoxPaddingX;var paddedWidth=contentWidth+suggestBoxPaddingX;var boxX=anchorBox.x;if(width<paddedWidth){maxWidth=document.body.offsetWidth-spacer;width=Math.min(contentWidth,maxWidth-suggestBoxPaddingX)+suggestBoxPaddingX;boxX=document.body.offsetWidth-width;}
-var boxY;var aboveHeight=anchorBox.y;var underHeight=document.body.offsetHeight-anchorBox.y-anchorBox.height;var maxHeight=this._maxItemsHeight?contentHeight*this._maxItemsHeight/this._length:Math.max(underHeight,aboveHeight)-spacer;var height=Math.min(contentHeight,maxHeight-suggestBoxPaddingY)+suggestBoxPaddingY;if(underHeight>=aboveHeight){boxY=anchorBox.y+anchorBox.height;this._element.removeStyleClass("above-anchor");this._element.addStyleClass("under-anchor");}else{boxY=anchorBox.y-height;this._element.removeStyleClass("under-anchor");this._element.addStyleClass("above-anchor");}
-this._element.positionAt(boxX,boxY);this._element.style.width=width+"px";this._element.style.height=height+"px";},_onBoxMouseDown:function(event)
+{this._anchorBox=anchorBox;anchorBox=anchorBox||this._anchorElement.boxInWindow(window);var container=WebInspector.inspectorView.devtoolsElement();anchorBox=anchorBox.relativeToElement(container);var totalWidth=container.offsetWidth;var totalHeight=container.offsetHeight;this.contentElement.style.display="inline-block";document.body.appendChild(this.contentElement);this.contentElement.positionAt(0,0);var contentWidth=this.contentElement.offsetWidth;var contentHeight=this.contentElement.offsetHeight;this.contentElement.style.display="block";this.containerElement.appendChild(this.contentElement);const spacer=6;const suggestBoxPaddingX=21;const suggestBoxPaddingY=2;var maxWidth=totalWidth-anchorBox.x-spacer;var width=Math.min(contentWidth,maxWidth-suggestBoxPaddingX)+suggestBoxPaddingX;var paddedWidth=contentWidth+suggestBoxPaddingX;var boxX=anchorBox.x;if(width<paddedWidth){maxWidth=totalWidth-spacer;width=Math.min(contentWidth,maxWidth-suggestBoxPaddingX)+suggestBoxPaddingX;boxX=totalWidth-width;}
+var boxY;var aboveHeight=anchorBox.y;var underHeight=totalHeight-anchorBox.y-anchorBox.height;var maxHeight=this._maxItemsHeight?contentHeight*this._maxItemsHeight/this._length:Math.max(underHeight,aboveHeight)-spacer;var height=Math.min(contentHeight,maxHeight-suggestBoxPaddingY)+suggestBoxPaddingY;if(underHeight>=aboveHeight){boxY=anchorBox.y+anchorBox.height;this._element.classList.remove("above-anchor");this._element.classList.add("under-anchor");}else{boxY=anchorBox.y-height;this._element.classList.remove("under-anchor");this._element.classList.add("above-anchor");}
+this._element.positionAt(boxX,boxY,container);this._element.style.width=width+"px";this._element.style.height=height+"px";},_onBoxMouseDown:function(event)
 {event.preventDefault();},hide:function()
 {if(!this.visible())
-return;this._element.remove();delete this._selectedElement;},removeFromElement:function()
+return;this._element.remove();delete this._selectedElement;this._selectedIndex=-1;},removeFromElement:function()
 {window.removeEventListener("scroll",this._boundOnScroll,true);window.removeEventListener("resize",this._boundOnResize,true);this.hide();},_applySuggestion:function(text,isIntermediateSuggestion)
 {if(!this.visible()||!(text||this._selectedElement))
 return false;var suggestion=text||this._selectedElement.textContent;if(!suggestion)
@@ -1723,7 +1799,8 @@
 {var result=this._applySuggestion(text,false);this.hide();if(!result)
 return false;this._suggestBoxDelegate.acceptSuggestion();return true;},_selectClosest:function(shift,isCircular)
 {if(!this._length)
-return false;var index=this._selectedIndex+shift;if(isCircular)
+return false;if(this._selectedIndex===-1&&shift<0)
+shift+=1;var index=this._selectedIndex+shift;if(isCircular)
 index=(this._length+index)%this._length;else
 index=Number.constrain(index,0,this._length-1);this._selectItem(index);this._applySuggestion(undefined,true);return true;},_onItemMouseDown:function(text,event)
 {this.acceptSuggestion(text);event.consume(true);},_createItemElement:function(prefix,text)
@@ -1733,7 +1810,8 @@
 this._selectedElement=null;if(typeof selectedIndex==="number")
 this._selectItem(selectedIndex);},_selectItem:function(index)
 {if(this._selectedElement)
-this._selectedElement.classList.remove("selected");this._selectedIndex=index;this._selectedElement=this.contentElement.children[index];this._selectedElement.classList.add("selected");this._selectedElement.scrollIntoViewIfNeeded(false);},_canShowBox:function(completions,canShowForSingleItem,userEnteredText)
+this._selectedElement.classList.remove("selected");this._selectedIndex=index;if(index<0)
+return;this._selectedElement=this.contentElement.children[index];this._selectedElement.classList.add("selected");this._selectedElement.scrollIntoViewIfNeeded(false);},_canShowBox:function(completions,canShowForSingleItem,userEnteredText)
 {if(!completions||!completions.length)
 return false;if(completions.length>1)
 return true;return canShowForSingleItem&&completions[0]!==userEnteredText;},_rememberRowCountPerViewport:function()
@@ -1750,31 +1828,29 @@
 {return this._selectClosest(this._rowCountPerViewport,false);},enterKeyPressed:function()
 {var hasSelectedItem=!!this._selectedElement;this.acceptSuggestion();return hasSelectedItem;}}
 WebInspector.TextPrompt=function(completions,stopCharacters)
-{this._proxyElement;this._proxyElementDisplay="inline-block";this._loadCompletions=completions;this._completionStopCharacters=stopCharacters||" =:[({;,!+-*/&|^<>.";this._suggestForceable=true;}
+{this._proxyElement;this._proxyElementDisplay="inline-block";this._loadCompletions=completions;this._completionStopCharacters=stopCharacters||" =:[({;,!+-*/&|^<>.";}
 WebInspector.TextPrompt.Events={ItemApplied:"text-prompt-item-applied",ItemAccepted:"text-prompt-item-accepted"};WebInspector.TextPrompt.prototype={get proxyElement()
-{return this._proxyElement;},setSuggestForceable:function(x)
-{this._suggestForceable=x;},setShowSuggestForEmptyInput:function(x)
-{this._showSuggestForEmptyInput=x;},setSuggestBoxEnabled:function(className)
+{return this._proxyElement;},setSuggestBoxEnabled:function(className)
 {this._suggestBoxClassName=className;},renderAsBlock:function()
 {this._proxyElementDisplay="block";},attach:function(element)
 {return this._attachInternal(element);},attachAndStartEditing:function(element,blurListener)
 {this._attachInternal(element);this._startEditing(blurListener);return this.proxyElement;},_attachInternal:function(element)
 {if(this.proxyElement)
-throw"Cannot attach an attached TextPrompt";this._element=element;this._boundOnKeyDown=this.onKeyDown.bind(this);this._boundOnMouseWheel=this.onMouseWheel.bind(this);this._boundSelectStart=this._selectStart.bind(this);this._proxyElement=element.ownerDocument.createElement("span");this._proxyElement.style.display=this._proxyElementDisplay;element.parentElement.insertBefore(this.proxyElement,element);this.proxyElement.appendChild(element);this._element.addStyleClass("text-prompt");this._element.addEventListener("keydown",this._boundOnKeyDown,false);this._element.addEventListener("mousewheel",this._boundOnMouseWheel,false);this._element.addEventListener("selectstart",this._boundSelectStart,false);if(typeof this._suggestBoxClassName==="string")
+throw"Cannot attach an attached TextPrompt";this._element=element;this._boundOnKeyDown=this.onKeyDown.bind(this);this._boundOnMouseWheel=this.onMouseWheel.bind(this);this._boundSelectStart=this._selectStart.bind(this);this._proxyElement=element.ownerDocument.createElement("span");this._proxyElement.style.display=this._proxyElementDisplay;element.parentElement.insertBefore(this.proxyElement,element);this.proxyElement.appendChild(element);this._element.classList.add("text-prompt");this._element.addEventListener("keydown",this._boundOnKeyDown,false);this._element.addEventListener("mousewheel",this._boundOnMouseWheel,false);this._element.addEventListener("selectstart",this._boundSelectStart,false);if(typeof this._suggestBoxClassName==="string")
 this._suggestBox=new WebInspector.SuggestBox(this,this._element,this._suggestBoxClassName);return this.proxyElement;},detach:function()
-{this._removeFromElement();this.proxyElement.parentElement.insertBefore(this._element,this.proxyElement);this.proxyElement.remove();delete this._proxyElement;this._element.removeStyleClass("text-prompt");this._element.removeEventListener("keydown",this._boundOnKeyDown,false);this._element.removeEventListener("mousewheel",this._boundOnMouseWheel,false);this._element.removeEventListener("selectstart",this._boundSelectStart,false);WebInspector.restoreFocusFromElement(this._element);},get text()
+{this._removeFromElement();this.proxyElement.parentElement.insertBefore(this._element,this.proxyElement);this.proxyElement.remove();delete this._proxyElement;this._element.classList.remove("text-prompt");this._element.removeEventListener("keydown",this._boundOnKeyDown,false);this._element.removeEventListener("mousewheel",this._boundOnMouseWheel,false);this._element.removeEventListener("selectstart",this._boundSelectStart,false);WebInspector.restoreFocusFromElement(this._element);},get text()
 {return this._element.textContent;},set text(x)
 {this._removeSuggestionAids();if(!x){this._element.removeChildren();this._element.appendChild(document.createElement("br"));}else
 this._element.textContent=x;this.moveCaretToEndOfPrompt();this._element.scrollIntoView();},_removeFromElement:function()
 {this.clearAutoComplete(true);this._element.removeEventListener("keydown",this._boundOnKeyDown,false);this._element.removeEventListener("selectstart",this._boundSelectStart,false);if(this._isEditing)
 this._stopEditing();if(this._suggestBox)
 this._suggestBox.removeFromElement();},_startEditing:function(blurListener)
-{this._isEditing=true;this._element.addStyleClass("editing");if(blurListener){this._blurListener=blurListener;this._element.addEventListener("blur",this._blurListener,false);}
+{this._isEditing=true;this._element.classList.add("editing");if(blurListener){this._blurListener=blurListener;this._element.addEventListener("blur",this._blurListener,false);}
 this._oldTabIndex=this._element.tabIndex;if(this._element.tabIndex<0)
 this._element.tabIndex=0;WebInspector.setCurrentFocusElement(this._element);if(!this.text)
 this._updateAutoComplete();},_stopEditing:function()
 {this._element.tabIndex=this._oldTabIndex;if(this._blurListener)
-this._element.removeEventListener("blur",this._blurListener,false);this._element.removeStyleClass("editing");delete this._isEditing;},_removeSuggestionAids:function()
+this._element.removeEventListener("blur",this._blurListener,false);this._element.classList.remove("editing");delete this._isEditing;},_removeSuggestionAids:function()
 {this.clearAutoComplete();this.hideSuggestBox();},_selectStart:function()
 {if(this._selectionTimeout)
 clearTimeout(this._selectionTimeout);this._removeSuggestionAids();function moveBackIfOutside()
@@ -1786,7 +1862,7 @@
 {var handled=false;var invokeDefault=true;switch(event.keyIdentifier){case"U+0009":handled=this.tabKeyPressed(event);break;case"Left":case"Home":this._removeSuggestionAids();invokeDefault=false;break;case"Right":case"End":if(this.isCaretAtEndOfPrompt())
 handled=this.acceptAutoComplete();else
 this._removeSuggestionAids();invokeDefault=false;break;case"U+001B":if(this.isSuggestBoxVisible()){this._removeSuggestionAids();handled=true;}
-break;case"U+0020":if(this._suggestForceable&&event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey){this.defaultKeyHandler(event,true);handled=true;}
+break;case"U+0020":if(event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey){this.defaultKeyHandler(event,true);handled=true;}
 break;case"Alt":case"Meta":case"Shift":case"Control":invokeDefault=false;break;}
 if(!handled&&this.isSuggestBoxVisible())
 handled=this._suggestBox.keyPressed(event);if(!handled&&invokeDefault)
@@ -1794,7 +1870,7 @@
 event.consume(true);return handled;},acceptAutoComplete:function()
 {var result=false;if(this.isSuggestBoxVisible())
 result=this._suggestBox.acceptSuggestion();if(!result)
-result=this.acceptSuggestion();return result;},clearAutoComplete:function(includeTimeout)
+result=this._acceptSuggestionInternal();return result;},clearAutoComplete:function(includeTimeout)
 {if(includeTimeout&&this._completeTimeout){clearTimeout(this._completeTimeout);delete this._completeTimeout;}
 delete this._waitingForCompletions;if(!this.autoCompleteElement)
 return;this.autoCompleteElement.remove();delete this.autoCompleteElement;if(!this._userEnteredRange||!this._userEnteredText)
@@ -1807,17 +1883,19 @@
 shouldExit=true;else if(!force){var wordSuffixRange=selectionRange.startContainer.rangeOfWord(selectionRange.endOffset,this._completionStopCharacters,this._element,"forward");if(wordSuffixRange.toString().length)
 shouldExit=true;}
 if(shouldExit){this.hideSuggestBox();return;}
-var wordPrefixRange=selectionRange.startContainer.rangeOfWord(selectionRange.startOffset,this._completionStopCharacters,this._element,"backward");this._waitingForCompletions=true;this._loadCompletions(this.proxyElement,wordPrefixRange,force,this._completionsReady.bind(this,selection,wordPrefixRange,!!reverse));},_boxForAnchorAtStart:function(selection,textRange)
+var wordPrefixRange=selectionRange.startContainer.rangeOfWord(selectionRange.startOffset,this._completionStopCharacters,this._element,"backward");this._waitingForCompletions=true;this._loadCompletions(this.proxyElement,wordPrefixRange,force,this._completionsReady.bind(this,selection,wordPrefixRange,!!reverse));},disableDefaultSuggestionForEmptyInput:function()
+{this._disableDefaultSuggestionForEmptyInput=true;},_boxForAnchorAtStart:function(selection,textRange)
 {var rangeCopy=selection.getRangeAt(0).cloneRange();var anchorElement=document.createElement("span");anchorElement.textContent="\u200B";textRange.insertNode(anchorElement);var box=anchorElement.boxInWindow(window);anchorElement.remove();selection.removeAllRanges();selection.addRange(rangeCopy);return box;},_buildCommonPrefix:function(completions,wordPrefixLength)
 {var commonPrefix=completions[0];for(var i=0;i<completions.length;++i){var completion=completions[i];var lastIndex=Math.min(commonPrefix.length,completion.length);for(var j=wordPrefixLength;j<lastIndex;++j){if(commonPrefix[j]!==completion[j]){commonPrefix=commonPrefix.substr(0,j);break;}}}
 return commonPrefix;},_completionsReady:function(selection,originalWordPrefixRange,reverse,completions,selectedIndex)
 {if(!this._waitingForCompletions||!completions.length){this.hideSuggestBox();return;}
-delete this._waitingForCompletions;var selectionRange=selection.getRangeAt(0);var fullWordRange=document.createRange();fullWordRange.setStart(originalWordPrefixRange.startContainer,originalWordPrefixRange.startOffset);fullWordRange.setEnd(selectionRange.endContainer,selectionRange.endOffset);if(originalWordPrefixRange.toString()+selectionRange.toString()!=fullWordRange.toString())
-return;selectedIndex=selectedIndex||0;this._userEnteredRange=fullWordRange;this._userEnteredText=fullWordRange.toString();if(this._suggestBox)
-this._suggestBox.updateSuggestions(this._boxForAnchorAtStart(selection,fullWordRange),completions,selectedIndex,!this.isCaretAtEndOfPrompt(),this._userEnteredText);var wordPrefixLength=originalWordPrefixRange.toString().length;this._commonPrefix=this._buildCommonPrefix(completions,wordPrefixLength);if(this.isCaretAtEndOfPrompt()){this._userEnteredRange.deleteContents();this._element.normalize();var finalSelectionRange=document.createRange();var completionText=completions[selectedIndex];var prefixText=completionText.substring(0,wordPrefixLength);var suffixText=completionText.substring(wordPrefixLength);var prefixTextNode=document.createTextNode(prefixText);fullWordRange.insertNode(prefixTextNode);this.autoCompleteElement=document.createElement("span");this.autoCompleteElement.className="auto-complete-text";this.autoCompleteElement.textContent=suffixText;prefixTextNode.parentNode.insertBefore(this.autoCompleteElement,prefixTextNode.nextSibling);finalSelectionRange.setStart(prefixTextNode,wordPrefixLength);finalSelectionRange.setEnd(prefixTextNode,wordPrefixLength);selection.removeAllRanges();selection.addRange(finalSelectionRange);}},_completeCommonPrefix:function()
+delete this._waitingForCompletions;var selectionRange=selection.getRangeAt(0);var fullWordRange=document.createRange();fullWordRange.setStart(originalWordPrefixRange.startContainer,originalWordPrefixRange.startOffset);fullWordRange.setEnd(selectionRange.endContainer,selectionRange.endOffset);if(originalWordPrefixRange.toString()+selectionRange.toString()!==fullWordRange.toString())
+return;selectedIndex=(this._disableDefaultSuggestionForEmptyInput&&!this.text)?-1:(selectedIndex||0);this._userEnteredRange=fullWordRange;this._userEnteredText=fullWordRange.toString();if(this._suggestBox)
+this._suggestBox.updateSuggestions(this._boxForAnchorAtStart(selection,fullWordRange),completions,selectedIndex,!this.isCaretAtEndOfPrompt(),this._userEnteredText);if(selectedIndex===-1)
+return;var wordPrefixLength=originalWordPrefixRange.toString().length;this._commonPrefix=this._buildCommonPrefix(completions,wordPrefixLength);if(this.isCaretAtEndOfPrompt()){this._userEnteredRange.deleteContents();this._element.normalize();var finalSelectionRange=document.createRange();var completionText=completions[selectedIndex];var prefixText=completionText.substring(0,wordPrefixLength);var suffixText=completionText.substring(wordPrefixLength);var prefixTextNode=document.createTextNode(prefixText);fullWordRange.insertNode(prefixTextNode);this.autoCompleteElement=document.createElement("span");this.autoCompleteElement.className="auto-complete-text";this.autoCompleteElement.textContent=suffixText;prefixTextNode.parentNode.insertBefore(this.autoCompleteElement,prefixTextNode.nextSibling);finalSelectionRange.setStart(prefixTextNode,wordPrefixLength);finalSelectionRange.setEnd(prefixTextNode,wordPrefixLength);selection.removeAllRanges();selection.addRange(finalSelectionRange);this.dispatchEventToListeners(WebInspector.TextPrompt.Events.ItemApplied);}},_completeCommonPrefix:function()
 {if(!this.autoCompleteElement||!this._commonPrefix||!this._userEnteredText||!this._commonPrefix.startsWith(this._userEnteredText))
 return;if(!this.isSuggestBoxVisible()){this.acceptAutoComplete();return;}
-this.autoCompleteElement.textContent=this._commonPrefix.substring(this._userEnteredText.length);this.acceptSuggestion(true)},applySuggestion:function(completionText,isIntermediateSuggestion)
+this.autoCompleteElement.textContent=this._commonPrefix.substring(this._userEnteredText.length);this._acceptSuggestionInternal(true);},applySuggestion:function(completionText,isIntermediateSuggestion)
 {this._applySuggestion(completionText,isIntermediateSuggestion);},_applySuggestion:function(completionText,isIntermediateSuggestion,originalPrefixRange)
 {var wordPrefixLength;if(originalPrefixRange)
 wordPrefixLength=originalPrefixRange.toString().length;else
@@ -1825,7 +1903,8 @@
 if(isIntermediateSuggestion)
 finalSelectionRange.setStart(completionTextNode,wordPrefixLength);else
 finalSelectionRange.setStart(completionTextNode,completionText.length);finalSelectionRange.setEnd(completionTextNode,completionText.length);var selection=window.getSelection();selection.removeAllRanges();selection.addRange(finalSelectionRange);if(isIntermediateSuggestion)
-this.dispatchEventToListeners(WebInspector.TextPrompt.Events.ItemApplied,{itemText:completionText});},acceptSuggestion:function(prefixAccepted)
+this.dispatchEventToListeners(WebInspector.TextPrompt.Events.ItemApplied,{itemText:completionText});},acceptSuggestion:function()
+{this._acceptSuggestionInternal();},_acceptSuggestionInternal:function(prefixAccepted)
 {if(this._isAcceptingSuggestion)
 return false;if(!this.autoCompleteElement||!this.autoCompleteElement.parentNode)
 return false;var text=this.autoCompleteElement.textContent;var textNode=document.createTextNode(text);this.autoCompleteElement.parentNode.replaceChild(textNode,this.autoCompleteElement);delete this.autoCompleteElement;var finalSelectionRange=document.createRange();finalSelectionRange.setStart(textNode,text.length);finalSelectionRange.setEnd(textNode,text.length);var selection=window.getSelection();selection.removeAllRanges();selection.addRange(finalSelectionRange);if(!prefixAccepted){this.hideSuggestBox();this.dispatchEventToListeners(WebInspector.TextPrompt.Events.ItemAccepted);}else
@@ -1895,14 +1974,14 @@
 {return this._disposed;},dispose:function()
 {if(this.isShowing())
 this.hide();this._disposed=true;},setCanShrink:function(canShrink)
-{this._hasFixedHeight=!canShrink;this._contentDiv.addStyleClass("fixed-height");},_positionElement:function(anchorElement,preferredWidth,preferredHeight,arrowDirection)
-{const borderWidth=25;const scrollerWidth=this._hasFixedHeight?0:11;const arrowHeight=15;const arrowOffset=10;const borderRadius=10;preferredWidth=Math.max(preferredWidth,50);const totalWidth=window.innerWidth;const totalHeight=window.innerHeight;var anchorBox=anchorElement instanceof AnchorBox?anchorElement:anchorElement.boxInWindow(window);var newElementPosition={x:0,y:0,width:preferredWidth+scrollerWidth,height:preferredHeight};var verticalAlignment;var roomAbove=anchorBox.y;var roomBelow=totalHeight-anchorBox.y-anchorBox.height;if((roomAbove>roomBelow)||(arrowDirection===WebInspector.Popover.Orientation.Bottom)){if((anchorBox.y>newElementPosition.height+arrowHeight+borderRadius)||(arrowDirection===WebInspector.Popover.Orientation.Bottom))
+{this._hasFixedHeight=!canShrink;this._contentDiv.classList.add("fixed-height");},_positionElement:function(anchorElement,preferredWidth,preferredHeight,arrowDirection)
+{const borderWidth=25;const scrollerWidth=this._hasFixedHeight?0:11;const arrowHeight=15;const arrowOffset=10;const borderRadius=10;preferredWidth=Math.max(preferredWidth,50);const container=WebInspector.inspectorView.devtoolsElement();const totalWidth=container.offsetWidth;const totalHeight=container.offsetHeight;var anchorBox=anchorElement instanceof AnchorBox?anchorElement:anchorElement.boxInWindow(window);anchorBox=anchorBox.relativeToElement(container);var newElementPosition={x:0,y:0,width:preferredWidth+scrollerWidth,height:preferredHeight};var verticalAlignment;var roomAbove=anchorBox.y;var roomBelow=totalHeight-anchorBox.y-anchorBox.height;if((roomAbove>roomBelow)||(arrowDirection===WebInspector.Popover.Orientation.Bottom)){if((anchorBox.y>newElementPosition.height+arrowHeight+borderRadius)||(arrowDirection===WebInspector.Popover.Orientation.Bottom))
 newElementPosition.y=anchorBox.y-newElementPosition.height-arrowHeight;else{newElementPosition.y=borderRadius;newElementPosition.height=anchorBox.y-borderRadius*2-arrowHeight;if(this._hasFixedHeight&&newElementPosition.height<preferredHeight){newElementPosition.y=borderRadius;newElementPosition.height=preferredHeight;}}
 verticalAlignment=WebInspector.Popover.Orientation.Bottom;}else{newElementPosition.y=anchorBox.y+anchorBox.height+arrowHeight;if((newElementPosition.y+newElementPosition.height+arrowHeight-borderWidth>=totalHeight)&&(arrowDirection!==WebInspector.Popover.Orientation.Top)){newElementPosition.height=totalHeight-anchorBox.y-anchorBox.height-borderRadius*2-arrowHeight;if(this._hasFixedHeight&&newElementPosition.height<preferredHeight){newElementPosition.y=totalHeight-preferredHeight-borderRadius;newElementPosition.height=preferredHeight;}}
 verticalAlignment=WebInspector.Popover.Orientation.Top;}
 var horizontalAlignment;if(anchorBox.x+newElementPosition.width<totalWidth){newElementPosition.x=Math.max(borderRadius,anchorBox.x-borderRadius-arrowOffset);horizontalAlignment="left";}else if(newElementPosition.width+borderRadius*2<totalWidth){newElementPosition.x=totalWidth-newElementPosition.width-borderRadius;horizontalAlignment="right";var arrowRightPosition=Math.max(0,totalWidth-anchorBox.x-anchorBox.width-borderRadius-arrowOffset);arrowRightPosition+=anchorBox.width/2;arrowRightPosition=Math.min(arrowRightPosition,newElementPosition.width-borderRadius-arrowOffset);this._popupArrowElement.style.right=arrowRightPosition+"px";}else{newElementPosition.x=borderRadius;newElementPosition.width=totalWidth-borderRadius*2;newElementPosition.height+=scrollerWidth;horizontalAlignment="left";if(verticalAlignment===WebInspector.Popover.Orientation.Bottom)
 newElementPosition.y-=scrollerWidth;this._popupArrowElement.style.left=Math.max(0,anchorBox.x-borderRadius*2-arrowOffset)+"px";this._popupArrowElement.style.left+=anchorBox.width/2;}
-this.element.className="popover custom-popup-vertical-scroll custom-popup-horizontal-scroll "+verticalAlignment+"-"+horizontalAlignment+"-arrow";this.element.positionAt(newElementPosition.x-borderWidth,newElementPosition.y-borderWidth);this.element.style.width=newElementPosition.width+borderWidth*2+"px";this.element.style.height=newElementPosition.height+borderWidth*2+"px";},__proto__:WebInspector.View.prototype}
+this.element.className="popover custom-popup-vertical-scroll custom-popup-horizontal-scroll "+verticalAlignment+"-"+horizontalAlignment+"-arrow";this.element.positionAt(newElementPosition.x-borderWidth,newElementPosition.y-borderWidth,container);this.element.style.width=newElementPosition.width+borderWidth*2+"px";this.element.style.height=newElementPosition.height+borderWidth*2+"px";},__proto__:WebInspector.View.prototype}
 WebInspector.PopoverHelper=function(panelElement,getAnchor,showPopover,onHide,disableOnClick)
 {this._panelElement=panelElement;this._getAnchor=getAnchor;this._showPopover=showPopover;this._onHide=onHide;this._disableOnClick=!!disableOnClick;panelElement.addEventListener("mousedown",this._mouseDown.bind(this),false);panelElement.addEventListener("mousemove",this._mouseMove.bind(this),false);panelElement.addEventListener("mouseout",this._mouseOut.bind(this),false);this.setTimeout(1000);}
 WebInspector.PopoverHelper.prototype={setTimeout:function(timeout)
@@ -1935,19 +2014,8 @@
 {delete this._hoverTimer;this._hidePopover();this._popover=new WebInspector.Popover(this);this._showPopover(element,this._popover);},_killHidePopoverTimer:function()
 {if(this._hidePopoverTimer){clearTimeout(this._hidePopoverTimer);delete this._hidePopoverTimer;this._resetHoverTimer();}}}
 WebInspector.Popover.Orientation={Top:"top",Bottom:"bottom"}
-WebInspector.PopoverContentHelper=function(title)
-{this._contentTable=document.createElement("table");var titleCell=this._createCell(WebInspector.UIString("%s - Details",title),"popover-details-title");titleCell.colSpan=2;var titleRow=document.createElement("tr");titleRow.appendChild(titleCell);this._contentTable.appendChild(titleRow);}
-WebInspector.PopoverContentHelper.prototype={contentTable:function()
-{return this._contentTable;},_createCell:function(content,styleName)
-{var text=document.createElement("label");text.appendChild(document.createTextNode(content));var cell=document.createElement("td");cell.className="popover-details";if(styleName)
-cell.className+=" "+styleName;cell.textContent=content;return cell;},appendTextRow:function(title,content)
-{var row=document.createElement("tr");row.appendChild(this._createCell(title,"popover-details-row-title"));row.appendChild(this._createCell(content,"popover-details-row-data"));this._contentTable.appendChild(row);},appendElementRow:function(title,content,titleStyle)
-{var row=document.createElement("tr");var titleCell=this._createCell(title,"popover-details-row-title");if(titleStyle)
-titleCell.addStyleClass(titleStyle);row.appendChild(titleCell);var cell=document.createElement("td");cell.className="details";cell.appendChild(content);row.appendChild(cell);this._contentTable.appendChild(row);},appendStackTrace:function(title,stackTrace,callFrameLinkifier)
-{this.appendTextRow("","");var framesTable=document.createElement("table");for(var i=0;i<stackTrace.length;++i){var stackFrame=stackTrace[i];var row=document.createElement("tr");row.className="details";row.appendChild(this._createCell(stackFrame.functionName||WebInspector.UIString("(anonymous function)"),"function-name"));row.appendChild(this._createCell(" @ "));var linkCell=document.createElement("td");var urlElement=callFrameLinkifier(stackFrame);linkCell.appendChild(urlElement);row.appendChild(linkCell);framesTable.appendChild(row);}
-this.appendElementRow(title,framesTable,"popover-stacktrace-title");}}
 WebInspector.Placard=function(title,subtitle)
-{this.element=document.createElement("div");this.element.className="placard";this.element.placard=this;this.titleElement=document.createElement("div");this.titleElement.className="title";this.subtitleElement=document.createElement("div");this.subtitleElement.className="subtitle";this.element.appendChild(this.subtitleElement);this.element.appendChild(this.titleElement);this.title=title;this.subtitle=subtitle;this.selected=false;}
+{this.element=document.createElementWithClass("div","placard");this.element.placard=this;this.subtitleElement=this.element.createChild("div","subtitle");this.titleElement=this.element.createChild("div","title");this.title=title;this.subtitle=subtitle;this.selected=false;}
 WebInspector.Placard.prototype={get title()
 {return this._title;},set title(x)
 {if(this._title===x)
@@ -1960,9 +2028,9 @@
 this.select();else
 this.deselect();},select:function()
 {if(this._selected)
-return;this._selected=true;this.element.addStyleClass("selected");},deselect:function()
+return;this._selected=true;this.element.classList.add("selected");},deselect:function()
 {if(!this._selected)
-return;this._selected=false;this.element.removeStyleClass("selected");},toggleSelected:function()
+return;this._selected=false;this.element.classList.remove("selected");},toggleSelected:function()
 {this.selected=!this.selected;},discard:function()
 {}}
 WebInspector.TabbedPane=function()
@@ -1973,18 +2041,26 @@
 {return this._currentTab?this._currentTab.id:null;},set shrinkableTabs(shrinkableTabs)
 {this._shrinkableTabs=shrinkableTabs;},set verticalTabLayout(verticalTabLayout)
 {this._verticalTabLayout=verticalTabLayout;},set closeableTabs(closeableTabs)
-{this._closeableTabs=closeableTabs;},setRetainTabsOrder:function(retainTabsOrder)
-{this._retainTabsOrder=retainTabsOrder;},defaultFocusedElement:function()
-{return this.visibleView?this.visibleView.defaultFocusedElement():null;},headerElement:function()
-{return this._headerElement;},setTabDelegate:function(delegate)
+{this._closeableTabs=closeableTabs;},setRetainTabOrder:function(retainTabOrder,tabOrderComparator)
+{this._retainTabOrder=retainTabOrder;this._tabOrderComparator=tabOrderComparator;},defaultFocusedElement:function()
+{return this.visibleView?this.visibleView.defaultFocusedElement():null;},focus:function()
+{if(this.visibleView)
+this.visibleView.focus();else
+WebInspector.View.prototype.focus.call(this);},headerElement:function()
+{return this._headerElement;},isTabCloseable:function(id)
+{var tab=this._tabsById[id];return tab?tab.isCloseable():false;},setTabDelegate:function(delegate)
 {var tabs=this._tabs.slice();for(var i=0;i<tabs.length;++i)
 tabs[i].setDelegate(delegate);this._delegate=delegate;},appendTab:function(id,tabTitle,view,tabTooltip,userGesture,isCloseable)
-{isCloseable=typeof isCloseable==="boolean"?isCloseable:this._closeableTabs;var tab=new WebInspector.TabbedPaneTab(this,id,tabTitle,isCloseable,view,tabTooltip);tab.setDelegate(this._delegate);this._tabsById[id]=tab;this._tabs.push(tab);this._tabsHistory.push(tab);if(this._tabsHistory[0]===tab)
+{isCloseable=typeof isCloseable==="boolean"?isCloseable:this._closeableTabs;var tab=new WebInspector.TabbedPaneTab(this,id,tabTitle,isCloseable,view,tabTooltip);tab.setDelegate(this._delegate);this._tabsById[id]=tab;function comparator(tab1,tab2)
+{return this._tabOrderComparator(tab1.id,tab2.id);}
+if(this._retainTabOrder&&this._tabOrderComparator)
+this._tabs.splice(insertionIndexForObjectInListSortedByFunction(tab,this._tabs,comparator.bind(this)),0,tab);else
+this._tabs.push(tab);this._tabsHistory.push(tab);if(this._tabsHistory[0]===tab)
 this.selectTab(tab.id,userGesture);this._updateTabElements();},closeTab:function(id,userGesture)
 {this.closeTabs([id],userGesture);},closeTabs:function(ids,userGesture)
 {for(var i=0;i<ids.length;++i)
 this._innerCloseTab(ids[i],userGesture);this._updateTabElements();if(this._tabsHistory.length)
-this.selectTab(this._tabsHistory[0].id,userGesture);},_innerCloseTab:function(id,userGesture)
+this.selectTab(this._tabsHistory[0].id,false);},_innerCloseTab:function(id,userGesture)
 {if(!this._tabsById[id])
 return;if(userGesture&&!this._tabsById[id]._closeable)
 return;if(this._currentTab&&this._currentTab.id===id)
@@ -1998,28 +2074,30 @@
 return result;},selectTab:function(id,userGesture)
 {var tab=this._tabsById[id];if(!tab)
 return;if(this._currentTab&&this._currentTab.id===id)
-return;this._hideCurrentTab();this._showTab(tab);this._currentTab=tab;this._tabsHistory.splice(this._tabsHistory.indexOf(tab),1);this._tabsHistory.splice(0,0,tab);this._updateTabElements();var eventData={tabId:id,view:tab.view,isUserGesture:userGesture};this.dispatchEventToListeners(WebInspector.TabbedPane.EventTypes.TabSelected,eventData);return true;},lastOpenedTabIds:function(tabsCount)
+return;this._hideCurrentTab();this._showTab(tab);this._currentTab=tab;this._tabsHistory.splice(this._tabsHistory.indexOf(tab),1);this._tabsHistory.splice(0,0,tab);this._updateTabElements();var eventData={tabId:id,view:tab.view,isUserGesture:userGesture};this.dispatchEventToListeners(WebInspector.TabbedPane.EventTypes.TabSelected,eventData);},lastOpenedTabIds:function(tabsCount)
 {function tabToTabId(tab){return tab.id;}
 return this._tabsHistory.slice(0,tabsCount).map(tabToTabId);},setTabIcon:function(id,iconClass,iconTooltip)
-{var tab=this._tabsById[id];tab._setIconClass(iconClass,iconTooltip);this._updateTabElements();},changeTabTitle:function(id,tabTitle)
+{var tab=this._tabsById[id];if(tab._setIconClass(iconClass,iconTooltip))
+this._updateTabElements();},changeTabTitle:function(id,tabTitle)
 {var tab=this._tabsById[id];if(tab.title===tabTitle)
 return;tab.title=tabTitle;this._updateTabElements();},changeTabView:function(id,view)
 {var tab=this._tabsById[id];if(this._currentTab&&this._currentTab.id===tab.id){if(tab.view!==view)
 this._hideTab(tab);tab.view=view;this._showTab(tab);}else
 tab.view=view;},changeTabTooltip:function(id,tabTooltip)
 {var tab=this._tabsById[id];tab.tooltip=tabTooltip;},onResize:function()
+{this._updateTabElements();},headerResized:function()
 {this._updateTabElements();},_updateTabElements:function()
 {WebInspector.invokeOnceAfterBatchUpdate(this,this._innerUpdateTabElements);},setPlaceholderText:function(text)
 {this._noTabsMessage=text;},_innerUpdateTabElements:function()
 {if(!this.isShowing())
-return;if(!this._tabs.length){this._contentElement.addStyleClass("has-no-tabs");if(this._noTabsMessage&&!this._noTabsMessageElement){this._noTabsMessageElement=this._contentElement.createChild("div","tabbed-pane-placeholder fill");this._noTabsMessageElement.textContent=this._noTabsMessage;}}else{this._contentElement.removeStyleClass("has-no-tabs");if(this._noTabsMessageElement){this._noTabsMessageElement.remove();delete this._noTabsMessageElement;}}
+return;if(!this._tabs.length){this._contentElement.classList.add("has-no-tabs");if(this._noTabsMessage&&!this._noTabsMessageElement){this._noTabsMessageElement=this._contentElement.createChild("div","tabbed-pane-placeholder fill");this._noTabsMessageElement.textContent=this._noTabsMessage;}}else{this._contentElement.classList.remove("has-no-tabs");if(this._noTabsMessageElement){this._noTabsMessageElement.remove();delete this._noTabsMessageElement;}}
 if(!this._measuredDropDownButtonWidth)
 this._measureDropDownButton();this._updateWidths();this._updateTabsDropDown();},_showTabElement:function(index,tab)
 {if(index>=this._tabsElement.children.length)
 this._tabsElement.appendChild(tab.tabElement);else
 this._tabsElement.insertBefore(tab.tabElement,this._tabsElement.children[index]);tab._shown=true;},_hideTabElement:function(tab)
 {this._tabsElement.removeChild(tab.tabElement);tab._shown=false;},_createDropDownButton:function()
-{var dropDownContainer=document.createElement("div");dropDownContainer.addStyleClass("tabbed-pane-header-tabs-drop-down-container");var dropDownButton=dropDownContainer.createChild("div","tabbed-pane-header-tabs-drop-down");dropDownButton.appendChild(document.createTextNode("\u00bb"));this._tabsSelect=dropDownButton.createChild("select","tabbed-pane-header-tabs-drop-down-select");this._tabsSelect.addEventListener("change",this._tabsSelectChanged.bind(this),false);return dropDownContainer;},_totalWidth:function()
+{var dropDownContainer=document.createElement("div");dropDownContainer.classList.add("tabbed-pane-header-tabs-drop-down-container");var dropDownButton=dropDownContainer.createChild("div","tabbed-pane-header-tabs-drop-down");dropDownButton.appendChild(document.createTextNode("\u00bb"));this._tabsSelect=dropDownButton.createChild("select","tabbed-pane-header-tabs-drop-down-select");this._tabsSelect.addEventListener("change",this._tabsSelectChanged.bind(this),false);this._tabsSelect.addEventListener("mousedown",consumeEvent,false);return dropDownContainer;},_totalWidth:function()
 {return this._headerContentsElement.getBoundingClientRect().width;},_updateTabsDropDown:function()
 {var tabsToShowIndexes=this._tabsToShowIndexes(this._tabs,this._tabsHistory,this._totalWidth(),this._measuredDropDownButtonWidth);for(var i=0;i<this._tabs.length;++i){if(this._tabs[i]._shown&&tabsToShowIndexes.indexOf(i)===-1)
 this._hideTabElement(this._tabs[i]);}
@@ -2031,12 +2109,12 @@
 tabsToShow.push(this._tabs[i]);continue;}
 function compareFunction(tab1,tab2)
 {return tab1.title.localeCompare(tab2.title);}
-if(!this._retainTabsOrder)
+if(!this._retainTabOrder)
 tabsToShow.sort(compareFunction);var selectedIndex=-1;for(var i=0;i<tabsToShow.length;++i){var option=new Option(tabsToShow[i].title);option.tab=tabsToShow[i];this._tabsSelect.appendChild(option);if(this._tabsHistory[0]===tabsToShow[i])
 selectedIndex=i;}
 if(this._tabsSelect.options.length){this._headerContentsElement.appendChild(this._dropDownButton);this._tabsSelect.selectedIndex=selectedIndex;}},_tabsSelectChanged:function()
 {var options=this._tabsSelect.options;var selectedOption=options[this._tabsSelect.selectedIndex];this.selectTab(selectedOption.tab.id,true);},_measureDropDownButton:function()
-{this._dropDownButton.addStyleClass("measuring");this._headerContentsElement.appendChild(this._dropDownButton);this._measuredDropDownButtonWidth=this._dropDownButton.getBoundingClientRect().width;this._headerContentsElement.removeChild(this._dropDownButton);this._dropDownButton.removeStyleClass("measuring");},_updateWidths:function()
+{this._dropDownButton.classList.add("measuring");this._headerContentsElement.appendChild(this._dropDownButton);this._measuredDropDownButtonWidth=this._dropDownButton.getBoundingClientRect().width;this._headerContentsElement.removeChild(this._dropDownButton);this._dropDownButton.classList.remove("measuring");},_updateWidths:function()
 {var measuredWidths=this._measureWidths();var maxWidth=this._shrinkableTabs?this._calculateMaxWidth(measuredWidths.slice(),this._totalWidth()):Number.MAX_VALUE;var i=0;for(var tabId in this._tabs){var tab=this._tabs[tabId];tab.setWidth(this._verticalTabLayout?-1:Math.min(maxWidth,measuredWidths[i++]));}},_measureWidths:function()
 {this._tabsElement.style.setProperty("width","2000px");var measuringTabElements=[];for(var tabId in this._tabs){var tab=this._tabs[tabId];if(typeof tab._measuredWidth==="number")
 continue;var measuringTabElement=tab._createTabElement(true);measuringTabElement.__tab=tab;measuringTabElements.push(measuringTabElement);this._tabsElement.appendChild(measuringTabElement);}
@@ -2050,15 +2128,15 @@
 return measuredWidths[measuredWidths.length-1];var totalExtraWidth=0;for(var i=measuredWidths.length-1;i>0;--i){var extraWidth=measuredWidths[i]-measuredWidths[i-1];totalExtraWidth+=(measuredWidths.length-i)*extraWidth;if(totalWidth+totalExtraWidth>=totalMeasuredWidth)
 return measuredWidths[i-1]+(totalWidth+totalExtraWidth-totalMeasuredWidth)/(measuredWidths.length-i);}
 return totalWidth/measuredWidths.length;},_tabsToShowIndexes:function(tabsOrdered,tabsHistory,totalWidth,measuredDropDownButtonWidth)
-{var tabsToShowIndexes=[];var totalTabsWidth=0;var tabCount=tabsOrdered.length;for(var i=0;i<tabCount;++i){var tab=this._retainTabsOrder?tabsOrdered[i]:tabsHistory[i];totalTabsWidth+=tab.width();var minimalRequiredWidth=totalTabsWidth;if(i!==tabCount-1)
+{var tabsToShowIndexes=[];var totalTabsWidth=0;var tabCount=tabsOrdered.length;for(var i=0;i<tabCount;++i){var tab=this._retainTabOrder?tabsOrdered[i]:tabsHistory[i];totalTabsWidth+=tab.width();var minimalRequiredWidth=totalTabsWidth;if(i!==tabCount-1)
 minimalRequiredWidth+=measuredDropDownButtonWidth;if(!this._verticalTabLayout&&minimalRequiredWidth>totalWidth)
 break;tabsToShowIndexes.push(tabsOrdered.indexOf(tab));}
 tabsToShowIndexes.sort(function(x,y){return x-y});return tabsToShowIndexes;},_hideCurrentTab:function()
 {if(!this._currentTab)
 return;this._hideTab(this._currentTab);delete this._currentTab;},_showTab:function(tab)
-{tab.tabElement.addStyleClass("selected");tab.view.show(this._contentElement);},_hideTab:function(tab)
-{tab.tabElement.removeStyleClass("selected");tab.view.detach();},canHighlightPosition:function()
-{return this._currentTab&&this._currentTab.view&&this._currentTab.view.canHighlightPosition();},highlightPosition:function(line,column)
+{tab.tabElement.classList.add("selected");tab.view.show(this._contentElement);},_hideTab:function(tab)
+{tab.tabElement.classList.remove("selected");tab.view.detach();},canHighlightPosition:function()
+{return!!(this._currentTab&&this._currentTab.view&&this._currentTab.view.canHighlightPosition());},highlightPosition:function(line,column)
 {if(this.canHighlightPosition())
 this._currentTab.view.highlightPosition(line,column);},elementsToRestoreScrollPositionsFor:function()
 {return[this._contentElement];},_insertBefore:function(tab,index)
@@ -2072,32 +2150,32 @@
 {if(title===this._title)
 return;this._title=title;if(this._titleElement)
 this._titleElement.textContent=title;delete this._measuredWidth;},iconClass:function()
-{return this._iconClass;},_setIconClass:function(iconClass,iconTooltip)
+{return this._iconClass;},isCloseable:function()
+{return this._closeable;},_setIconClass:function(iconClass,iconTooltip)
 {if(iconClass===this._iconClass&&iconTooltip===this._iconTooltip)
-return;this._iconClass=iconClass;this._iconTooltip=iconTooltip;if(this._iconElement)
+return false;this._iconClass=iconClass;this._iconTooltip=iconTooltip;if(this._iconElement)
 this._iconElement.remove();if(this._iconClass&&this._tabElement)
-this._iconElement=this._createIconElement(this._tabElement,this._titleElement);delete this._measuredWidth;},get view()
+this._iconElement=this._createIconElement(this._tabElement,this._titleElement);delete this._measuredWidth;return true;},get view()
 {return this._view;},set view(view)
 {this._view=view;},get tooltip()
 {return this._tooltip;},set tooltip(tooltip)
 {this._tooltip=tooltip;if(this._titleElement)
 this._titleElement.title=tooltip||"";},get tabElement()
-{if(typeof(this._tabElement)!=="undefined")
-return this._tabElement;this._createTabElement(false);return this._tabElement;},width:function()
+{if(!this._tabElement)
+this._tabElement=this._createTabElement(false);return this._tabElement;},width:function()
 {return this._width;},setWidth:function(width)
 {this.tabElement.style.width=width===-1?"":(width+"px");this._width=width;},setDelegate:function(delegate)
 {this._delegate=delegate;},_createIconElement:function(tabElement,titleElement)
 {var iconElement=document.createElement("span");iconElement.className="tabbed-pane-header-tab-icon "+this._iconClass;if(this._iconTooltip)
 iconElement.title=this._iconTooltip;tabElement.insertBefore(iconElement,titleElement);return iconElement;},_createTabElement:function(measuring)
-{var tabElement=document.createElement("div");tabElement.addStyleClass("tabbed-pane-header-tab");tabElement.id="tab-"+this._id;tabElement.tabIndex=-1;tabElement.selectTabForTest=this._tabbedPane.selectTab.bind(this._tabbedPane,this.id,true);var titleElement=tabElement.createChild("span","tabbed-pane-header-tab-title");titleElement.textContent=this.title;titleElement.title=this.tooltip||"";if(this._iconClass)
+{var tabElement=document.createElement("div");tabElement.classList.add("tabbed-pane-header-tab");tabElement.id="tab-"+this._id;tabElement.tabIndex=-1;tabElement.selectTabForTest=this._tabbedPane.selectTab.bind(this._tabbedPane,this.id,true);var titleElement=tabElement.createChild("span","tabbed-pane-header-tab-title");titleElement.textContent=this.title;titleElement.title=this.tooltip||"";if(this._iconClass)
 this._createIconElement(tabElement,titleElement);if(!measuring)
 this._titleElement=titleElement;if(this._closeable)
-tabElement.createChild("div","close-button-gray");if(measuring)
-tabElement.addStyleClass("measuring");else{this._tabElement=tabElement;tabElement.addEventListener("click",this._tabClicked.bind(this),false);tabElement.addEventListener("mousedown",this._tabMouseDown.bind(this),false);tabElement.addEventListener("mouseup",this._tabMouseUp.bind(this),false);if(this._closeable){tabElement.addEventListener("contextmenu",this._tabContextMenu.bind(this),false);WebInspector.installDragHandle(tabElement,this._startTabDragging.bind(this),this._tabDragging.bind(this),this._endTabDragging.bind(this),"pointer");}}
+tabElement.createChild("div","close-button-gray");if(measuring){tabElement.classList.add("measuring");}else{tabElement.addEventListener("click",this._tabClicked.bind(this),false);tabElement.addEventListener("mousedown",this._tabMouseDown.bind(this),false);tabElement.addEventListener("mouseup",this._tabMouseUp.bind(this),false);if(this._closeable){tabElement.addEventListener("contextmenu",this._tabContextMenu.bind(this),false);WebInspector.installDragHandle(tabElement,this._startTabDragging.bind(this),this._tabDragging.bind(this),this._endTabDragging.bind(this),"pointer");}}
 return tabElement;},_tabClicked:function(event)
-{var middleButton=event.button===1;var shouldClose=this._closeable&&(middleButton||event.target.hasStyleClass("close-button-gray"));if(!shouldClose){this._tabbedPane.focus();return;}
+{var middleButton=event.button===1;var shouldClose=this._closeable&&(middleButton||event.target.classList.contains("close-button-gray"));if(!shouldClose){this._tabbedPane.focus();return;}
 this._closeTabs([this.id]);event.consume(true);},_tabMouseDown:function(event)
-{if(event.target.hasStyleClass("close-button-gray")||event.button===1)
+{if(event.target.classList.contains("close-button-gray")||event.button===1)
 return;this._tabbedPane.selectTab(this.id,true);},_tabMouseUp:function(event)
 {if(event.button===1)
 event.consume(true);},_closeTabs:function(ids)
@@ -2108,9 +2186,9 @@
 function closeOthers()
 {this._closeTabs(this._tabbedPane.otherTabs(this.id));}
 function closeAll()
-{this._closeTabs(this._tabbedPane.allTabs(this.id));}
+{this._closeTabs(this._tabbedPane.allTabs());}
 var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("Close"),close.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Close others":"Close Others"),closeOthers.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Close all":"Close All"),closeAll.bind(this));contextMenu.show();},_startTabDragging:function(event)
-{if(event.target.hasStyleClass("close-button-gray"))
+{if(event.target.classList.contains("close-button-gray"))
 return false;this._dragStartX=event.pageX;return true;},_tabDragging:function(event)
 {var tabElements=this._tabbedPane._tabsElement.childNodes;for(var i=0;i<tabElements.length;++i){var tabElement=tabElements[i];if(tabElement===this._tabElement)
 continue;var intersects=tabElement.offsetLeft+tabElement.clientWidth>this._tabElement.offsetLeft&&this._tabElement.offsetLeft+this._tabElement.clientWidth>tabElement.offsetLeft;if(!intersects)
@@ -2148,40 +2226,39 @@
 this.element.scrollTop=this._rowHeight*(index+1)-this.element.clientHeight;else
 this.element.scrollTop=this._rowHeight*index;}}
 WebInspector.Drawer=function(inspectorView)
-{this._inspectorView=inspectorView;this.element=this._inspectorView.element.createChild("div","drawer");this.element.style.flexBasis=0;this._savedHeight=200;this._drawerContentsElement=this.element.createChild("div");this._drawerContentsElement.id="drawer-contents";this._footerElementContainer=this.element.createChild("div","status-bar hidden");this._footerElementContainer.id="drawer-footer";this._toggleDrawerButton=new WebInspector.StatusBarButton(WebInspector.UIString("Show drawer."),"console-status-bar-item");this._toggleDrawerButton.addEventListener("click",this.toggle,this);this._viewFactories=[];this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.closeableTabs=false;this._tabbedPane.markAsRoot();this.registerView("console",WebInspector.UIString("Console"),this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabClosed,this._updateTabStrip,this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);WebInspector.installDragHandle(this._tabbedPane.headerElement(),this._startStatusBarDragging.bind(this),this._statusBarDragging.bind(this),this._endStatusBarDragging.bind(this),"row-resize");this._tabbedPane.element.createChild("div","drawer-resizer");}
-WebInspector.Drawer.prototype={panelSelected:function(panel)
-{this._toggleDrawerButton.setEnabled(panel.name!=="console");},toggleButtonElement:function()
+{this._inspectorView=inspectorView;this.element=this._inspectorView.devtoolsElement().createChild("div","drawer");this.element.style.flexBasis=0;this._savedHeight=200;this._drawerContentsElement=this.element.createChild("div");this._drawerContentsElement.id="drawer-contents";this._toggleDrawerButton=new WebInspector.StatusBarButton(WebInspector.UIString("Show drawer."),"console-status-bar-item");this._toggleDrawerButton.addEventListener("click",this.toggle,this);this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.closeableTabs=false;this._tabbedPane.markAsRoot();this._tabbedPane.setRetainTabOrder(true,WebInspector.moduleManager.orderComparator(WebInspector.Drawer.ViewFactory,"name","order"));this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabClosed,this._updateTabStrip,this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);WebInspector.installDragHandle(this._tabbedPane.headerElement(),this._startStatusBarDragging.bind(this),this._statusBarDragging.bind(this),this._endStatusBarDragging.bind(this),"ns-resize");this._tabbedPane.element.createChild("div","drawer-resizer");this._showDrawerOnLoadSetting=WebInspector.settings.createSetting("WebInspector.Drawer.showOnLoad",false);this._lastSelectedViewSetting=WebInspector.settings.createSetting("WebInspector.Drawer.lastSelectedView","console");this._initialize();}
+WebInspector.Drawer.prototype={_initialize:function()
+{this._viewFactories={};var extensions=WebInspector.moduleManager.extensions(WebInspector.Drawer.ViewFactory);for(var i=0;i<extensions.length;++i){var descriptor=extensions[i].descriptor();var id=descriptor["name"];var title=WebInspector.UIString(descriptor["title"]);var settingName=descriptor["setting"];var setting=settingName?(WebInspector.settings[settingName]):null;this._viewFactories[id]=extensions[i];if(setting){setting.addChangeListener(this._toggleSettingBasedView.bind(this,id,title,setting));if(setting.get())
+this._tabbedPane.appendTab(id,title,new WebInspector.View());}else{this._tabbedPane.appendTab(id,title,new WebInspector.View());}}},_toggleSettingBasedView:function(id,title,setting)
+{this._tabbedPane.closeTab(id);if(setting.get())
+this._tabbedPane.appendTab(id,title,new WebInspector.View());},toggleButtonElement:function()
 {return this._toggleDrawerButton.element;},_constrainHeight:function(height)
-{return Number.constrain(height,Preferences.minConsoleHeight,this._inspectorView.element.offsetHeight-Preferences.minConsoleHeight);},isHiding:function()
+{return Number.constrain(height,Preferences.minConsoleHeight,this._inspectorView.devtoolsElement().offsetHeight-Preferences.minConsoleHeight);},isHiding:function()
 {return this._isHiding;},_addView:function(tabId,title,view)
-{if(!this._tabbedPane.hasTab(tabId)){this._tabbedPane.appendTab(tabId,title,view,undefined,false);}else{this._tabbedPane.changeTabTitle(tabId,title);this._tabbedPane.changeTabView(tabId,view);}},registerView:function(id,title,factory)
-{if(this._tabbedPane.hasTab(id))
-this._tabbedPane.closeTab(id);this._viewFactories[id]=factory;this._tabbedPane.appendTab(id,title,new WebInspector.View());},unregisterView:function(id)
-{if(this._tabbedPane.hasTab(id))
-this._tabbedPane.closeTab(id);delete this._viewFactories[id];},createView:function(id)
-{return WebInspector.consoleView;},closeView:function(id)
-{this._tabbedPane.closeTab(id);},showView:function(id)
+{if(!this._tabbedPane.hasTab(tabId)){this._tabbedPane.appendTab(tabId,title,view,undefined,false);}else{this._tabbedPane.changeTabTitle(tabId,title);this._tabbedPane.changeTabView(tabId,view);}},closeView:function(id)
+{this._tabbedPane.closeTab(id);},showView:function(id,immediately)
 {if(!this._toggleDrawerButton.enabled())
-return;if(this._viewFactories[id])
-this._tabbedPane.changeTabView(id,this._viewFactories[id].createView(id));this._innerShow();this._tabbedPane.selectTab(id,true);this._updateTabStrip();},showCloseableView:function(id,title,view)
+return;var viewFactory=this._viewFactory(id);if(viewFactory)
+this._tabbedPane.changeTabView(id,viewFactory.createView());this._innerShow(immediately);this._tabbedPane.selectTab(id,true);this._lastSelectedViewSetting.set(id);this._updateTabStrip();},showCloseableView:function(id,title,view)
 {if(!this._toggleDrawerButton.enabled())
 return;if(!this._tabbedPane.hasTab(id)){this._tabbedPane.appendTab(id,title,view,undefined,false,true);}else{this._tabbedPane.changeTabView(id,view);this._tabbedPane.changeTabTitle(id,title);}
 this._innerShow();this._tabbedPane.selectTab(id,true);this._updateTabStrip();},show:function(immediately)
-{this.showView(this._tabbedPane.selectedTabId);},_innerShow:function(immediately)
-{WebInspector.searchController.cancelSearch();this._immediatelyFinishAnimation();if(this._toggleDrawerButton.toggled)
-return;this._toggleDrawerButton.toggled=true;this._toggleDrawerButton.title=WebInspector.UIString("Hide drawer.");document.body.addStyleClass("drawer-visible");this._tabbedPane.show(this._drawerContentsElement);var height=this._constrainHeight(this._savedHeight);var animations=[{element:this.element,start:{"flex-basis":0},end:{"flex-basis":height}},];function animationCallback(finished)
+{this.showView(this._lastSelectedViewSetting.get(),immediately);},showOnLoadIfNecessary:function()
+{if(this._showDrawerOnLoadSetting.get())
+this.showView(this._lastSelectedViewSetting.get(),true);},_innerShow:function(immediately)
+{this._immediatelyFinishAnimation();if(this._toggleDrawerButton.toggled)
+return;this._showDrawerOnLoadSetting.set(true);this._toggleDrawerButton.toggled=true;this._toggleDrawerButton.title=WebInspector.UIString("Hide drawer.");document.body.classList.add("drawer-visible");this._tabbedPane.show(this._drawerContentsElement);var height=this._constrainHeight(this._savedHeight);if(window.innerHeight==0)
+height=this._savedHeight;var animations=[{element:this.element,start:{"flex-basis":23},end:{"flex-basis":height}},];function animationCallback(finished)
 {if(this._inspectorView.currentPanel())
 this._inspectorView.currentPanel().doResize();if(!finished)
-return;this._updateTabStrip();if(this._visibleView()){this._tabbedPane.changeTabView(this._tabbedPane.selectedTabId,this._visibleView());if(this._visibleView().afterShow)
-this._visibleView().afterShow();}
+return;this._updateTabStrip();if(this._visibleView()){this._tabbedPane.changeTabView(this._tabbedPane.selectedTabId,this._visibleView());this._visibleView().focus();}
 delete this._currentAnimation;}
 this._currentAnimation=WebInspector.animateStyle(animations,this._animationDuration(immediately),animationCallback.bind(this));if(immediately)
 this._currentAnimation.forceComplete();},hide:function(immediately)
-{WebInspector.searchController.cancelSearch();this._immediatelyFinishAnimation();if(!this._toggleDrawerButton.toggled)
-return;this._toggleDrawerButton.toggled=false;this._toggleDrawerButton.title=WebInspector.UIString("Show console.");this._isHiding=true;this._savedHeight=this.element.offsetHeight;WebInspector.restoreFocusFromElement(this.element);document.body.removeStyleClass("drawer-visible");this._inspectorView.currentPanel().statusBarResized();document.body.addStyleClass("drawer-visible");var animations=[{element:this.element,start:{"flex-basis":this.element.offsetHeight},end:{"flex-basis":0}},];function animationCallback(finished)
-{if(this._inspectorView.currentPanel())
-this._inspectorView.currentPanel().doResize();if(!finished)
-return;this._tabbedPane.detach();this._drawerContentsElement.removeChildren();document.body.removeStyleClass("drawer-visible");delete this._currentAnimation;delete this._isHiding;}
+{this._immediatelyFinishAnimation();if(!this._toggleDrawerButton.toggled)
+return;this._showDrawerOnLoadSetting.set(false);this._toggleDrawerButton.toggled=false;this._toggleDrawerButton.title=WebInspector.UIString("Show console.");this._isHiding=true;this._savedHeight=this.element.offsetHeight;WebInspector.restoreFocusFromElement(this.element);document.body.classList.remove("drawer-visible");this._inspectorView.currentPanel().statusBarResized();document.body.classList.add("drawer-visible");var animations=[{element:this.element,start:{"flex-basis":this.element.offsetHeight},end:{"flex-basis":23}},];function animationCallback(finished)
+{var panel=this._inspectorView.currentPanel();if(!finished){panel.doResize();return;}
+this._tabbedPane.detach();this._drawerContentsElement.removeChildren();document.body.classList.remove("drawer-visible");panel.doResize();delete this._currentAnimation;delete this._isHiding;}
 this._currentAnimation=WebInspector.animateStyle(animations,this._animationDuration(immediately),animationCallback.bind(this));if(immediately)
 this._currentAnimation.forceComplete();},resize:function()
 {if(!this._toggleDrawerButton.toggled)
@@ -2191,20 +2268,28 @@
 {return immediately?0:50;},_startStatusBarDragging:function(event)
 {if(!this._toggleDrawerButton.toggled||event.target!==this._tabbedPane.headerElement())
 return false;this._visibleView().storeScrollPositions();this._statusBarDragOffset=event.pageY-this.element.totalOffsetTop();return true;},_statusBarDragging:function(event)
-{var height=window.innerHeight-event.pageY+this._statusBarDragOffset;height=Number.constrain(height,Preferences.minConsoleHeight,this._inspectorView.element.offsetHeight-Preferences.minConsoleHeight);this.element.style.flexBasis=height+"px";if(this._inspectorView.currentPanel())
+{var height=window.innerHeight-event.pageY+this._statusBarDragOffset;height=Number.constrain(height,Preferences.minConsoleHeight,this._inspectorView.devtoolsElement().offsetHeight-Preferences.minConsoleHeight);this.element.style.flexBasis=height+"px";if(this._inspectorView.currentPanel())
 this._inspectorView.currentPanel().doResize();this._tabbedPane.doResize();event.consume(true);},_endStatusBarDragging:function(event)
-{this._savedHeight=this.element.offsetHeight;delete this._statusBarDragOffset;event.consume();},setFooterElement:function(element)
-{if(element){this._footerElementContainer.removeStyleClass("hidden");this._footerElementContainer.appendChild(element);this._drawerContentsElement.style.bottom=this._footerElementContainer.offsetHeight+"px";}else{this._footerElementContainer.addStyleClass("hidden");this._footerElementContainer.removeChildren();this._drawerContentsElement.style.bottom=0;}
-this._tabbedPane.doResize();},getSearchProvider:function()
-{var view=this._visibleView();return(view&&view.performSearch?view:null);},_visibleView:function()
+{this._savedHeight=this.element.offsetHeight;delete this._statusBarDragOffset;event.consume();},_visibleView:function()
 {return this._tabbedPane.visibleView;},_updateTabStrip:function()
-{this._tabbedPane.onResize();this._tabbedPane.doResize();},_tabSelected:function()
-{var tabId=this._tabbedPane.selectedTabId;if(this._viewFactories[tabId])
-this._tabbedPane.changeTabView(tabId,this._viewFactories[tabId].createView(tabId));},toggle:function()
+{this._tabbedPane.onResize();this._tabbedPane.doResize();},_tabSelected:function(event)
+{var tabId=this._tabbedPane.selectedTabId;if(event.data["isUserGesture"]&&!this._tabbedPane.isTabCloseable(tabId))
+this._lastSelectedViewSetting.set(tabId);var viewFactory=this._viewFactory(tabId);if(viewFactory)
+this._tabbedPane.changeTabView(tabId,viewFactory.createView());},toggle:function()
 {if(this._toggleDrawerButton.toggled)
 this.hide();else
 this.show();},visible:function()
-{return this._toggleDrawerButton.toggled;}}
+{return this._toggleDrawerButton.toggled;},selectedViewId:function()
+{return this._tabbedPane.selectedTabId;},_viewFactory:function(id)
+{return this._viewFactories[id]?(this._viewFactories[id].instance()):null;}}
+WebInspector.Drawer.ViewFactory=function()
+{}
+WebInspector.Drawer.ViewFactory.prototype={createView:function(){}}
+WebInspector.Drawer.SingletonViewFactory=function(constructor)
+{this._constructor=constructor;}
+WebInspector.Drawer.SingletonViewFactory.prototype={createView:function()
+{if(!this._instance)
+this._instance=(new this._constructor());return this._instance;}}
 WebInspector.ConsoleModel=function()
 {this.messages=[];this.warnings=0;this.errors=0;this._interruptRepeatCount=false;InspectorBackend.registerConsoleDispatcher(new WebInspector.ConsoleDispatcher(this));}
 WebInspector.ConsoleModel.Events={ConsoleCleared:"console-cleared",MessageAdded:"console-message-added",RepeatCountUpdated:"repeat-count-updated"}
@@ -2222,17 +2307,18 @@
 {this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.ConsoleCleared);this.messages=[];delete this._previousMessage;this.errors=0;this.warnings=0;},_messageRepeatCountUpdated:function(count)
 {var msg=this._previousMessage;if(!msg)
 return;var prevRepeatCount=msg.totalRepeatCount;if(!this._interruptRepeatCount){msg.repeatDelta=count-prevRepeatCount;msg.repeatCount=msg.repeatCount+msg.repeatDelta;msg.totalRepeatCount=count;msg.updateRepeatCount();this._incrementErrorWarningCount(msg);this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.RepeatCountUpdated,msg);}else{var msgCopy=msg.clone();msgCopy.totalRepeatCount=count;msgCopy.repeatCount=(count-prevRepeatCount)||1;msgCopy.repeatDelta=msgCopy.repeatCount;this.addMessage(msgCopy,true);}},__proto__:WebInspector.Object.prototype}
-WebInspector.ConsoleMessage=function(source,level,url,line,column,repeatCount)
-{this.source=source;this.level=level;this.url=url||null;this.line=line||0;this.column=column||0;this.message="";repeatCount=repeatCount||1;this.repeatCount=repeatCount;this.repeatDelta=repeatCount;this.totalRepeatCount=repeatCount;}
+WebInspector.ConsoleMessage=function(source,level,url,line,column,repeatCount,requestId)
+{this.source=source;this.level=level;this.url=url||null;this.line=line||0;this.column=column||0;this.message="";repeatCount=repeatCount||1;this.repeatCount=repeatCount;this.repeatDelta=repeatCount;this.totalRepeatCount=repeatCount;this._request=requestId?WebInspector.networkLog.requestForId(requestId):null;}
 WebInspector.ConsoleMessage.prototype={isErrorOrWarning:function()
 {return(this.level===WebInspector.ConsoleMessage.MessageLevel.Warning||this.level===WebInspector.ConsoleMessage.MessageLevel.Error);},updateRepeatCount:function()
 {},clone:function()
 {},location:function()
-{}}
+{},request:function()
+{return this._request;}}
 WebInspector.ConsoleMessage.create=function(source,level,message,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated)
 {}
 WebInspector.ConsoleMessage.MessageSource={XML:"xml",JS:"javascript",Network:"network",ConsoleAPI:"console-api",Storage:"storage",AppCache:"appcache",Rendering:"rendering",CSS:"css",Security:"security",Other:"other",Deprecation:"deprecation"}
-WebInspector.ConsoleMessage.MessageType={Log:"log",Dir:"dir",DirXML:"dirxml",Table:"table",Trace:"trace",Clear:"clear",StartGroup:"startGroup",StartGroupCollapsed:"startGroupCollapsed",EndGroup:"endGroup",Assert:"assert",Result:"result",Profile:"profile",ProfileEnd:"profileEnd"}
+WebInspector.ConsoleMessage.MessageType={Log:"log",Dir:"dir",DirXML:"dirxml",Table:"table",Trace:"trace",Clear:"clear",StartGroup:"startGroup",StartGroupCollapsed:"startGroupCollapsed",EndGroup:"endGroup",Assert:"assert",Result:"result",Profile:"profile",ProfileEnd:"profileEnd",Command:"command"}
 WebInspector.ConsoleMessage.MessageLevel={Log:"log",Info:"info",Warning:"warning",Error:"error",Debug:"debug"}
 WebInspector.ConsoleDispatcher=function(console)
 {this._console=console;}
@@ -2241,14 +2327,13 @@
 {this._console._messageRepeatCountUpdated(count);},messagesCleared:function()
 {if(!WebInspector.settings.preserveConsoleLog.get())
 this._console.clearMessages();}}
-WebInspector.console=null;WebInspector.ConsoleMessageImpl=function(source,level,message,linkifier,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated)
-{WebInspector.ConsoleMessage.call(this,source,level,url,line,column,repeatCount);this._linkifier=linkifier;this.type=type||WebInspector.ConsoleMessage.MessageType.Log;this._messageText=message;this._parameters=parameters;this._stackTrace=stackTrace;this._request=requestId?WebInspector.networkLog.requestForId(requestId):null;this._isOutdated=isOutdated;this._dataGrids=[];this._dataGridParents=new Map();this._customFormatters={"object":this._formatParameterAsObject,"array":this._formatParameterAsArray,"node":this._formatParameterAsNode,"string":this._formatParameterAsString};}
-WebInspector.ConsoleMessageImpl.prototype={request:function()
-{return this._request;},wasShown:function()
+WebInspector.console;WebInspector.ConsoleMessageImpl=function(source,level,message,linkifier,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated)
+{WebInspector.ConsoleMessage.call(this,source,level,url,line,column,repeatCount,requestId);this._linkifier=linkifier;this.type=type||WebInspector.ConsoleMessage.MessageType.Log;this._messageText=message;this._parameters=parameters;this._stackTrace=stackTrace;this._isOutdated=isOutdated;this._dataGrids=[];this._dataGridParents=new Map();this._customFormatters={"object":this._formatParameterAsObject,"array":this._formatParameterAsArray,"node":this._formatParameterAsNode,"string":this._formatParameterAsString};}
+WebInspector.ConsoleMessageImpl.prototype={wasShown:function()
 {for(var i=0;this._dataGrids&&i<this._dataGrids.length;++i){var dataGrid=this._dataGrids[i];var parentElement=this._dataGridParents.get(dataGrid)||null;dataGrid.show(parentElement);dataGrid.updateWidths();}},willHide:function()
 {for(var i=0;this._dataGrids&&i<this._dataGrids.length;++i){var dataGrid=this._dataGrids[i];this._dataGridParents.put(dataGrid,dataGrid.element.parentElement);dataGrid.detach();}},_formatMessage:function()
-{this._formattedMessage=document.createElement("span");this._formattedMessage.className="console-message-text source-code";if(this.source===WebInspector.ConsoleMessage.MessageSource.ConsoleAPI){switch(this.type){case WebInspector.ConsoleMessage.MessageType.Trace:this._messageElement=this._format(this._parameters||["console.trace()"]);break;case WebInspector.ConsoleMessage.MessageType.Clear:this._messageElement=document.createTextNode(WebInspector.UIString("Console was cleared"));this._formattedMessage.addStyleClass("console-info");break;case WebInspector.ConsoleMessage.MessageType.Assert:var args=[WebInspector.UIString("Assertion failed:")];if(this._parameters)
-args=args.concat(this._parameters);this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Dir:var obj=this._parameters?this._parameters[0]:undefined;var args=["%O",obj];this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Profile:var title=WebInspector.ProfilesPanelDescriptor.resolveProfileTitle(this._messageText);this._messageElement=document.createTextNode(WebInspector.UIString("Profile '%s' started.",title));break;case WebInspector.ConsoleMessage.MessageType.ProfileEnd:var hashIndex=this._messageText.lastIndexOf("#");var title=WebInspector.ProfilesPanelDescriptor.resolveProfileTitle(this._messageText.substring(0,hashIndex));var uid=this._messageText.substring(hashIndex+1);var format=WebInspector.UIString("Profile '%s' finished.","%_");var link=WebInspector.linkifyURLAsNode("webkit-profile://CPU/"+uid,title);this._messageElement=document.createElement("span");this._formatWithSubstitutionString(format,[link],this._messageElement);break;default:var args=this._parameters||[this._messageText];this._messageElement=this._format(args);}}else if(this.source===WebInspector.ConsoleMessage.MessageSource.Network){if(this._request){this._stackTrace=this._request.initiator.stackTrace;if(this._request.initiator&&this._request.initiator.url){this.url=this._request.initiator.url;this.line=this._request.initiator.lineNumber;}
+{this._formattedMessage=document.createElement("span");this._formattedMessage.className="console-message-text source-code";if(this.source===WebInspector.ConsoleMessage.MessageSource.ConsoleAPI){switch(this.type){case WebInspector.ConsoleMessage.MessageType.Trace:this._messageElement=this._format(this._parameters||["console.trace()"]);break;case WebInspector.ConsoleMessage.MessageType.Clear:this._messageElement=document.createTextNode(WebInspector.UIString("Console was cleared"));this._formattedMessage.classList.add("console-info");break;case WebInspector.ConsoleMessage.MessageType.Assert:var args=[WebInspector.UIString("Assertion failed:")];if(this._parameters)
+args=args.concat(this._parameters);this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Dir:var obj=this._parameters?this._parameters[0]:undefined;var args=["%O",obj];this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Profile:this._messageElement=document.createTextNode(WebInspector.UIString("Profile '%s' started.",this._messageText));break;case WebInspector.ConsoleMessage.MessageType.ProfileEnd:var hashIndex=this._messageText.lastIndexOf("#");var title=this._messageText.substring(0,hashIndex);var uid=this._messageText.substring(hashIndex+1);var format=WebInspector.UIString("Profile '%s' finished.","%_");var link=WebInspector.linkifyURLAsNode("webkit-profile://CPU/"+uid,title);this._messageElement=document.createElement("span");this._formatWithSubstitutionString(format,[link],this._messageElement);break;default:var args=this._parameters||[this._messageText];this._messageElement=this._format(args);}}else if(this.source===WebInspector.ConsoleMessage.MessageSource.Network){if(this._request){this._stackTrace=this._request.initiator.stackTrace;if(this._request.initiator&&this._request.initiator.url){this.url=this._request.initiator.url;this.line=this._request.initiator.lineNumber;}
 this._messageElement=document.createElement("span");if(this.level===WebInspector.ConsoleMessage.MessageLevel.Error){this._messageElement.appendChild(document.createTextNode(this._request.requestMethod+" "));this._messageElement.appendChild(WebInspector.linkifyRequestAsNode(this._request));if(this._request.failed)
 this._messageElement.appendChild(document.createTextNode(" "+this._request.localizedFailDescription));else
 this._messageElement.appendChild(document.createTextNode(" "+this._request.statusCode+" ("+this._request.statusText+")"));}else{var fragment=WebInspector.linkifyStringAsFragmentWithCustomLinkifier(this._messageText,WebInspector.linkifyRequestAsNode.bind(null,this._request));this._messageElement.appendChild(fragment);}}else{if(this.url){var isExternal=!WebInspector.resourceForURL(this.url)&&!WebInspector.workspace.uiSourceCodeForURL(this.url);this._anchorElement=WebInspector.linkifyURLAsNode(this.url,this.url,"console-message-url",isExternal);}
@@ -2260,8 +2345,7 @@
 this._message=this._messageElement.textContent;},get message()
 {var formattedMessage=this.formattedMessage;return this._message;},get formattedMessage()
 {if(!this._formattedMessage)
-this._formatMessage();return this._formattedMessage;},request:function()
-{return this._request;},_linkifyLocation:function(url,lineNumber,columnNumber)
+this._formatMessage();return this._formattedMessage;},_linkifyLocation:function(url,lineNumber,columnNumber)
 {lineNumber=lineNumber?lineNumber-1:0;columnNumber=columnNumber?columnNumber-1:0;if(this.source===WebInspector.ConsoleMessage.MessageSource.CSS){var headerIds=WebInspector.cssModel.styleSheetIdsForURL(url);var cssLocation=new WebInspector.CSSLocation(url,lineNumber,columnNumber);return this._linkifier.linkifyCSSLocation(headerIds[0]||null,cssLocation,"console-message-url");}
 return this._linkifier.linkifyLocation(url,lineNumber,columnNumber,"console-message-url");},_linkifyCallFrame:function(callFrame)
 {var lineNumber=callFrame.lineNumber?callFrame.lineNumber-1:0;var columnNumber=callFrame.columnNumber?callFrame.columnNumber-1:0;var rawLocation=new WebInspector.DebuggerModel.Location(callFrame.scriptId,lineNumber,columnNumber);return this._linkifier.linkifyRawLocation(rawLocation,"console-message-url");},isErrorOrWarning:function()
@@ -2287,7 +2371,7 @@
 {elem.appendChild(document.createTextNode(val));},_formatParameterAsObject:function(obj,elem,includePreview)
 {this._formatParameterAsArrayOrObject(obj,obj.description||"",elem,includePreview);},_formatParameterAsArrayOrObject:function(obj,description,elem,includePreview)
 {var titleElement=document.createElement("span");if(description)
-titleElement.createTextChild(description);if(includePreview&&obj.preview){titleElement.addStyleClass("console-object-preview");var lossless=this._appendObjectPreview(obj,description,titleElement);if(lossless){elem.appendChild(titleElement);return;}}
+titleElement.createTextChild(description);if(includePreview&&obj.preview){titleElement.classList.add("console-object-preview");var lossless=this._appendObjectPreview(obj,description,titleElement);if(lossless){elem.appendChild(titleElement);return;}}
 var section=new WebInspector.ObjectPropertiesSection(obj,titleElement);section.enableContextMenu();elem.appendChild(section.element);var note=section.titleElement.createChild("span","object-info-state-note");note.title=WebInspector.UIString("Object state below is captured upon first expansion");},_appendObjectPreview:function(obj,description,titleElement)
 {var preview=obj.preview;var isArray=obj.subtype==="array";if(description)
 titleElement.createTextChild(" ");titleElement.createTextChild(isArray?"[":"{");for(var i=0;i<preview.properties.length;++i){if(i>0)
@@ -2299,14 +2383,14 @@
 {var property=propertyPath.peekLast();if(property.type==="accessor")
 return this._formatAsAccessorProperty(object,propertyPath.select("name"),false);return this._renderPropertyPreview(property.type,(property.subtype),property.value);},_renderPropertyPreview:function(type,subtype,description)
 {var span=document.createElement("span");span.className="console-formatted-"+type;if(type==="function"){span.textContent="function";return span;}
-if(type==="object"&&subtype==="regexp"){span.addStyleClass("console-formatted-string");span.textContent=description;return span;}
-if(type==="object"&&subtype==="node"&&description){span.addStyleClass("console-formatted-preview-node");WebInspector.DOMPresentationUtils.createSpansForNodeTitle(span,description);return span;}
+if(type==="object"&&subtype==="regexp"){span.classList.add("console-formatted-string");span.textContent=description;return span;}
+if(type==="object"&&subtype==="node"&&description){span.classList.add("console-formatted-preview-node");WebInspector.DOMPresentationUtils.createSpansForNodeTitle(span,description);return span;}
 if(type==="string"){span.textContent="\""+description.replace(/\n/g,"\u21B5")+"\"";return span;}
 span.textContent=description;return span;},_formatParameterAsNode:function(object,elem)
 {function printNode(nodeId)
 {if(!nodeId){this._formatParameterAsObject(object,elem,false);return;}
-var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.setVisible(true);treeOutline.rootDOMNode=WebInspector.domAgent.nodeForId(nodeId);treeOutline.element.addStyleClass("outline-disclosure");if(!treeOutline.children[0].hasChildren)
-treeOutline.element.addStyleClass("single-node");elem.appendChild(treeOutline.element);treeOutline.element.treeElementForTest=treeOutline.children[0];}
+var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.setVisible(true);treeOutline.rootDOMNode=WebInspector.domAgent.nodeForId(nodeId);treeOutline.element.classList.add("outline-disclosure");if(!treeOutline.children[0].hasChildren)
+treeOutline.element.classList.add("single-node");elem.appendChild(treeOutline.element);treeOutline.element.treeElementForTest=treeOutline.children[0];}
 object.pushNodeToFrontend(printNode.bind(this));},useArrayPreviewInFormatter:function(array)
 {return this.type!==WebInspector.ConsoleMessage.MessageType.DirXML&&!!array.preview;},_formatParameterAsArray:function(array,elem)
 {if(this.useArrayPreviewInFormatter(array)){this._formatParameterAsArrayOrObject(array,"",elem,true);return;}
@@ -2317,13 +2401,13 @@
 return element;var columnNames=[];var preview=table.preview;var rows=[];for(var i=0;i<preview.properties.length;++i){var rowProperty=preview.properties[i];var rowPreview=rowProperty.valuePreview;if(!rowPreview)
 continue;var rowValue={};const maxColumnsToRender=20;for(var j=0;j<rowPreview.properties.length;++j){var cellProperty=rowPreview.properties[j];var columnRendered=columnNames.indexOf(cellProperty.name)!=-1;if(!columnRendered){if(columnNames.length===maxColumnsToRender)
 continue;columnRendered=true;columnNames.push(cellProperty.name);}
-if(columnRendered){var cellElement=this._renderPropertyPreviewOrAccessor(table,[rowProperty,cellProperty]);cellElement.addStyleClass("nowrap-below");rowValue[cellProperty.name]=cellElement;}}
+if(columnRendered){var cellElement=this._renderPropertyPreviewOrAccessor(table,[rowProperty,cellProperty]);cellElement.classList.add("nowrap-below");rowValue[cellProperty.name]=cellElement;}}
 rows.push([rowProperty.name,rowValue]);}
 var flatValues=[];for(var i=0;i<rows.length;++i){var rowName=rows[i][0];var rowValue=rows[i][1];flatValues.push(rowName);for(var j=0;j<columnNames.length;++j)
 flatValues.push(rowValue[columnNames[j]]);}
 if(!flatValues.length)
 return element;columnNames.unshift(WebInspector.UIString("(index)"));var dataGrid=WebInspector.DataGrid.createSortableDataGrid(columnNames,flatValues);dataGrid.renderInline();this._dataGrids.push(dataGrid);this._dataGridParents.put(dataGrid,element);return element;},_formatParameterAsString:function(output,elem)
-{var span=document.createElement("span");span.className="console-formatted-string source-code";span.appendChild(WebInspector.linkifyStringAsFragment(output.description));elem.removeStyleClass("console-formatted-string");elem.appendChild(document.createTextNode("\""));elem.appendChild(span);elem.appendChild(document.createTextNode("\""));},_printArray:function(array,elem,properties)
+{var span=document.createElement("span");span.className="console-formatted-string source-code";span.appendChild(WebInspector.linkifyStringAsFragment(output.description));elem.classList.remove("console-formatted-string");elem.appendChild(document.createTextNode("\""));elem.appendChild(span);elem.appendChild(document.createTextNode("\""));},_printArray:function(array,elem,properties)
 {if(!properties)
 return;var elements=[];for(var i=0;i<properties.length;++i){var property=properties[i];var name=property.name;if(isNaN(name))
 continue;if(property.getter)
@@ -2376,20 +2460,20 @@
 {if(!this._formattedMessage)
 return;this._highlightSearchResultsInElement(regexObject,this._messageElement);if(this._anchorElement)
 this._highlightSearchResultsInElement(regexObject,this._anchorElement);this._element.scrollIntoViewIfNeeded();},_highlightSearchResultsInElement:function(regexObject,element)
-{regexObject.lastIndex=0;var text=element.textContent;var match=regexObject.exec(text);var matchRanges=[];while(match){matchRanges.push({offset:match.index,length:match[0].length});match=regexObject.exec(text);}
+{regexObject.lastIndex=0;var text=element.textContent;var match=regexObject.exec(text);var matchRanges=[];while(match){matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(text);}
 WebInspector.highlightSearchResults(element,matchRanges);},matchesRegex:function(regexObject)
-{regexObject.lastIndex=0;return regexObject.test(this.message)||(this._anchorElement&&regexObject.test(this._anchorElement.textContent));},toMessageElement:function()
+{regexObject.lastIndex=0;return regexObject.test(this.message)||(!!this._anchorElement&&regexObject.test(this._anchorElement.textContent));},toMessageElement:function()
 {if(this._element)
-return this._element;var element=document.createElement("div");element.message=this;element.className="console-message";this._element=element;switch(this.level){case WebInspector.ConsoleMessage.MessageLevel.Log:element.addStyleClass("console-log-level");break;case WebInspector.ConsoleMessage.MessageLevel.Debug:element.addStyleClass("console-debug-level");break;case WebInspector.ConsoleMessage.MessageLevel.Warning:element.addStyleClass("console-warning-level");break;case WebInspector.ConsoleMessage.MessageLevel.Error:element.addStyleClass("console-error-level");break;case WebInspector.ConsoleMessage.MessageLevel.Info:element.addStyleClass("console-info-level");break;}
+return this._element;var element=document.createElement("div");element.message=this;element.className="console-message";this._element=element;switch(this.level){case WebInspector.ConsoleMessage.MessageLevel.Log:element.classList.add("console-log-level");break;case WebInspector.ConsoleMessage.MessageLevel.Debug:element.classList.add("console-debug-level");break;case WebInspector.ConsoleMessage.MessageLevel.Warning:element.classList.add("console-warning-level");break;case WebInspector.ConsoleMessage.MessageLevel.Error:element.classList.add("console-error-level");break;case WebInspector.ConsoleMessage.MessageLevel.Info:element.classList.add("console-info-level");break;}
 if(this.type===WebInspector.ConsoleMessage.MessageType.StartGroup||this.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
-element.addStyleClass("console-group-title");element.appendChild(this.formattedMessage);if(this.repeatCount>1)
+element.classList.add("console-group-title");element.appendChild(this.formattedMessage);if(this.repeatCount>1)
 this.updateRepeatCount();return element;},_populateStackTraceTreeElement:function(parentTreeElement)
-{for(var i=0;i<this._stackTrace.length;i++){var frame=this._stackTrace[i];var content=document.createElement("div");var messageTextElement=document.createElement("span");messageTextElement.className="console-message-text source-code";var functionName=frame.functionName||WebInspector.UIString("(anonymous function)");messageTextElement.appendChild(document.createTextNode(functionName));content.appendChild(messageTextElement);if(frame.scriptId){content.appendChild(document.createTextNode(" "));var urlElement=this._linkifyCallFrame(frame);if(!urlElement)
+{for(var i=0;i<this._stackTrace.length;i++){var frame=this._stackTrace[i];var content=document.createElementWithClass("div","stacktrace-entry");var messageTextElement=document.createElement("span");messageTextElement.className="console-message-text source-code";var functionName=frame.functionName||WebInspector.UIString("(anonymous function)");messageTextElement.appendChild(document.createTextNode(functionName));content.appendChild(messageTextElement);if(frame.scriptId){content.appendChild(document.createTextNode(" "));var urlElement=this._linkifyCallFrame(frame);if(!urlElement)
 continue;content.appendChild(urlElement);}
 var treeElement=new TreeElement(content);parentTreeElement.appendChild(treeElement);}},updateRepeatCount:function(){if(!this._element)
-return;if(!this.repeatCountElement){this.repeatCountElement=document.createElement("span");this.repeatCountElement.className="bubble";this._element.insertBefore(this.repeatCountElement,this._element.firstChild);this._element.addStyleClass("repeated-message");}
+return;if(!this.repeatCountElement){this.repeatCountElement=document.createElement("span");this.repeatCountElement.className="bubble";this._element.insertBefore(this.repeatCountElement,this._element.firstChild);this._element.classList.add("repeated-message");}
 this.repeatCountElement.textContent=this.repeatCount;},toString:function()
-{var sourceString;switch(this.source){case WebInspector.ConsoleMessage.MessageSource.XML:sourceString="XML";break;case WebInspector.ConsoleMessage.MessageSource.JS:sourceString="JS";break;case WebInspector.ConsoleMessage.MessageSource.Network:sourceString="Network";break;case WebInspector.ConsoleMessage.MessageSource.ConsoleAPI:sourceString="ConsoleAPI";break;case WebInspector.ConsoleMessage.MessageSource.Storage:sourceString="Storage";break;case WebInspector.ConsoleMessage.MessageSource.AppCache:sourceString="AppCache";break;case WebInspector.ConsoleMessage.MessageSource.Rendering:sourceString="Rendering";break;case WebInspector.ConsoleMessage.MessageSource.CSS:sourceString="CSS";break;case WebInspector.ConsoleMessage.MessageSource.Security:sourceString="Security";break;case WebInspector.ConsoleMessage.MessageSource.Other:sourceString="Other";break;}
+{var sourceString;switch(this.source){case WebInspector.ConsoleMessage.MessageSource.XML:sourceString="XML";break;case WebInspector.ConsoleMessage.MessageSource.JS:sourceString="JavaScript";break;case WebInspector.ConsoleMessage.MessageSource.Network:sourceString="Network";break;case WebInspector.ConsoleMessage.MessageSource.ConsoleAPI:sourceString="ConsoleAPI";break;case WebInspector.ConsoleMessage.MessageSource.Storage:sourceString="Storage";break;case WebInspector.ConsoleMessage.MessageSource.AppCache:sourceString="AppCache";break;case WebInspector.ConsoleMessage.MessageSource.Rendering:sourceString="Rendering";break;case WebInspector.ConsoleMessage.MessageSource.CSS:sourceString="CSS";break;case WebInspector.ConsoleMessage.MessageSource.Security:sourceString="Security";break;case WebInspector.ConsoleMessage.MessageSource.Other:sourceString="Other";break;}
 var typeString;switch(this.type){case WebInspector.ConsoleMessage.MessageType.Log:typeString="Log";break;case WebInspector.ConsoleMessage.MessageType.Dir:typeString="Dir";break;case WebInspector.ConsoleMessage.MessageType.DirXML:typeString="Dir XML";break;case WebInspector.ConsoleMessage.MessageType.Trace:typeString="Trace";break;case WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed:case WebInspector.ConsoleMessage.MessageType.StartGroup:typeString="Start Group";break;case WebInspector.ConsoleMessage.MessageType.EndGroup:typeString="End Group";break;case WebInspector.ConsoleMessage.MessageType.Assert:typeString="Assert";break;case WebInspector.ConsoleMessage.MessageType.Result:typeString="Result";break;case WebInspector.ConsoleMessage.MessageType.Profile:case WebInspector.ConsoleMessage.MessageType.ProfileEnd:typeString="Profiling";break;}
 var levelString;switch(this.level){case WebInspector.ConsoleMessage.MessageLevel.Log:levelString="Log";break;case WebInspector.ConsoleMessage.MessageLevel.Warning:levelString="Warning";break;case WebInspector.ConsoleMessage.MessageLevel.Debug:levelString="Debug";break;case WebInspector.ConsoleMessage.MessageLevel.Error:levelString="Error";break;case WebInspector.ConsoleMessage.MessageLevel.Info:levelString="Info";break;}
 return sourceString+" "+typeString+" "+levelString+": "+this.formattedMessage.textContent+"\n"+this.url+" line "+this.line;},get text()
@@ -2404,21 +2488,21 @@
 {return this._stackTrace;},clone:function()
 {return WebInspector.ConsoleMessage.create(this.source,this.level,this._messageText,this.type,this.url,this.line,this.column,this.repeatCount,this._parameters,this._stackTrace,this._request?this._request.requestId:undefined,this._isOutdated);},__proto__:WebInspector.ConsoleMessage.prototype}
 WebInspector.ConsoleView=function(hideContextSelector)
-{WebInspector.View.call(this);this.registerRequiredCSS("filter.css");this.element.classList.add("fill","vbox");this._visibleMessagesIndices=[];this._urlToMessageCount={};this._clearConsoleButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear console log."),"clear-status-bar-item");this._clearConsoleButton.addEventListener("click",this._requestClearMessages,this);this._frameSelector=new WebInspector.StatusBarComboBox(this._frameChanged.bind(this),"console-context");this._contextSelector=new WebInspector.StatusBarComboBox(this._contextChanged.bind(this),"console-context");this._filter=new WebInspector.ConsoleViewFilter();this._filter.addEventListener(WebInspector.ConsoleViewFilter.Events.FilterChanged,this._updateMessageList.bind(this));if(hideContextSelector){this._frameSelector.element.addStyleClass("hidden");this._contextSelector.element.addStyleClass("hidden");}
-this._filterBar=new WebInspector.FilterBar();var statusBarElement=this.element.createChild("div","console-status-bar");statusBarElement.appendChild(this._clearConsoleButton.element);statusBarElement.appendChild(this._filterBar.filterButton());statusBarElement.appendChild(this._frameSelector.element);statusBarElement.appendChild(this._contextSelector.element);this._filtersContainer=this.element.createChild("div","console-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this._filter.addFilters(this._filterBar);this.messagesElement=document.createElement("div");this.messagesElement.id="console-messages";this.messagesElement.className="monospace";this.messagesElement.addEventListener("click",this._messagesClicked.bind(this),true);this.element.appendChild(this.messagesElement);this._scrolledToBottom=true;this.promptElement=document.createElement("div");this.promptElement.id="console-prompt";this.promptElement.className="source-code";this.promptElement.spellcheck=false;this.messagesElement.appendChild(this.promptElement);this.messagesElement.appendChild(document.createElement("br"));this.topGroup=new WebInspector.ConsoleGroup(null);this.messagesElement.insertBefore(this.topGroup.element,this.promptElement);this.currentGroup=this.topGroup;this._registerShortcuts();this.registerRequiredCSS("textPrompt.css");this.messagesElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);WebInspector.settings.monitoringXHREnabled.addChangeListener(this._monitoringXHREnabledSettingChanged.bind(this));WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._consoleMessageAdded,this);WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._consoleCleared,this);this._linkifier=new WebInspector.Linkifier();this.prompt=new WebInspector.TextPromptWithHistory(WebInspector.runtimeModel.completionsForTextPrompt.bind(WebInspector.runtimeModel));this.prompt.setSuggestBoxEnabled("generic-suggest");this.prompt.renderAsBlock();this.prompt.attach(this.promptElement);this.prompt.proxyElement.addEventListener("keydown",this._promptKeyDown.bind(this),false);this.prompt.setHistoryData(WebInspector.settings.consoleHistory.get());WebInspector.runtimeModel.contextLists().forEach(this._addFrame,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListAdded,this._frameAdded,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListRemoved,this._frameRemoved,this);this._filterStatusMessageElement=document.createElement("div");this._filterStatusMessageElement.classList.add("console-message");this._filterStatusTextElement=this._filterStatusMessageElement.createChild("span","console-info");this._filterStatusMessageElement.createTextChild(" ");var resetFiltersLink=this._filterStatusMessageElement.createChild("span","console-info node-link");resetFiltersLink.textContent=WebInspector.UIString("Show all messages.");resetFiltersLink.addEventListener("click",this._filter.reset.bind(this._filter),true);this.messagesElement.insertBefore(this._filterStatusMessageElement,this.topGroup.element);this._updateFilterStatus();}
+{WebInspector.View.call(this);this.registerRequiredCSS("filter.css");this._searchableView=new WebInspector.SearchableView(this);this._searchableView.setMinimalSearchQuerySize(0);this._searchableView.show(this.element);this._contentsElement=this._searchableView.element;this._contentsElement.classList.add("fill","vbox","console-view");this._visibleMessagesIndices=[];this._urlToMessageCount={};this._clearConsoleButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear console log."),"clear-status-bar-item");this._clearConsoleButton.addEventListener("click",this._requestClearMessages,this);this._frameSelector=new WebInspector.StatusBarComboBox(this._frameChanged.bind(this),"console-context");this._contextSelector=new WebInspector.StatusBarComboBox(this._contextChanged.bind(this),"console-context");this._filter=new WebInspector.ConsoleViewFilter();this._filter.addEventListener(WebInspector.ConsoleViewFilter.Events.FilterChanged,this._updateMessageList.bind(this));if(hideContextSelector){this._frameSelector.element.classList.add("hidden");this._contextSelector.element.classList.add("hidden");}
+this._filterBar=new WebInspector.FilterBar();var statusBarElement=this._contentsElement.createChild("div","console-status-bar");statusBarElement.appendChild(this._clearConsoleButton.element);statusBarElement.appendChild(this._filterBar.filterButton().element);statusBarElement.appendChild(this._frameSelector.element);statusBarElement.appendChild(this._contextSelector.element);this._filtersContainer=this._contentsElement.createChild("div","console-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this._filter.addFilters(this._filterBar);this.messagesElement=document.createElement("div");this.messagesElement.id="console-messages";this.messagesElement.className="monospace";this.messagesElement.addEventListener("click",this._messagesClicked.bind(this),true);this._contentsElement.appendChild(this.messagesElement);this._scrolledToBottom=true;this.promptElement=document.createElement("div");this.promptElement.id="console-prompt";this.promptElement.className="source-code";this.promptElement.spellcheck=false;this.messagesElement.appendChild(this.promptElement);this.messagesElement.appendChild(document.createElement("br"));this.topGroup=new WebInspector.ConsoleGroup(null);this.messagesElement.insertBefore(this.topGroup.element,this.promptElement);this.currentGroup=this.topGroup;this._registerShortcuts();this.registerRequiredCSS("textPrompt.css");this.messagesElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);WebInspector.settings.monitoringXHREnabled.addChangeListener(this._monitoringXHREnabledSettingChanged.bind(this));WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._consoleMessageAdded,this);WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._consoleCleared,this);this._linkifier=new WebInspector.Linkifier();this.prompt=new WebInspector.TextPromptWithHistory(WebInspector.runtimeModel.completionsForTextPrompt.bind(WebInspector.runtimeModel));this.prompt.setSuggestBoxEnabled("generic-suggest");this.prompt.renderAsBlock();this.prompt.attach(this.promptElement);this.prompt.proxyElement.addEventListener("keydown",this._promptKeyDown.bind(this),false);this.prompt.setHistoryData(WebInspector.settings.consoleHistory.get());WebInspector.runtimeModel.contextLists().forEach(this._addFrame,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListAdded,this._frameAdded,this);WebInspector.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.FrameExecutionContextListRemoved,this._frameRemoved,this);this._filterStatusMessageElement=document.createElement("div");this._filterStatusMessageElement.classList.add("console-message");this._filterStatusTextElement=this._filterStatusMessageElement.createChild("span","console-info");this._filterStatusMessageElement.createTextChild(" ");var resetFiltersLink=this._filterStatusMessageElement.createChild("span","console-info node-link");resetFiltersLink.textContent=WebInspector.UIString("Show all messages.");resetFiltersLink.addEventListener("click",this._filter.reset.bind(this._filter),true);this.messagesElement.insertBefore(this._filterStatusMessageElement,this.topGroup.element);this._updateFilterStatus();}
 WebInspector.ConsoleView.prototype={defaultFocusedElement:function()
 {return this.promptElement},_onFiltersToggled:function(event)
 {var toggled=(event.data);this._filtersContainer.enableStyleClass("hidden",!toggled);},_frameAdded:function(event)
 {var contextList=(event.data);this._addFrame(contextList);},_addFrame:function(contextList)
 {var option=this._frameSelector.createOption(contextList.displayName,contextList.url);option._contextList=contextList;contextList._consoleOption=option;contextList.addEventListener(WebInspector.FrameExecutionContextList.EventTypes.ContextsUpdated,this._frameUpdated,this);contextList.addEventListener(WebInspector.FrameExecutionContextList.EventTypes.ContextAdded,this._contextAdded,this);this._frameChanged();},_frameRemoved:function(event)
 {var contextList=(event.data);this._frameSelector.removeOption(contextList._consoleOption);this._frameChanged();},_frameChanged:function()
-{var context=this._currentFrame();if(!context){WebInspector.runtimeModel.setCurrentExecutionContext(null);this._contextSelector.element.addStyleClass("hidden");return;}
+{var context=this._currentFrame();if(!context){WebInspector.runtimeModel.setCurrentExecutionContext(null);this._contextSelector.element.classList.add("hidden");return;}
 var executionContexts=context.executionContexts();if(executionContexts.length)
-WebInspector.runtimeModel.setCurrentExecutionContext(executionContexts[0]);if(executionContexts.length===1){this._contextSelector.element.addStyleClass("hidden");return;}
-this._contextSelector.element.removeStyleClass("hidden");this._contextSelector.removeOptions();for(var i=0;i<executionContexts.length;++i)
+WebInspector.runtimeModel.setCurrentExecutionContext(executionContexts[0]);if(executionContexts.length===1){this._contextSelector.element.classList.add("hidden");return;}
+this._contextSelector.element.classList.remove("hidden");this._contextSelector.removeOptions();for(var i=0;i<executionContexts.length;++i)
 this._appendContextOption(executionContexts[i]);},_appendContextOption:function(executionContext)
 {if(!WebInspector.runtimeModel.currentExecutionContext())
-WebInspector.runtimeModel.setCurrentExecutionContext(executionContext);var option=this._contextSelector.createOption(executionContext.name,executionContext.id);option._executionContext=executionContext;},_contextChanged:function(event)
+WebInspector.runtimeModel.setCurrentExecutionContext(executionContext);var option=this._contextSelector.createOption(executionContext.name,executionContext.id);option._executionContext=executionContext;},_contextChanged:function()
 {var option=this._contextSelector.selectedOption();WebInspector.runtimeModel.setCurrentExecutionContext(option?option._executionContext:null);},_frameUpdated:function(event)
 {var contextList=(event.data);var option=contextList._consoleOption;option.text=contextList.displayName;option.title=contextList.url;},_contextAdded:function(event)
 {var contextList=(event.data);if(contextList===this._currentFrame())
@@ -2426,8 +2510,8 @@
 {var option=this._frameSelector.selectedOption();return option?option._contextList:undefined;},willHide:function()
 {this.prompt.hideSuggestBox();this.prompt.clearAutoComplete(true);},wasShown:function()
 {if(!this.prompt.isCaretInsidePrompt())
-this.prompt.moveCaretToEndOfPrompt();},afterShow:function()
-{WebInspector.setCurrentFocusElement(this.promptElement);},storeScrollPositions:function()
+this.prompt.moveCaretToEndOfPrompt();},focus:function()
+{WebInspector.setCurrentFocusElement(this.promptElement);this.prompt.moveCaretToEndOfPrompt();},storeScrollPositions:function()
 {WebInspector.View.prototype.storeScrollPositions.call(this);this._scrolledToBottom=this.messagesElement.isScrolledToBottom();},restoreScrollPositions:function()
 {if(this._scrolledToBottom)
 this._immediatelyScrollIntoView();else
@@ -2436,7 +2520,7 @@
 {return!!this._scrollIntoViewTimer;},_scheduleScrollIntoView:function()
 {if(this._scrollIntoViewTimer)
 return;function scrollIntoView()
-{delete this._scrollIntoViewTimer;this.promptElement.scrollIntoView(true);}
+{delete this._scrollIntoViewTimer;this.messagesElement.scrollTop=this.messagesElement.scrollHeight-this.messagesElement.clientHeight;}
 this._scrollIntoViewTimer=setTimeout(scrollIntoView.bind(this),20);},_immediatelyScrollIntoView:function()
 {this.promptElement.scrollIntoView(true);this._cancelScheduledScrollIntoView();},_cancelScheduledScrollIntoView:function()
 {if(!this._isScrollIntoViewScheduled())
@@ -2450,12 +2534,11 @@
 this._scheduleScrollIntoView();this._visibleMessagesIndices.push(index);if(message.type===WebInspector.ConsoleMessage.MessageType.EndGroup){var parentGroup=this.currentGroup.parentGroup;if(parentGroup)
 this.currentGroup=parentGroup;}else{if(message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){var group=new WebInspector.ConsoleGroup(this.currentGroup);this.currentGroup.messagesElement.appendChild(group.element);this.currentGroup=group;message.group=group;}
 this.currentGroup.addMessage(message);}
-if(this._searchRegex&&message.matchesRegex(this._searchRegex)){this._searchResultsIndices.push(index);WebInspector.searchController.updateSearchMatchesCount(this._searchResultsIndices.length,this._searchProvider);}},_consoleCleared:function()
+if(this._searchRegex&&message.matchesRegex(this._searchRegex)){this._searchResultsIndices.push(index);this._searchableView.updateSearchMatchesCount(this._searchResultsIndices.length);}},_consoleCleared:function()
 {this._scrolledToBottom=true;for(var i=0;i<this._visibleMessagesIndices.length;++i)
 WebInspector.console.messages[this._visibleMessagesIndices[i]].willHide();this._visibleMessagesIndices=[];this._searchResultsIndices=[];if(this._searchRegex)
-WebInspector.searchController.updateSearchMatchesCount(0,this._searchProvider);this.currentGroup=this.topGroup;this.topGroup.messagesElement.removeChildren();this._clearCurrentSearchResultHighlight();this._updateFilterStatus(0);this._linkifier.reset();},_handleContextMenuEvent:function(event)
-{if(!window.getSelection().isCollapsed){return;}
-if(event.target.enclosingNodeOrSelfWithNodeName("a"))
+this._searchableView.updateSearchMatchesCount(0);this.currentGroup=this.topGroup;this.topGroup.messagesElement.removeChildren();this._clearCurrentSearchResultHighlight();this._updateFilterStatus(0);this._linkifier.reset();},_handleContextMenuEvent:function(event)
+{if(event.target.enclosingNodeOrSelfWithNodeName("a"))
 return;var contextMenu=new WebInspector.ContextMenu(event);function monitoringXHRItemAction()
 {WebInspector.settings.monitoringXHREnabled.set(!WebInspector.settings.monitoringXHREnabled.get());}
 contextMenu.appendCheckboxItem(WebInspector.UIString("Log XMLHttpRequests"),monitoringXHRItemAction.bind(this),WebInspector.settings.monitoringXHREnabled.get());function preserveLogItemAction()
@@ -2471,7 +2554,7 @@
 ++visibleMessageIndex;}else{if(this._filter.shouldBeVisible(sourceMessage)){if(this._searchRegex&&sourceMessage.matchesRegex(this._searchRegex))
 this._searchResultsIndices.push(i);group.addMessage(sourceMessage,anchor?anchor.nextSibling:group.messagesElement.firstChild);newVisibleMessages.push(i);anchor=sourceMessage.toMessageElement();}}}
 if(this._searchRegex)
-WebInspector.searchController.updateSearchMatchesCount(this._searchResultsIndices.length,this._searchProvider);this._visibleMessagesIndices=newVisibleMessages;this._updateFilterStatus();},_monitoringXHREnabledSettingChanged:function(event)
+this._searchableView.updateSearchMatchesCount(this._searchResultsIndices.length);this._visibleMessagesIndices=newVisibleMessages;this._updateFilterStatus();},_monitoringXHREnabledSettingChanged:function(event)
 {ConsoleAgent.setMonitoringXHREnabled(event.data);},_messagesClicked:function()
 {if(!this.prompt.isCaretInsidePrompt()&&window.getSelection().isCollapsed)
 this.prompt.moveCaretToEndOfPrompt();},_registerShortcuts:function()
@@ -2500,51 +2583,43 @@
 this._printResult(result,wasThrown,commandMessage);}
 WebInspector.runtimeModel.evaluate(text,"console",useCommandLineAPI,false,false,true,printResult.bind(this));WebInspector.userMetrics.ConsoleEvaluated.record();},elementsToRestoreScrollPositionsFor:function()
 {return[this.messagesElement];},searchCanceled:function()
-{this._clearCurrentSearchResultHighlight();delete this._searchProvider;delete this._searchResultsIndices;delete this._searchRegex;},canSearchAndReplace:function()
-{return false;},performSearch:function(query,shouldJump,self)
-{this.searchCanceled();this._searchProvider=self||this;WebInspector.searchController.updateSearchMatchesCount(0,this._searchProvider);this._searchRegex=createPlainTextSearchRegex(query,"gi");this._searchResultsIndices=[];for(var i=0;i<this._visibleMessagesIndices.length;i++){if(WebInspector.console.messages[this._visibleMessagesIndices[i]].matchesRegex(this._searchRegex))
+{this._clearCurrentSearchResultHighlight();delete this._searchResultsIndices;delete this._searchRegex;},performSearch:function(query,shouldJump)
+{this.searchCanceled();this._searchableView.updateSearchMatchesCount(0);this._searchRegex=createPlainTextSearchRegex(query,"gi");this._searchResultsIndices=[];for(var i=0;i<this._visibleMessagesIndices.length;i++){if(WebInspector.console.messages[this._visibleMessagesIndices[i]].matchesRegex(this._searchRegex))
 this._searchResultsIndices.push(this._visibleMessagesIndices[i]);}
-WebInspector.searchController.updateSearchMatchesCount(this._searchResultsIndices.length,this._searchProvider);this._currentSearchResultIndex=-1;if(shouldJump&&this._searchResultsIndices.length)
-this._jumpToSearchResult(0,self);},minimalSearchQuerySize:function()
-{return 0;},jumpToNextSearchResult:function(self)
+this._searchableView.updateSearchMatchesCount(this._searchResultsIndices.length);this._currentSearchResultIndex=-1;if(shouldJump&&this._searchResultsIndices.length)
+this._jumpToSearchResult(0);},jumpToNextSearchResult:function()
 {if(!this._searchResultsIndices||!this._searchResultsIndices.length)
-return;this._jumpToSearchResult((this._currentSearchResultIndex+1)%this._searchResultsIndices.length,self);},jumpToPreviousSearchResult:function(self)
+return;this._jumpToSearchResult((this._currentSearchResultIndex+1)%this._searchResultsIndices.length);},jumpToPreviousSearchResult:function()
 {if(!this._searchResultsIndices||!this._searchResultsIndices.length)
 return;var index=this._currentSearchResultIndex-1;if(index===-1)
-index=this._searchResultsIndices.length-1;this._jumpToSearchResult(index,self);},_clearCurrentSearchResultHighlight:function()
+index=this._searchResultsIndices.length-1;this._jumpToSearchResult(index);},_clearCurrentSearchResultHighlight:function()
 {if(!this._searchResultsIndices)
 return;var highlightedMessage=WebInspector.console.messages[this._searchResultsIndices[this._currentSearchResultIndex]];if(highlightedMessage)
-highlightedMessage.clearHighlight();this._currentSearchResultIndex=-1;},_jumpToSearchResult:function(index,self)
-{this._clearCurrentSearchResultHighlight();this._currentSearchResultIndex=index;WebInspector.searchController.updateCurrentMatchIndex(this._currentSearchResultIndex,this._searchProvider);WebInspector.console.messages[this._searchResultsIndices[index]].highlightSearchResults(this._searchRegex);},__proto__:WebInspector.View.prototype}
+highlightedMessage.clearHighlight();this._currentSearchResultIndex=-1;},_jumpToSearchResult:function(index)
+{this._clearCurrentSearchResultHighlight();this._currentSearchResultIndex=index;this._searchableView.updateCurrentMatchIndex(this._currentSearchResultIndex);WebInspector.console.messages[this._searchResultsIndices[index]].highlightSearchResults(this._searchRegex);},__proto__:WebInspector.View.prototype}
 WebInspector.ConsoleViewFilter=function()
-{this._messageURLFilters=WebInspector.settings.messageURLFilters.get();this._hideCSSErrorsInConsole=WebInspector.settings.hideCSSErrorsInConsole.get();this._messageLevelFilters=WebInspector.settings.messageLevelFilters.get();this._filterChanged=this.dispatchEventToListeners.bind(this,WebInspector.ConsoleViewFilter.Events.FilterChanged);WebInspector.settings.messageLevelFilters.addChangeListener(this._updateLevelFilter.bind(this));};WebInspector.ConsoleViewFilter.Events={FilterChanged:"FilterChanged"};WebInspector.ConsoleViewFilter.prototype={addFilters:function(filterBar)
-{this._textFilterUI=new WebInspector.TextFilterUI();this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._textFilterChanged,this);filterBar.addFilter(this._textFilterUI);this._levelFilterUI=new WebInspector.NamedBitSetFilterUI();this._levelFilterUI.addBit("error",WebInspector.UIString("Errors"));this._levelFilterUI.addBit("warning",WebInspector.UIString("Warnings"));this._levelFilterUI.addBit("info",WebInspector.UIString("Info"));this._levelFilterUI.addBit("log",WebInspector.UIString("Logs"));this._levelFilterUI.addBit("debug",WebInspector.UIString("Debug"));this._levelFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._levelFilterChanged,this);filterBar.addFilter(this._levelFilterUI);this._updateLevelFilter();},_textFilterChanged:function(event)
-{var query=this._textFilterUI.value();if(!query)
-delete this._filterRegex;else
-this._filterRegex=createPlainTextSearchRegex(query,"gi");this._filterChanged();},_levelFilterChanged:function(event)
-{if(this._updatingLevelFilter)
-return;var filteredOutTypes=this._levelFilterUI.filteredOutTypes();this._messageLevelFilters={};for(var i=0;i<filteredOutTypes.length;++i)
-this._messageLevelFilters[filteredOutTypes[i]]=true;WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters);this._filterChanged();},addMessageURLFilter:function(url)
+{this._messageURLFilters=WebInspector.settings.messageURLFilters.get();this._filterChanged=this.dispatchEventToListeners.bind(this,WebInspector.ConsoleViewFilter.Events.FilterChanged);};WebInspector.ConsoleViewFilter.Events={FilterChanged:"FilterChanged"};WebInspector.ConsoleViewFilter.prototype={addFilters:function(filterBar)
+{this._textFilterUI=new WebInspector.TextFilterUI(true);this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._textFilterChanged,this);filterBar.addFilter(this._textFilterUI);this._levelFilterUI=new WebInspector.NamedBitSetFilterUI();this._levelFilterUI.addBit("error",WebInspector.UIString("Errors"));this._levelFilterUI.addBit("warning",WebInspector.UIString("Warnings"));this._levelFilterUI.addBit("info",WebInspector.UIString("Info"));this._levelFilterUI.addBit("log",WebInspector.UIString("Logs"));this._levelFilterUI.addBit("debug",WebInspector.UIString("Debug"));this._levelFilterUI.bindSetting(WebInspector.settings.messageLevelFilters);this._levelFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged,this);filterBar.addFilter(this._levelFilterUI);},_textFilterChanged:function(event)
+{this._filterRegex=this._textFilterUI.regex();this._filterChanged();},addMessageURLFilter:function(url)
 {this._messageURLFilters[url]=true;WebInspector.settings.messageURLFilters.set(this._messageURLFilters);this._filterChanged();},removeMessageURLFilter:function(url)
 {if(!url)
 this._messageURLFilters={};else
 delete this._messageURLFilters[url];WebInspector.settings.messageURLFilters.set(this._messageURLFilters);this._filterChanged();},get messageURLFilters()
 {return this._messageURLFilters;},shouldBeVisible:function(message)
 {if((message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed||message.type===WebInspector.ConsoleMessage.MessageType.EndGroup))
+return true;if(message.type===WebInspector.ConsoleMessage.MessageType.Result||message.type===WebInspector.ConsoleMessage.MessageType.Command)
 return true;if(message.url&&this._messageURLFilters[message.url])
-return false;if(message.level&&this._messageLevelFilters[message.level])
+return false;if(message.level&&!this._levelFilterUI.accept(message.level))
 return false;if(this._filterRegex){this._filterRegex.lastIndex=0;if(!message.matchesRegex(this._filterRegex))
 return false;}
-if(message.source&&message.source===WebInspector.ConsoleMessage.MessageSource.CSS&&this._hideCSSErrorsInConsole)
-return false;return true;},reset:function()
-{this._hideCSSErrorsInConsole=false;WebInspector.settings.hideCSSErrorsInConsole.set(this._hideCSSErrorsInConsole);this._messageURLFilters={};WebInspector.settings.messageURLFilters.set(this._messageURLFilters);this._messageLevelFilters={};WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters);this._filterChanged();},_updateLevelFilter:function()
-{this._updatingLevelFilter=true;var filteredOutTypes=Object.keys(this._messageLevelFilters);this._levelFilterUI.setFilteredOutTypes(filteredOutTypes);delete this._updatingLevelFilter;},__proto__:WebInspector.Object.prototype};WebInspector.ConsoleCommand=function(text)
-{this.text=text;}
+return true;},reset:function()
+{this._messageURLFilters={};WebInspector.settings.messageURLFilters.set(this._messageURLFilters);WebInspector.settings.messageLevelFilters.set({});this._filterChanged();},__proto__:WebInspector.Object.prototype};WebInspector.ConsoleCommand=function(text)
+{this.text=text;this.type=WebInspector.ConsoleMessage.MessageType.Command;}
 WebInspector.ConsoleCommand.prototype={wasShown:function()
 {},willHide:function()
 {},clearHighlight:function()
 {var highlightedMessage=this._formattedCommand;delete this._formattedCommand;this._formatCommand();this._element.replaceChild(this._formattedCommand,highlightedMessage);},highlightSearchResults:function(regexObject)
-{regexObject.lastIndex=0;var match=regexObject.exec(this.text);var matchRanges=[];while(match){matchRanges.push({offset:match.index,length:match[0].length});match=regexObject.exec(this.text);}
+{regexObject.lastIndex=0;var match=regexObject.exec(this.text);var matchRanges=[];while(match){matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(this.text);}
 WebInspector.highlightSearchResults(this._formattedCommand,matchRanges);this._element.scrollIntoViewIfNeeded();},matchesRegex:function(regexObject)
 {regexObject.lastIndex=0;return regexObject.test(this.text);},toMessageElement:function()
 {if(!this._element){this._element=document.createElement("div");this._element.command=this;this._element.className="console-user-command";this._formatCommand();this._element.appendChild(this._formattedCommand);}
@@ -2554,95 +2629,98 @@
 {var level=(wasThrown?WebInspector.ConsoleMessage.MessageLevel.Error:WebInspector.ConsoleMessage.MessageLevel.Log);this.originatingCommand=originatingCommand;WebInspector.ConsoleMessageImpl.call(this,WebInspector.ConsoleMessage.MessageSource.JS,level,"",linkifier,WebInspector.ConsoleMessage.MessageType.Result,url,lineNumber,columnNumber,undefined,[result]);}
 WebInspector.ConsoleCommandResult.prototype={useArrayPreviewInFormatter:function(array)
 {return false;},toMessageElement:function()
-{var element=WebInspector.ConsoleMessageImpl.prototype.toMessageElement.call(this);element.addStyleClass("console-user-command-result");return element;},__proto__:WebInspector.ConsoleMessageImpl.prototype}
+{var element=WebInspector.ConsoleMessageImpl.prototype.toMessageElement.call(this);element.classList.add("console-user-command-result");return element;},__proto__:WebInspector.ConsoleMessageImpl.prototype}
 WebInspector.ConsoleGroup=function(parentGroup)
 {this.parentGroup=parentGroup;var element=document.createElement("div");element.className="console-group";element.group=this;this.element=element;if(parentGroup){var bracketElement=document.createElement("div");bracketElement.className="console-group-bracket";element.appendChild(bracketElement);}
 var messagesElement=document.createElement("div");messagesElement.className="console-group-messages";element.appendChild(messagesElement);this.messagesElement=messagesElement;}
 WebInspector.ConsoleGroup.prototype={addMessage:function(message,node)
 {var element=message.toMessageElement();if(message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){this.messagesElement.parentNode.insertBefore(element,this.messagesElement);element.addEventListener("click",this._titleClicked.bind(this),false);var groupElement=element.enclosingNodeOrSelfWithClass("console-group");if(groupElement&&message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
-groupElement.addStyleClass("collapsed");}else{this.messagesElement.insertBefore(element,node||null);message.wasShown();}
+groupElement.classList.add("collapsed");}else{this.messagesElement.insertBefore(element,node||null);message.wasShown();}
 if(element.previousSibling&&message.originatingCommand&&element.previousSibling.command===message.originatingCommand)
-element.previousSibling.addStyleClass("console-adjacent-user-command-result");},_titleClicked:function(event)
+element.previousSibling.classList.add("console-adjacent-user-command-result");},_titleClicked:function(event)
 {var groupTitleElement=event.target.enclosingNodeOrSelfWithClass("console-group-title");if(groupTitleElement){var groupElement=groupTitleElement.enclosingNodeOrSelfWithClass("console-group");if(groupElement&&!groupElement.classList.toggle("collapsed")){if(groupElement.group){groupElement.group.wasShown();}}
 groupTitleElement.scrollIntoViewIfNeeded(true);}
 event.consume(true);},wasShown:function()
-{if(this.element.hasStyleClass("collapsed"))
-return;var node=this.messagesElement.firstChild;while(node){if(node.hasStyleClass("console-message")&&node.message)
-node.message.wasShown();if(node.hasStyleClass("console-group")&&node.group)
+{if(this.element.classList.contains("collapsed"))
+return;var node=this.messagesElement.firstChild;while(node){if(node.classList.contains("console-message")&&node.message)
+node.message.wasShown();if(node.classList.contains("console-group")&&node.group)
 node.group.wasShown();node=node.nextSibling;}}}
-WebInspector.consoleView=null;WebInspector.ConsoleMessage.create=function(source,level,message,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated)
+WebInspector.consoleView;WebInspector.ConsoleMessage.create=function(source,level,message,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated)
 {return new WebInspector.ConsoleMessageImpl(source,level,message,WebInspector.consoleView._linkifier,type,url,line,column,repeatCount,parameters,stackTrace,requestId,isOutdated);}
 WebInspector.Panel=function(name)
-{WebInspector.View.call(this);WebInspector.panels[name]=this;this.element.addStyleClass("panel");this.element.addStyleClass(name);this._panelName=name;this._shortcuts=({});WebInspector.settings[this._sidebarWidthSettingName()]=WebInspector.settings.createSetting(this._sidebarWidthSettingName(),undefined);}
-WebInspector.Panel.counterRightMargin=25;WebInspector.Panel._minimalSearchQuerySize=3;WebInspector.Panel.prototype={get name()
+{WebInspector.View.call(this);WebInspector.panels[name]=this;this.element.classList.add("panel");this.element.classList.add(name);this._panelName=name;this._shortcuts=({});WebInspector.settings[this._sidebarWidthSettingName()]=WebInspector.settings.createSetting(this._sidebarWidthSettingName(),undefined);}
+WebInspector.Panel.counterRightMargin=25;WebInspector.Panel.prototype={get name()
 {return this._panelName;},reset:function()
-{this.searchCanceled();},defaultFocusedElement:function()
-{return this.sidebarTreeElement||this.element;},searchCanceled:function()
-{WebInspector.searchController.updateSearchMatchesCount(0,this);},canSearch:function()
-{return true;},performSearch:function(query,shouldJump)
-{this.searchCanceled();},minimalSearchQuerySize:function()
-{return WebInspector.Panel._minimalSearchQuerySize;},jumpToNextSearchResult:function()
-{},jumpToPreviousSearchResult:function()
-{},canSearchAndReplace:function()
-{return false;},replaceSelectionWith:function(text)
+{},defaultFocusedElement:function()
+{return this.sidebarTreeElement||this.element;},searchableView:function()
+{return null;},replaceSelectionWith:function(text)
 {},replaceAllWith:function(query,text)
-{},canSetFooterElement:function()
-{return false;},setFooterElement:function(element)
 {},createSidebarView:function(parentElement,position,defaultWidth,defaultHeight)
 {if(this.splitView)
 return;if(!parentElement)
-parentElement=this.element;this.splitView=new WebInspector.SidebarView(position,this._sidebarWidthSettingName(),defaultWidth,defaultHeight);this.splitView.show(parentElement);this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this.sidebarResized.bind(this));this.sidebarElement=this.splitView.sidebarElement;},createSidebarViewWithTree:function(parentElement,position,defaultWidth)
+parentElement=this.element;this.splitView=new WebInspector.SidebarView(position,this._sidebarWidthSettingName(),defaultWidth,defaultHeight);this.splitView.show(parentElement);this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized,this.sidebarResized.bind(this));},createSidebarViewWithTree:function(parentElement,position,defaultWidth)
 {if(this.splitView)
-return;this.createSidebarView(parentElement,position);this.sidebarTreeElement=document.createElement("ol");this.sidebarTreeElement.className="sidebar-tree";this.splitView.sidebarElement.appendChild(this.sidebarTreeElement);this.splitView.sidebarElement.addStyleClass("sidebar");this.sidebarTree=new TreeOutline(this.sidebarTreeElement);this.sidebarTree.panel=this;},_sidebarWidthSettingName:function()
+return;this.createSidebarView(parentElement,position);this.sidebarTreeElement=document.createElement("ol");this.sidebarTreeElement.className="sidebar-tree";this.splitView.sidebarElement().appendChild(this.sidebarTreeElement);this.splitView.sidebarElement().classList.add("sidebar");this.sidebarTree=new TreeOutline(this.sidebarTreeElement);this.sidebarTree.panel=this;},_sidebarWidthSettingName:function()
 {return this._panelName+"SidebarWidth";},get statusBarItems()
 {},sidebarResized:function(event)
 {},statusBarResized:function()
 {},showAnchorLocation:function(anchor)
 {return false;},elementsToRestoreScrollPositionsFor:function()
 {return[];},handleShortcut:function(event)
-{var shortcutKey=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcutKey];if(handler&&handler(event))
+{var shortcutKey=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcutKey];if(handler&&handler(event)){event.handled=true;return;}
+var searchableView=this.searchableView();if(!searchableView)
+return;function handleSearchShortcuts(shortcuts,handler)
+{for(var i=0;i<shortcuts.length;++i){if(shortcuts[i].key!==shortcutKey)
+continue;return handler.call(searchableView);}
+return false;}
+if(handleSearchShortcuts(WebInspector.SearchableView.findShortcuts(),searchableView.handleFindShortcut))
+event.handled=true;else if(handleSearchShortcuts(WebInspector.SearchableView.cancelSearchShortcuts(),searchableView.handleCancelSearchShortcut))
 event.handled=true;},registerShortcuts:function(keys,handler)
 {for(var i=0;i<keys.length;++i)
 this._shortcuts[keys[i].key]=handler;},__proto__:WebInspector.View.prototype}
-WebInspector.PanelDescriptor=function(name,title,className,scriptName,panel)
-{this._name=name;this._title=title;this._className=className;this._scriptName=scriptName;this._panel=panel;}
-WebInspector.PanelDescriptor.prototype={name:function()
+WebInspector.PanelDescriptor=function()
+{}
+WebInspector.PanelDescriptor.prototype={name:function(){},title:function(){},panel:function(){}}
+WebInspector.ModuleManagerExtensionPanelDescriptor=function(extension)
+{this._name=extension.descriptor()["name"];this._title=WebInspector.UIString(extension.descriptor()["title"]);this._extension=extension;}
+WebInspector.ModuleManagerExtensionPanelDescriptor.prototype={name:function()
 {return this._name;},title:function()
 {return this._title;},panel:function()
-{if(this._panel)
-return this._panel;if(!this._isCreatingPanel){var oldStackTraceLimit=Error.stackTraceLimit;Error.stackTraceLimit=50;console.assert(!this._isCreatingPanel,"PanelDescriptor.panel() is called from inside itself: "+new Error().stack);Error.stackTraceLimit=oldStackTraceLimit;}
-if(this._scriptName)
-loadScript(this._scriptName);this._isCreatingPanel=true;this._panel=new WebInspector[this._className];delete this._isCreatingPanel;return this._panel;},registerShortcuts:function(){}}
+{return(this._extension.instance());}}
 WebInspector.InspectorView=function()
-{WebInspector.View.call(this);this.markAsRoot();this.element.classList.add("fill","vbox");this.element.setAttribute("spellcheck",false);this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.setRetainTabsOrder(true);this._tabbedPane.show(this.element);var toolbarElement=document.createElement("div");toolbarElement.className="toolbar toolbar-background";var headerElement=this._tabbedPane.headerElement();headerElement.parentElement.insertBefore(toolbarElement,headerElement);this._leftToolbarElement=toolbarElement.createChild("div","toolbar-controls-left");toolbarElement.appendChild(headerElement);this._rightToolbarElement=toolbarElement.createChild("div","toolbar-controls-right");this._errorWarningCountElement=this._rightToolbarElement.createChild("div","hidden");this._errorWarningCountElement.id="error-warning-count";this._footerElementContainer=this.element.createChild("div","inspector-footer status-bar hidden");this._drawer=new WebInspector.Drawer(this);this.appendToRightToolbar(this._drawer.toggleButtonElement());this._history=[];this._historyIterator=-1;document.addEventListener("keydown",this._keyDown.bind(this),false);document.addEventListener("keypress",this._keyPress.bind(this),false);this._panelDescriptors={};this._openBracketIdentifiers=["U+005B","U+00DB"].keySet();this._closeBracketIdentifiers=["U+005D","U+00DD"].keySet();this._lastActivePanelSetting=WebInspector.settings.createSetting("lastActivePanel","elements");}
-WebInspector.InspectorView.prototype={appendToLeftToolbar:function(element)
+{WebInspector.View.call(this);this.markAsRoot();this.element.classList.add("fill","vbox","inspector-view");this.element.setAttribute("spellcheck",false);var settingName=WebInspector.queryParamsObject["can_dock"]?"InspectorView.splitView":"InspectorView.screencastSplitView";this._splitView=new WebInspector.SplitView(false,settingName,300,300);this._splitView.setSecondIsSidebar(true);this._updateConstraints();WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged,this._updateSplitView.bind(this));this._splitView.element.id="inspector-split-view";this._splitView.show(this.element);this._overlayView=new WebInspector.ViewWithResizeCallback(this._onOverlayResized.bind(this));this._splitView.setMainView(this._overlayView);this._zoomFactor=WebInspector.zoomFactor();WebInspector.settings.zoomLevel.addChangeListener(this._onZoomChanged,this);this._devtoolsElement=this._splitView.sidebarElement();this._devtoolsElement.classList.add("vbox");this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.setRetainTabOrder(true,WebInspector.moduleManager.orderComparator(WebInspector.Panel,"name","order"));this._splitView.setSidebarView(this._tabbedPane);this._toolbarElement=document.createElement("div");this._toolbarElement.className="toolbar toolbar-background";var headerElement=this._tabbedPane.headerElement();headerElement.parentElement.insertBefore(this._toolbarElement,headerElement);this._leftToolbarElement=this._toolbarElement.createChild("div","toolbar-controls-left");this._toolbarElement.appendChild(headerElement);this._rightToolbarElement=this._toolbarElement.createChild("div","toolbar-controls-right");this._errorWarningCountElement=this._rightToolbarElement.createChild("div","hidden");this._errorWarningCountElement.id="error-warning-count";this._closeButtonToolbarItem=document.createElementWithClass("div","toolbar-close-button-item");var closeButtonElement=this._closeButtonToolbarItem.createChild("div","close-button");closeButtonElement.addEventListener("click",WebInspector.close.bind(WebInspector),true);this._rightToolbarElement.appendChild(this._closeButtonToolbarItem);this._drawer=new WebInspector.Drawer(this);this.appendToRightToolbar(this._drawer.toggleButtonElement());this._history=[];this._historyIterator=-1;document.addEventListener("keydown",this._keyDown.bind(this),false);document.addEventListener("keypress",this._keyPress.bind(this),false);this._panelDescriptors={};this._openBracketIdentifiers=["U+005B","U+00DB"].keySet();this._closeBracketIdentifiers=["U+005D","U+00DD"].keySet();this._lastActivePanelSetting=WebInspector.settings.createSetting("lastActivePanel","elements");this._updateSplitView();this._initialize();}
+WebInspector.InspectorView.Constraints={OverlayWidth:50,OverlayHeight:50,DevToolsWidth:150,DevToolsHeight:50};WebInspector.InspectorView.prototype={_initialize:function()
+{WebInspector.startBatchUpdate();WebInspector.moduleManager.extensions(WebInspector.Panel).forEach(processPanelExtensions.bind(this));function processPanelExtensions(extension)
+{this.addPanel(new WebInspector.ModuleManagerExtensionPanelDescriptor(extension));}
+WebInspector.endBatchUpdate();},appendToLeftToolbar:function(element)
 {this._leftToolbarElement.appendChild(element);},appendToRightToolbar:function(element)
-{this._rightToolbarElement.appendChild(element);},drawer:function()
-{return this._drawer;},addPanel:function(panelDescriptor)
+{this._rightToolbarElement.insertBefore(element,this._closeButtonToolbarItem);},drawer:function()
+{return this._drawer;},devtoolsElement:function()
+{return this._devtoolsElement;},addPanel:function(panelDescriptor)
 {var panelName=panelDescriptor.name();this._panelDescriptors[panelName]=panelDescriptor;this._tabbedPane.appendTab(panelName,panelDescriptor.title(),new WebInspector.View());if(this._lastActivePanelSetting.get()===panelName)
 this._tabbedPane.selectTab(panelName);},panel:function(panelName)
 {var panelDescriptor=this._panelDescriptors[panelName];var panelOrder=this._tabbedPane.allTabs();if(!panelDescriptor&&panelOrder.length)
 panelDescriptor=this._panelDescriptors[panelOrder[0]];return panelDescriptor?panelDescriptor.panel():null;},showPanel:function(panelName)
 {var panel=this.panel(panelName);if(panel)
 this.setCurrentPanel(panel);return panel;},currentPanel:function()
-{return this._currentPanel;},getSearchProvider:function()
-{return this._currentPanel&&this._currentPanel.canSearch()?this._currentPanel:null;},showInitialPanel:function()
-{this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabSelected();},_tabSelected:function()
-{WebInspector.searchController.cancelSearch();var panelName=this._tabbedPane.selectedTabId;var panel=this._panelDescriptors[this._tabbedPane.selectedTabId].panel();this._tabbedPane.changeTabView(panelName,panel);this._drawer.panelSelected(panel);this._currentPanel=panel;this._lastActivePanelSetting.set(panel.name);this._pushToHistory(panel.name);WebInspector.userMetrics.panelShown(panel.name);panel.focus();},setCurrentPanel:function(x)
+{return this._currentPanel;},showInitialPanel:function()
+{this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabSelected();this._drawer.showOnLoadIfNecessary();},_tabSelected:function()
+{var panelName=this._tabbedPane.selectedTabId;var panel=this._panelDescriptors[this._tabbedPane.selectedTabId].panel();this._tabbedPane.changeTabView(panelName,panel);this._currentPanel=panel;this._lastActivePanelSetting.set(panel.name);this._pushToHistory(panel.name);WebInspector.userMetrics.panelShown(panel.name);panel.focus();},setCurrentPanel:function(x)
 {if(this._currentPanel===x)
 return;this._tabbedPane.changeTabView(x.name,x);this._tabbedPane.selectTab(x.name);},closeViewInDrawer:function(id)
-{return this._drawer.closeView(id);},showCloseableViewInDrawer:function(id,title,view)
-{this._drawer.showCloseableView(id,title,view);},registerViewInDrawer:function(id,title,factory)
-{this._drawer.registerView(id,title,factory);},unregisterViewInDrawer:function(id)
-{this._drawer.unregisterView(id);},showViewInDrawer:function(id)
-{this._drawer.showView(id);},closeDrawer:function()
+{this._drawer.closeView(id);},showCloseableViewInDrawer:function(id,title,view)
+{this._drawer.showCloseableView(id,title,view);},showViewInDrawer:function(id)
+{this._drawer.showView(id);},selectedViewInDrawer:function()
+{return this._drawer.selectedViewId();},closeDrawer:function()
 {this._drawer.hide();},defaultFocusedElement:function()
 {return this._currentPanel?this._currentPanel.defaultFocusedElement():null;},_keyPress:function(event)
 {if(event.charCode<32&&WebInspector.isWin())
 return;clearTimeout(this._keyDownTimer);delete this._keyDownTimer;},_keyDown:function(event)
 {if(!WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event))
-return;var panelShortcutEnabled=WebInspector.settings.shortcutPanelSwitch.get();if(panelShortcutEnabled&&!event.shiftKey&&!event.altKey&&event.keyCode>0x30&&event.keyCode<0x3A){var panelName=this._tabbedPane.allTabs()[event.keyCode-0x31];if(panelName){this.showPanel(panelName);event.consume(true);}
-return;}
+return;var keyboardEvent=(event);var panelShortcutEnabled=WebInspector.settings.shortcutPanelSwitch.get();if(panelShortcutEnabled&&!event.shiftKey&&!event.altKey){var panelIndex=-1;if(event.keyCode>0x30&&event.keyCode<0x3A)
+panelIndex=event.keyCode-0x31;else if(event.keyCode>0x60&&event.keyCode<0x6A&&keyboardEvent.location===KeyboardEvent.DOM_KEY_LOCATION_NUMPAD)
+panelIndex=event.keyCode-0x61;if(panelIndex!==-1){var panelName=this._tabbedPane.allTabs()[panelIndex];if(panelName){this.showPanel(panelName);event.consume(true);}
+return;}}
 if(!WebInspector.isWin()||(!this._openBracketIdentifiers[event.keyIdentifier]&&!this._closeBracketIdentifiers[event.keyIdentifier])){this._keyDownInternal(event);return;}
 this._keyDownTimer=setTimeout(this._keyDownInternal.bind(this,event),0);},_keyDownInternal:function(event)
 {if(this._openBracketIdentifiers[event.keyIdentifier]){var isRotateLeft=!event.shiftKey&&!event.altKey;if(isRotateLeft){var panelOrder=this._tabbedPane.allTabs();var index=panelOrder.indexOf(this.currentPanel().name);index=(index===0)?panelOrder.length-1:index-1;this.showPanel(panelOrder[index]);event.consume(true);return;}
@@ -2657,25 +2735,42 @@
 {this._inHistory=true;this.setCurrentPanel(WebInspector.panels[this._history[++this._historyIterator]]);delete this._inHistory;},_pushToHistory:function(panelName)
 {if(this._inHistory)
 return;this._history.splice(this._historyIterator+1,this._history.length-this._historyIterator-1);if(!this._history.length||this._history[this._history.length-1]!==panelName)
-this._history.push(panelName);this._historyIterator=this._history.length-1;},setFooterElement:function(element)
-{if(this._currentPanel&&this._currentPanel.canSetFooterElement()){this._currentPanel.setFooterElement(element);return;}
-if(element){this._footerElementContainer.removeStyleClass("hidden");this._footerElementContainer.appendChild(element);}else{this._footerElementContainer.addStyleClass("hidden");this._footerElementContainer.removeChildren();}
-this.doResize();},onResize:function()
-{this.doResize();this._drawer.resize();},__proto__:WebInspector.View.prototype}
-WebInspector.inspectorView=null;WebInspector.AdvancedSearchController=function()
-{this._shortcut=WebInspector.AdvancedSearchController.createShortcut();this._searchId=0;WebInspector.settings.advancedSearchConfig=WebInspector.settings.createSetting("advancedSearchConfig",new WebInspector.SearchConfig("",true,false));WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,this._frameNavigated,this);WebInspector.inspectorView.registerViewInDrawer("search",WebInspector.UIString("Search"),this);}
+this._history.push(panelName);this._historyIterator=this._history.length-1;},onResize:function()
+{this.doResize();this._drawer.resize();},_updateSplitView:function()
+{var dockSide=WebInspector.dockController.dockSide();if(dockSide!==WebInspector.DockController.State.Undocked){this._splitView.showBoth();var vertical=dockSide===WebInspector.DockController.State.DockedToRight;this._splitView.setVertical(vertical);if(vertical){this._splitView.uninstallResizer(this._tabbedPane.headerElement());this._splitView.installResizer(this._splitView.resizerElement());}else{this._splitView.uninstallResizer(this._splitView.resizerElement());this._splitView.installResizer(this._tabbedPane.headerElement());}}else{this._splitView.showOnlySecond();}},_onOverlayResized:function()
+{var dockSide=WebInspector.dockController.dockSide();if(dockSide!==WebInspector.DockController.State.Undocked){if(this._setContentsInsetsId)
+window.cancelAnimationFrame(this._setContentsInsetsId);this._setContentsInsetsId=window.requestAnimationFrame(this._setContentsInsets.bind(this));}
+this._drawer.resize();},_setContentsInsets:function()
+{delete this._setContentsInsetsId;var sidebarSize=Math.ceil(this._splitView.sidebarSize()*WebInspector.zoomFactor());var bottom=this._splitView.isVertical()?0:sidebarSize;var right=this._splitView.isVertical()?sidebarSize+3:0;InspectorFrontendHost.setContentsInsets(0,0,bottom,right);},_onZoomChanged:function()
+{this._updateConstraints();var zoomFactor=WebInspector.zoomFactor();if(zoomFactor!==this._zoomFactor)
+this._splitView.setSidebarSize(this._splitView.sidebarSize()*this._zoomFactor/zoomFactor,true);this._zoomFactor=zoomFactor;},_updateConstraints:function()
+{var zoomFactor=WebInspector.zoomFactor();this._splitView.setSidebarElementConstraints(WebInspector.InspectorView.Constraints.DevToolsWidth/zoomFactor,WebInspector.InspectorView.Constraints.DevToolsHeight/zoomFactor);this._splitView.setMainElementConstraints(WebInspector.InspectorView.Constraints.OverlayWidth/zoomFactor,WebInspector.InspectorView.Constraints.OverlayHeight/zoomFactor);},showScreencastView:function(view,vertical)
+{if(view.parentView()!==this._overlayView)
+view.show(this._overlayView.element);this._splitView.setVertical(vertical);this._splitView.showBoth();},hideScreencastView:function()
+{this._splitView.showOnlySecond();},setErrorAndWarningCounts:function(errors,warnings)
+{if(!errors&&!warnings){this._errorWarningCountElement.classList.add("hidden");this._tabbedPane.headerResized();return;}
+this._errorWarningCountElement.classList.remove("hidden");this._errorWarningCountElement.removeChildren();if(errors){var errorImageElement=this._errorWarningCountElement.createChild("div","error-icon-small");var errorElement=this._errorWarningCountElement.createChild("span");errorElement.id="error-count";errorElement.textContent=errors;}
+if(warnings){var warningsImageElement=this._errorWarningCountElement.createChild("div","warning-icon-small");var warningsElement=this._errorWarningCountElement.createChild("span");warningsElement.id="warning-count";warningsElement.textContent=warnings;}
+if(errors){if(warnings){if(errors==1){if(warnings==1)
+this._errorWarningCountElement.title=WebInspector.UIString("%d error, %d warning",errors,warnings);else
+this._errorWarningCountElement.title=WebInspector.UIString("%d error, %d warnings",errors,warnings);}else if(warnings==1)
+this._errorWarningCountElement.title=WebInspector.UIString("%d errors, %d warning",errors,warnings);else
+this._errorWarningCountElement.title=WebInspector.UIString("%d errors, %d warnings",errors,warnings);}else if(errors==1)
+this._errorWarningCountElement.title=WebInspector.UIString("%d error",errors);else
+this._errorWarningCountElement.title=WebInspector.UIString("%d errors",errors);}else if(warnings==1)
+this._errorWarningCountElement.title=WebInspector.UIString("%d warning",warnings);else if(warnings)
+this._errorWarningCountElement.title=WebInspector.UIString("%d warnings",warnings);else
+this._errorWarningCountElement.title=null;this._tabbedPane.headerResized();},__proto__:WebInspector.View.prototype};WebInspector.inspectorView;WebInspector.AdvancedSearchController=function()
+{this._shortcut=WebInspector.AdvancedSearchController.createShortcut();this._searchId=0;WebInspector.settings.advancedSearchConfig=WebInspector.settings.createSetting("advancedSearchConfig",new WebInspector.SearchConfig("",true,false));WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,this._frameNavigated,this);}
 WebInspector.AdvancedSearchController.createShortcut=function()
 {if(WebInspector.isMac())
 return WebInspector.KeyboardShortcut.makeDescriptor("f",WebInspector.KeyboardShortcut.Modifiers.Meta|WebInspector.KeyboardShortcut.Modifiers.Alt);else
 return WebInspector.KeyboardShortcut.makeDescriptor("f",WebInspector.KeyboardShortcut.Modifiers.Ctrl|WebInspector.KeyboardShortcut.Modifiers.Shift);}
-WebInspector.AdvancedSearchController.prototype={createView:function(id)
-{if(!this._searchView)
-this._searchView=new WebInspector.SearchView(this);return this._searchView;},handleShortcut:function(event)
+WebInspector.AdvancedSearchController.prototype={handleShortcut:function(event)
 {if(WebInspector.KeyboardShortcut.makeKeyFromEvent(event)===this._shortcut.key){if(!this._searchView||!this._searchView.isShowing()||this._searchView._search!==document.activeElement){WebInspector.showPanel("sources");this.show();}else
 WebInspector.inspectorView.closeDrawer();event.consume(true);return true;}
 return false;},_frameNavigated:function()
-{this.resetSearch();},registerSearchScope:function(searchScope)
-{this._searchScope=searchScope;},show:function()
+{this.resetSearch();},show:function()
 {var selection=window.getSelection();var queryCandidate;if(selection.rangeCount)
 queryCandidate=selection.toString().replace(/\r?\n.*/,"");if(!this._searchView||!this._searchView.isShowing())
 WebInspector.inspectorView.showViewInDrawer("search");if(queryCandidate)
@@ -2684,7 +2779,7 @@
 delete this._pendingSearchConfig;if(!this._pendingSearchConfig)
 return;var searchConfig=this._pendingSearchConfig
 delete this._pendingSearchConfig;this._innerStartSearch(searchConfig);},startIndexing:function()
-{this._isIndexing=true;this._currentSearchScope=this._searchScope;if(this._progressIndicator)
+{this._isIndexing=true;this._currentSearchScope=this._searchScopes()[0];if(this._progressIndicator)
 this._progressIndicator.done();this._progressIndicator=new WebInspector.ProgressIndicator();this._searchView.indexingStarted(this._progressIndicator);this._currentSearchScope.performIndexing(this._progressIndicator,this._onIndexingFinished.bind(this));},_onSearchResult:function(searchId,searchResult)
 {if(searchId!==this._searchId)
 return;this._searchView.addSearchResult(searchResult);if(!searchResult.searchMatches.length)
@@ -2695,14 +2790,20 @@
 this._searchView.nothingFound();this._searchView.searchFinished(finished);delete this._searchConfig;},startSearch:function(searchConfig)
 {this.resetSearch();++this._searchId;if(!this._isIndexing)
 this.startIndexing();this._pendingSearchConfig=searchConfig;},_innerStartSearch:function(searchConfig)
-{this._searchConfig=searchConfig;this._currentSearchScope=this._searchScope;if(this._progressIndicator)
-this._progressIndicator.done();this._progressIndicator=new WebInspector.ProgressIndicator();var totalSearchResultsCount=this._currentSearchScope.performSearch(searchConfig,this._progressIndicator,this._onSearchResult.bind(this,this._searchId),this._onSearchFinished.bind(this,this._searchId));this._searchView.searchStarted(this._progressIndicator);},resetSearch:function()
+{this._searchConfig=searchConfig;this._currentSearchScope=this._searchScopes()[0];if(this._progressIndicator)
+this._progressIndicator.done();this._progressIndicator=new WebInspector.ProgressIndicator();this._searchView.searchStarted(this._progressIndicator);this._currentSearchScope.performSearch(searchConfig,this._progressIndicator,this._onSearchResult.bind(this,this._searchId),this._onSearchFinished.bind(this,this._searchId));},resetSearch:function()
 {this.stopSearch();if(this._searchResultsPane){this._searchView.resetResults();delete this._searchResultsPane;}},stopSearch:function()
 {if(this._progressIndicator)
 this._progressIndicator.cancel();if(this._currentSearchScope)
-this._currentSearchScope.stopSearch();delete this._searchConfig;}}
+this._currentSearchScope.stopSearch();delete this._searchConfig;},_searchScopes:function()
+{return(WebInspector.moduleManager.instances(WebInspector.SearchScope));}}
+WebInspector.AdvancedSearchController.ViewFactory=function()
+{}
+WebInspector.AdvancedSearchController.ViewFactory.prototype={createView:function()
+{if(!WebInspector.advancedSearchController._searchView)
+WebInspector.advancedSearchController._searchView=new WebInspector.SearchView(WebInspector.advancedSearchController);return WebInspector.advancedSearchController._searchView;}}
 WebInspector.SearchView=function(controller)
-{WebInspector.View.call(this);this._controller=controller;this.element.className="search-view vbox";this._searchPanelElement=this.element.createChild("div","search-drawer-header");this._searchPanelElement.addEventListener("keydown",this._onKeyDown.bind(this),false);this._searchResultsElement=this.element.createChild("div");this._searchResultsElement.className="search-results";this._search=this._searchPanelElement.createChild("input");this._search.placeholder=WebInspector.UIString("Search sources");this._search.setAttribute("type","text");this._search.addStyleClass("search-config-search");this._search.setAttribute("results","0");this._search.setAttribute("size",30);this._ignoreCaseLabel=this._searchPanelElement.createChild("label");this._ignoreCaseLabel.addStyleClass("search-config-label");this._ignoreCaseCheckbox=this._ignoreCaseLabel.createChild("input");this._ignoreCaseCheckbox.setAttribute("type","checkbox");this._ignoreCaseCheckbox.addStyleClass("search-config-checkbox");this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIString("Ignore case")));this._regexLabel=this._searchPanelElement.createChild("label");this._regexLabel.addStyleClass("search-config-label");this._regexCheckbox=this._regexLabel.createChild("input");this._regexCheckbox.setAttribute("type","checkbox");this._regexCheckbox.addStyleClass("search-config-checkbox");this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString("Regular expression")));this._searchStatusBarElement=this.element.createChild("div","search-status-bar-summary");this._searchMessageElement=this._searchStatusBarElement.createChild("span");this._searchResultsMessageElement=document.createElement("span");this._load();}
+{WebInspector.View.call(this);this._controller=controller;this.element.className="search-view vbox";this._searchPanelElement=this.element.createChild("div","search-drawer-header");this._searchPanelElement.addEventListener("keydown",this._onKeyDown.bind(this),false);this._searchResultsElement=this.element.createChild("div");this._searchResultsElement.className="search-results";this._search=this._searchPanelElement.createChild("input");this._search.placeholder=WebInspector.UIString("Search sources");this._search.setAttribute("type","text");this._search.classList.add("search-config-search");this._search.setAttribute("results","0");this._search.setAttribute("size",30);this._ignoreCaseLabel=this._searchPanelElement.createChild("label");this._ignoreCaseLabel.classList.add("search-config-label");this._ignoreCaseCheckbox=this._ignoreCaseLabel.createChild("input");this._ignoreCaseCheckbox.setAttribute("type","checkbox");this._ignoreCaseCheckbox.classList.add("search-config-checkbox");this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIString("Ignore case")));this._regexLabel=this._searchPanelElement.createChild("label");this._regexLabel.classList.add("search-config-label");this._regexCheckbox=this._regexLabel.createChild("input");this._regexCheckbox.setAttribute("type","checkbox");this._regexCheckbox.classList.add("search-config-checkbox");this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString("Regular expression")));this._searchStatusBarElement=this.element.createChild("div","search-status-bar-summary");this._searchMessageElement=this._searchStatusBarElement.createChild("span");this._searchResultsMessageElement=document.createElement("span");this._load();}
 WebInspector.SearchView.maxQueriesCount=20;WebInspector.SearchView.prototype={get searchConfig()
 {return new WebInspector.SearchConfig(this._search.value,this._ignoreCaseCheckbox.checked,this._regexCheckbox.checked);},set resultsPane(resultsPane)
 {this.resetResults();this._searchResultsElement.appendChild(resultsPane.element);},searchStarted:function(progressIndicator)
@@ -2722,21 +2823,32 @@
 {this._searchMatchesCount+=searchResult.searchMatches.length;this._searchResultsCount++;if(searchResult.searchMatches.length)
 this._nonEmptySearchResultsCount++;this._updateSearchResultsMessage();},searchFinished:function(finished)
 {this._searchMessageElement.textContent=finished?WebInspector.UIString("Search finished."):WebInspector.UIString("Search interrupted.");},focus:function()
-{WebInspector.setCurrentFocusElement(this._search);this._search.select();},afterShow:function()
-{this.focus();},willHide:function()
+{WebInspector.setCurrentFocusElement(this._search);this._search.select();},willHide:function()
 {this._controller.stopSearch();},_onKeyDown:function(event)
 {switch(event.keyCode){case WebInspector.KeyboardShortcut.Keys.Enter.code:this._onAction();break;}},_save:function()
-{var searchConfig=new WebInspector.SearchConfig(this.searchConfig.query,this.searchConfig.ignoreCase,this.searchConfig.isRegex);WebInspector.settings.advancedSearchConfig.set(searchConfig);},_load:function()
+{WebInspector.settings.advancedSearchConfig.set(this.searchConfig);},_load:function()
 {var searchConfig=WebInspector.settings.advancedSearchConfig.get();this._search.value=searchConfig.query;this._ignoreCaseCheckbox.checked=searchConfig.ignoreCase;this._regexCheckbox.checked=searchConfig.isRegex;},_onAction:function()
-{if(!this.searchConfig.query||!this.searchConfig.query.length)
-return;this._save();this._controller.startSearch(this.searchConfig);},__proto__:WebInspector.View.prototype}
+{var searchConfig=this.searchConfig;if(!searchConfig.query||!searchConfig.query.length)
+return;this._save();this._controller.startSearch(searchConfig);},__proto__:WebInspector.View.prototype}
 WebInspector.SearchConfig=function(query,ignoreCase,isRegex)
-{this.query=query;this.ignoreCase=ignoreCase;this.isRegex=isRegex;}
+{this.query=query;this.ignoreCase=ignoreCase;this.isRegex=isRegex;this._parse();}
+WebInspector.SearchConfig.prototype={_parse:function()
+{var filePattern="file:(([^\\\\ ]|\\\\.)+)";var quotedPattern="\"(([^\\\\\"]|\\\\.)+)\"";var unquotedPattern="(([^\\\\ ]|\\\\.)+)";var pattern="("+filePattern+")|("+quotedPattern+")|("+unquotedPattern+")";var regexp=new RegExp(pattern,"g");var queryParts=this.query.match(regexp)||[];this._fileQueries=[];this._queries=[];for(var i=0;i<queryParts.length;++i){var queryPart=queryParts[i];if(!queryPart)
+continue;if(queryPart.startsWith("file:")){this._fileQueries.push(this._parseFileQuery(queryPart));continue;}
+if(queryPart.startsWith("\"")){if(!queryPart.endsWith("\""))
+continue;this._queries.push(this._parseQuotedQuery(queryPart));continue;}
+this._queries.push(this._parseUnquotedQuery(queryPart));}},fileQueries:function()
+{return this._fileQueries;},queries:function()
+{return this._queries;},_parseUnquotedQuery:function(query)
+{return query.replace(/\\(.)/g,"$1");},_parseQuotedQuery:function(query)
+{return query.substring(1,query.length-1).replace(/\\(.)/g,"$1");},_parseFileQuery:function(query)
+{query=query.substr("file:".length);var result="";for(var i=0;i<query.length;++i){var char=query[i];if(char==="*"){result+=".*";}else if(char==="\\"){++i;var nextChar=query[i];if(nextChar===" ")
+result+=" ";}else{if(String.regexSpecialCharacters().indexOf(query.charAt(i))!==-1)
+result+="\\";result+=query.charAt(i);}}
+return result;}}
 WebInspector.SearchScope=function()
 {}
-WebInspector.SearchScope.prototype={performSearch:function(searchConfig,progress,searchResultCallback,searchFinishedCallback){},stopSearch:function(){},createSearchResultsPane:function(searchConfig){}}
-WebInspector.SearchResult=function(offset,length)
-{this.offset=offset;this.length=length;}
+WebInspector.SearchScope.prototype={performSearch:function(searchConfig,progress,searchResultCallback,searchFinishedCallback){},performIndexing:function(progressIndicator,callback){},stopSearch:function(){},createSearchResultsPane:function(searchConfig){}}
 WebInspector.SearchResultsPane=function(searchConfig)
 {this._searchConfig=searchConfig;this.element=document.createElement("div");}
 WebInspector.SearchResultsPane.prototype={get searchConfig()
@@ -2750,18 +2862,20 @@
 {if(fileTreeElement._initialized)
 return;var toIndex=Math.min(searchResult.searchMatches.length,WebInspector.FileBasedSearchResultsPane.fileMatchesShownAtOnce);if(toIndex<searchResult.searchMatches.length){this._appendSearchMatches(fileTreeElement,searchResult,0,toIndex-1);this._appendShowMoreMatchesElement(fileTreeElement,searchResult,toIndex-1);}else
 this._appendSearchMatches(fileTreeElement,searchResult,0,toIndex);fileTreeElement._initialized=true;},_appendSearchMatches:function(fileTreeElement,searchResult,fromIndex,toIndex)
-{var uiSourceCode=searchResult.uiSourceCode;var searchMatches=searchResult.searchMatches;var regex=createSearchRegex(this._searchConfig.query,!this._searchConfig.ignoreCase,this._searchConfig.isRegex);for(var i=fromIndex;i<toIndex;++i){var lineNumber=searchMatches[i].lineNumber;var lineContent=searchMatches[i].lineContent;var matchRanges=this._regexMatchRanges(lineContent,regex);var anchor=this._createAnchor(uiSourceCode,lineNumber,matchRanges[0].offset);var numberString=numberToStringWithSpacesPadding(lineNumber+1,4);var lineNumberSpan=document.createElement("span");lineNumberSpan.addStyleClass("search-match-line-number");lineNumberSpan.textContent=numberString;anchor.appendChild(lineNumberSpan);var contentSpan=this._createContentSpan(lineContent,matchRanges);anchor.appendChild(contentSpan);var searchMatchElement=new TreeElement("",null,false);searchMatchElement.selectable=false;fileTreeElement.appendChild(searchMatchElement);searchMatchElement.listItemElement.className="search-match source-code";searchMatchElement.listItemElement.appendChild(anchor);}},_appendShowMoreMatchesElement:function(fileTreeElement,searchResult,startMatchIndex)
-{var matchesLeftCount=searchResult.searchMatches.length-startMatchIndex;var showMoreMatchesText=WebInspector.UIString("Show all matches (%d more).",matchesLeftCount);var showMoreMatchesElement=new TreeElement(showMoreMatchesText,null,false);fileTreeElement.appendChild(showMoreMatchesElement);showMoreMatchesElement.listItemElement.addStyleClass("show-more-matches");showMoreMatchesElement.onselect=this._showMoreMatchesElementSelected.bind(this,searchResult,startMatchIndex,showMoreMatchesElement);},_showMoreMatchesElementSelected:function(searchResult,startMatchIndex,showMoreMatchesElement)
-{var fileTreeElement=showMoreMatchesElement.parent;fileTreeElement.removeChild(showMoreMatchesElement);this._appendSearchMatches(fileTreeElement,searchResult,startMatchIndex,searchResult.searchMatches.length);},_addFileTreeElement:function(fileName,searchMatchesCount,searchResultIndex)
-{var fileTreeElement=new TreeElement("",null,true);fileTreeElement.toggleOnClick=true;fileTreeElement.selectable=false;this._treeOutline.appendChild(fileTreeElement);fileTreeElement.listItemElement.addStyleClass("search-result");var fileNameSpan=document.createElement("span");fileNameSpan.className="search-result-file-name";fileNameSpan.textContent=fileName;fileTreeElement.listItemElement.appendChild(fileNameSpan);var matchesCountSpan=document.createElement("span");matchesCountSpan.className="search-result-matches-count";if(searchMatchesCount===1)
+{var uiSourceCode=searchResult.uiSourceCode;var searchMatches=searchResult.searchMatches;var queries=this._searchConfig.queries();var regexes=[];for(var i=0;i<queries.length;++i)
+regexes.push(createSearchRegex(queries[i],!this._searchConfig.ignoreCase,this._searchConfig.isRegex));for(var i=fromIndex;i<toIndex;++i){var lineNumber=searchMatches[i].lineNumber;var lineContent=searchMatches[i].lineContent;var matchRanges=[];for(var j=0;j<regexes.length;++j)
+matchRanges=matchRanges.concat(this._regexMatchRanges(lineContent,regexes[j]));var anchor=this._createAnchor(uiSourceCode,lineNumber,matchRanges[0].offset);var numberString=numberToStringWithSpacesPadding(lineNumber+1,4);var lineNumberSpan=document.createElement("span");lineNumberSpan.classList.add("search-match-line-number");lineNumberSpan.textContent=numberString;anchor.appendChild(lineNumberSpan);var contentSpan=this._createContentSpan(lineContent,matchRanges);anchor.appendChild(contentSpan);var searchMatchElement=new TreeElement("");searchMatchElement.selectable=false;fileTreeElement.appendChild(searchMatchElement);searchMatchElement.listItemElement.className="search-match source-code";searchMatchElement.listItemElement.appendChild(anchor);}},_appendShowMoreMatchesElement:function(fileTreeElement,searchResult,startMatchIndex)
+{var matchesLeftCount=searchResult.searchMatches.length-startMatchIndex;var showMoreMatchesText=WebInspector.UIString("Show all matches (%d more).",matchesLeftCount);var showMoreMatchesElement=new TreeElement(showMoreMatchesText);fileTreeElement.appendChild(showMoreMatchesElement);showMoreMatchesElement.listItemElement.classList.add("show-more-matches");showMoreMatchesElement.onselect=this._showMoreMatchesElementSelected.bind(this,searchResult,startMatchIndex,showMoreMatchesElement);},_showMoreMatchesElementSelected:function(searchResult,startMatchIndex,showMoreMatchesElement)
+{var fileTreeElement=showMoreMatchesElement.parent;fileTreeElement.removeChild(showMoreMatchesElement);this._appendSearchMatches(fileTreeElement,searchResult,startMatchIndex,searchResult.searchMatches.length);return false;},_addFileTreeElement:function(fileName,searchMatchesCount,searchResultIndex)
+{var fileTreeElement=new TreeElement("",null,true);fileTreeElement.toggleOnClick=true;fileTreeElement.selectable=false;this._treeOutline.appendChild(fileTreeElement);fileTreeElement.listItemElement.classList.add("search-result");var fileNameSpan=document.createElement("span");fileNameSpan.className="search-result-file-name";fileNameSpan.textContent=fileName;fileTreeElement.listItemElement.appendChild(fileNameSpan);var matchesCountSpan=document.createElement("span");matchesCountSpan.className="search-result-matches-count";if(searchMatchesCount===1)
 matchesCountSpan.textContent=WebInspector.UIString("(%d match)",searchMatchesCount);else
 matchesCountSpan.textContent=WebInspector.UIString("(%d matches)",searchMatchesCount);fileTreeElement.listItemElement.appendChild(matchesCountSpan);var searchResult=this._searchResults[searchResultIndex];fileTreeElement.onexpand=this._fileTreeElementExpanded.bind(this,searchResult,fileTreeElement);if(this._matchesExpandedCount<WebInspector.FileBasedSearchResultsPane.matchesExpandedByDefaultCount)
 fileTreeElement.expand();this._matchesExpandedCount+=searchResult.searchMatches.length;return fileTreeElement;},_regexMatchRanges:function(lineContent,regex)
 {regex.lastIndex=0;var match;var offset=0;var matchRanges=[];while((regex.lastIndex<lineContent.length)&&(match=regex.exec(lineContent)))
-matchRanges.push(new WebInspector.SearchResult(match.index,match[0].length));return matchRanges;},_createContentSpan:function(lineContent,matchRanges)
+matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));return matchRanges;},_createContentSpan:function(lineContent,matchRanges)
 {var contentSpan=document.createElement("span");contentSpan.className="search-match-content";contentSpan.textContent=lineContent;WebInspector.highlightRangesWithStyleClass(contentSpan,matchRanges,"highlighted-match");return contentSpan;},__proto__:WebInspector.SearchResultsPane.prototype}
 WebInspector.FileBasedSearchResultsPane.SearchResult=function(uiSourceCode,searchMatches){this.uiSourceCode=uiSourceCode;this.searchMatches=searchMatches;}
-WebInspector.advancedSearchController=null;WebInspector.TimelineGrid=function()
+WebInspector.advancedSearchController;WebInspector.TimelineGrid=function()
 {this.element=document.createElement("div");this._itemsGraphsElement=document.createElement("div");this._itemsGraphsElement.id="resources-graphs";this.element.appendChild(this._itemsGraphsElement);this._dividersElement=this.element.createChild("div","resources-dividers");this._gridHeaderElement=document.createElement("div");this._eventDividersElement=this._gridHeaderElement.createChild("div","resources-event-dividers");this._dividersLabelBarElement=this._gridHeaderElement.createChild("div","resources-dividers-label-bar");this.element.appendChild(this._gridHeaderElement);this._leftCurtainElement=this.element.createChild("div","timeline-cpu-curtain-left");this._rightCurtainElement=this.element.createChild("div","timeline-cpu-curtain-right");this._gridSliceTime=1;}
 WebInspector.TimelineGrid.prototype={get itemsGraphsElement()
 {return this._itemsGraphsElement;},get dividersElement()
@@ -2784,15 +2898,15 @@
 this._eventDividersElement.appendChild(dividers[i]);}
 this._gridHeaderElement.appendChild(this._eventDividersElement);},removeEventDividers:function()
 {this._eventDividersElement.removeChildren();},hideEventDividers:function()
-{this._eventDividersElement.addStyleClass("hidden");},showEventDividers:function()
-{this._eventDividersElement.removeStyleClass("hidden");},hideCurtains:function()
-{this._leftCurtainElement.addStyleClass("hidden");this._rightCurtainElement.addStyleClass("hidden");},showCurtains:function(gapOffset,gapWidth)
-{this._leftCurtainElement.style.width=gapOffset+"px";this._leftCurtainElement.removeStyleClass("hidden");this._rightCurtainElement.style.left=(gapOffset+gapWidth)+"px";this._rightCurtainElement.removeStyleClass("hidden");},setScrollAndDividerTop:function(scrollTop,dividersTop)
+{this._eventDividersElement.classList.add("hidden");},showEventDividers:function()
+{this._eventDividersElement.classList.remove("hidden");},hideCurtains:function()
+{this._leftCurtainElement.classList.add("hidden");this._rightCurtainElement.classList.add("hidden");},showCurtains:function(gapOffset,gapWidth)
+{this._leftCurtainElement.style.width=gapOffset+"px";this._leftCurtainElement.classList.remove("hidden");this._rightCurtainElement.style.left=(gapOffset+gapWidth)+"px";this._rightCurtainElement.classList.remove("hidden");},setScrollAndDividerTop:function(scrollTop,dividersTop)
 {this._dividersElement.style.top=scrollTop+"px";this._leftCurtainElement.style.top=scrollTop+"px";this._rightCurtainElement.style.top=scrollTop+"px";}}
 WebInspector.TimelineGrid.Calculator=function(){}
-WebInspector.TimelineGrid.Calculator.prototype={computePosition:function(time){},formatTime:function(time){},minimumBoundary:function(){},zeroTime:function(){},maximumBoundary:function(){},boundarySpan:function(){}}
+WebInspector.TimelineGrid.Calculator.prototype={computePosition:function(time){return 0;},formatTime:function(time,hires){},minimumBoundary:function(){},zeroTime:function(){},maximumBoundary:function(){},boundarySpan:function(){}}
 WebInspector.OverviewGrid=function(prefix)
-{this.element=document.createElement("div");this.element.className="fill";this.element.id=prefix+"-overview-container";this._grid=new WebInspector.TimelineGrid();this._grid.element.id=prefix+"-overview-grid";this._grid.setScrollAndDividerTop(0,0);this.element.appendChild(this._grid.element);this._window=new WebInspector.OverviewGrid.Window(this.element,this._grid.dividersLabelBarElement);}
+{this.element=document.createElement("div");this.element.id=prefix+"-overview-container";this._grid=new WebInspector.TimelineGrid();this._grid.element.id=prefix+"-overview-grid";this._grid.setScrollAndDividerTop(0,0);this.element.appendChild(this._grid.element);this._window=new WebInspector.OverviewGrid.Window(this.element,this._grid.dividersLabelBarElement);}
 WebInspector.OverviewGrid.prototype={clientWidth:function()
 {return this.element.clientWidth;},updateDividers:function(calculator)
 {this._grid.updateDividers(calculator);},addEventDividers:function(dividers)
@@ -2807,12 +2921,12 @@
 {this._window._zoom(zoomFactor,referencePoint);},setResizeEnabled:function(enabled)
 {this._window._setEnabled(!!enabled);}}
 WebInspector.OverviewGrid.MinSelectableSize=14;WebInspector.OverviewGrid.WindowScrollSpeedFactor=.3;WebInspector.OverviewGrid.ResizerOffset=3.5;WebInspector.OverviewGrid.Window=function(parentElement,dividersLabelBarElement)
-{this._parentElement=parentElement;this._dividersLabelBarElement=dividersLabelBarElement;WebInspector.installDragHandle(this._parentElement,this._startWindowSelectorDragging.bind(this),this._windowSelectorDragging.bind(this),this._endWindowSelectorDragging.bind(this),"ew-resize");WebInspector.installDragHandle(this._dividersLabelBarElement,this._startWindowDragging.bind(this),this._windowDragging.bind(this),null,"move");this.windowLeft=0.0;this.windowRight=1.0;this._parentElement.addEventListener("mousewheel",this._onMouseWheel.bind(this),true);this._parentElement.addEventListener("dblclick",this._resizeWindowMaximum.bind(this),true);this._overviewWindowElement=parentElement.createChild("div","overview-grid-window");this._overviewWindowBordersElement=parentElement.createChild("div","overview-grid-window-rulers");parentElement.createChild("div","overview-grid-dividers-background");this._leftResizeElement=parentElement.createChild("div","overview-grid-window-resizer");this._leftResizeElement.style.left=0;WebInspector.installDragHandle(this._leftResizeElement,this._resizerElementStartDragging.bind(this),this._leftResizeElementDragging.bind(this),null,"ew-resize");this._rightResizeElement=parentElement.createChild("div","overview-grid-window-resizer overview-grid-window-resizer-right");this._rightResizeElement.style.right=0;WebInspector.installDragHandle(this._rightResizeElement,this._resizerElementStartDragging.bind(this),this._rightResizeElementDragging.bind(this),null,"ew-resize");this._setEnabled(true);}
+{this._parentElement=parentElement;this._dividersLabelBarElement=dividersLabelBarElement;WebInspector.installDragHandle(this._parentElement,this._startWindowSelectorDragging.bind(this),this._windowSelectorDragging.bind(this),this._endWindowSelectorDragging.bind(this),"ew-resize",null);WebInspector.installDragHandle(this._dividersLabelBarElement,this._startWindowDragging.bind(this),this._windowDragging.bind(this),null,"move");this.windowLeft=0.0;this.windowRight=1.0;this._parentElement.addEventListener("mousewheel",this._onMouseWheel.bind(this),true);this._parentElement.addEventListener("dblclick",this._resizeWindowMaximum.bind(this),true);this._overviewWindowElement=parentElement.createChild("div","overview-grid-window");this._overviewWindowBordersElement=parentElement.createChild("div","overview-grid-window-rulers");parentElement.createChild("div","overview-grid-dividers-background");this._leftResizeElement=parentElement.createChild("div","overview-grid-window-resizer");this._leftResizeElement.style.left=0;WebInspector.installDragHandle(this._leftResizeElement,this._resizerElementStartDragging.bind(this),this._leftResizeElementDragging.bind(this),null,"ew-resize");this._rightResizeElement=parentElement.createChild("div","overview-grid-window-resizer overview-grid-window-resizer-right");this._rightResizeElement.style.right=0;WebInspector.installDragHandle(this._rightResizeElement,this._resizerElementStartDragging.bind(this),this._rightResizeElementDragging.bind(this),null,"ew-resize");this._setEnabled(true);}
 WebInspector.OverviewGrid.Events={WindowChanged:"WindowChanged"}
 WebInspector.OverviewGrid.Window.prototype={reset:function()
 {this.windowLeft=0.0;this.windowRight=1.0;this._overviewWindowElement.style.left="0%";this._overviewWindowElement.style.width="100%";this._overviewWindowBordersElement.style.left="0%";this._overviewWindowBordersElement.style.right="0%";this._leftResizeElement.style.left="0%";this._rightResizeElement.style.left="100%";this._setEnabled(true);},_setEnabled:function(enabled)
 {enabled=!!enabled;if(this._enabled===enabled)
-return;this._enabled=enabled;this._parentElement.enableStyleClass("resize-enabled",enabled);},_resizerElementStartDragging:function(event)
+return;this._enabled=enabled;},_resizerElementStartDragging:function(event)
 {if(!this._enabled)
 return false;this._resizerParentOffsetLeft=event.pageX-event.offsetX-event.target.offsetLeft;event.preventDefault();return true;},_leftResizeElementDragging:function(event)
 {this._resizeWindowLeft(event.pageX-this._resizerParentOffsetLeft);event.preventDefault();},_rightResizeElementDragging:function(event)
@@ -2893,10 +3007,10 @@
 {return this.type.canonicalMimeType()||this.mimeType;},searchInContent:function(query,caseSensitive,isRegex,callback)
 {function callbackWrapper(error,searchMatches)
 {callback(searchMatches||[]);}
-if(this.type===WebInspector.resourceTypes.Document){function documentContentLoaded(content)
+if(this.type===WebInspector.resourceTypes.Document){this.requestContent(documentContentLoaded);return;}
+function documentContentLoaded(content)
 {if(content===null){callback([]);return;}
 var result=WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex);callback(result);}
-this.requestContent(documentContentLoaded);return;}
 if(this.frameId)
 PageAgent.searchInResource(this.frameId,this.url,query,caseSensitive,isRegex,callbackWrapper);else
 callback([]);},populateImageSource:function(image)
@@ -2923,9 +3037,9 @@
 contentProvider.requestContent(fallbackContentLoaded.bind(this));}
 function fallbackContentLoaded(content)
 {replyWithContent.call(this,content,false);}
-if(this.request){function requestContentLoaded(content)
+if(this.request){this.request.requestContent(requestContentLoaded.bind(this));return;}
+function requestContentLoaded(content)
 {contentLoaded.call(this,null,content,this.request.contentEncoded);}
-this.request.requestContent(requestContentLoaded.bind(this));return;}
 PageAgent.getResourceContent(this.frameId,this.url,resourceContentLoaded.bind(this));},isHidden:function()
 {return!!this._isHidden;},__proto__:WebInspector.Object.prototype}
 WebInspector.NetworkRequest=function(requestId,url,documentURL,frameId,loaderId)
@@ -2937,7 +3051,7 @@
 {this._requestId=requestId;},get url()
 {return this._url;},set url(x)
 {if(this._url===x)
-return;this._url=x;this._parsedURL=new WebInspector.ParsedURL(x);delete this._parsedQueryParameters;delete this._name;delete this._path;},get documentURL()
+return;this._url=x;this._parsedURL=new WebInspector.ParsedURL(x);delete this._queryString;delete this._parsedQueryParameters;delete this._name;delete this._path;},get documentURL()
 {return this._documentURL;},get parsedURL()
 {return this._parsedURL;},get frameId()
 {return this._frameId;},get loaderId()
@@ -3015,9 +3129,10 @@
 return(value!==null)?value:undefined;},get responseCookies()
 {if(!this._responseCookies)
 this._responseCookies=WebInspector.CookieParser.parseSetCookie(this.responseHeaderValue("Set-Cookie"));return this._responseCookies;},queryString:function()
-{if(this._queryString)
-return this._queryString;var queryString=this.url.split("?",2)[1];if(!queryString)
-return null;this._queryString=queryString.split("#",2)[0];return this._queryString;},get queryParameters()
+{if(this._queryString!==undefined)
+return this._queryString;var queryString=null;var url=this.url;var questionMarkPosition=url.indexOf("?");if(questionMarkPosition!==-1){queryString=url.substring(questionMarkPosition+1);var hashSignPosition=queryString.indexOf("#");if(hashSignPosition!==-1)
+queryString=queryString.substring(0,hashSignPosition);}
+this._queryString=queryString;return this._queryString;},get queryParameters()
 {if(this._parsedQueryParameters)
 return this._parsedQueryParameters;var queryString=this.queryString();if(!queryString)
 return null;this._parsedQueryParameters=this._parseParameters(queryString);return this._parsedQueryParameters;},get formParameters()
@@ -3085,7 +3200,7 @@
 {return this._project.canRename();},rename:function(newName,callback)
 {this._project.rename(this,newName,innerCallback.bind(this));function innerCallback(success,newName,newURL,newOriginURL,newContentType)
 {if(success)
-this._updateName(newName,newURL,newOriginURL,newContentType);callback(success);}},_updateName:function(name,url,originURL,contentType)
+this._updateName((newName),(newURL),(newOriginURL),(newContentType));callback(success);}},_updateName:function(name,url,originURL,contentType)
 {var oldURI=this.uri();this._name=name;if(url)
 this._url=url;if(originURL)
 this._originURL=originURL;if(contentType)
@@ -3119,12 +3234,13 @@
 this._innerResetWorkingCopy();this._hasCommittedChanges=true;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.WorkingCopyCommitted);if(this._url&&WebInspector.fileManager.isURLSaved(this._url))
 this._saveURLWithFileManager(false,this._content);if(shouldSetContentInProject)
 this._project.setFileContent(this,this._content,function(){});},_saveURLWithFileManager:function(forceSaveAs,content)
-{WebInspector.fileManager.save(this._url,content,forceSaveAs,callback.bind(this));WebInspector.fileManager.close(this._url);function callback()
-{this._savedWithFileManager=true;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.SavedStateUpdated);}},saveToFileSystem:function(forceSaveAs)
+{WebInspector.fileManager.save(this._url,(content),forceSaveAs,callback.bind(this));WebInspector.fileManager.close(this._url);function callback(accepted)
+{if(!accepted)
+return;this._savedWithFileManager=true;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.SavedStateUpdated);}},saveToFileSystem:function(forceSaveAs)
 {if(this.isDirty()){this._saveURLWithFileManager(forceSaveAs,this.workingCopy());this.commitWorkingCopy(function(){});return;}
 this.requestContent(this._saveURLWithFileManager.bind(this,forceSaveAs));},hasUnsavedCommittedChanges:function()
 {if(this._savedWithFileManager||this.project().canSetFileContent()||!this._isEditable)
-return false;if(WebInspector.extensionServer.hasSubscribers(WebInspector.extensionAPI.Events.ResourceContentCommitted))
+return false;if(this._project.workspace().hasResourceContentTrackingExtensions())
 return false;return!!this._hasCommittedChanges;},addRevision:function(content)
 {this._commitContent(content,true);},_restoreRevisionHistory:function()
 {if(!window.localStorage)
@@ -3296,9 +3412,9 @@
 {if(!matchingNodeIds)
 return;if(matchingNodeIds.indexOf(nodeId)!==-1)
 matchingSelectors.push(index);}},addRule:function(nodeId,selector,successCallback,failureCallback)
-{function callback(successCallback,failureCallback,selector,error,rulePayload)
+{function callback(error,rulePayload)
 {this._pendingCommandsMajorState.pop();if(error){failureCallback();}else{WebInspector.domAgent.markUndoableState();this._computeMatchingSelectors(rulePayload,nodeId,successCallback,failureCallback);}}
-this._pendingCommandsMajorState.push(true);CSSAgent.addRule(nodeId,selector,callback.bind(this,successCallback,failureCallback,selector));},mediaQueryResultChanged:function()
+this._pendingCommandsMajorState.push(true);CSSAgent.addRule(nodeId,selector,callback.bind(this));},mediaQueryResultChanged:function()
 {this._styleLoader.reset();this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.MediaQueryResultChanged);},styleSheetHeaderForId:function(id)
 {return this._styleSheetIdToHeader[id];},styleSheetHeaders:function()
 {return Object.values(this._styleSheetIdToHeader);},_ownerDocumentId:function(nodeId)
@@ -3326,11 +3442,10 @@
 return;namedFlowCollection._appendNamedFlow(namedFlow);this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated,namedFlow);},_regionOversetChanged:function(namedFlowPayload)
 {var namedFlow=WebInspector.NamedFlow.parsePayload(namedFlowPayload);var namedFlowCollection=this._namedFlowCollections[namedFlow.documentNodeId];if(!namedFlowCollection)
 return;namedFlowCollection._appendNamedFlow(namedFlow);this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionOversetChanged,namedFlow);},setStyleSheetText:function(styleSheetId,newText,majorChange,userCallback)
-{function callback(error)
+{var header=this._styleSheetIdToHeader[styleSheetId];console.assert(header);this._pendingCommandsMajorState.push(majorChange);header.setContent(newText,callback.bind(this));function callback(error)
 {this._pendingCommandsMajorState.pop();if(!error&&majorChange)
 WebInspector.domAgent.markUndoableState();if(!error&&userCallback)
-userCallback(error);}
-this._pendingCommandsMajorState.push(majorChange);CSSAgent.setStyleSheetText(styleSheetId,newText,callback.bind(this));},_undoRedoRequested:function()
+userCallback(error);}},_undoRedoRequested:function()
 {this._pendingCommandsMajorState.push(true);},_undoRedoCompleted:function()
 {this._pendingCommandsMajorState.pop();},_mainFrameCreatedOrNavigated:function()
 {this._resetStyleSheets();},_resetStyleSheets:function()
@@ -3374,10 +3489,10 @@
 {return new WebInspector.CSSStyleDeclaration(payload);}
 WebInspector.CSSStyleDeclaration.parseComputedStylePayload=function(payload)
 {var newPayload=({cssProperties:[],shorthandEntries:[],width:"",height:""});if(payload)
-newPayload.cssProperties=payload;return new WebInspector.CSSStyleDeclaration(newPayload);}
+newPayload.cssProperties=(payload);return new WebInspector.CSSStyleDeclaration(newPayload);}
 WebInspector.CSSStyleDeclaration.prototype={get allProperties()
 {return this._allProperties;},getLiveProperty:function(name)
-{return this._livePropertyMap[name];},getPropertyValue:function(name)
+{return this._livePropertyMap[name]||null;},getPropertyValue:function(name)
 {var property=this._livePropertyMap[name];return property?property.value:"";},getPropertyPriority:function(name)
 {var property=this._livePropertyMap[name];return property?property.priority:"";},isPropertyImplicit:function(name)
 {var property=this._livePropertyMap[name];return property?property.implicit:"";},longhandProperties:function(name)
@@ -3406,7 +3521,7 @@
 WebInspector.cssModel._pendingCommandsMajorState.push(true);CSSAgent.setStyleText(this.id,text,callback);}}
 WebInspector.CSSRule=function(payload,matchingSelectors)
 {this.id=payload.ruleId;if(matchingSelectors)
-this.matchingSelectors=matchingSelectors;this.selectors=payload.selectorList.selectors;this.selectorText=this.selectors.select("value").join(", ");var firstRange=this.selectors[0].range;if(firstRange){var lastRange=this.selectors.peekLast().range;this.selectorRange={startLine:firstRange.startLine,startColumn:firstRange.startColumn,endLine:lastRange.endLine,endColumn:lastRange.endColumn};}
+this.matchingSelectors=matchingSelectors;this.selectors=payload.selectorList.selectors;this.selectorText=this.selectors.select("value").join(", ");var firstRange=this.selectors[0].range;if(firstRange){var lastRange=this.selectors.peekLast().range;this.selectorRange=new WebInspector.TextRange(firstRange.startLine,firstRange.startColumn,lastRange.endLine,lastRange.endColumn);}
 this.sourceURL=payload.sourceURL;this.origin=payload.origin;this.style=WebInspector.CSSStyleDeclaration.parsePayload(payload.style);this.style.parentRule=this;if(payload.media)
 this.media=WebInspector.CSSMedia.parseMediaArrayPayload(payload.media);this._setRawLocationAndFrameId();}
 WebInspector.CSSRule.parsePayload=function(payload,matchingIndices)
@@ -3464,7 +3579,7 @@
 return null;var url=this.ownerStyle.parentRule.resourceURL();if(!url)
 return null;var range=this.range;var line=forName?range.startLine:range.endLine;var column=forName?range.startColumn:range.endColumn-(this.text&&this.text.endsWith(";")?2:1);var rawLocation=new WebInspector.CSSLocation(url,line,column);return WebInspector.cssModel.rawLocationToUILocation(rawLocation);}}
 WebInspector.CSSMedia=function(payload)
-{this.text=payload.text;this.source=payload.source;this.sourceURL=payload.sourceURL||"";this.range=payload.range;this.parentStyleSheetId=payload.parentStyleSheetId;}
+{this.text=payload.text;this.source=payload.source;this.sourceURL=payload.sourceURL||"";this.range=payload.range?WebInspector.TextRange.fromObject(payload.range):null;this.parentStyleSheetId=payload.parentStyleSheetId;}
 WebInspector.CSSMedia.Source={LINKED_SHEET:"linkedSheet",INLINE_SHEET:"inlineSheet",MEDIA_RULE:"mediaRule",IMPORT_RULE:"importRule"};WebInspector.CSSMedia.parsePayload=function(payload)
 {return new WebInspector.CSSMedia(payload);}
 WebInspector.CSSMedia.parseMediaArrayPayload=function(payload)
@@ -3495,31 +3610,25 @@
 {return this.startLine+lineNumberInStyleSheet;},columnNumberInSource:function(lineNumberInStyleSheet,columnNumberInStyleSheet)
 {return(lineNumberInStyleSheet?0:this.startColumn)+columnNumberInStyleSheet;},contentURL:function()
 {return this.resourceURL();},contentType:function()
-{return WebInspector.resourceTypes.Stylesheet;},requestContent:function(callback)
+{return WebInspector.resourceTypes.Stylesheet;},_trimSourceURL:function(text)
+{var sourceURLRegex=/\n[\040\t]*\/\*[#@][\040\t]sourceURL=[\040\t]*([^\s]*)[\040\t]*\*\/[\040\t]*$/mg;return text.replace(sourceURLRegex,"");},requestContent:function(callback)
 {CSSAgent.getStyleSheetText(this.id,textCallback.bind(this));function textCallback(error,text)
 {if(error){WebInspector.log("Failed to get text for stylesheet "+this.id+": "+error);text="";}
-callback(text);}},searchInContent:function(query,caseSensitive,isRegex,callback)
+text=this._trimSourceURL(text);callback(text);}},searchInContent:function(query,caseSensitive,isRegex,callback)
 {function performSearch(content)
 {callback(WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex));}
-this.requestContent(performSearch);}}
-WebInspector.CSSStyleSheet=function(payload)
-{this.id=payload.styleSheetId;this.rules=[];this.styles={};for(var i=0;i<payload.rules.length;++i){var rule=WebInspector.CSSRule.parsePayload(payload.rules[i]);this.rules.push(rule);if(rule.style)
-this.styles[rule.style.id]=rule.style;}
-if("text"in payload)
-this._text=payload.text;}
+this.requestContent(performSearch);},setContent:function(newText,callback)
+{newText=this._trimSourceURL(newText);if(this.hasSourceURL)
+newText+="\n/*# sourceURL="+this.sourceURL+" */";CSSAgent.setStyleSheetText(this.id,newText,callback);},}
+WebInspector.CSSStyleSheet=function(styleSheetId,payload)
+{this.id=styleSheetId;this.rules=[];this.styles={};for(var i=0;i<payload.length;++i){var rule=WebInspector.CSSRule.parsePayload(payload[i]);this.rules.push(rule);if(rule.style)
+this.styles[rule.style.id]=rule.style;}}
 WebInspector.CSSStyleSheet.createForId=function(styleSheetId,userCallback)
 {function callback(error,styleSheetPayload)
 {if(error)
 userCallback(null);else
-userCallback(new WebInspector.CSSStyleSheet(styleSheetPayload));}
-CSSAgent.getStyleSheet(styleSheetId,callback.bind(this));}
-WebInspector.CSSStyleSheet.prototype={getText:function()
-{return this._text;},setText:function(newText,majorChange,userCallback)
-{function callback(error)
-{if(!error)
-WebInspector.domAgent.markUndoableState();WebInspector.cssModel._pendingCommandsMajorState.pop();if(userCallback)
-userCallback(error);}
-WebInspector.cssModel._pendingCommandsMajorState.push(majorChange);CSSAgent.setStyleSheetText(this.id,newText,callback.bind(this));}}
+userCallback(new WebInspector.CSSStyleSheet(styleSheetId,styleSheetPayload.rules));}
+CSSAgent.getStyleSheet(styleSheetId,callback);}
 WebInspector.CSSDispatcher=function(cssModel)
 {this._cssModel=cssModel;}
 WebInspector.CSSDispatcher.prototype={mediaQueryResultChanged:function()
@@ -3553,7 +3662,7 @@
 {var computedStyle=(error||!computedPayload)?null:WebInspector.CSSStyleDeclaration.parseComputedStylePayload(computedPayload);var callbacks=this._nodeIdToCallbackData[nodeId];if(!callbacks)
 return;delete this._nodeIdToCallbackData[nodeId];for(var i=0;i<callbacks.length;++i)
 callbacks[i](computedStyle);}}}
-WebInspector.cssModel=null;WebInspector.NetworkManager=function()
+WebInspector.cssModel;WebInspector.NetworkManager=function()
 {WebInspector.Object.call(this);this._dispatcher=new WebInspector.NetworkDispatcher(this);if(WebInspector.settings.cacheDisabled.get())
 NetworkAgent.setCacheDisabled(true);NetworkAgent.enable();WebInspector.settings.cacheDisabled.addChangeListener(this._cacheDisabledSettingChanged,this);}
 WebInspector.NetworkManager.EventTypes={RequestStarted:"RequestStarted",RequestUpdated:"RequestUpdated",RequestFinished:"RequestFinished",RequestUpdateDropped:"RequestUpdateDropped"}
@@ -3574,7 +3683,7 @@
 networkRequest.responseHeadersText=response.headersText;if(response.requestHeaders){networkRequest.setRequestHeaders(this._headersMapToHeadersArray(response.requestHeaders));networkRequest.setRequestHeadersText(response.requestHeadersText||"");}
 networkRequest.connectionReused=response.connectionReused;networkRequest.connectionId=response.connectionId;if(response.fromDiskCache)
 networkRequest.cached=true;else
-networkRequest.timing=response.timing;if(!this._mimeTypeIsConsistentWithType(networkRequest)){WebInspector.console.addMessage(WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.Network,WebInspector.ConsoleMessage.MessageLevel.Log,WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s: \"%s\".",networkRequest.type.title(),networkRequest.mimeType,networkRequest.url),WebInspector.ConsoleMessage.MessageType.Log,"",0,0,1,[],null,networkRequest.requestId));}},_mimeTypeIsConsistentWithType:function(networkRequest)
+networkRequest.timing=response.timing;if(!this._mimeTypeIsConsistentWithType(networkRequest)){WebInspector.console.addMessage(WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.Network,WebInspector.ConsoleMessage.MessageLevel.Log,WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s: \"%s\".",networkRequest.type.title(),networkRequest.mimeType,networkRequest.url),WebInspector.ConsoleMessage.MessageType.Log,"",0,0,1,[],undefined,networkRequest.requestId));}},_mimeTypeIsConsistentWithType:function(networkRequest)
 {if(networkRequest.hasErrorStatusCode()||networkRequest.statusCode===304||networkRequest.statusCode===204)
 return true;if(typeof networkRequest.type==="undefined"||networkRequest.type===WebInspector.resourceTypes.Other||networkRequest.type===WebInspector.resourceTypes.XHR||networkRequest.type===WebInspector.resourceTypes.WebSocket)
 return true;if(!networkRequest.mimeType)
@@ -3617,7 +3726,7 @@
 {networkRequest.endTime=finishTime;networkRequest.finished=true;this._dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.RequestFinished,networkRequest);delete this._inflightRequestsById[networkRequest.requestId];delete this._inflightRequestsByURL[networkRequest.url];},_dispatchEventToListeners:function(eventType,networkRequest)
 {this._manager.dispatchEventToListeners(eventType,networkRequest);},_createNetworkRequest:function(requestId,frameId,loaderId,url,documentURL,initiator)
 {var networkRequest=new WebInspector.NetworkRequest(requestId,url,documentURL,frameId,loaderId);networkRequest.initiator=initiator;return networkRequest;}}
-WebInspector.networkManager=null;WebInspector.NetworkLog=function()
+WebInspector.networkManager;WebInspector.NetworkLog=function()
 {this._requests=[];this._requestForId={};WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._onMainFrameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._onLoad,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded,this._onDOMContentLoaded,this);}
 WebInspector.NetworkLog.prototype={get requests()
 {return this._requests;},requestForURL:function(url)
@@ -3633,11 +3742,11 @@
 {if(this._currentPageLoad)
 this._currentPageLoad.loadTime=event.data;},requestForId:function(requestId)
 {return this._requestForId[requestId];}}
-WebInspector.networkLog=null;WebInspector.PageLoad=function(mainRequest)
+WebInspector.networkLog;WebInspector.PageLoad=function(mainRequest)
 {this.id=++WebInspector.PageLoad._lastIdentifier;this.url=mainRequest.url;this.startTime=mainRequest.startTime;}
 WebInspector.PageLoad._lastIdentifier=0;WebInspector.ResourceTreeModel=function(networkManager)
 {networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestFinished,this);networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestUpdateDropped,this._onRequestUpdateDropped,this);WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._consoleMessageAdded,this);WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.RepeatCountUpdated,this._consoleMessageAdded,this);WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._consoleCleared,this);PageAgent.enable();this._fetchResourceTree();InspectorBackend.registerPageDispatcher(new WebInspector.PageDispatcher(this));this._pendingConsoleMessages={};this._securityOriginFrameCount={};}
-WebInspector.ResourceTreeModel.EventTypes={FrameAdded:"FrameAdded",FrameNavigated:"FrameNavigated",FrameDetached:"FrameDetached",MainFrameNavigated:"MainFrameNavigated",MainFrameCreatedOrNavigated:"MainFrameCreatedOrNavigated",ResourceAdded:"ResourceAdded",WillLoadCachedResources:"WillLoadCachedResources",CachedResourcesLoaded:"CachedResourcesLoaded",DOMContentLoaded:"DOMContentLoaded",Load:"Load",InspectedURLChanged:"InspectedURLChanged",SecurityOriginAdded:"SecurityOriginAdded",SecurityOriginRemoved:"SecurityOriginRemoved",ScreencastFrame:"ScreencastFrame",ScreencastVisibilityChanged:"ScreencastVisibilityChanged"}
+WebInspector.ResourceTreeModel.EventTypes={FrameAdded:"FrameAdded",FrameNavigated:"FrameNavigated",FrameDetached:"FrameDetached",FrameResized:"FrameResized",MainFrameNavigated:"MainFrameNavigated",MainFrameCreatedOrNavigated:"MainFrameCreatedOrNavigated",ResourceAdded:"ResourceAdded",WillLoadCachedResources:"WillLoadCachedResources",CachedResourcesLoaded:"CachedResourcesLoaded",DOMContentLoaded:"DOMContentLoaded",Load:"Load",WillReloadPage:"WillReloadPage",InspectedURLChanged:"InspectedURLChanged",SecurityOriginAdded:"SecurityOriginAdded",SecurityOriginRemoved:"SecurityOriginRemoved",ScreencastFrame:"ScreencastFrame",ScreencastVisibilityChanged:"ScreencastVisibilityChanged"}
 WebInspector.ResourceTreeModel.prototype={_fetchResourceTree:function()
 {this._frames={};delete this._cachedResourcesProcessed;PageAgent.getResourceTree(this._processCachedResources.bind(this));},_processCachedResources:function(error,mainFramePayload)
 {if(error){console.error(JSON.stringify(error));return;}
@@ -3650,18 +3759,22 @@
 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.MainFrameCreatedOrNavigated,frame);},_addSecurityOrigin:function(securityOrigin)
 {if(!this._securityOriginFrameCount[securityOrigin]){this._securityOriginFrameCount[securityOrigin]=1;this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded,securityOrigin);return;}
 this._securityOriginFrameCount[securityOrigin]+=1;},_removeSecurityOrigin:function(securityOrigin)
-{console.assert(this._securityOriginFrameCount[securityOrigin]);if(this._securityOriginFrameCount[securityOrigin]===1){delete this._securityOriginFrameCount[securityOrigin];this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved,securityOrigin);return;}
+{if(typeof securityOrigin==="undefined")
+return;if(this._securityOriginFrameCount[securityOrigin]===1){delete this._securityOriginFrameCount[securityOrigin];this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved,securityOrigin);return;}
 this._securityOriginFrameCount[securityOrigin]-=1;},securityOrigins:function()
 {return Object.keys(this._securityOriginFrameCount);},_handleMainFrameDetached:function(mainFrame)
 {function removeOriginForFrame(frame)
 {for(var i=0;i<frame.childFrames.length;++i)
 removeOriginForFrame.call(this,frame.childFrames[i]);if(!frame.isMainFrame())
 this._removeSecurityOrigin(frame.securityOrigin);}
-removeOriginForFrame.call(this,WebInspector.resourceTreeModel.mainFrame);},_frameNavigated:function(framePayload)
+removeOriginForFrame.call(this,WebInspector.resourceTreeModel.mainFrame);},_frameAttached:function(frameId,parentFrameId)
 {if(!this._cachedResourcesProcessed)
-return;var frame=this._frames[framePayload.id];var addedOrigin;if(frame){this._removeSecurityOrigin(frame.securityOrigin);frame._navigate(framePayload);addedOrigin=frame.securityOrigin;}else{var parentFrame=framePayload.parentId?this._frames[framePayload.parentId]:null;frame=new WebInspector.ResourceTreeFrame(this,parentFrame,framePayload);if(frame.isMainFrame()&&this.mainFrame){this._handleMainFrameDetached(this.mainFrame);this._frameDetached(this.mainFrame.id);}
-this._addFrame(frame,true);addedOrigin=frame.securityOrigin;}
-if(frame.isMainFrame())
+return null;if(this._frames[frameId])
+return null;var parentFrame=parentFrameId?this._frames[parentFrameId]:null;var frame=new WebInspector.ResourceTreeFrame(this,parentFrame,frameId);if(frame.isMainFrame()&&this.mainFrame){this._handleMainFrameDetached(this.mainFrame);this._frameDetached(this.mainFrame.id);}
+this._addFrame(frame,true);return frame;},_frameNavigated:function(framePayload)
+{if(!this._cachedResourcesProcessed)
+return;var frame=this._frames[framePayload.id];if(!frame){console.assert(!framePayload.parentId,"Main frame shouldn't have parent frame id.");frame=this._frameAttached(framePayload.id,framePayload.parentId||"");console.assert(frame);}
+this._removeSecurityOrigin(frame.securityOrigin);frame._navigate(framePayload);var addedOrigin=frame.securityOrigin;if(frame.isMainFrame())
 WebInspector.inspectedPageURL=frame.url;this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,frame);if(frame.isMainFrame()){this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,frame);this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.MainFrameCreatedOrNavigated,frame);}
 if(addedOrigin)
 this._addSecurityOrigin(addedOrigin);var resources=frame.resources();for(var i=0;i<resources.length;++i)
@@ -3697,12 +3810,14 @@
 {resource.clearErrorsAndWarnings();}
 this._pendingConsoleMessages={};this.forAllResources(callback);},resourceForURL:function(url)
 {return this.mainFrame?this.mainFrame.resourceForURL(url):null;},_addFramesRecursively:function(parentFrame,frameTreePayload)
-{var framePayload=frameTreePayload.frame;var frame=new WebInspector.ResourceTreeFrame(this,parentFrame,framePayload);this._addFrame(frame);var frameResource=this._createResourceFromFramePayload(framePayload,framePayload.url,WebInspector.resourceTypes.Document,framePayload.mimeType);if(frame.isMainFrame())
+{var framePayload=frameTreePayload.frame;var frame=new WebInspector.ResourceTreeFrame(this,parentFrame,framePayload.id,framePayload);this._addFrame(frame);var frameResource=this._createResourceFromFramePayload(framePayload,framePayload.url,WebInspector.resourceTypes.Document,framePayload.mimeType);if(frame.isMainFrame())
 WebInspector.inspectedPageURL=frameResource.url;frame.addResource(frameResource);for(var i=0;frameTreePayload.childFrames&&i<frameTreePayload.childFrames.length;++i)
 this._addFramesRecursively(frame,frameTreePayload.childFrames[i]);for(var i=0;i<frameTreePayload.resources.length;++i){var subresource=frameTreePayload.resources[i];var resource=this._createResourceFromFramePayload(framePayload,subresource.url,WebInspector.resourceTypes[subresource.type],subresource.mimeType);frame.addResource(resource);}},_createResourceFromFramePayload:function(frame,url,type,mimeType)
-{return new WebInspector.Resource(null,url,frame.url,frame.id,frame.loaderId,type,mimeType);},__proto__:WebInspector.Object.prototype}
-WebInspector.ResourceTreeFrame=function(model,parentFrame,payload)
-{this._model=model;this._parentFrame=parentFrame;this._id=payload.id;this._loaderId=payload.loaderId;this._name=payload.name;this._url=payload.url;this._securityOrigin=payload.securityOrigin;this._mimeType=payload.mimeType;this._childFrames=[];this._resourcesMap={};if(this._parentFrame)
+{return new WebInspector.Resource(null,url,frame.url,frame.id,frame.loaderId,type,mimeType);},reloadPage:function(ignoreCache,scriptToEvaluateOnLoad,scriptPreprocessor)
+{this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage);PageAgent.reload(ignoreCache,scriptToEvaluateOnLoad,scriptPreprocessor);},__proto__:WebInspector.Object.prototype}
+WebInspector.ResourceTreeFrame=function(model,parentFrame,frameId,payload)
+{this._model=model;this._parentFrame=parentFrame;this._id=frameId;this._url="";if(payload){this._loaderId=payload.loaderId;this._name=payload.name;this._url=payload.url;this._securityOrigin=payload.securityOrigin;this._mimeType=payload.mimeType;}
+this._childFrames=[];this._resourcesMap={};if(this._parentFrame)
 this._parentFrame._childFrames.push(this);}
 WebInspector.ResourceTreeFrame.prototype={get id()
 {return this._id;},get name()
@@ -3738,20 +3853,21 @@
 {this._resourceTreeModel=resourceTreeModel;}
 WebInspector.PageDispatcher.prototype={domContentEventFired:function(time)
 {this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.DOMContentLoaded,time);},loadEventFired:function(time)
-{this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.Load,time);},frameAttached:function(frameId)
-{},frameNavigated:function(frame)
+{this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.Load,time);},frameAttached:function(frameId,parentFrameId)
+{this._resourceTreeModel._frameAttached(frameId,parentFrameId);},frameNavigated:function(frame)
 {this._resourceTreeModel._frameNavigated(frame);},frameDetached:function(frameId)
 {this._resourceTreeModel._frameDetached(frameId);},frameStartedLoading:function(frameId)
 {},frameStoppedLoading:function(frameId)
 {},frameScheduledNavigation:function(frameId,delay)
 {},frameClearedScheduledNavigation:function(frameId)
-{},javascriptDialogOpening:function(message)
+{},frameResized:function()
+{this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameResized,null);},javascriptDialogOpening:function(message)
 {},javascriptDialogClosed:function()
 {},scriptsEnabled:function(isEnabled)
-{WebInspector.settings.javaScriptDisabled.set(!isEnabled);},screencastFrame:function(data,deviceScaleFactor,pageScaleFactor,viewport,offsetTop,offsetBottom)
-{this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ScreencastFrame,{data:data,deviceScaleFactor:deviceScaleFactor,pageScaleFactor:pageScaleFactor,viewport:viewport,offsetTop:offsetTop,offsetBottom:offsetBottom});},screencastVisibilityChanged:function(visible)
+{WebInspector.settings.javaScriptDisabled.set(!isEnabled);},screencastFrame:function(data,metadata)
+{this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ScreencastFrame,{data:data,metadata:metadata});},screencastVisibilityChanged:function(visible)
 {this._resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ScreencastVisibilityChanged,{visible:visible});}}
-WebInspector.resourceTreeModel=null;WebInspector.ParsedURL=function(url)
+WebInspector.resourceTreeModel;WebInspector.ParsedURL=function(url)
 {this.isValid=false;this.url=url;this.scheme="";this.host="";this.port="";this.path="";this.queryParams="";this.fragment="";this.folderPathComponents="";this.lastPathComponent="";var match=url.match(/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^\/:]*)(?::([\d]+))?(?:(\/[^#]*)(?:#(.*))?)?$/i);if(match){this.isValid=true;this.scheme=match[1].toLowerCase();this.host=match[2];this.port=match[3];this.path=match[4]||"/";this.fragment=match[5];}else{if(this.url.startsWith("data:")){this.scheme="data";return;}
 if(this.url==="about:blank"){this.scheme="about";return;}
 this.path=this.url;}
@@ -3842,7 +3958,7 @@
 WebInspector.linkifyRequestAsNode=function(request)
 {var anchor=WebInspector.linkifyURLAsNode(request.url);anchor.preferredPanel="network";anchor.requestId=request.requestId;return anchor;}
 WebInspector.contentAsDataURL=function(content,mimeType,contentEncoded)
-{const maxDataUrlSize=1024*1024;if(content==null||content.length>maxDataUrlSize)
+{const maxDataUrlSize=1024*1024;if(content===null||content.length>maxDataUrlSize)
 return null;return"data:"+mimeType+(contentEncoded?";base64,":",")+content;}
 WebInspector.ResourceType=function(name,title,categoryTitle,color,isTextType)
 {this._name=name;this._title=title;this._categoryTitle=categoryTitle;this._color=color;this._isTextType=isTextType;}
@@ -3863,9 +3979,9 @@
 {WebInspector.Object.call(this);this._dispatcher=new WebInspector.TimelineDispatcher(this);this._enablementCount=0;TimelineAgent.enable();}
 WebInspector.TimelineManager.EventTypes={TimelineStarted:"TimelineStarted",TimelineStopped:"TimelineStopped",TimelineEventRecorded:"TimelineEventRecorded"}
 WebInspector.TimelineManager.prototype={isStarted:function()
-{return this._dispatcher.isStarted();},start:function(maxCallStackDepth,includeDomCounters,callback)
+{return this._dispatcher.isStarted();},start:function(maxCallStackDepth,includeCounters,includeGPUEvents,callback)
 {this._enablementCount++;if(this._enablementCount===1)
-TimelineAgent.start(maxCallStackDepth,false,includeDomCounters,callback);else if(callback)
+TimelineAgent.start(maxCallStackDepth,false,includeCounters,includeGPUEvents,callback);else if(callback)
 callback(null);},stop:function(callback)
 {this._enablementCount--;if(this._enablementCount<0){console.error("WebInspector.TimelineManager start/stop calls are unbalanced "+new Error().stack);return;}
 if(!this._enablementCount)
@@ -3880,38 +3996,35 @@
 this._started=true;this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStarted,consoleTimeline);},stopped:function(consoleTimeline)
 {this._started=false;this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStopped,consoleTimeline);}}
 WebInspector.timelineManager;WebInspector.OverridesSupport=function()
-{WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._deviceMetricsChanged.bind(this),this);WebInspector.settings.overrideUserAgent.addChangeListener(this._userAgentChanged,this);WebInspector.settings.userAgent.addChangeListener(this._userAgentChanged,this);WebInspector.settings.overrideDeviceMetrics.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.deviceMetrics.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.emulateViewport.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.overrideGeolocation.addChangeListener(this._geolocationPositionChanged,this);WebInspector.settings.geolocationOverride.addChangeListener(this._geolocationPositionChanged,this);WebInspector.settings.overrideDeviceOrientation.addChangeListener(this._deviceOrientationChanged,this);WebInspector.settings.deviceOrientationOverride.addChangeListener(this._deviceOrientationChanged,this);WebInspector.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEventsChanged,this);WebInspector.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged,this);WebInspector.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged,this);}
+{WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._onMainFrameNavigated.bind(this),this);this._deviceMetricsOverrideEnabled=false;this._emulateViewportEnabled=false;this._userAgent="";WebInspector.settings.overrideUserAgent.addChangeListener(this._userAgentChanged,this);WebInspector.settings.userAgent.addChangeListener(this._userAgentChanged,this);WebInspector.settings.overrideDeviceMetrics.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.deviceMetrics.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.emulateViewport.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.deviceFitWindow.addChangeListener(this._deviceMetricsChanged,this);WebInspector.settings.overrideGeolocation.addChangeListener(this._geolocationPositionChanged,this);WebInspector.settings.geolocationOverride.addChangeListener(this._geolocationPositionChanged,this);WebInspector.settings.overrideDeviceOrientation.addChangeListener(this._deviceOrientationChanged,this);WebInspector.settings.deviceOrientationOverride.addChangeListener(this._deviceOrientationChanged,this);WebInspector.settings.emulateTouchEvents.addChangeListener(this._emulateTouchEventsChanged,this);WebInspector.settings.overrideCSSMedia.addChangeListener(this._cssMediaChanged,this);WebInspector.settings.emulatedCSSMedia.addChangeListener(this._cssMediaChanged,this);}
 WebInspector.OverridesSupport.Events={OverridesWarningUpdated:"OverridesWarningUpdated",}
-WebInspector.OverridesSupport.DeviceMetrics=function(width,height,deviceScaleFactor,fontScaleFactor,textAutosizing)
-{this.width=width;this.height=height;this.deviceScaleFactor=deviceScaleFactor;this.fontScaleFactor=fontScaleFactor;this.textAutosizing=textAutosizing;}
-WebInspector.OverridesSupport.DeviceMetrics._computeFontScaleFactorForAndroid=function(width,height,deviceScaleFactor)
-{var minWidth=Math.min(width,height)/deviceScaleFactor;var kMinFSM=1.05;var kWidthForMinFSM=320;var kMaxFSM=1.3;var kWidthForMaxFSM=800;if(minWidth<=kWidthForMinFSM)
-return kMinFSM;if(minWidth>=kWidthForMaxFSM)
-return kMaxFSM;var ratio=(minWidth-kWidthForMinFSM)/(kWidthForMaxFSM-kWidthForMinFSM);var fontScaleFactor=ratio*(kMaxFSM-kMinFSM)+kMinFSM;return Math.round(fontScaleFactor*1000)/1000;}
+WebInspector.OverridesSupport.DeviceMetrics=function(width,height,deviceScaleFactor,textAutosizing)
+{this.width=width;this.height=height;this.deviceScaleFactor=deviceScaleFactor;this.textAutosizing=textAutosizing;}
 WebInspector.OverridesSupport.DeviceMetrics.parseSetting=function(value)
-{var width=0;var height=0;var deviceScaleFactor=1;var fontScaleFactor=1;var textAutosizing=false;if(value){var splitMetrics=value.split("x");if(splitMetrics.length===5){width=parseInt(splitMetrics[0],10);height=parseInt(splitMetrics[1],10);deviceScaleFactor=parseFloat(splitMetrics[2]);fontScaleFactor=parseFloat(splitMetrics[3]);if(fontScaleFactor==0)
-fontScaleFactor=WebInspector.OverridesSupport.DeviceMetrics._computeFontScaleFactorForAndroid(width,height,deviceScaleFactor);textAutosizing=splitMetrics[4]==1;}}
-return new WebInspector.OverridesSupport.DeviceMetrics(width,height,deviceScaleFactor,fontScaleFactor,textAutosizing);}
-WebInspector.OverridesSupport.DeviceMetrics.parseUserInput=function(widthString,heightString,deviceScaleFactorString,fontScaleFactorString,textAutosizing)
+{var width=0;var height=0;var deviceScaleFactor=1;var textAutosizing=true;if(value){var splitMetrics=value.split("x");if(splitMetrics.length>=3){width=parseInt(splitMetrics[0],10);height=parseInt(splitMetrics[1],10);deviceScaleFactor=parseFloat(splitMetrics[2]);if(splitMetrics.length==4)
+textAutosizing=splitMetrics[3]==1;}}
+return new WebInspector.OverridesSupport.DeviceMetrics(width,height,deviceScaleFactor,textAutosizing);}
+WebInspector.OverridesSupport.DeviceMetrics.parseUserInput=function(widthString,heightString,deviceScaleFactorString,textAutosizing)
 {function isUserInputValid(value,isInteger)
 {if(!value)
 return true;return isInteger?/^[0]*[1-9][\d]*$/.test(value):/^[0]*([1-9][\d]*(\.\d+)?|\.\d+)$/.test(value);}
 if(!widthString^!heightString)
-return null;var isWidthValid=isUserInputValid(widthString,true);var isHeightValid=isUserInputValid(heightString,true);var isDeviceScaleFactorValid=isUserInputValid(deviceScaleFactorString,false);var isFontScaleFactorValid=isUserInputValid(fontScaleFactorString,false);if(!isWidthValid&&!isHeightValid&&!isDeviceScaleFactorValid&&!isFontScaleFactorValid)
-return null;var width=isWidthValid?parseInt(widthString||"0",10):-1;var height=isHeightValid?parseInt(heightString||"0",10):-1;var deviceScaleFactor=isDeviceScaleFactorValid?parseFloat(deviceScaleFactorString):-1;var fontScaleFactor=isFontScaleFactorValid?parseFloat(fontScaleFactorString):-1;return new WebInspector.OverridesSupport.DeviceMetrics(width,height,deviceScaleFactor,fontScaleFactor,textAutosizing);}
+return null;var isWidthValid=isUserInputValid(widthString,true);var isHeightValid=isUserInputValid(heightString,true);var isDeviceScaleFactorValid=isUserInputValid(deviceScaleFactorString,false);if(!isWidthValid&&!isHeightValid&&!isDeviceScaleFactorValid)
+return null;var width=isWidthValid?parseInt(widthString||"0",10):-1;var height=isHeightValid?parseInt(heightString||"0",10):-1;var deviceScaleFactor=isDeviceScaleFactorValid?parseFloat(deviceScaleFactorString):-1;return new WebInspector.OverridesSupport.DeviceMetrics(width,height,deviceScaleFactor,textAutosizing);}
 WebInspector.OverridesSupport.DeviceMetrics.prototype={isValid:function()
-{return this.isWidthValid()&&this.isHeightValid()&&this.isDeviceScaleFactorValid()&&this.isFontScaleFactorValid();},isWidthValid:function()
+{return this.isWidthValid()&&this.isHeightValid()&&this.isDeviceScaleFactorValid();},isWidthValid:function()
 {return this.width>=0;},isHeightValid:function()
 {return this.height>=0;},isDeviceScaleFactorValid:function()
-{return this.deviceScaleFactor>0;},isFontScaleFactorValid:function()
-{return this.fontScaleFactor>0;},isTextAutosizingValid:function()
-{return true;},toSetting:function()
+{return this.deviceScaleFactor>0;},toSetting:function()
 {if(!this.isValid())
-return"";return this.width&&this.height?this.width+"x"+this.height+"x"+this.deviceScaleFactor+"x"+this.fontScaleFactor+"x"+(this.textAutosizing?"1":"0"):"";},widthToInput:function()
+return"";return this.width&&this.height?this.width+"x"+this.height+"x"+this.deviceScaleFactor+"x"+(this.textAutosizing?"1":"0"):"";},widthToInput:function()
 {return this.isWidthValid()&&this.width?String(this.width):"";},heightToInput:function()
 {return this.isHeightValid()&&this.height?String(this.height):"";},deviceScaleFactorToInput:function()
-{return this.isDeviceScaleFactorValid()&&this.deviceScaleFactor?String(this.deviceScaleFactor):"";},fontScaleFactorToInput:function()
-{return this.isFontScaleFactorValid()&&this.fontScaleFactor?String(this.fontScaleFactor):"";}}
+{return this.isDeviceScaleFactorValid()&&this.deviceScaleFactor?String(this.deviceScaleFactor):"";},fontScaleFactor:function()
+{if(this.isValid()){var minWidth=Math.min(this.width,this.height)/this.deviceScaleFactor;var kMinFSM=1.05;var kWidthForMinFSM=320;var kMaxFSM=1.3;var kWidthForMaxFSM=800;if(minWidth<=kWidthForMinFSM)
+return kMinFSM;if(minWidth>=kWidthForMaxFSM)
+return kMaxFSM;var ratio=(minWidth-kWidthForMinFSM)/(kWidthForMaxFSM-kWidthForMinFSM);return ratio*(kMaxFSM-kMinFSM)+kMinFSM;}
+return 1;}}
 WebInspector.OverridesSupport.GeolocationPosition=function(latitude,longitude,error)
 {this.latitude=latitude;this.longitude=longitude;this.error=error;}
 WebInspector.OverridesSupport.GeolocationPosition.prototype={toSetting:function()
@@ -3947,33 +4060,33 @@
 WebInspector.OverridesSupport.DeviceOrientation.clearDeviceOrientationOverride=function()
 {PageAgent.clearDeviceOrientationOverride();}
 WebInspector.OverridesSupport.prototype={emulateDevice:function(deviceMetrics,userAgent)
-{this._deviceMetricsChangedListenerMuted=true;WebInspector.settings.deviceMetrics.set(deviceMetrics);WebInspector.settings.userAgent.set(userAgent);WebInspector.settings.overrideDeviceMetrics.set(true);WebInspector.settings.overrideUserAgent.set(true);WebInspector.settings.emulateTouchEvents.set(true);WebInspector.settings.emulateViewport.set(true);delete this._deviceMetricsChangedListenerMuted;this._deviceMetricsChanged();},reset:function()
-{this._deviceMetricsChangedListenerMuted=true;WebInspector.settings.overrideDeviceMetrics.set(false);WebInspector.settings.overrideUserAgent.set(false);WebInspector.settings.emulateTouchEvents.set(false);WebInspector.settings.overrideDeviceOrientation.set(false);WebInspector.settings.overrideGeolocation.set(false);WebInspector.settings.overrideCSSMedia.set(false);WebInspector.settings.emulateViewport.set(false);WebInspector.settings.deviceMetrics.set("");delete this._deviceMetricsChangedListenerMuted;this._deviceMetricsChanged();},applyInitialOverrides:function()
-{this._deviceMetricsChangedListenerMuted=true;this._userAgentChanged();this._deviceMetricsChanged();this._deviceOrientationChanged();this._geolocationPositionChanged();this._emulateTouchEventsChanged();this._cssMediaChanged();delete this._deviceMetricsChangedListenerMuted;this._deviceMetricsChanged();},_userAgentChanged:function()
-{if(WebInspector.isInspectingDevice())
-return;NetworkAgent.setUserAgentOverride(WebInspector.settings.overrideUserAgent.get()?WebInspector.settings.userAgent.get():"");},_deviceMetricsChanged:function()
+{this._deviceMetricsChangedListenerMuted=true;this._userAgentChangedListenerMuted=true;WebInspector.settings.deviceMetrics.set(deviceMetrics);WebInspector.settings.userAgent.set(userAgent);WebInspector.settings.overrideDeviceMetrics.set(true);WebInspector.settings.overrideUserAgent.set(true);WebInspector.settings.emulateTouchEvents.set(true);WebInspector.settings.emulateViewport.set(true);delete this._deviceMetricsChangedListenerMuted;delete this._userAgentChangedListenerMuted;this._deviceMetricsChanged();this._userAgentChanged();},reset:function()
+{this._deviceMetricsChangedListenerMuted=true;this._userAgentChangedListenerMuted=true;WebInspector.settings.overrideDeviceMetrics.set(false);WebInspector.settings.overrideUserAgent.set(false);WebInspector.settings.emulateTouchEvents.set(false);WebInspector.settings.overrideDeviceOrientation.set(false);WebInspector.settings.overrideGeolocation.set(false);WebInspector.settings.overrideCSSMedia.set(false);WebInspector.settings.emulateViewport.set(false);WebInspector.settings.deviceMetrics.set("");delete this._deviceMetricsChangedListenerMuted;delete this._userAgentChangedListenerMuted;this._deviceMetricsChanged();this._userAgentChanged();},applyInitialOverrides:function()
+{this._deviceMetricsChangedListenerMuted=true;this._userAgentChangedListenerMuted=true;this._userAgentChanged();this._deviceMetricsChanged();this._deviceOrientationChanged();this._geolocationPositionChanged();this._emulateTouchEventsChanged();this._cssMediaChanged();delete this._deviceMetricsChangedListenerMuted;delete this._userAgentChangedListenerMuted;this._deviceMetricsChanged();this._userAgentChanged();},_userAgentChanged:function()
+{if(WebInspector.isInspectingDevice()||this._userAgentChangedListenerMuted)
+return;var userAgent=WebInspector.settings.overrideUserAgent.get()?WebInspector.settings.userAgent.get():"";NetworkAgent.setUserAgentOverride(userAgent);this._updateUserAgentWarningMessage(this._userAgent!==userAgent?WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering."):"");this._userAgent=userAgent;},_deviceMetricsChanged:function()
 {if(this._deviceMetricsChangedListenerMuted)
 return;var metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(WebInspector.settings.overrideDeviceMetrics.get()?WebInspector.settings.deviceMetrics.get():"");if(!metrics.isValid())
-return;var dipWidth=Math.round(metrics.width/metrics.deviceScaleFactor);var dipHeight=Math.round(metrics.height/metrics.deviceScaleFactor);if(dipWidth&&dipHeight&&WebInspector.isInspectingDevice()){this._updateWarningMessage(WebInspector.UIString("Screen emulation on the device is not available."));return;}
-PageAgent.setDeviceMetricsOverride(dipWidth,dipHeight,metrics.deviceScaleFactor,WebInspector.settings.emulateViewport.get(),WebInspector.settings.deviceFitWindow.get(),metrics.textAutosizing,metrics.fontScaleFactor,apiCallback.bind(this));function apiCallback(error)
-{if(error){this._updateWarningMessage(WebInspector.UIString("Screen emulation is not available on this page."));return;}
-this._updateWarningMessage("");}
-this._revealOverridesTabIfNeeded();},_geolocationPositionChanged:function()
+return;var dipWidth=Math.round(metrics.width/metrics.deviceScaleFactor);var dipHeight=Math.round(metrics.height/metrics.deviceScaleFactor);if(dipWidth&&dipHeight&&WebInspector.isInspectingDevice()){this._updateDeviceMetricsWarningMessage(WebInspector.UIString("Screen emulation on the device is not available."));return;}
+PageAgent.setDeviceMetricsOverride(dipWidth,dipHeight,metrics.deviceScaleFactor,WebInspector.settings.emulateViewport.get(),WebInspector.settings.deviceFitWindow.get(),metrics.textAutosizing,metrics.fontScaleFactor(),apiCallback.bind(this));function apiCallback(error)
+{if(error){this._updateDeviceMetricsWarningMessage(WebInspector.UIString("Screen emulation is not available on this page."));return;}
+var metricsOverrideEnabled=!!(dipWidth&&dipHeight);var viewportEnabled=WebInspector.settings.emulateViewport.get();this._updateDeviceMetricsWarningMessage(this._deviceMetricsOverrideEnabled!==metricsOverrideEnabled||(metricsOverrideEnabled&&this._emulateViewportEnabled!=viewportEnabled)?WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering."):"");this._deviceMetricsOverrideEnabled=metricsOverrideEnabled;this._emulateViewportEnabled=viewportEnabled;this._deviceMetricsOverrideAppliedForTest();}},_deviceMetricsOverrideAppliedForTest:function()
+{},_geolocationPositionChanged:function()
 {if(!WebInspector.settings.overrideGeolocation.get()){PageAgent.clearGeolocationOverride();return;}
 var geolocation=WebInspector.OverridesSupport.GeolocationPosition.parseSetting(WebInspector.settings.geolocationOverride.get());if(geolocation.error)
 PageAgent.setGeolocationOverride();else
-PageAgent.setGeolocationOverride(geolocation.latitude,geolocation.longitude,150);this._revealOverridesTabIfNeeded();},_deviceOrientationChanged:function()
+PageAgent.setGeolocationOverride(geolocation.latitude,geolocation.longitude,150);},_deviceOrientationChanged:function()
 {if(!WebInspector.settings.overrideDeviceOrientation.get()){PageAgent.clearDeviceOrientationOverride();return;}
 if(WebInspector.isInspectingDevice())
-return;var deviceOrientation=WebInspector.OverridesSupport.DeviceOrientation.parseSetting(WebInspector.settings.deviceOrientationOverride.get());PageAgent.setDeviceOrientationOverride(deviceOrientation.alpha,deviceOrientation.beta,deviceOrientation.gamma);this._revealOverridesTabIfNeeded();},_emulateTouchEventsChanged:function()
+return;var deviceOrientation=WebInspector.OverridesSupport.DeviceOrientation.parseSetting(WebInspector.settings.deviceOrientationOverride.get());PageAgent.setDeviceOrientationOverride(deviceOrientation.alpha,deviceOrientation.beta,deviceOrientation.gamma);},_emulateTouchEventsChanged:function()
 {if(WebInspector.isInspectingDevice()&&WebInspector.settings.emulateTouchEvents.get())
-return;WebInspector.domAgent.emulateTouchEventObjects(WebInspector.settings.emulateTouchEvents.get());this._revealOverridesTabIfNeeded();},_cssMediaChanged:function()
-{PageAgent.setEmulatedMedia(WebInspector.settings.overrideCSSMedia.get()?WebInspector.settings.emulatedCSSMedia.get():"");WebInspector.cssModel.mediaQueryResultChanged();this._revealOverridesTabIfNeeded();},_anyOverrideIsEnabled:function()
-{return WebInspector.settings.overrideUserAgent.get()||WebInspector.settings.overrideDeviceMetrics.get()||WebInspector.settings.overrideGeolocation.get()||WebInspector.settings.overrideDeviceOrientation.get()||WebInspector.settings.emulateTouchEvents.get()||WebInspector.settings.overrideCSSMedia.get();},_revealOverridesTabIfNeeded:function()
-{if(this._anyOverrideIsEnabled()){if(!WebInspector.settings.showEmulationViewInDrawer.get())
-WebInspector.settings.showEmulationViewInDrawer.set(true);WebInspector.inspectorView.showViewInDrawer("emulation");}},_updateWarningMessage:function(warningMessage)
-{this._warningMessage=warningMessage;this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.OverridesWarningUpdated);},warningMessage:function()
-{return this._warningMessage||"";},__proto__:WebInspector.Object.prototype}
+return;WebInspector.domAgent.emulateTouchEventObjects(WebInspector.settings.emulateTouchEvents.get());},_cssMediaChanged:function()
+{PageAgent.setEmulatedMedia(WebInspector.settings.overrideCSSMedia.get()?WebInspector.settings.emulatedCSSMedia.get():"");WebInspector.cssModel.mediaQueryResultChanged();},hasActiveOverrides:function()
+{return WebInspector.settings.overrideUserAgent.get()||WebInspector.settings.overrideDeviceMetrics.get()||WebInspector.settings.overrideGeolocation.get()||WebInspector.settings.overrideDeviceOrientation.get()||WebInspector.settings.emulateTouchEvents.get()||WebInspector.settings.overrideCSSMedia.get();},_onMainFrameNavigated:function()
+{this._deviceMetricsChanged();this._updateUserAgentWarningMessage("");},_updateDeviceMetricsWarningMessage:function(warningMessage)
+{this._deviceMetricsWarningMessage=warningMessage;this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.OverridesWarningUpdated);},_updateUserAgentWarningMessage:function(warningMessage)
+{this._userAgentWarningMessage=warningMessage;this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.OverridesWarningUpdated);},warningMessage:function()
+{return this._deviceMetricsWarningMessage||this._userAgentWarningMessage||"";},__proto__:WebInspector.Object.prototype}
 WebInspector.overridesSupport;WebInspector.Database=function(model,id,domain,name,version)
 {this._model=model;this._id=id;this._domain=domain;this._name=name;this._version=version;}
 WebInspector.Database.prototype={get id()
@@ -4008,7 +4121,7 @@
 {this._model=model;}
 WebInspector.DatabaseDispatcher.prototype={addDatabase:function(payload)
 {this._model._addDatabase(new WebInspector.Database(this._model,payload.id,payload.domain,payload.name,payload.version));}}
-WebInspector.databaseModel=null;WebInspector.DOMStorage=function(securityOrigin,isLocalStorage)
+WebInspector.databaseModel;WebInspector.DOMStorage=function(securityOrigin,isLocalStorage)
 {this._securityOrigin=securityOrigin;this._isLocalStorage=isLocalStorage;}
 WebInspector.DOMStorage.storageId=function(securityOrigin,isLocalStorage)
 {return{securityOrigin:securityOrigin,isLocalStorage:isLocalStorage};}
@@ -4045,14 +4158,14 @@
 {this._model._domStorageItemRemoved(storageId,key);},domStorageItemAdded:function(storageId,key,value)
 {this._model._domStorageItemAdded(storageId,key,value);},domStorageItemUpdated:function(storageId,key,oldValue,value)
 {this._model._domStorageItemUpdated(storageId,key,oldValue,value);},}
-WebInspector.domStorageModel=null;WebInspector.DataGrid=function(columnsArray,editCallback,deleteCallback,refreshCallback,contextMenuCallback)
+WebInspector.domStorageModel;WebInspector.DataGrid=function(columnsArray,editCallback,deleteCallback,refreshCallback,contextMenuCallback)
 {WebInspector.View.call(this);this.registerRequiredCSS("dataGrid.css");this.element.className="data-grid";this.element.tabIndex=0;this.element.addEventListener("keydown",this._keyDown.bind(this),false);this._headerTable=document.createElement("table");this._headerTable.className="header";this._headerTableHeaders={};this._dataTable=document.createElement("table");this._dataTable.className="data";this._dataTable.addEventListener("mousedown",this._mouseDownInDataTable.bind(this),true);this._dataTable.addEventListener("click",this._clickInDataTable.bind(this),true);this._dataTable.addEventListener("contextmenu",this._contextMenuInDataTable.bind(this),true);if(editCallback)
 this._dataTable.addEventListener("dblclick",this._ondblclick.bind(this),false);this._editCallback=editCallback;this._deleteCallback=deleteCallback;this._refreshCallback=refreshCallback;this._contextMenuCallback=contextMenuCallback;this._scrollContainer=document.createElement("div");this._scrollContainer.className="data-container";this._scrollContainer.appendChild(this._dataTable);this.element.appendChild(this._headerTable);this.element.appendChild(this._scrollContainer);var headerRow=document.createElement("tr");var columnGroup=document.createElement("colgroup");columnGroup.span=columnsArray.length;var fillerRow=document.createElement("tr");fillerRow.className="filler";this._columnsArray=columnsArray;this.columns={};for(var i=0;i<columnsArray.length;++i){var column=columnsArray[i];column.ordinal=i;var columnIdentifier=column.identifier=column.id||i;this.columns[columnIdentifier]=column;if(column.disclosure)
 this.disclosureColumnIdentifier=columnIdentifier;var col=document.createElement("col");if(column.width)
 col.style.width=column.width;column.element=col;columnGroup.appendChild(col);var cell=document.createElement("th");cell.className=columnIdentifier+"-column";cell.columnIdentifier=columnIdentifier;this._headerTableHeaders[columnIdentifier]=cell;var div=document.createElement("div");if(column.titleDOMFragment)
 div.appendChild(column.titleDOMFragment);else
-div.textContent=column.title;cell.appendChild(div);if(column.sort){cell.addStyleClass("sort-"+column.sort);this._sortColumnCell=cell;}
-if(column.sortable){cell.addEventListener("click",this._clickInHeaderCell.bind(this),false);cell.addStyleClass("sortable");}
+div.textContent=column.title;cell.appendChild(div);if(column.sort){cell.classList.add("sort-"+column.sort);this._sortColumnCell=cell;}
+if(column.sortable){cell.addEventListener("click",this._clickInHeaderCell.bind(this),false);cell.classList.add("sortable");}
 headerRow.appendChild(cell);fillerRow.createChild("td",columnIdentifier+"-column");}
 headerRow.createChild("th","corner");fillerRow.createChild("td","corner");columnGroup.createChild("col","corner");this._headerTableColumnGroup=columnGroup;this._headerTable.appendChild(this._headerTableColumnGroup);this.headerTableBody.appendChild(headerRow);this._dataTableColumnGroup=columnGroup.cloneNode(true);this._dataTable.appendChild(this._dataTableColumnGroup);this.dataTableBody.appendChild(fillerRow);this.selectedNode=null;this.expandNodesWhenArrowing=false;this.setRootNode(new WebInspector.DataGridNode());this.indentWidth=15;this.resizers=[];this._columnWidthsInitialized=false;}
 WebInspector.DataGrid.ColumnDescriptor;WebInspector.DataGrid.Events={SelectedNode:"SelectedNode",DeselectedNode:"DeselectedNode",SortingChanged:"SortingChanged",ColumnsResized:"ColumnsResized"}
@@ -4064,7 +4177,7 @@
 columns.push({title:columnNames[i],width:columnNames[i].length,sortable:true});var nodes=[];for(var i=0;i<values.length/numColumns;++i){var data={};for(var j=0;j<columnNames.length;++j)
 data[j]=values[numColumns*i+j];var node=new WebInspector.DataGridNode(data,false);node.selectable=false;nodes.push(node);}
 var dataGrid=new WebInspector.DataGrid(columns);var length=nodes.length;for(var i=0;i<length;++i)
-dataGrid.rootNode().appendChild(nodes[i]);dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,sortDataGrid,this);function sortDataGrid()
+dataGrid.rootNode().appendChild(nodes[i]);dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,sortDataGrid);function sortDataGrid()
 {var nodes=dataGrid._rootNode.children.slice();var sortColumnIdentifier=dataGrid.sortColumnIdentifier();var sortDirection=dataGrid.isSortOrderAscending()?1:-1;var columnIsNumeric=true;for(var i=0;i<nodes.length;i++){var value=nodes[i].data[sortColumnIdentifier];value=value instanceof Node?Number(value.textContent):Number(value);if(isNaN(value)){columnIsNumeric=false;break;}}
 function comparator(dataGridNode1,dataGridNode2)
 {var item1=dataGridNode1.data[sortColumnIdentifier];var item2=dataGridNode2.data[sortColumnIdentifier];item1=item1 instanceof Node?item1.textContent:String(item1);item2=item2 instanceof Node?item2.textContent:String(item2);var comparison;if(columnIsNumeric){var number1=parseFloat(item1);var number2=parseFloat(item2);comparison=number1<number2?-1:(number1>number2?1:0);}else
@@ -4085,7 +4198,7 @@
 return;this._editingNode=this.creationNode;}
 if(this._editingNode.isCreationNode)
 return this._startEditingColumnOfDataGridNode(this._editingNode,this._nextEditableColumn(-1));this._editing=true;WebInspector.startEditing(element,this._startEditingConfig(element));window.getSelection().setBaseAndExtent(element,0,element,1);},renderInline:function()
-{this.element.addStyleClass("inline");},_startEditingConfig:function(element)
+{this.element.classList.add("inline");},_startEditingConfig:function(element)
 {return new WebInspector.EditingConfig(this._editingCommitted.bind(this),this._editingCancelled.bind(this),element.textContent);},_editingCommitted:function(element,newText,oldText,context,moveDirection)
 {var columnIdentifier=this.columnIdentifierFromNode(element);if(!columnIdentifier){this._editingCancelled(element);return;}
 var columnOrdinal=this.columns[columnIdentifier].ordinal;var textBeforeEditing=this._editingNode.data[columnIdentifier];var currentEditingNode=this._editingNode;function moveToNextIfNeeded(wasChange){if(!moveDirection)
@@ -4106,10 +4219,10 @@
 return-1;},sortColumnIdentifier:function()
 {if(!this._sortColumnCell)
 return null;return this._sortColumnCell.columnIdentifier;},sortOrder:function()
-{if(!this._sortColumnCell||this._sortColumnCell.hasStyleClass("sort-ascending"))
-return WebInspector.DataGrid.Order.Ascending;if(this._sortColumnCell.hasStyleClass("sort-descending"))
+{if(!this._sortColumnCell||this._sortColumnCell.classList.contains("sort-ascending"))
+return WebInspector.DataGrid.Order.Ascending;if(this._sortColumnCell.classList.contains("sort-descending"))
 return WebInspector.DataGrid.Order.Descending;return null;},isSortOrderAscending:function()
-{return!this._sortColumnCell||this._sortColumnCell.hasStyleClass("sort-ascending");},get headerTableBody()
+{return!this._sortColumnCell||this._sortColumnCell.classList.contains("sort-ascending");},get headerTableBody()
 {if("_headerTableBody"in this)
 return this._headerTableBody;this._headerTableBody=this._headerTable.getElementsByTagName("tbody")[0];if(!this._headerTableBody){this._headerTableBody=this.element.ownerDocument.createElement("tbody");this._headerTable.insertBefore(this._headerTableBody,this._headerTable.tFoot);}
 return this._headerTableBody;},get dataTableBody()
@@ -4158,7 +4271,7 @@
 {return this._scrollContainer;},isScrolledToLastRow:function()
 {return this._scrollContainer.isScrolledToBottom();},scrollToLastRow:function()
 {this._scrollContainer.scrollTop=this._scrollContainer.scrollHeight-this._scrollContainer.offsetHeight;},_positionResizers:function()
-{var headerTableColumns=this._headerTableColumnGroup.children;var numColumns=headerTableColumns.length-1;var left=0;var previousResizer=null;for(var i=0;i<numColumns-1;i++){var resizer=this.resizers[i];if(!resizer){resizer=document.createElement("div");resizer.addStyleClass("data-grid-resizer");WebInspector.installDragHandle(resizer,this._startResizerDragging.bind(this),this._resizerDragging.bind(this),this._endResizerDragging.bind(this),"col-resize");this.element.appendChild(resizer);this.resizers[i]=resizer;}
+{var headerTableColumns=this._headerTableColumnGroup.children;var numColumns=headerTableColumns.length-1;var left=0;var previousResizer=null;for(var i=0;i<numColumns-1;i++){var resizer=this.resizers[i];if(!resizer){resizer=document.createElement("div");resizer.classList.add("data-grid-resizer");WebInspector.installDragHandle(resizer,this._startResizerDragging.bind(this),this._resizerDragging.bind(this),this._endResizerDragging.bind(this),"col-resize");this.element.appendChild(resizer);this.resizers[i]=resizer;}
 left+=this.headerTableBody.rows[0].cells[i].offsetWidth;if(!this._columnsArray[i].hidden){resizer.style.removeProperty("display");if(resizer._position!==left){resizer._position=left;resizer.style.left=left+"px";}
 resizer.leftNeighboringColumnIndex=i;if(previousResizer)
 previousResizer.rightNeighboringColumnIndex=i;previousResizer=resizer;}else{if(previousResizer&&previousResizer._position!==left){previousResizer._position=left;previousResizer.style.left=left+"px";}
@@ -4194,12 +4307,12 @@
 if(nextSelectedNode){nextSelectedNode.reveal();nextSelectedNode.select();}},dataGridNodeFromNode:function(target)
 {var rowElement=target.enclosingNodeOrSelfWithNodeName("tr");return rowElement&&rowElement._dataGridNode;},columnIdentifierFromNode:function(target)
 {var cellElement=target.enclosingNodeOrSelfWithNodeName("td");return cellElement&&cellElement.columnIdentifier_;},_clickInHeaderCell:function(event)
-{var cell=event.target.enclosingNodeOrSelfWithNodeName("th");if(!cell||(typeof cell.columnIdentifier==="undefined")||!cell.hasStyleClass("sortable"))
+{var cell=event.target.enclosingNodeOrSelfWithNodeName("th");if(!cell||(typeof cell.columnIdentifier==="undefined")||!cell.classList.contains("sortable"))
 return;var sortOrder=WebInspector.DataGrid.Order.Ascending;if((cell===this._sortColumnCell)&&this.isSortOrderAscending())
 sortOrder=WebInspector.DataGrid.Order.Descending;if(this._sortColumnCell)
-this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");this._sortColumnCell=cell;cell.addStyleClass("sort-"+sortOrder);this.dispatchEventToListeners(WebInspector.DataGrid.Events.SortingChanged);},markColumnAsSortedBy:function(columnIdentifier,sortOrder)
+this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");this._sortColumnCell=cell;cell.classList.add("sort-"+sortOrder);this.dispatchEventToListeners(WebInspector.DataGrid.Events.SortingChanged);},markColumnAsSortedBy:function(columnIdentifier,sortOrder)
 {if(this._sortColumnCell)
-this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");this._sortColumnCell=this._headerTableHeaders[columnIdentifier];this._sortColumnCell.addStyleClass("sort-"+sortOrder);},headerTableHeader:function(columnIdentifier)
+this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");this._sortColumnCell=this._headerTableHeaders[columnIdentifier];this._sortColumnCell.classList.add("sort-"+sortOrder);},headerTableHeader:function(columnIdentifier)
 {return this._headerTableHeaders[columnIdentifier];},_mouseDownInDataTable:function(event)
 {var gridNode=this.dataGridNodeFromNode(event.target);if(!gridNode||!gridNode.selectable)
 return;if(gridNode.isEventWithinDisclosureTriangle(event))
@@ -4240,10 +4353,10 @@
 {if(this._element)
 return this._element;if(!this.dataGrid)
 return null;this._element=document.createElement("tr");this._element._dataGridNode=this;if(this.hasChildren)
-this._element.addStyleClass("parent");if(this.expanded)
-this._element.addStyleClass("expanded");if(this.selected)
-this._element.addStyleClass("selected");if(this.revealed)
-this._element.addStyleClass("revealed");this.createCells();this._element.createChild("td","corner");return this._element;},createCells:function()
+this._element.classList.add("parent");if(this.expanded)
+this._element.classList.add("expanded");if(this.selected)
+this._element.classList.add("selected");if(this.revealed)
+this._element.classList.add("revealed");this.createCells();this._element.createChild("td","corner");return this._element;},createCells:function()
 {var columnsArray=this.dataGrid._columnsArray;for(var i=0;i<columnsArray.length;++i){var cell=this.createCell(columnsArray[i].identifier);this._element.appendChild(cell);}},get data()
 {return this._data;},set data(x)
 {this._data=x||{};this.refresh();},get revealed()
@@ -4279,11 +4392,11 @@
 {if(!this._element||!this.dataGrid)
 return;this._element.removeChildren();this.createCells();this._element.createChild("td","corner");},createTD:function(columnIdentifier)
 {var cell=document.createElement("td");cell.className=columnIdentifier+"-column";cell.columnIdentifier_=columnIdentifier;var alignment=this.dataGrid.columns[columnIdentifier].align;if(alignment)
-cell.addStyleClass(alignment);return cell;},createCell:function(columnIdentifier)
+cell.classList.add(alignment);return cell;},createCell:function(columnIdentifier)
 {var cell=this.createTD(columnIdentifier);var data=this.data[columnIdentifier];var div=document.createElement("div");if(data instanceof Node)
 div.appendChild(data);else{div.textContent=data;if(this.dataGrid.columns[columnIdentifier].longText)
 div.title=data;}
-cell.appendChild(div);if(columnIdentifier===this.dataGrid.disclosureColumnIdentifier){cell.addStyleClass("disclosure");if(this.leftPadding)
+cell.appendChild(div);if(columnIdentifier===this.dataGrid.disclosureColumnIdentifier){cell.classList.add("disclosure");if(this.leftPadding)
 cell.style.setProperty("padding-left",this.leftPadding+"px");}
 return cell;},nodeHeight:function()
 {var rowHeight=16;if(!this.revealed)
@@ -4312,7 +4425,7 @@
 this.nextSibling=null;},collapse:function()
 {if(this._isRoot)
 return;if(this._element)
-this._element.removeStyleClass("expanded");this._expanded=false;for(var i=0;i<this.children.length;++i)
+this._element.classList.remove("expanded");this._expanded=false;for(var i=0;i<this.children.length;++i)
 this.children[i].revealed=false;},collapseRecursively:function()
 {var item=this;while(item){if(item.expanded)
 item.collapse();item=item.traverseNextNode(false,this,true);}},populate:function(){},expand:function()
@@ -4325,7 +4438,7 @@
 child.revealed=true;child._attach();}}
 delete this._shouldRefreshChildren;}
 if(this._element)
-this._element.addStyleClass("expanded");this._expanded=true;},expandRecursively:function()
+this._element.classList.add("expanded");this._expanded=true;},expandRecursively:function()
 {var item=this;while(item){item.expand();item=item.traverseNextNode(false,this);}},reveal:function()
 {if(this._isRoot)
 return;var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor._isRoot){if(!currentAncestor.expanded)
@@ -4334,13 +4447,13 @@
 {if(!this.dataGrid||!this.selectable||this.selected)
 return;if(this.dataGrid.selectedNode)
 this.dataGrid.selectedNode.deselect();this._selected=true;this.dataGrid.selectedNode=this;if(this._element)
-this._element.addStyleClass("selected");if(!supressSelectedEvent)
+this._element.classList.add("selected");if(!supressSelectedEvent)
 this.dataGrid.dispatchEventToListeners(WebInspector.DataGrid.Events.SelectedNode);},revealAndSelect:function()
 {if(this._isRoot)
 return;this.reveal();this.select();},deselect:function(supressDeselectedEvent)
 {if(!this.dataGrid||this.dataGrid.selectedNode!==this||!this.selected)
 return;this._selected=false;this.dataGrid.selectedNode=null;if(this._element)
-this._element.removeStyleClass("selected");if(!supressDeselectedEvent)
+this._element.classList.remove("selected");if(!supressDeselectedEvent)
 this.dataGrid.dispatchEventToListeners(WebInspector.DataGrid.Events.DeselectedNode);},traverseNextNode:function(skipHidden,stayWithin,dontPopulate,info)
 {if(!dontPopulate&&this.hasChildren)
 this.populate();if(info)
@@ -4359,7 +4472,7 @@
 return node;if(!this.parent||this.parent._isRoot)
 return null;return this.parent;},isEventWithinDisclosureTriangle:function(event)
 {if(!this.hasChildren)
-return false;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell.hasStyleClass("disclosure"))
+return false;var cell=event.target.enclosingNodeOrSelfWithNodeName("td");if(!cell.classList.contains("disclosure"))
 return false;var left=cell.totalOffsetLeft()+this.leftPadding;return event.pageX>=left&&event.pageX<=left+this.disclosureToggleWidth;},_attach:function()
 {if(!this.dataGrid||this._attached)
 return;this._attached=true;var nextNode=null;var previousNode=this.traversePreviousNode(true,true);if(previousNode&&previousNode.element.parentNode&&previousNode.element.nextSibling)
@@ -4388,7 +4501,7 @@
 {this._callback(this._startPosition,this._startPosition+this._chunkSize);},_showAll:function()
 {this._callback(this._startPosition,this._endPosition);},_showLastChunk:function()
 {this._callback(this._endPosition-this._chunkSize,this._endPosition);},_updateLabels:function()
-{var totalSize=this._endPosition-this._startPosition;if(totalSize>this._chunkSize){this.showNext.removeStyleClass("hidden");this.showLast.removeStyleClass("hidden");}else{this.showNext.addStyleClass("hidden");this.showLast.addStyleClass("hidden");}
+{var totalSize=this._endPosition-this._startPosition;if(totalSize>this._chunkSize){this.showNext.classList.remove("hidden");this.showLast.classList.remove("hidden");}else{this.showNext.classList.add("hidden");this.showLast.classList.add("hidden");}
 this.showAll.textContent=WebInspector.UIString("Show all %d",totalSize);},createCells:function()
 {var cell=document.createElement("td");if(this.depth)
 cell.style.setProperty("padding-left",(this.depth*this.dataGrid.indentWidth)+"px");cell.appendChild(this.showNext);cell.appendChild(this.showAll);cell.appendChild(this.showLast);this._element.appendChild(cell);var columns=this.dataGrid.columns;var count=0;for(var c in columns)
@@ -4412,7 +4525,7 @@
 {var node=this._dataGrid.selectedNode;return node?node.cookie:null;},clear:function(domain)
 {for(var i=0,length=this._data.length;i<length;++i){var cookies=this._data[i].cookies;for(var j=0,cookieCount=cookies.length;j<cookieCount;++j){if(!domain||cookies[j].domain()===domain)
 cookies[j].remove();}}},_rebuildTable:function()
-{var selectedCookie=this._nextSelectedCookie||this.selectedCookie();this._nextSelectedCookie=null;this._dataGrid.rootNode().removeChildren();for(var i=0;i<this._data.length;++i){var item=this._data[i];if(item.folderName){var groupData={name:item.folderName,value:"",domain:"",path:"",expires:"",size:this._totalSize(item.cookies),httpOnly:"",secure:""};var groupNode=new WebInspector.DataGridNode(groupData);groupNode.selectable=true;this._dataGrid.rootNode().appendChild(groupNode);groupNode.element.addStyleClass("row-group");this._populateNode(groupNode,item.cookies,selectedCookie);groupNode.expand();}else
+{var selectedCookie=this._nextSelectedCookie||this.selectedCookie();this._nextSelectedCookie=null;this._dataGrid.rootNode().removeChildren();for(var i=0;i<this._data.length;++i){var item=this._data[i];if(item.folderName){var groupData={name:item.folderName,value:"",domain:"",path:"",expires:"",size:this._totalSize(item.cookies),httpOnly:"",secure:""};var groupNode=new WebInspector.DataGridNode(groupData);groupNode.selectable=true;this._dataGrid.rootNode().appendChild(groupNode);groupNode.element.classList.add("row-group");this._populateNode(groupNode,item.cookies,selectedCookie);groupNode.expand();}else
 this._populateNode(this._dataGrid.rootNode(),item.cookies,selectedCookie);}},_populateNode:function(parentNode,cookies,selectedCookie)
 {parentNode.removeChildren();if(!cookies)
 return;this._sortCookies(cookies);for(var i=0;i<cookies.length;++i){var cookie=cookies[i];var cookieNode=this._createGridNode(cookie);parentNode.appendChild(cookieNode);if(selectedCookie&&selectedCookie.name()===cookie.name()&&selectedCookie.domain()===cookie.domain()&&selectedCookie.path()===cookie.path())
@@ -4441,7 +4554,7 @@
 {if(this._refreshCallback)
 this._refreshCallback();},__proto__:WebInspector.View.prototype}
 WebInspector.CookieItemsView=function(treeElement,cookieDomain)
-{WebInspector.View.call(this);this.element.addStyleClass("storage-view");this._deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this._deleteButton.visible=false;this._deleteButton.addEventListener("click",this._deleteButtonClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-storage-status-bar-item");this._clearButton.visible=false;this._clearButton.addEventListener("click",this._clearButtonClicked,this);this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.addEventListener("click",this._refreshButtonClicked,this);this._treeElement=treeElement;this._cookieDomain=cookieDomain;this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("This site has no cookies."));this._emptyView.show(this.element);this.element.addEventListener("contextmenu",this._contextMenu.bind(this),true);}
+{WebInspector.View.call(this);this.element.classList.add("storage-view");this._deleteButton=new WebInspector.StatusBarButton(WebInspector.UIString("Delete"),"delete-storage-status-bar-item");this._deleteButton.visible=false;this._deleteButton.addEventListener("click",this._deleteButtonClicked,this);this._clearButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear"),"clear-storage-status-bar-item");this._clearButton.visible=false;this._clearButton.addEventListener("click",this._clearButtonClicked,this);this._refreshButton=new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"),"refresh-storage-status-bar-item");this._refreshButton.addEventListener("click",this._refreshButtonClicked,this);this._treeElement=treeElement;this._cookieDomain=cookieDomain;this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("This site has no cookies."));this._emptyView.show(this.element);this.element.addEventListener("contextmenu",this._contextMenu.bind(this),true);}
 WebInspector.CookieItemsView.prototype={get statusBarItems()
 {return[this._refreshButton.element,this._clearButton.element,this._deleteButton.element];},wasShown:function()
 {this._update();},willHide:function()
@@ -4577,7 +4690,7 @@
 WebInspector.Spectrum=function()
 {WebInspector.View.call(this);this.registerRequiredCSS("spectrum.css");this.element.className="spectrum-container";this.element.tabIndex=0;var topElement=this.element.createChild("div","spectrum-top");topElement.createChild("div","spectrum-fill");var topInnerElement=topElement.createChild("div","spectrum-top-inner fill");this._draggerElement=topInnerElement.createChild("div","spectrum-color");this._dragHelperElement=this._draggerElement.createChild("div","spectrum-sat fill").createChild("div","spectrum-val fill").createChild("div","spectrum-dragger");this._sliderElement=topInnerElement.createChild("div","spectrum-hue");this.slideHelper=this._sliderElement.createChild("div","spectrum-slider");var rangeContainer=this.element.createChild("div","spectrum-range-container");var alphaLabel=rangeContainer.createChild("label");alphaLabel.textContent=WebInspector.UIString("\u03B1:");this._alphaElement=rangeContainer.createChild("input","spectrum-range");this._alphaElement.setAttribute("type","range");this._alphaElement.setAttribute("min","0");this._alphaElement.setAttribute("max","100");this._alphaElement.addEventListener("change",alphaDrag.bind(this),false);var swatchElement=document.createElement("span");swatchElement.className="swatch";this._swatchInnerElement=swatchElement.createChild("span","swatch-inner");var displayContainer=this.element.createChild("div");displayContainer.appendChild(swatchElement);this._displayElement=displayContainer.createChild("span","source-code spectrum-display-value");WebInspector.Spectrum.draggable(this._sliderElement,hueDrag.bind(this));WebInspector.Spectrum.draggable(this._draggerElement,colorDrag.bind(this),colorDragStart.bind(this));function hueDrag(element,dragX,dragY)
 {this._hsv[0]=(this.slideHeight-dragY)/this.slideHeight;this._onchange();}
-var initialHelperOffset;function colorDragStart(element,dragX,dragY)
+var initialHelperOffset;function colorDragStart()
 {initialHelperOffset={x:this._dragHelperElement.offsetLeft,y:this._dragHelperElement.offsetTop};}
 function colorDrag(element,dragX,dragY,event)
 {if(event.shiftKey){if(Math.abs(dragX-initialHelperOffset.x)>=Math.abs(dragY-initialHelperOffset.y))
@@ -4589,14 +4702,13 @@
 {e.consume(true);}
 function move(e)
 {if(dragging){var dragX=Math.max(0,Math.min(e.pageX-offset.left+scrollOffset.left,maxWidth));var dragY=Math.max(0,Math.min(e.pageY-offset.top+scrollOffset.top,maxHeight));if(onmove)
-onmove(element,dragX,dragY,e);}}
+onmove(element,dragX,dragY,(e));}}
 function start(e)
-{var rightClick=e.which?(e.which===3):(e.button===2);if(!rightClick&&!dragging){if(onstart)
-onstart(element,e)
-dragging=true;maxHeight=element.clientHeight;maxWidth=element.clientWidth;scrollOffset=element.scrollOffset();offset=element.totalOffset();doc.addEventListener("selectstart",consume,false);doc.addEventListener("dragstart",consume,false);doc.addEventListener("mousemove",move,false);doc.addEventListener("mouseup",stop,false);move(e);consume(e);}}
+{var mouseEvent=(e);var rightClick=mouseEvent.which?(mouseEvent.which===3):(mouseEvent.button===2);if(!rightClick&&!dragging){if(onstart)
+onstart(element,mouseEvent);dragging=true;maxHeight=element.clientHeight;maxWidth=element.clientWidth;scrollOffset=element.scrollOffset();offset=element.totalOffset();doc.addEventListener("selectstart",consume,false);doc.addEventListener("dragstart",consume,false);doc.addEventListener("mousemove",move,false);doc.addEventListener("mouseup",stop,false);move(mouseEvent);consume(mouseEvent);}}
 function stop(e)
 {if(dragging){doc.removeEventListener("selectstart",consume,false);doc.removeEventListener("dragstart",consume,false);doc.removeEventListener("mousemove",move,false);doc.removeEventListener("mouseup",stop,false);if(onstop)
-onstop(element,e);}
+onstop(element,(e));}
 dragging=false;}
 element.addEventListener("mousedown",start,false);};WebInspector.Spectrum.prototype={setColor:function(color)
 {this._hsv=color.hsva();},color:function()
@@ -4628,8 +4740,8 @@
 return;this._popover.hide();document.removeEventListener("mousedown",this._hideProxy,false);window.removeEventListener("blur",this._hideProxy,false);this.dispatchEventToListeners(WebInspector.SpectrumPopupHelper.Events.Hidden,!!commitEdit);WebInspector.setCurrentFocusElement(this._previousFocusElement);delete this._previousFocusElement;delete this._anchorElement;},_onKeyDown:function(event)
 {if(event.keyIdentifier==="Enter"){this.hide(true);event.consume(true);return;}
 if(event.keyIdentifier==="U+001B"){this.hide(false);event.consume(true);}},__proto__:WebInspector.Object.prototype}
-WebInspector.ColorSwatch=function()
-{this.element=document.createElement("span");this._swatchInnerElement=this.element.createChild("span","swatch-inner");this.element.title=WebInspector.UIString("Click to open a colorpicker. Shift-click to change color format");this.element.className="swatch";this.element.addEventListener("mousedown",consumeEvent,false);this.element.addEventListener("dblclick",consumeEvent,false);}
+WebInspector.ColorSwatch=function(readOnly)
+{this.element=document.createElement("span");this._swatchInnerElement=this.element.createChild("span","swatch-inner");var shiftClickMessage=WebInspector.UIString("Shift-click to change color format.");this.element.title=readOnly?shiftClickMessage:String.sprintf("%s\n%s",WebInspector.UIString("Click to open a colorpicker."),shiftClickMessage);this.element.className="swatch";this.element.addEventListener("mousedown",consumeEvent,false);this.element.addEventListener("dblclick",consumeEvent,false);}
 WebInspector.ColorSwatch.prototype={setColorString:function(colorString)
 {this._swatchInnerElement.style.backgroundColor=colorString;}}
 WebInspector.SidebarPane=function(title)
@@ -4648,10 +4760,10 @@
 WebInspector.SidebarPaneTitle=function(container,pane)
 {this._pane=pane;this.element=container.createChild("div","sidebar-pane-title");this.element.textContent=pane.title();this.element.tabIndex=0;this.element.addEventListener("click",this._toggleExpanded.bind(this),false);this.element.addEventListener("keydown",this._onTitleKeyDown.bind(this),false);this.element.appendChild(this._pane.titleElement);this._pane.setExpandCallback(this._expand.bind(this));}
 WebInspector.SidebarPaneTitle.prototype={_expand:function()
-{this.element.addStyleClass("expanded");this._pane.show(this.element.parentNode,this.element.nextSibling);},_collapse:function()
-{this.element.removeStyleClass("expanded");if(this._pane.element.parentNode==this.element.parentNode)
+{this.element.classList.add("expanded");this._pane.show(this.element.parentNode,this.element.nextSibling);},_collapse:function()
+{this.element.classList.remove("expanded");if(this._pane.element.parentNode==this.element.parentNode)
 this._pane.detach();},_toggleExpanded:function()
-{if(this.element.hasStyleClass("expanded"))
+{if(this.element.classList.contains("expanded"))
 this._collapse();else
 this._pane.expand();},_onTitleKeyDown:function(event)
 {if(isEnterKey(event)||event.keyCode===WebInspector.KeyboardShortcut.Keys.Space.code)
@@ -4661,7 +4773,7 @@
 WebInspector.SidebarPaneStack.prototype={addPane:function(pane)
 {new WebInspector.SidebarPaneTitle(this.element,pane);},__proto__:WebInspector.View.prototype}
 WebInspector.SidebarTabbedPane=function()
-{WebInspector.TabbedPane.call(this);this.setRetainTabsOrder(true);this.element.addStyleClass("sidebar-tabbed-pane");this.registerRequiredCSS("sidebarPane.css");}
+{WebInspector.TabbedPane.call(this);this.setRetainTabOrder(true);this.element.classList.add("sidebar-tabbed-pane");this.registerRequiredCSS("sidebarPane.css");}
 WebInspector.SidebarTabbedPane.prototype={addPane:function(pane)
 {var title=pane.title();this.appendTab(title,title,pane);pane.element.appendChild(pane.titleElement);pane.setExpandCallback(this.selectTab.bind(this,title));},__proto__:WebInspector.TabbedPane.prototype}
 WebInspector.ElementsTreeOutline=function(omitRootDOMNode,selectEnabled,contextMenuCallback,setPseudoClassCallback)
@@ -4738,7 +4850,7 @@
 return false;var treeElement=this._treeElementFromEvent(event);if(!this._isValidDragSourceOrTarget(treeElement))
 return false;var node=treeElement._node;while(node){if(node===this._treeElementBeingDragged._node)
 return false;node=node.parentNode;}
-treeElement.updateSelection();treeElement.listItemElement.addStyleClass("elements-drag-over");this._dragOverTreeElement=treeElement;event.preventDefault();event.dataTransfer.dropEffect='move';return false;},_ondragleave:function(event)
+treeElement.updateSelection();treeElement.listItemElement.classList.add("elements-drag-over");this._dragOverTreeElement=treeElement;event.preventDefault();event.dataTransfer.dropEffect='move';return false;},_ondragleave:function(event)
 {this._clearDragOverTreeElementMarker();event.preventDefault();return false;},_isValidDragSourceOrTarget:function(treeElement)
 {if(!treeElement)
 return false;var node=treeElement.representedObject;if(!(node instanceof WebInspector.DOMNode))
@@ -4750,13 +4862,13 @@
 return;var parentNode;var anchorNode;if(treeElement._elementCloseTag){parentNode=treeElement._node;}else{var dragTargetNode=treeElement._node;parentNode=dragTargetNode.parentNode;anchorNode=dragTargetNode;}
 var wasExpanded=this._treeElementBeingDragged.expanded;this._treeElementBeingDragged._node.moveTo(parentNode,anchorNode,this._selectNodeAfterEdit.bind(this,wasExpanded));delete this._treeElementBeingDragged;},_ondragend:function(event)
 {event.preventDefault();this._clearDragOverTreeElementMarker();delete this._treeElementBeingDragged;},_clearDragOverTreeElementMarker:function()
-{if(this._dragOverTreeElement){this._dragOverTreeElement.updateSelection();this._dragOverTreeElement.listItemElement.removeStyleClass("elements-drag-over");delete this._dragOverTreeElement;}},_onkeydown:function(event)
-{var keyboardEvent=(event);var node=this.selectedDOMNode();var treeElement=this.getCachedTreeElement(node);if(!treeElement)
+{if(this._dragOverTreeElement){this._dragOverTreeElement.updateSelection();this._dragOverTreeElement.listItemElement.classList.remove("elements-drag-over");delete this._dragOverTreeElement;}},_onkeydown:function(event)
+{var keyboardEvent=(event);var node=(this.selectedDOMNode());console.assert(node);var treeElement=this.getCachedTreeElement(node);if(!treeElement)
 return;if(!treeElement._editing&&WebInspector.KeyboardShortcut.hasNoModifiers(keyboardEvent)&&keyboardEvent.keyCode===WebInspector.KeyboardShortcut.Keys.H.code){this._toggleHideShortcut(node);event.consume(true);return;}},_contextMenuEventFired:function(event)
 {var treeElement=this._treeElementFromEvent(event);if(!treeElement)
 return;var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(treeElement._node);contextMenu.show();},populateContextMenu:function(contextMenu,event)
 {var treeElement=this._treeElementFromEvent(event);if(!treeElement)
-return;var isPseudoElement=!!treeElement._node.pseudoType();var isTag=treeElement._node.nodeType()===Node.ELEMENT_NODE&&!isPseudoElement;var textNode=event.target.enclosingNodeOrSelfWithClass("webkit-html-text-node");if(textNode&&textNode.hasStyleClass("bogus"))
+return;var isPseudoElement=!!treeElement._node.pseudoType();var isTag=treeElement._node.nodeType()===Node.ELEMENT_NODE&&!isPseudoElement;var textNode=event.target.enclosingNodeOrSelfWithClass("webkit-html-text-node");if(textNode&&textNode.classList.contains("bogus"))
 textNode=null;var commentNode=event.target.enclosingNodeOrSelfWithClass("webkit-html-comment");contextMenu.appendApplicableItems(event.target);if(textNode){contextMenu.appendSeparator();treeElement._populateTextContextMenu(contextMenu,textNode);}else if(isTag){contextMenu.appendSeparator();treeElement._populateTagContextMenu(contextMenu,event);}else if(commentNode){contextMenu.appendSeparator();treeElement._populateNodeContextMenu(contextMenu,textNode);}else if(isPseudoElement){treeElement._populateScrollIntoView(contextMenu);}},_updateModifiedNodes:function()
 {if(this._elementsTreeUpdater)
 this._elementsTreeUpdater._updateModifiedNodes();},_populateContextMenu:function(contextMenu,node)
@@ -4775,13 +4887,14 @@
 return;this.selectDOMNode(newNode,true);var newTreeItem=this.findTreeElement(newNode);if(wasExpanded){if(newTreeItem)
 newTreeItem.expand();}
 return newTreeItem;},_toggleHideShortcut:function(node,userCallback)
-{function resolvedNode(object)
+{var pseudoType=node.pseudoType();var effectiveNode=pseudoType?node.parentNode:node;if(!effectiveNode)
+return;function resolvedNode(object)
 {if(!object)
-return;function toggleClassAndInjectStyleRule()
-{const className="__web-inspector-hide-shortcut__";const styleTagId="__web-inspector-hide-shortcut-style__";const styleRule=".__web-inspector-hide-shortcut__, .__web-inspector-hide-shortcut__ * { visibility: hidden !important; }";this.classList.toggle(className);var style=document.head.querySelector("style#"+styleTagId);if(style)
-return;style=document.createElement("style");style.id=styleTagId;style.type="text/css";style.innerHTML=styleRule;document.head.appendChild(style);}
-object.callFunction(toggleClassAndInjectStyleRule,undefined,userCallback);object.release();}
-WebInspector.RemoteObject.resolveNode(node,"",resolvedNode);},__proto__:TreeOutline.prototype}
+return;function toggleClassAndInjectStyleRule(pseudoType)
+{const classNamePrefix="__web-inspector-hide";const classNameSuffix="-shortcut__";const styleTagId="__web-inspector-hide-shortcut-style__";const styleRules=".__web-inspector-hide-shortcut__, .__web-inspector-hide-shortcut__ * { visibility: hidden !important; } .__web-inspector-hidebefore-shortcut__::before { visibility: hidden !important; } .__web-inspector-hideafter-shortcut__::after { visibility: hidden !important; }";var className=classNamePrefix+(pseudoType||"")+classNameSuffix;this.classList.toggle(className);var style=document.head.querySelector("style#"+styleTagId);if(style)
+return;style=document.createElement("style");style.id=styleTagId;style.type="text/css";style.textContent=styleRules;document.head.appendChild(style);}
+object.callFunction(toggleClassAndInjectStyleRule,[{value:pseudoType}],userCallback);object.release();}
+WebInspector.RemoteObject.resolveNode(effectiveNode,"",resolvedNode);},__proto__:TreeOutline.prototype}
 WebInspector.ElementsTreeOutline.showShadowDOM=function()
 {return WebInspector.settings.showShadowDOM.get()||WebInspector.ElementsTreeOutline["showShadowDOMForTest"];}
 WebInspector.ElementsTreeOutline.ElementDecorator=function()
@@ -4798,7 +4911,7 @@
 {if(node.nodeType()!==Node.ELEMENT_NODE)
 return null;var descendantCount=node.descendantUserPropertyCount(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);if(!descendantCount)
 return null;if(descendantCount===1)
-return WebInspector.UIString("%d descendant with forced state",descendantCount);return WebInspector.UIString("%d descendants with forced state",descendantCount);},__proto__:WebInspector.ElementsTreeOutline.ElementDecorator.prototype}
+return WebInspector.UIString("%d descendant with forced state",descendantCount);return WebInspector.UIString("%d descendants with forced state",descendantCount);}}
 WebInspector.ElementsTreeElement=function(node,elementCloseTag)
 {TreeElement.call(this,"",node);this._node=node;this._elementCloseTag=elementCloseTag;this._updateHasChildren();if(this._node.nodeType()==Node.ELEMENT_NODE&&!elementCloseTag)
 this._canAddAttributes=true;this._searchQuery=null;this._expandedChildrenLimit=WebInspector.ElementsTreeElement.InitialChildrenLimit;}
@@ -4816,7 +4929,7 @@
 updateEntryHide(this._highlightResult[i]);}},get hovered()
 {return this._hovered;},set hovered(x)
 {if(this._hovered===x)
-return;this._hovered=x;if(this.listItemElement){if(x){this.updateSelection();this.listItemElement.addStyleClass("hovered");}else{this.listItemElement.removeStyleClass("hovered");}}},get expandedChildrenLimit()
+return;this._hovered=x;if(this.listItemElement){if(x){this.updateSelection();this.listItemElement.classList.add("hovered");}else{this.listItemElement.classList.remove("hovered");}}},get expandedChildrenLimit()
 {return this._expandedChildrenLimit;},set expandedChildrenLimit(x)
 {if(this._expandedChildrenLimit===x)
 return;this._expandedChildrenLimit=x;if(this.treeOutline&&!this._updateChildrenInProgress)
@@ -4833,7 +4946,7 @@
 this._readyToUpdateSelection=true;else{return;}}
 if(!this.selectionElement){this.selectionElement=document.createElement("div");this.selectionElement.className="selection selected";listItemElement.insertBefore(this.selectionElement,listItemElement.firstChild);}
 this.selectionElement.style.height=listItemElement.offsetHeight+"px";},onattach:function()
-{if(this._hovered){this.updateSelection();this.listItemElement.addStyleClass("hovered");}
+{if(this._hovered){this.updateSelection();this.listItemElement.classList.add("hovered");}
 this.updateTitle();this._preventFollowingLinksOnDoubleClick();this.listItemElement.draggable=true;},_preventFollowingLinksOnDoubleClick:function()
 {var links=this.listItemElement.querySelectorAll("li > .webkit-html-tag > .webkit-html-attribute > .webkit-html-external-link, li > .webkit-html-tag > .webkit-html-attribute > .webkit-html-resource-link");if(!links)
 return;for(var i=0;i<links.length;++i)
@@ -4888,9 +5001,9 @@
 if(event.detail>=2)
 event.preventDefault();},ondblclick:function(event)
 {if(this._editing||this._elementCloseTag)
-return;if(this._startEditingTarget(event.target))
-return;if(this.hasChildren&&!this.expanded)
-this.expand();},_insertInLastAttributePosition:function(tag,node)
+return false;if(this._startEditingTarget(event.target))
+return false;if(this.hasChildren&&!this.expanded)
+this.expand();return false;},_insertInLastAttributePosition:function(tag,node)
 {if(tag.getElementsByClassName("webkit-html-attribute").length>0)
 tag.insertBefore(node,tag.lastChild);else{var nodeName=tag.textContent.match(/^<(.*?)>$/)[1];tag.textContent='';tag.appendChild(document.createTextNode('<'+nodeName));tag.appendChild(node);tag.appendChild(document.createTextNode('>'));}
 this.updateSelection();},_startEditingTarget:function(eventTarget)
@@ -4907,15 +5020,16 @@
 {contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Scroll into view":"Scroll into View"),this._scrollIntoView.bind(this));},_populateForcedPseudoStateItems:function(subMenu)
 {const pseudoClasses=["active","hover","focus","visited"];var node=this._node;var forcedPseudoState=(node?node.getUserProperty("pseudoState"):null)||[];for(var i=0;i<pseudoClasses.length;++i){var pseudoClassForced=forcedPseudoState.indexOf(pseudoClasses[i])>=0;subMenu.appendCheckboxItem(":"+pseudoClasses[i],this.treeOutline._setPseudoClassCallback.bind(null,node.id,pseudoClasses[i],!pseudoClassForced),pseudoClassForced,false);}},_populateTextContextMenu:function(contextMenu,textNode)
 {contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Edit text":"Edit Text"),this._startEditingTextNode.bind(this,textNode));this._populateNodeContextMenu(contextMenu);},_populateNodeContextMenu:function(contextMenu)
-{var openTagElement=this.treeOutline.getCachedTreeElement(this.representedObject)||this;contextMenu.appendItem(WebInspector.UIString("Edit as HTML"),openTagElement._editAsHTML.bind(openTagElement));contextMenu.appendItem(WebInspector.UIString("Copy as HTML"),this._copyHTML.bind(this));contextMenu.appendItem(WebInspector.UIString("Copy XPath"),this._copyXPath.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Delete node":"Delete Node"),this.remove.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Inspect DOM properties":"Inspect DOM Properties"),this._inspectDOMProperties.bind(this));},_startEditing:function()
+{var openTagElement=this.treeOutline.getCachedTreeElement(this.representedObject)||this;contextMenu.appendItem(WebInspector.UIString("Edit as HTML"),openTagElement._editAsHTML.bind(openTagElement));contextMenu.appendItem(WebInspector.UIString("Copy as HTML"),this._copyHTML.bind(this));if(this.representedObject.nodeType()===Node.ELEMENT_NODE)
+contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy CSS path":"Copy CSS Path"),this._copyCSSPath.bind(this));contextMenu.appendItem(WebInspector.UIString("Copy XPath"),this._copyXPath.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Delete node":"Delete Node"),this.remove.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Inspect DOM properties":"Inspect DOM Properties"),this._inspectDOMProperties.bind(this));},_startEditing:function()
 {if(this.treeOutline.selectedDOMNode()!==this._node)
 return;var listItem=this._listItemNode;if(this._canAddAttributes){var attribute=listItem.getElementsByClassName("webkit-html-attribute")[0];if(attribute)
 return this._startEditingAttribute(attribute,attribute.getElementsByClassName("webkit-html-attribute-value")[0]);return this._addNewAttribute();}
 if(this._node.nodeType()===Node.TEXT_NODE){var textNode=listItem.getElementsByClassName("webkit-html-text-node")[0];if(textNode)
 return this._startEditingTextNode(textNode);return;}},_addNewAttribute:function()
-{var container=document.createElement("span");this._buildAttributeDOM(container," ","");var attr=container.firstChild;attr.style.marginLeft="2px";attr.style.marginRight="2px";var tag=this.listItemElement.getElementsByClassName("webkit-html-tag")[0];this._insertInLastAttributePosition(tag,attr);attr.scrollIntoViewIfNeeded(true);return this._startEditingAttribute(attr,attr);},_triggerEditAttribute:function(attributeName)
+{var container=document.createElement("span");this._buildAttributeDOM(container," ","");var attr=container.firstElementChild;attr.style.marginLeft="2px";attr.style.marginRight="2px";var tag=this.listItemElement.getElementsByClassName("webkit-html-tag")[0];this._insertInLastAttributePosition(tag,attr);attr.scrollIntoViewIfNeeded(true);return this._startEditingAttribute(attr,attr);},_triggerEditAttribute:function(attributeName)
 {var attributeElements=this.listItemElement.getElementsByClassName("webkit-html-attribute-name");for(var i=0,len=attributeElements.length;i<len;++i){if(attributeElements[i].textContent===attributeName){for(var elem=attributeElements[i].nextSibling;elem;elem=elem.nextSibling){if(elem.nodeType!==Node.ELEMENT_NODE)
-continue;if(elem.hasStyleClass("webkit-html-attribute-value"))
+continue;if(elem.classList.contains("webkit-html-attribute-value"))
 return this._startEditingAttribute(elem.parentNode,elem);}}}},_startEditingAttribute:function(attribute,elementForSelection)
 {if(WebInspector.isBeingEdited(attribute))
 return true;var attributeNameElement=attribute.getElementsByClassName("webkit-html-attribute-name")[0];if(!attributeNameElement)
@@ -4953,7 +5067,7 @@
 return;function consume(event)
 {if(event.eventPhase===Event.AT_TARGET)
 event.consume(true);}
-initialValue=this._convertWhitespaceToEntities(initialValue);this._htmlEditElement=document.createElement("div");this._htmlEditElement.className="source-code elements-tree-editor";var child=this.listItemElement.firstChild;while(child){child.style.display="none";child=child.nextSibling;}
+initialValue=this._convertWhitespaceToEntities(initialValue).text;this._htmlEditElement=document.createElement("div");this._htmlEditElement.className="source-code elements-tree-editor";var child=this.listItemElement.firstChild;while(child){child.style.display="none";child=child.nextSibling;}
 if(this._childrenListNode)
 this._childrenListNode.style.display="none";this.listItemElement.appendChild(this._htmlEditElement);this.treeOutline.childrenListElement.parentElement.addEventListener("mousedown",consume,false);this.updateSelection();function commit(element,newValue)
 {commitCallback(initialValue,newValue);dispose.call(this);}
@@ -5001,7 +5115,8 @@
 var tags=this.listItemElement.getElementsByClassName("webkit-html-tag");return(tags.length===1?null:tags[tags.length-1]);},updateTitle:function(onlySearchQueryChanged)
 {if(this._editing)
 return;if(onlySearchQueryChanged){if(this._highlightResult)
-this._updateSearchHighlight(false);}else{var highlightElement=document.createElement("span");highlightElement.className="highlight";highlightElement.appendChild(this._nodeTitleInfo(WebInspector.linkifyURLAsNode).titleDOM);this.title=highlightElement;this._updateDecorations();delete this._highlightResult;}
+this._updateSearchHighlight(false);}else{var nodeInfo=this._nodeTitleInfo(WebInspector.linkifyURLAsNode);if(nodeInfo.shadowRoot)
+this.listItemElement.classList.add("shadow-root");var highlightElement=document.createElement("span");highlightElement.className="highlight";highlightElement.appendChild(nodeInfo.titleDOM);this.title=highlightElement;this._updateDecorations();delete this._highlightResult;}
 delete this.selectionElement;if(this.selected)
 this.updateSelection();this._preventFollowingLinksOnDoubleClick();this._highlightSearchResults();},_createDecoratorElement:function()
 {var node=this._node;var decoratorMessages=[];var parentDecoratorMessages=[];for(var i=0;i<this.treeOutline._nodeDecorators.length;++i){var decorator=this.treeOutline._nodeDecorators[i];var message=decorator.decorate(node);if(message){decoratorMessages.push(message);continue;}
@@ -5009,35 +5124,41 @@
 continue;message=decorator.decorateAncestor(node);if(message)
 parentDecoratorMessages.push(message)}
 if(!decoratorMessages.length&&!parentDecoratorMessages.length)
-return null;var decoratorElement=document.createElement("div");decoratorElement.addStyleClass("elements-gutter-decoration");if(!decoratorMessages.length)
-decoratorElement.addStyleClass("elements-has-decorated-children");decoratorElement.title=decoratorMessages.concat(parentDecoratorMessages).join("\n");return decoratorElement;},_updateDecorations:function()
+return null;var decoratorElement=document.createElement("div");decoratorElement.classList.add("elements-gutter-decoration");if(!decoratorMessages.length)
+decoratorElement.classList.add("elements-has-decorated-children");decoratorElement.title=decoratorMessages.concat(parentDecoratorMessages).join("\n");return decoratorElement;},_updateDecorations:function()
 {if(this._decoratorElement)
 this._decoratorElement.remove();this._decoratorElement=this._createDecoratorElement();if(this._decoratorElement&&this.listItemElement)
-this.listItemElement.insertBefore(this._decoratorElement,this.listItemElement.firstChild);},_buildAttributeDOM:function(parentElement,name,value,node,linkify)
-{var hasText=(value.length>0);var attrSpanElement=parentElement.createChild("span","webkit-html-attribute");var attrNameElement=attrSpanElement.createChild("span","webkit-html-attribute-name");attrNameElement.textContent=name;if(hasText)
-attrSpanElement.appendChild(document.createTextNode("=\u200B\""));if(linkify&&(name==="src"||name==="href")){var rewrittenHref=node.resolveURL(value);value=value.replace(/([\/;:\)\]\}])/g,"$1\u200B");if(rewrittenHref===null){var attrValueElement=attrSpanElement.createChild("span","webkit-html-attribute-value");attrValueElement.textContent=value;}else{if(value.startsWith("data:"))
-value=value.trimMiddle(60);attrSpanElement.appendChild(linkify(rewrittenHref,value,"webkit-html-attribute-value",node.nodeName().toLowerCase()==="a"));}}else{value=value.replace(/([\/;:\)\]\}])/g,"$1\u200B");var attrValueElement=attrSpanElement.createChild("span","webkit-html-attribute-value");attrValueElement.textContent=value;}
+this.listItemElement.insertBefore(this._decoratorElement,this.listItemElement.firstChild);},_buildAttributeDOM:function(parentElement,name,value,forceValue,node,linkify)
+{var closingPunctuationRegex=/[\/;:\)\]\}]/g;var highlightIndex=0;var highlightCount;var additionalHighlightOffset=0;var result;function replacer(match,replaceOffset){while(highlightIndex<highlightCount&&result.entityRanges[highlightIndex].offset<replaceOffset){result.entityRanges[highlightIndex].offset+=additionalHighlightOffset;++highlightIndex;}
+additionalHighlightOffset+=1;return match+"\u200B";}
+function setValueWithEntities(element,value)
+{var attrValueElement=element.createChild("span","webkit-html-attribute-value");result=this._convertWhitespaceToEntities(value);highlightCount=result.entityRanges.length;value=result.text.replace(closingPunctuationRegex,replacer);while(highlightIndex<highlightCount){result.entityRanges[highlightIndex].offset+=additionalHighlightOffset;++highlightIndex;}
+attrValueElement.textContent=value;WebInspector.highlightRangesWithStyleClass(attrValueElement,result.entityRanges,"webkit-html-entity-value");}
+var hasText=(forceValue||value.length>0);var attrSpanElement=parentElement.createChild("span","webkit-html-attribute");var attrNameElement=attrSpanElement.createChild("span","webkit-html-attribute-name");attrNameElement.textContent=name;if(hasText)
+attrSpanElement.appendChild(document.createTextNode("=\u200B\""));if(linkify&&(name==="src"||name==="href")){var rewrittenHref=node.resolveURL(value);if(rewrittenHref===null){setValueWithEntities.call(this,attrSpanElement,value);}else{value=value.replace(closingPunctuationRegex,"$&\u200B");if(value.startsWith("data:"))
+value=value.trimMiddle(60);attrSpanElement.appendChild(linkify(rewrittenHref,value,"webkit-html-attribute-value",node.nodeName().toLowerCase()==="a"));}}else{setValueWithEntities.call(this,attrSpanElement,value);}
 if(hasText)
 attrSpanElement.appendChild(document.createTextNode("\""));},_buildPseudoElementDOM:function(parentElement,pseudoElementName)
 {var pseudoElement=parentElement.createChild("span","webkit-html-pseudo-element");pseudoElement.textContent="::"+pseudoElementName;parentElement.appendChild(document.createTextNode("\u200B"));},_buildTagDOM:function(parentElement,tagName,isClosingTag,isDistinctTreeElement,linkify)
 {var node=this._node;var classes=["webkit-html-tag"];if(isClosingTag&&isDistinctTreeElement)
-classes.push("close");if(node.isInShadowTree())
-classes.push("shadow");var tagElement=parentElement.createChild("span",classes.join(" "));tagElement.appendChild(document.createTextNode("<"));var tagNameElement=tagElement.createChild("span",isClosingTag?"":"webkit-html-tag-name");tagNameElement.textContent=(isClosingTag?"/":"")+tagName;if(!isClosingTag&&node.hasAttributes()){var attributes=node.attributes();for(var i=0;i<attributes.length;++i){var attr=attributes[i];tagElement.appendChild(document.createTextNode(" "));this._buildAttributeDOM(tagElement,attr.name,attr.value,node,linkify);}}
+classes.push("close");var tagElement=parentElement.createChild("span",classes.join(" "));tagElement.appendChild(document.createTextNode("<"));var tagNameElement=tagElement.createChild("span",isClosingTag?"":"webkit-html-tag-name");tagNameElement.textContent=(isClosingTag?"/":"")+tagName;if(!isClosingTag&&node.hasAttributes()){var attributes=node.attributes();for(var i=0;i<attributes.length;++i){var attr=attributes[i];tagElement.appendChild(document.createTextNode(" "));this._buildAttributeDOM(tagElement,attr.name,attr.value,false,node,linkify);}}
 tagElement.appendChild(document.createTextNode(">"));parentElement.appendChild(document.createTextNode("\u200B"));},_convertWhitespaceToEntities:function(text)
-{var result="";var lastIndexAfterEntity=0;var charToEntity=WebInspector.ElementsTreeOutline.MappedCharToEntity;for(var i=0,size=text.length;i<size;++i){var char=text.charAt(i);if(charToEntity[char]){result+=text.substring(lastIndexAfterEntity,i)+"&"+charToEntity[char]+";";lastIndexAfterEntity=i+1;}}
-if(result){result+=text.substring(lastIndexAfterEntity);return result;}
-return text;},_nodeTitleInfo:function(linkify)
-{var node=this._node;var info={titleDOM:document.createDocumentFragment(),hasChildren:this.hasChildren};switch(node.nodeType()){case Node.ATTRIBUTE_NODE:var value=node.value||"\u200B";this._buildAttributeDOM(info.titleDOM,node.name,value);break;case Node.ELEMENT_NODE:if(node.pseudoType()){this._buildPseudoElementDOM(info.titleDOM,node.pseudoType());info.hasChildren=false;break;}
+{var result="";var resultLength=0;var lastIndexAfterEntity=0;var entityRanges=[];var charToEntity=WebInspector.ElementsTreeOutline.MappedCharToEntity;for(var i=0,size=text.length;i<size;++i){var char=text.charAt(i);if(charToEntity[char]){result+=text.substring(lastIndexAfterEntity,i);var entityValue="&"+charToEntity[char]+";";entityRanges.push({offset:result.length,length:entityValue.length});result+=entityValue;lastIndexAfterEntity=i+1;}}
+if(result)
+result+=text.substring(lastIndexAfterEntity);return{text:result||text,entityRanges:entityRanges};},_nodeTitleInfo:function(linkify)
+{var node=this._node;var info={titleDOM:document.createDocumentFragment(),hasChildren:this.hasChildren};switch(node.nodeType()){case Node.ATTRIBUTE_NODE:this._buildAttributeDOM(info.titleDOM,node.name,node.value,true);break;case Node.ELEMENT_NODE:if(node.pseudoType()){this._buildPseudoElementDOM(info.titleDOM,node.pseudoType());info.hasChildren=false;break;}
 var tagName=node.nodeNameInCorrectCase();if(this._elementCloseTag){this._buildTagDOM(info.titleDOM,tagName,true,true);info.hasChildren=false;break;}
 this._buildTagDOM(info.titleDOM,tagName,false,false,linkify);var showInlineText=this._showInlineText()&&!this.hasChildren;if(!this.expanded&&(!showInlineText&&(this.treeOutline.isXMLMimeType||!WebInspector.ElementsTreeElement.ForbiddenClosingTagElements[tagName]))){if(this.hasChildren){var textNodeElement=info.titleDOM.createChild("span","webkit-html-text-node bogus");textNodeElement.textContent="\u2026";info.titleDOM.appendChild(document.createTextNode("\u200B"));}
 this._buildTagDOM(info.titleDOM,tagName,true,false);}
-if(showInlineText){var textNodeElement=info.titleDOM.createChild("span","webkit-html-text-node");textNodeElement.textContent=this._convertWhitespaceToEntities(node.firstChild.nodeValue());info.titleDOM.appendChild(document.createTextNode("\u200B"));this._buildTagDOM(info.titleDOM,tagName,true,false);info.hasChildren=false;}
-break;case Node.TEXT_NODE:if(node.parentNode&&node.parentNode.nodeName().toLowerCase()==="script"){var newNode=info.titleDOM.createChild("span","webkit-html-text-node webkit-html-js-node");newNode.textContent=node.nodeValue();var javascriptSyntaxHighlighter=new WebInspector.DOMSyntaxHighlighter("text/javascript",true);javascriptSyntaxHighlighter.syntaxHighlightNode(newNode);}else if(node.parentNode&&node.parentNode.nodeName().toLowerCase()==="style"){var newNode=info.titleDOM.createChild("span","webkit-html-text-node webkit-html-css-node");newNode.textContent=node.nodeValue();var cssSyntaxHighlighter=new WebInspector.DOMSyntaxHighlighter("text/css",true);cssSyntaxHighlighter.syntaxHighlightNode(newNode);}else{info.titleDOM.appendChild(document.createTextNode("\""));var textNodeElement=info.titleDOM.createChild("span","webkit-html-text-node");textNodeElement.textContent=this._convertWhitespaceToEntities(node.nodeValue());info.titleDOM.appendChild(document.createTextNode("\""));}
+if(showInlineText){var textNodeElement=info.titleDOM.createChild("span","webkit-html-text-node");var result=this._convertWhitespaceToEntities(node.firstChild.nodeValue());textNodeElement.textContent=result.text;WebInspector.highlightRangesWithStyleClass(textNodeElement,result.entityRanges,"webkit-html-entity-value");info.titleDOM.appendChild(document.createTextNode("\u200B"));this._buildTagDOM(info.titleDOM,tagName,true,false);info.hasChildren=false;}
+break;case Node.TEXT_NODE:if(node.parentNode&&node.parentNode.nodeName().toLowerCase()==="script"){var newNode=info.titleDOM.createChild("span","webkit-html-text-node webkit-html-js-node");newNode.textContent=node.nodeValue();var javascriptSyntaxHighlighter=new WebInspector.DOMSyntaxHighlighter("text/javascript",true);javascriptSyntaxHighlighter.syntaxHighlightNode(newNode);}else if(node.parentNode&&node.parentNode.nodeName().toLowerCase()==="style"){var newNode=info.titleDOM.createChild("span","webkit-html-text-node webkit-html-css-node");newNode.textContent=node.nodeValue();var cssSyntaxHighlighter=new WebInspector.DOMSyntaxHighlighter("text/css",true);cssSyntaxHighlighter.syntaxHighlightNode(newNode);}else{info.titleDOM.appendChild(document.createTextNode("\""));var textNodeElement=info.titleDOM.createChild("span","webkit-html-text-node");var result=this._convertWhitespaceToEntities(node.nodeValue());textNodeElement.textContent=result.text;WebInspector.highlightRangesWithStyleClass(textNodeElement,result.entityRanges,"webkit-html-entity-value");info.titleDOM.appendChild(document.createTextNode("\""));}
 break;case Node.COMMENT_NODE:var commentElement=info.titleDOM.createChild("span","webkit-html-comment");commentElement.appendChild(document.createTextNode("<!--"+node.nodeValue()+"-->"));break;case Node.DOCUMENT_TYPE_NODE:var docTypeElement=info.titleDOM.createChild("span","webkit-html-doctype");docTypeElement.appendChild(document.createTextNode("<!DOCTYPE "+node.nodeName()));if(node.publicId){docTypeElement.appendChild(document.createTextNode(" PUBLIC \""+node.publicId+"\""));if(node.systemId)
 docTypeElement.appendChild(document.createTextNode(" \""+node.systemId+"\""));}else if(node.systemId)
 docTypeElement.appendChild(document.createTextNode(" SYSTEM \""+node.systemId+"\""));if(node.internalSubset)
-docTypeElement.appendChild(document.createTextNode(" ["+node.internalSubset+"]"));docTypeElement.appendChild(document.createTextNode(">"));break;case Node.CDATA_SECTION_NODE:var cdataElement=info.titleDOM.createChild("span","webkit-html-text-node");cdataElement.appendChild(document.createTextNode("<![CDATA["+node.nodeValue()+"]]>"));break;case Node.DOCUMENT_FRAGMENT_NODE:var fragmentElement=info.titleDOM.createChild("span","webkit-html-fragment");fragmentElement.textContent=node.nodeNameInCorrectCase().collapseWhitespace();if(node.isInShadowTree())
-fragmentElement.addStyleClass("shadow");break;default:info.titleDOM.appendChild(document.createTextNode(node.nodeNameInCorrectCase().collapseWhitespace()));}
+docTypeElement.appendChild(document.createTextNode(" ["+node.internalSubset+"]"));docTypeElement.appendChild(document.createTextNode(">"));break;case Node.CDATA_SECTION_NODE:var cdataElement=info.titleDOM.createChild("span","webkit-html-text-node");cdataElement.appendChild(document.createTextNode("<![CDATA["+node.nodeValue()+"]]>"));break;case Node.DOCUMENT_FRAGMENT_NODE:var fragmentElement=info.titleDOM.createChild("span","webkit-html-fragment");var nodeTitle;if(node.isInShadowTree()){var shadowRootType=node.shadowRootType();if(shadowRootType){info.shadowRoot=true;fragmentElement.classList.add("shadow-root");nodeTitle="#shadow-root";if(shadowRootType===WebInspector.DOMNode.ShadowRootTypes.UserAgent)
+nodeTitle+=" ("+shadowRootType+")";}}
+if(!nodeTitle)
+nodeTitle=node.nodeNameInCorrectCase().collapseWhitespace();fragmentElement.textContent=nodeTitle;break;default:info.titleDOM.appendChild(document.createTextNode(node.nodeNameInCorrectCase().collapseWhitespace()));}
 return info;},_showInlineText:function()
 {if(this._node.templateContent()||(WebInspector.ElementsTreeOutline.showShadowDOM()&&this._node.hasShadowRoots())||this._node.hasPseudoElements())
 return false;if(this._node.nodeType()!==Node.ELEMENT_NODE)
@@ -5062,16 +5183,17 @@
 node.setOuterHTML(value,selectNode);else
 return;}
 node.getOuterHTML(this._startEditingAsHTML.bind(this,commitChange));},_copyHTML:function()
-{this._node.copyNode();},_copyXPath:function()
-{this._node.copyXPath(true);},_inspectDOMProperties:function()
+{this._node.copyNode();},_copyCSSPath:function()
+{InspectorFrontendHost.copyText(WebInspector.DOMPresentationUtils.cssPath(this._node,true));},_copyXPath:function()
+{InspectorFrontendHost.copyText(WebInspector.DOMPresentationUtils.xPath(this._node,true));},_inspectDOMProperties:function()
 {WebInspector.RemoteObject.resolveNode(this._node,"console",callback);function callback(nodeObject)
 {if(!nodeObject)
 return;var message=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.ConsoleAPI,WebInspector.ConsoleMessage.MessageLevel.Log,"",WebInspector.ConsoleMessage.MessageType.Dir,undefined,undefined,undefined,undefined,[nodeObject]);WebInspector.console.addMessage(message);WebInspector.showConsole();}},_highlightSearchResults:function()
 {if(!this._searchQuery||!this._searchHighlightsVisible)
 return;if(this._highlightResult){this._updateSearchHighlight(true);return;}
-var text=this.listItemElement.textContent;var regexObject=createPlainTextSearchRegex(this._searchQuery,"gi");var offset=0;var match=regexObject.exec(text);var matchRanges=[];while(match){matchRanges.push({offset:match.index,length:match[0].length});match=regexObject.exec(text);}
+var text=this.listItemElement.textContent;var regexObject=createPlainTextSearchRegex(this._searchQuery,"gi");var offset=0;var match=regexObject.exec(text);var matchRanges=[];while(match){matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(text);}
 if(!matchRanges.length)
-matchRanges.push({offset:0,length:text.length});this._highlightResult=[];WebInspector.highlightSearchResults(this.listItemElement,matchRanges,this._highlightResult);},_scrollIntoView:function()
+matchRanges.push(new WebInspector.SourceRange(0,text.length));this._highlightResult=[];WebInspector.highlightSearchResults(this.listItemElement,matchRanges,this._highlightResult);},_scrollIntoView:function()
 {function scrollIntoViewCallback(object)
 {function scrollIntoView()
 {this.scrollIntoViewIfNeeded(true);}
@@ -5106,13 +5228,13 @@
 {if(this._updateModifiedNodesTimeout)
 return;this._updateModifiedNodesTimeout=setTimeout(this._updateModifiedNodes.bind(this),50);},_updateModifiedNodes:function()
 {if(this._updateModifiedNodesTimeout){clearTimeout(this._updateModifiedNodesTimeout);delete this._updateModifiedNodesTimeout;}
-var updatedParentTreeElements=[];var hidePanelWhileUpdating=this._recentlyModifiedNodes.size()>10;if(hidePanelWhileUpdating){var treeOutlineContainerElement=this._treeOutline.element.parentNode;this._treeOutline.element.addStyleClass("hidden");var originalScrollTop=treeOutlineContainerElement?treeOutlineContainerElement.scrollTop:0;}
-var nodes=this._recentlyModifiedNodes.keys();for(var i=0,size=nodes.length;i<size;++i){var node=nodes[i];var entry=this._recentlyModifiedNodes.get(node);var parent=entry.parent;if(parent===this._treeOutline._rootDOMNode){this._treeOutline.update();this._treeOutline.element.removeStyleClass("hidden");return;}
+var updatedParentTreeElements=[];var hidePanelWhileUpdating=this._recentlyModifiedNodes.size()>10;if(hidePanelWhileUpdating){var treeOutlineContainerElement=this._treeOutline.element.parentNode;var originalScrollTop=treeOutlineContainerElement?treeOutlineContainerElement.scrollTop:0;this._treeOutline.element.classList.add("hidden");}
+var nodes=this._recentlyModifiedNodes.keys();for(var i=0,size=nodes.length;i<size;++i){var node=nodes[i];var entry=this._recentlyModifiedNodes.get(node);var parent=entry.parent;if(parent===this._treeOutline._rootDOMNode){this._treeOutline.update();this._treeOutline.element.classList.remove("hidden");return;}
 if(entry.isUpdated){var nodeItem=this._treeOutline.findTreeElement(node);if(nodeItem)
 nodeItem.updateTitle();}
 var parentNodeItem=parent?this._treeOutline.findTreeElement(parent):null;if(parentNodeItem&&!parentNodeItem.alreadyUpdatedChildren){parentNodeItem.updateChildren();parentNodeItem.alreadyUpdatedChildren=true;updatedParentTreeElements.push(parentNodeItem);}}
 for(var i=0;i<updatedParentTreeElements.length;++i)
-delete updatedParentTreeElements[i].alreadyUpdatedChildren;if(hidePanelWhileUpdating){this._treeOutline.element.removeStyleClass("hidden");if(originalScrollTop)
+delete updatedParentTreeElements[i].alreadyUpdatedChildren;if(hidePanelWhileUpdating){this._treeOutline.element.classList.remove("hidden");if(originalScrollTop)
 treeOutlineContainerElement.scrollTop=originalScrollTop;this._treeOutline.updateSelection();}
 this._recentlyModifiedNodes.clear();this._treeOutline._fireElementsTreeUpdated(nodes);},_reset:function()
 {this._treeOutline.rootDOMNode=null;this._treeOutline.selectDOMNode(null,false);WebInspector.domAgent.hideDOMNodeHighlight();this._recentlyModifiedNodes.clear();}}
@@ -5143,6 +5265,79 @@
 description=WebInspector.UIString("%d \xd7 %d pixels (Natural: %d \xd7 %d pixels)",offsetWidth,offsetHeight,naturalWidth,naturalHeight);}
 container.createChild("tr").createChild("td","image-container").appendChild(imageElement);if(description)
 container.createChild("tr").createChild("td").createChild("span","description").textContent=description;userCallback(container);}}
+WebInspector.DOMPresentationUtils.appropriateSelectorFor=function(node,justSelector)
+{var lowerCaseName=node.localName()||node.nodeName().toLowerCase();if(node.nodeType()!==Node.ELEMENT_NODE)
+return lowerCaseName;if(lowerCaseName==="input"&&node.getAttribute("type")&&!node.getAttribute("id")&&!node.getAttribute("class"))
+return lowerCaseName+"[type=\""+node.getAttribute("type")+"\"]";return WebInspector.DOMPresentationUtils.cssPath(node,justSelector);}
+WebInspector.DOMPresentationUtils.cssPath=function(node,optimized)
+{if(node.nodeType()!==Node.ELEMENT_NODE)
+return"";var steps=[];var contextNode=node;while(contextNode){var step=WebInspector.DOMPresentationUtils._cssPathValue(contextNode,optimized);if(!step)
+break;steps.push(step);if(step.optimized)
+break;contextNode=contextNode.parentNode;}
+steps.reverse();return steps.join(" > ");}
+WebInspector.DOMPresentationUtils._cssPathValue=function(node,optimized)
+{if(node.nodeType()!==Node.ELEMENT_NODE)
+return null;var id=node.getAttribute("id");if(optimized){if(id)
+return new WebInspector.DOMNodePathStep(idSelector(id),true);var nodeNameLower=node.nodeName().toLowerCase();if(nodeNameLower==="body"||nodeNameLower==="head"||nodeNameLower==="html")
+return new WebInspector.DOMNodePathStep(node.nodeNameInCorrectCase(),true);}
+var nodeName=node.nodeNameInCorrectCase();if(id)
+return new WebInspector.DOMNodePathStep(nodeName+idSelector(id),true);var parent=node.parentNode;if(!parent||parent.nodeType()===Node.DOCUMENT_NODE)
+return new WebInspector.DOMNodePathStep(nodeName,true);function prefixedElementClassNames(node)
+{var classAttribute=node.getAttribute("class");if(!classAttribute)
+return[];return classAttribute.split(/\s+/g).filter(Boolean).map(function(name){return"$"+name;});}
+function idSelector(id)
+{return"#"+escapeIdentifierIfNeeded(id);}
+function escapeIdentifierIfNeeded(ident)
+{if(isCSSIdentifier(ident))
+return ident;var shouldEscapeFirst=/^(?:[0-9]|-[0-9-]?)/.test(ident);var lastIndex=ident.length-1;return ident.replace(/./g,function(c,i){return((shouldEscapeFirst&&i===0)||!isCSSIdentChar(c))?escapeAsciiChar(c,i===lastIndex):c;});}
+function escapeAsciiChar(c,isLast)
+{return"\\"+toHexByte(c)+(isLast?"":" ");}
+function toHexByte(c)
+{var hexByte=c.charCodeAt(0).toString(16);if(hexByte.length===1)
+hexByte="0"+hexByte;return hexByte;}
+function isCSSIdentChar(c)
+{if(/[a-zA-Z0-9_-]/.test(c))
+return true;return c.charCodeAt(0)>=0xA0;}
+function isCSSIdentifier(value)
+{return/^-?[a-zA-Z_][a-zA-Z0-9_-]*$/.test(value);}
+var prefixedOwnClassNamesArray=prefixedElementClassNames(node);var needsClassNames=false;var needsNthChild=false;var ownIndex=-1;var elementIndex=-1;var siblings=parent.children();for(var i=0;(ownIndex===-1||!needsNthChild)&&i<siblings.length;++i){var sibling=siblings[i];if(sibling.nodeType()!==Node.ELEMENT_NODE)
+continue;elementIndex+=1;if(sibling===node){ownIndex=elementIndex;continue;}
+if(needsNthChild)
+continue;if(sibling.nodeNameInCorrectCase()!==nodeName)
+continue;needsClassNames=true;var ownClassNames=prefixedOwnClassNamesArray.keySet();var ownClassNameCount=0;for(var name in ownClassNames)
+++ownClassNameCount;if(ownClassNameCount===0){needsNthChild=true;continue;}
+var siblingClassNamesArray=prefixedElementClassNames(sibling);for(var j=0;j<siblingClassNamesArray.length;++j){var siblingClass=siblingClassNamesArray[j];if(!ownClassNames.hasOwnProperty(siblingClass))
+continue;delete ownClassNames[siblingClass];if(!--ownClassNameCount){needsNthChild=true;break;}}}
+var result=nodeName;if(needsNthChild){result+=":nth-child("+(ownIndex+1)+")";}else if(needsClassNames){for(var prefixedName in prefixedOwnClassNamesArray.keySet())
+result+="."+escapeIdentifierIfNeeded(prefixedName.substr(1));}
+return new WebInspector.DOMNodePathStep(result,false);}
+WebInspector.DOMPresentationUtils.xPath=function(node,optimized)
+{if(node.nodeType()===Node.DOCUMENT_NODE)
+return"/";var steps=[];var contextNode=node;while(contextNode){var step=WebInspector.DOMPresentationUtils._xPathValue(contextNode,optimized);if(!step)
+break;steps.push(step);if(step.optimized)
+break;contextNode=contextNode.parentNode;}
+steps.reverse();return(steps.length&&steps[0].optimized?"":"/")+steps.join("/");}
+WebInspector.DOMPresentationUtils._xPathValue=function(node,optimized)
+{var ownValue;var ownIndex=WebInspector.DOMPresentationUtils._xPathIndex(node);if(ownIndex===-1)
+return null;switch(node.nodeType()){case Node.ELEMENT_NODE:if(optimized&&node.getAttribute("id"))
+return new WebInspector.DOMNodePathStep("//*[@id=\""+node.getAttribute("id")+"\"]",true);ownValue=node.localName();break;case Node.ATTRIBUTE_NODE:ownValue="@"+node.nodeName();break;case Node.TEXT_NODE:case Node.CDATA_SECTION_NODE:ownValue="text()";break;case Node.PROCESSING_INSTRUCTION_NODE:ownValue="processing-instruction()";break;case Node.COMMENT_NODE:ownValue="comment()";break;case Node.DOCUMENT_NODE:ownValue="";break;default:ownValue="";break;}
+if(ownIndex>0)
+ownValue+="["+ownIndex+"]";return new WebInspector.DOMNodePathStep(ownValue,node.nodeType()===Node.DOCUMENT_NODE);},WebInspector.DOMPresentationUtils._xPathIndex=function(node)
+{function areNodesSimilar(left,right)
+{if(left===right)
+return true;if(left.nodeType()===Node.ELEMENT_NODE&&right.nodeType()===Node.ELEMENT_NODE)
+return left.localName()===right.localName();if(left.nodeType()===right.nodeType())
+return true;var leftType=left.nodeType()===Node.CDATA_SECTION_NODE?Node.TEXT_NODE:left.nodeType();var rightType=right.nodeType()===Node.CDATA_SECTION_NODE?Node.TEXT_NODE:right.nodeType();return leftType===rightType;}
+var siblings=node.parentNode?node.parentNode.children():null;if(!siblings)
+return 0;var hasSameNamedElements;for(var i=0;i<siblings.length;++i){if(areNodesSimilar(node,siblings[i])&&siblings[i]!==node){hasSameNamedElements=true;break;}}
+if(!hasSameNamedElements)
+return 0;var ownIndex=1;for(var i=0;i<siblings.length;++i){if(areNodesSimilar(node,siblings[i])){if(siblings[i]===node)
+return ownIndex;++ownIndex;}}
+return-1;}
+WebInspector.DOMNodePathStep=function(value,optimized)
+{this.value=value;this.optimized=optimized||false;}
+WebInspector.DOMNodePathStep.prototype={toString:function()
+{return this.value;}}
 WebInspector.SidebarSectionTreeElement=function(title,representedObject,hasChildren)
 {TreeElement.call(this,title.escapeHTML(),representedObject||{},hasChildren);this.expand();}
 WebInspector.SidebarSectionTreeElement.prototype={selectable:false,collapse:function()
@@ -5150,9 +5345,9 @@
 {return this._smallChildren;},set smallChildren(x)
 {if(this._smallChildren===x)
 return;this._smallChildren=x;if(this._smallChildren)
-this._childrenListNode.addStyleClass("small");else
-this._childrenListNode.removeStyleClass("small");},onattach:function()
-{this._listItemNode.addStyleClass("sidebar-tree-section");},onreveal:function()
+this._childrenListNode.classList.add("small");else
+this._childrenListNode.classList.remove("small");},onattach:function()
+{this._listItemNode.classList.add("sidebar-tree-section");},onreveal:function()
 {if(this.listItemElement)
 this.listItemElement.scrollIntoViewIfNeeded(false);},__proto__:TreeElement.prototype}
 WebInspector.SidebarTreeElement=function(className,title,subtitle,representedObject,hasChildren)
@@ -5162,25 +5357,22 @@
 WebInspector.SidebarTreeElement.prototype={get small()
 {return this._small;},set small(x)
 {this._small=x;if(this._listItemNode){if(this._small)
-this._listItemNode.addStyleClass("small");else
-this._listItemNode.removeStyleClass("small");}},get mainTitle()
+this._listItemNode.classList.add("small");else
+this._listItemNode.classList.remove("small");}},get mainTitle()
 {return this._mainTitle;},set mainTitle(x)
 {this._mainTitle=x;this.refreshTitles();},get subtitle()
 {return this._subtitle;},set subtitle(x)
-{this._subtitle=x;this.refreshTitles();},get bubbleText()
-{return this._bubbleText;},set bubbleText(x)
-{if(!this.bubbleElement){this.bubbleElement=document.createElement("div");this.bubbleElement.className="bubble";this.statusElement.appendChild(this.bubbleElement);}
-this._bubbleText=x;this.bubbleElement.textContent=x;},set wait(x)
+{this._subtitle=x;this.refreshTitles();},set wait(x)
 {if(x)
-this._listItemNode.addStyleClass("wait");else
-this._listItemNode.removeStyleClass("wait");},refreshTitles:function()
+this._listItemNode.classList.add("wait");else
+this._listItemNode.classList.remove("wait");},refreshTitles:function()
 {var mainTitle=this.mainTitle;if(this.titleElement.textContent!==mainTitle)
 this.titleElement.textContent=mainTitle;var subtitle=this.subtitle;if(subtitle){if(this.subtitleElement.textContent!==subtitle)
-this.subtitleElement.textContent=subtitle;this.titlesElement.removeStyleClass("no-subtitle");}else{this.subtitleElement.textContent="";this.titlesElement.addStyleClass("no-subtitle");}},isEventWithinDisclosureTriangle:function(event)
+this.subtitleElement.textContent=subtitle;this.titlesElement.classList.remove("no-subtitle");}else{this.subtitleElement.textContent="";this.titlesElement.classList.add("no-subtitle");}},isEventWithinDisclosureTriangle:function(event)
 {return event.target===this.disclosureButton;},onattach:function()
-{this._listItemNode.addStyleClass("sidebar-tree-item");if(this.className)
-this._listItemNode.addStyleClass(this.className);if(this.small)
-this._listItemNode.addStyleClass("small");if(this.hasChildren&&this.disclosureButton)
+{this._listItemNode.classList.add("sidebar-tree-item");if(this.className)
+this._listItemNode.classList.add(this.className);if(this.small)
+this._listItemNode.classList.add("small");if(this.hasChildren&&this.disclosureButton)
 this._listItemNode.appendChild(this.disclosureButton);this._listItemNode.appendChild(this.iconElement);this._listItemNode.appendChild(this.statusElement);this._listItemNode.appendChild(this.titlesElement);},onreveal:function()
 {if(this._listItemNode)
 this._listItemNode.scrollIntoViewIfNeeded(false);},__proto__:TreeElement.prototype}
@@ -5215,13 +5407,13 @@
 {var curElement=this.element;do{curElement=curElement.nextSibling;}while(curElement&&!curElement._section);return curElement?curElement._section:null;},get previousSibling()
 {var curElement=this.element;do{curElement=curElement.previousSibling;}while(curElement&&!curElement._section);return curElement?curElement._section:null;},expand:function()
 {if(this._expanded)
-return;this._expanded=true;this.element.addStyleClass("expanded");if(!this._populated){this.onpopulate();this._populated=true;}},collapse:function()
+return;this._expanded=true;this.element.classList.add("expanded");if(!this._populated){this.onpopulate();this._populated=true;}},collapse:function()
 {if(!this._expanded)
-return;this._expanded=false;this.element.removeStyleClass("expanded");},toggleExpanded:function()
+return;this._expanded=false;this.element.classList.remove("expanded");},toggleExpanded:function()
 {this.expanded=!this.expanded;},handleClick:function(event)
 {this.toggleExpanded();event.consume();}}
 WebInspector.PropertiesSection=function(title,subtitle)
-{WebInspector.Section.call(this,title,subtitle);this.headerElement.addStyleClass("monospace");this.propertiesElement=document.createElement("ol");this.propertiesElement.className="properties properties-tree monospace";this.propertiesTreeOutline=new TreeOutline(this.propertiesElement,true);this.propertiesTreeOutline.setFocusable(false);this.propertiesTreeOutline.section=this;this.element.appendChild(this.propertiesElement);}
+{WebInspector.Section.call(this,title,subtitle);this.headerElement.classList.add("monospace");this.propertiesElement=document.createElement("ol");this.propertiesElement.className="properties properties-tree monospace";this.propertiesTreeOutline=new TreeOutline(this.propertiesElement,true);this.propertiesTreeOutline.setFocusable(false);this.propertiesTreeOutline.section=this;this.element.appendChild(this.propertiesElement);}
 WebInspector.PropertiesSection.prototype={__proto__:WebInspector.Section.prototype}
 WebInspector.RemoteObject=function(objectId,type,subtype,value,description,preview)
 {this._type=type;this._subtype=subtype;if(objectId){this._objectId=objectId;this._description=description;this._hasChildren=true;this._preview=preview;}else{console.assert(type!=="object"||value===null);this._description=description||(value+"");this._hasChildren=false;this.value=value;}}
@@ -5255,11 +5447,12 @@
 {var result=this;var properties=JSON.parse(arrayStr);for(var i=0,n=properties.length;i<n;++i)
 result=result[properties[i]];return result;}
 var args=[{value:JSON.stringify(propertyPath)}];this.callFunction(remoteFunction,args,callback);},doGetProperties:function(ownProperties,accessorPropertiesOnly,callback)
-{if(!this._objectId){callback([],null);return;}
+{if(!this._objectId){callback(null,null);return;}
 function remoteObjectBinder(error,properties,internalProperties)
 {if(error){callback(null,null);return;}
 var result=[];for(var i=0;properties&&i<properties.length;++i){var property=properties[i];result.push(new WebInspector.RemoteObjectProperty(property.name,null,property));}
-var internalPropertiesResult=null;if(internalProperties){internalPropertiesResult=[];for(var i=0;i<internalProperties.length;i++){var property=internalProperties[i];internalPropertiesResult.push(new WebInspector.RemoteObjectProperty(property.name,WebInspector.RemoteObject.fromPayload(property.value)));}}
+var internalPropertiesResult=null;if(internalProperties){internalPropertiesResult=[];for(var i=0;i<internalProperties.length;i++){var property=internalProperties[i];if(!property.value)
+continue;internalPropertiesResult.push(new WebInspector.RemoteObjectProperty(property.name,WebInspector.RemoteObject.fromPayload(property.value)));}}
 callback(result,internalPropertiesResult);}
 RuntimeAgent.getProperties(this._objectId,ownProperties,accessorPropertiesOnly,remoteObjectBinder);},setPropertyValue:function(name,value,callback)
 {if(!this._objectId){callback("Can't set a property of non-object.");return;}
@@ -5267,7 +5460,7 @@
 {if(error||wasThrown){callback(error||result.description);return;}
 this.doSetObjectPropertyValue(result,name,callback);if(result.objectId)
 RuntimeAgent.releaseObject(result.objectId);}},doSetObjectPropertyValue:function(result,name,callback)
-{var setPropertyValueFunction="function(a, b) { this[a] = b; }";if(result.type==="number"&&typeof result.value!=="number")
+{var setPropertyValueFunction="function(a, b) { this[a] = b; }";if(result.type==="number"&&String(result.value)!==result.description)
 setPropertyValueFunction="function(a) { this[a] = "+result.description+"; }";delete result.description;RuntimeAgent.callFunctionOn(this._objectId,setPropertyValueFunction,[{value:name},result],true,undefined,undefined,propertySetCallback.bind(this));function propertySetCallback(error,result,wasThrown)
 {if(error||wasThrown){callback(error||result.description);return;}
 callback();}},pushNodeToFrontend:function(callback)
@@ -5329,7 +5522,7 @@
 this.setter=WebInspector.RemoteObject.fromPayload(descriptor.set);}else{this.value=value;}
 if(descriptor){this.isOwn=descriptor.isOwn;this.wasThrown=!!descriptor.wasThrown;}}
 WebInspector.RemoteObjectProperty.prototype={isAccessorProperty:function()
-{return this.getter||this.setter;}};WebInspector.RemoteObjectProperty.fromPrimitiveValue=function(name,value)
+{return!!(this.getter||this.setter);}};WebInspector.RemoteObjectProperty.fromPrimitiveValue=function(name,value)
 {return new WebInspector.RemoteObjectProperty(name,WebInspector.RemoteObject.fromPrimitiveValue(value));}
 WebInspector.RemoteObjectProperty.fromScopeValue=function(name,value)
 {var result=new WebInspector.RemoteObjectProperty(name,value);result.writable=false;return result;}
@@ -5337,11 +5530,11 @@
 {this._value=value;}
 WebInspector.LocalJSONObject.prototype={get description()
 {if(this._cachedDescription)
-return this._cachedDescription;if(this.type==="object"){switch(this.subtype){case"array":function formatArrayItem(property)
+return this._cachedDescription;function formatArrayItem(property)
 {return property.value.description;}
-this._cachedDescription=this._concatenate("[","]",formatArrayItem);break;case"date":this._cachedDescription=""+this._value;break;case"null":this._cachedDescription="null";break;default:function formatObjectItem(property)
+function formatObjectItem(property)
 {return property.name+":"+property.value.description;}
-this._cachedDescription=this._concatenate("{","}",formatObjectItem);}}else
+if(this.type==="object"){switch(this.subtype){case"array":this._cachedDescription=this._concatenate("[","]",formatArrayItem);break;case"date":this._cachedDescription=""+this._value;break;case"null":this._cachedDescription="null";break;default:this._cachedDescription=this._concatenate("{","}",formatObjectItem);}}else
 this._cachedDescription=String(this._value);return this._cachedDescription;},_concatenate:function(prefix,suffix,formatProperty)
 {const previewChars=100;var buffer=prefix;var children=this._children();for(var i=0;i<children.length;++i){var itemDescription=formatProperty(children[i]);if(buffer.length+itemDescription.length>previewChars){buffer+=",\u2026";break;}
 if(i)
@@ -5364,7 +5557,12 @@
 if(!this._cachedChildren)
 this._cachedChildren=Object.keys(value).map(buildProperty.bind(this));return this._cachedChildren;},isError:function()
 {return false;},arrayLength:function()
-{return this._value instanceof Array?this._value.length:0;}}
+{return this._value instanceof Array?this._value.length:0;},callFunction:function(functionDeclaration,args,callback)
+{var target=(this._value);var rawArgs=args?args.map(function(arg){return arg.value;}):[];var result;var wasThrown=false;try{result=functionDeclaration.apply(target,rawArgs);}catch(e){wasThrown=true;}
+if(!callback)
+return;callback(WebInspector.RemoteObject.fromLocalObject(result),wasThrown);},callFunctionJSON:function(functionDeclaration,args,callback)
+{var target=(this._value);var rawArgs=args?args.map(function(arg){return arg.value;}):[];var result;try{result=functionDeclaration.apply(target,rawArgs);}catch(e){result=null;}
+callback(result);},__proto__:WebInspector.RemoteObject.prototype}
 WebInspector.ObjectPropertiesSection=function(object,title,subtitle,emptyPlaceholder,ignoreHasOwnProperty,extraProperties,treeElementConstructor)
 {this.emptyPlaceholder=(emptyPlaceholder||WebInspector.UIString("No Properties"));this.object=object;this.ignoreHasOwnProperty=ignoreHasOwnProperty;this.extraProperties=extraProperties;this.treeElementConstructor=treeElementConstructor||WebInspector.ObjectPropertyTreeElement;this.editable=true;this.skipProto=false;WebInspector.PropertiesSection.call(this,title||"",subtitle);}
 WebInspector.ObjectPropertiesSection._arrayLoadThreshold=100;WebInspector.ObjectPropertiesSection.prototype={enableContextMenu:function()
@@ -5388,18 +5586,18 @@
 WebInspector.ObjectPropertyTreeElement=function(property)
 {this.property=property;TreeElement.call(this,"",null,false);this.toggleOnClick=true;this.selectable=false;}
 WebInspector.ObjectPropertyTreeElement.prototype={onpopulate:function()
-{return WebInspector.ObjectPropertyTreeElement.populate(this,this.property.value);},ondblclick:function(event)
+{var propertyValue=(this.property.value);console.assert(propertyValue);WebInspector.ObjectPropertyTreeElement.populate(this,propertyValue);},ondblclick:function(event)
 {if(this.property.writable||this.property.setter)
-this.startEditing(event);},onattach:function()
+this.startEditing(event);return false;},onattach:function()
 {this.update();},update:function()
 {this.nameElement=document.createElement("span");this.nameElement.className="name";var name=this.property.name;if(/^\s|\s$|^$|\n/.test(name))
 name="\""+name.replace(/\n/g,"\u21B5")+"\"";this.nameElement.textContent=name;if(!this.property.enumerable)
-this.nameElement.addStyleClass("dimmed");if(this.property.isAccessorProperty())
-this.nameElement.addStyleClass("properties-accessor-property-name");var separatorElement=document.createElement("span");separatorElement.className="separator";separatorElement.textContent=": ";if(this.property.value){this.valueElement=document.createElement("span");this.valueElement.className="value";var description=this.property.value.description;if(this.property.wasThrown){this.valueElement.textContent="[Exception: "+description+"]";}else if(this.property.value.type==="string"&&typeof description==="string"){this.valueElement.textContent="\""+description.replace(/\n/g,"\u21B5")+"\"";this.valueElement._originalTextContent="\""+description+"\"";}else if(this.property.value.type==="function"&&typeof description==="string"){this.valueElement.textContent=/.*/.exec(description)[0].replace(/ +$/g,"");this.valueElement._originalTextContent=description;}else if(this.property.value.type!=="object"||this.property.value.subtype!=="node"){this.valueElement.textContent=description;}
+this.nameElement.classList.add("dimmed");if(this.property.isAccessorProperty())
+this.nameElement.classList.add("properties-accessor-property-name");var separatorElement=document.createElement("span");separatorElement.className="separator";separatorElement.textContent=": ";if(this.property.value){this.valueElement=document.createElement("span");this.valueElement.className="value";var description=this.property.value.description;if(this.property.wasThrown){this.valueElement.textContent="[Exception: "+description+"]";}else if(this.property.value.type==="string"&&typeof description==="string"){this.valueElement.textContent="\""+description.replace(/\n/g,"\u21B5")+"\"";this.valueElement._originalTextContent="\""+description+"\"";}else if(this.property.value.type==="function"&&typeof description==="string"){this.valueElement.textContent=/.*/.exec(description)[0].replace(/ +$/g,"");this.valueElement._originalTextContent=description;}else if(this.property.value.type!=="object"||this.property.value.subtype!=="node"){this.valueElement.textContent=description;}
 if(this.property.wasThrown)
-this.valueElement.addStyleClass("error");if(this.property.value.subtype)
-this.valueElement.addStyleClass("console-formatted-"+this.property.value.subtype);else if(this.property.value.type)
-this.valueElement.addStyleClass("console-formatted-"+this.property.value.type);this.valueElement.addEventListener("contextmenu",this._contextMenuFired.bind(this,this.property.value),false);if(this.property.value.type==="object"&&this.property.value.subtype==="node"&&this.property.value.description){WebInspector.DOMPresentationUtils.createSpansForNodeTitle(this.valueElement,this.property.value.description);this.valueElement.addEventListener("mousemove",this._mouseMove.bind(this,this.property.value),false);this.valueElement.addEventListener("mouseout",this._mouseOut.bind(this,this.property.value),false);}else{this.valueElement.title=description||"";}
+this.valueElement.classList.add("error");if(this.property.value.subtype)
+this.valueElement.classList.add("console-formatted-"+this.property.value.subtype);else if(this.property.value.type)
+this.valueElement.classList.add("console-formatted-"+this.property.value.type);this.valueElement.addEventListener("contextmenu",this._contextMenuFired.bind(this,this.property.value),false);if(this.property.value.type==="object"&&this.property.value.subtype==="node"&&this.property.value.description){WebInspector.DOMPresentationUtils.createSpansForNodeTitle(this.valueElement,this.property.value.description);this.valueElement.addEventListener("mousemove",this._mouseMove.bind(this,this.property.value),false);this.valueElement.addEventListener("mouseout",this._mouseOut.bind(this,this.property.value),false);}else{this.valueElement.title=description||"";}
 this.listItemElement.removeChildren();this.hasChildren=this.property.value.hasChildren&&!this.property.wasThrown;}else{if(this.property.getter){this.valueElement=WebInspector.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(this.property.parentObject,[this.property.name],this._onInvokeGetterClick.bind(this));}else{this.valueElement=document.createElement("span");this.valueElement.className="console-formatted-undefined";this.valueElement.textContent=WebInspector.UIString("<unreadable>");this.valueElement.title=WebInspector.UIString("No property getter");}}
 this.listItemElement.appendChild(this.nameElement);this.listItemElement.appendChild(separatorElement);this.listItemElement.appendChild(this.valueElement);},_contextMenuFired:function(value,event)
 {var contextMenu=new WebInspector.ContextMenu(event);this.populateContextMenu(contextMenu);contextMenu.appendApplicableItems(value);contextMenu.show();},populateContextMenu:function(contextMenu)
@@ -5413,17 +5611,17 @@
 {return[this.valueElement,(typeof this.valueElement._originalTextContent==="string")?this.valueElement._originalTextContent:undefined];},startEditing:function(event)
 {var elementAndValueToEdit=this.elementAndValueToEdit(event);var elementToEdit=elementAndValueToEdit[0];var valueToEdit=elementAndValueToEdit[1];if(WebInspector.isBeingEdited(elementToEdit)||!this.treeOutline.section.editable||this._readOnly)
 return;if(typeof valueToEdit!=="undefined")
-elementToEdit.textContent=valueToEdit;var context={expanded:this.expanded,elementToEdit:elementToEdit,previousContent:elementToEdit.textContent};this.hasChildren=false;this.listItemElement.addStyleClass("editing-sub-part");this._prompt=new WebInspector.ObjectPropertyPrompt(this.editingCommitted.bind(this,null,elementToEdit.textContent,context.previousContent,context),this.editingCancelled.bind(this,null,context),this.renderPromptAsBlock());function blurListener()
+elementToEdit.textContent=valueToEdit;var context={expanded:this.expanded,elementToEdit:elementToEdit,previousContent:elementToEdit.textContent};this.hasChildren=false;this.listItemElement.classList.add("editing-sub-part");this._prompt=new WebInspector.ObjectPropertyPrompt(this.editingCommitted.bind(this,null,elementToEdit.textContent,context.previousContent,context),this.editingCancelled.bind(this,null,context),this.renderPromptAsBlock());function blurListener()
 {this.editingCommitted(null,elementToEdit.textContent,context.previousContent,context);}
 var proxyElement=this._prompt.attachAndStartEditing(elementToEdit,blurListener.bind(this));window.getSelection().setBaseAndExtent(elementToEdit,0,elementToEdit,1);proxyElement.addEventListener("keydown",this._promptKeyDown.bind(this,context),false);},isEditing:function()
 {return!!this._prompt;},editingEnded:function(context)
-{this._prompt.detach();delete this._prompt;this.listItemElement.scrollLeft=0;this.listItemElement.removeStyleClass("editing-sub-part");if(context.expanded)
+{this._prompt.detach();delete this._prompt;this.listItemElement.scrollLeft=0;this.listItemElement.classList.remove("editing-sub-part");if(context.expanded)
 this.expand();},editingCancelled:function(element,context)
 {this.editingEnded(context);this.update();},editingCommitted:function(element,userInput,previousContent,context)
-{if(userInput===previousContent)
-return this.editingCancelled(element,context);this.editingEnded(context);this.applyExpression(userInput,true);},_promptKeyDown:function(context,event)
-{if(isEnterKey(event)){event.consume(true);return this.editingCommitted(null,context.elementToEdit.textContent,context.previousContent,context);}
-if(event.keyIdentifier==="U+001B"){event.consume();return this.editingCancelled(null,context);}},applyExpression:function(expression,updateInterface)
+{if(userInput===previousContent){this.editingCancelled(element,context);return;}
+this.editingEnded(context);this.applyExpression(userInput,true);},_promptKeyDown:function(context,event)
+{if(isEnterKey(event)){event.consume(true);this.editingCommitted(null,context.elementToEdit.textContent,context.previousContent,context);return;}
+if(event.keyIdentifier==="U+001B"){event.consume();this.editingCancelled(null,context);return;}},applyExpression:function(expression,updateInterface)
 {expression=expression.trim();var expressionLength=expression.length;function callback(error)
 {if(!updateInterface)
 return;if(error)
@@ -5461,15 +5659,13 @@
 return;function didGetDetails(error,response)
 {if(error){console.error(error);return;}
 this.removeChildren();var scopeChain=response.scopeChain;if(!scopeChain)
-return;for(var i=0;i<scopeChain.length;++i){var scope=scopeChain[i];var title=null;var isTrueObject;switch(scope.type){case"local":title=WebInspector.UIString("Local");isTrueObject=false;break;case"closure":title=WebInspector.UIString("Closure");isTrueObject=false;break;case"catch":title=WebInspector.UIString("Catch");isTrueObject=false;break;case"with":title=WebInspector.UIString("With Block");isTrueObject=true;break;case"global":title=WebInspector.UIString("Global");isTrueObject=true;break;default:console.error("Unknown scope type: "+scope.type);continue;}
-var scopeRef;if(isTrueObject)
-scopeRef=undefined;else
-scopeRef=new WebInspector.ScopeRef(i,undefined,this._remoteObject.objectId);var remoteObject=WebInspector.ScopeRemoteObject.fromPayload(scope.object,scopeRef);if(isTrueObject){var property=WebInspector.RemoteObjectProperty.fromScopeValue(title,remoteObject);property.parentObject=null;this.appendChild(new this.treeOutline.section.treeElementConstructor(property));}else{var scopeTreeElement=new WebInspector.ScopeTreeElement(title,null,remoteObject);this.appendChild(scopeTreeElement);}}}
+return;for(var i=0;i<scopeChain.length;++i){var scope=scopeChain[i];var title=null;var isTrueObject;switch(scope.type){case DebuggerAgent.ScopeType.Local:title=WebInspector.UIString("Local");isTrueObject=false;break;case DebuggerAgent.ScopeType.Closure:title=WebInspector.UIString("Closure");isTrueObject=false;break;case DebuggerAgent.ScopeType.Catch:title=WebInspector.UIString("Catch");isTrueObject=false;break;case DebuggerAgent.ScopeType.With:title=WebInspector.UIString("With Block");isTrueObject=true;break;case DebuggerAgent.ScopeType.Global:title=WebInspector.UIString("Global");isTrueObject=true;break;default:console.error("Unknown scope type: "+scope.type);continue;}
+var scopeRef=isTrueObject?undefined:new WebInspector.ScopeRef(i,undefined,this._remoteObject.objectId);var remoteObject=WebInspector.ScopeRemoteObject.fromPayload(scope.object,scopeRef);if(isTrueObject){var property=WebInspector.RemoteObjectProperty.fromScopeValue(title,remoteObject);property.parentObject=null;this.appendChild(new this.treeOutline.section.treeElementConstructor(property));}else{var scopeTreeElement=new WebInspector.ScopeTreeElement(title,null,remoteObject);this.appendChild(scopeTreeElement);}}}
 DebuggerAgent.getFunctionDetails(this._remoteObject.objectId,didGetDetails.bind(this));},__proto__:TreeElement.prototype}
 WebInspector.ScopeTreeElement=function(title,subtitle,remoteObject)
 {TreeElement.call(this,title,null,false);this.toggleOnClick=true;this.selectable=false;this._remoteObject=remoteObject;this.hasChildren=true;}
 WebInspector.ScopeTreeElement.prototype={onpopulate:function()
-{return WebInspector.ObjectPropertyTreeElement.populate(this,this._remoteObject);},__proto__:TreeElement.prototype}
+{WebInspector.ObjectPropertyTreeElement.populate(this,this._remoteObject);},__proto__:TreeElement.prototype}
 WebInspector.ArrayGroupingTreeElement=function(object,fromIndex,toIndex,propertyCount)
 {TreeElement.call(this,String.sprintf("[%d \u2026 %d]",fromIndex,toIndex),undefined,true);this._fromIndex=fromIndex;this._toIndex=toIndex;this._object=object;this._readOnly=true;this._propertyCount=propertyCount;this._populated=false;}
 WebInspector.ArrayGroupingTreeElement._bucketThreshold=100;WebInspector.ArrayGroupingTreeElement._sparseIterationThreshold=250000;WebInspector.ArrayGroupingTreeElement._populateArray=function(treeElement,object,fromIndex,toIndex)
@@ -5524,7 +5720,7 @@
 {if(this._populated)
 return;this._populated=true;if(this._propertyCount>=WebInspector.ArrayGroupingTreeElement._bucketThreshold){WebInspector.ArrayGroupingTreeElement._populateRanges(this,this._object,this._fromIndex,this._toIndex,false);return;}
 WebInspector.ArrayGroupingTreeElement._populateAsFragment(this,this._object,this._fromIndex,this._toIndex);},onattach:function()
-{this.listItemElement.addStyleClass("name");},__proto__:TreeElement.prototype}
+{this.listItemElement.classList.add("name");},__proto__:TreeElement.prototype}
 WebInspector.ObjectPropertyPrompt=function(commitHandler,cancelHandler,renderAsBlock)
 {WebInspector.TextPrompt.call(this,WebInspector.runtimeModel.completionsForTextPrompt.bind(WebInspector.runtimeModel));this.setSuggestBoxEnabled("generic-suggest");if(renderAsBlock)
 this.renderAsBlock();}
@@ -5532,18 +5728,18 @@
 WebInspector.ObjectPopoverHelper=function(panelElement,getAnchor,queryObject,onHide,disableOnClick)
 {WebInspector.PopoverHelper.call(this,panelElement,getAnchor,this._showObjectPopover.bind(this),this._onHideObjectPopover.bind(this),disableOnClick);this._queryObject=queryObject;this._onHideCallback=onHide;this._popoverObjectGroup="popover";panelElement.addEventListener("scroll",this.hidePopover.bind(this),true);};WebInspector.ObjectPopoverHelper.prototype={setRemoteObjectFormatter:function(formatter)
 {this._remoteObjectFormatter=formatter;},_showObjectPopover:function(element,popover)
-{function showObjectPopover(result,wasThrown,anchorOverride)
+{function didGetDetails(anchorElement,popoverContentElement,error,response)
+{if(error){console.error(error);return;}
+var container=document.createElement("div");container.className="inline-block";var title=container.createChild("div","function-popover-title source-code");var functionName=title.createChild("span","function-name");functionName.textContent=response.functionName||WebInspector.UIString("(anonymous function)");this._linkifier=new WebInspector.Linkifier();var rawLocation=(response.location);var link=this._linkifier.linkifyRawLocation(rawLocation,"function-location-link");if(link)
+title.appendChild(link);container.appendChild(popoverContentElement);popover.show(container,anchorElement);}
+function showObjectPopover(result,wasThrown,anchorOverride)
 {if(popover.disposed)
 return;if(wasThrown){this.hidePopover();return;}
-var anchorElement=anchorOverride||element;var description=(this._remoteObjectFormatter&&this._remoteObjectFormatter(result))||result.description;var popoverContentElement=null;if(result.type!=="object"){popoverContentElement=document.createElement("span");popoverContentElement.className="monospace console-formatted-"+result.type;popoverContentElement.style.whiteSpace="pre";popoverContentElement.textContent=description;if(result.type==="function"){function didGetDetails(error,response)
-{if(error){console.error(error);return;}
-var container=document.createElement("div");container.className="inline-block";var title=container.createChild("div","function-popover-title source-code");var functionName=title.createChild("span","function-name");functionName.textContent=response.name||response.inferredName||response.displayName||WebInspector.UIString("(anonymous function)");this._linkifier=new WebInspector.Linkifier();var rawLocation=(response.location);var link=this._linkifier.linkifyRawLocation(rawLocation,"function-location-link");if(link)
-title.appendChild(link);container.appendChild(popoverContentElement);popover.show(container,anchorElement);}
-DebuggerAgent.getFunctionDetails(result.objectId,didGetDetails.bind(this));return;}
+var anchorElement=anchorOverride||element;var description=(this._remoteObjectFormatter&&this._remoteObjectFormatter(result))||result.description;var popoverContentElement=null;if(result.type!=="object"){popoverContentElement=document.createElement("span");popoverContentElement.className="monospace console-formatted-"+result.type;popoverContentElement.style.whiteSpace="pre";popoverContentElement.textContent=description;if(result.type==="function"){DebuggerAgent.getFunctionDetails(result.objectId,didGetDetails.bind(this,anchorElement,popoverContentElement));return;}
 if(result.type==="string")
 popoverContentElement.textContent="\""+popoverContentElement.textContent+"\"";popover.show(popoverContentElement,anchorElement);}else{if(result.subtype==="node")
 result.highlightAsDOMNode();popoverContentElement=document.createElement("div");this._titleElement=document.createElement("div");this._titleElement.className="source-frame-popover-title monospace";this._titleElement.textContent=description;popoverContentElement.appendChild(this._titleElement);var section=new WebInspector.ObjectPropertiesSection(result);if(description.substr(0,4)==="HTML"){this._sectionUpdateProperties=section.updateProperties.bind(section);section.updateProperties=this._updateHTMLId.bind(this);}
-section.expanded=true;section.element.addStyleClass("source-frame-popover-tree");section.headerElement.addStyleClass("hidden");popoverContentElement.appendChild(section.element);const popoverWidth=300;const popoverHeight=250;popover.show(popoverContentElement,anchorElement,popoverWidth,popoverHeight);}}
+section.expanded=true;section.element.classList.add("source-frame-popover-tree");section.headerElement.classList.add("hidden");popoverContentElement.appendChild(section.element);const popoverWidth=300;const popoverHeight=250;popover.show(popoverContentElement,anchorElement,popoverWidth,popoverHeight);}}
 this._queryObject(element,showObjectPopover.bind(this),this._popoverObjectGroup);},_onHideObjectPopover:function()
 {WebInspector.domAgent.hideDOMNodeHighlight();if(this._linkifier){this._linkifier.reset();delete this._linkifier;}
 if(this._onHideCallback)
@@ -5562,7 +5758,7 @@
 WebInspector.DOMBreakpointsSidebarPane=function()
 {WebInspector.NativeBreakpointsSidebarPane.call(this,WebInspector.UIString("DOM Breakpoints"));this._breakpointElements={};this._breakpointTypes={SubtreeModified:"subtree-modified",AttributeModified:"attribute-modified",NodeRemoved:"node-removed"};this._breakpointTypeLabels={};this._breakpointTypeLabels[this._breakpointTypes.SubtreeModified]=WebInspector.UIString("Subtree Modified");this._breakpointTypeLabels[this._breakpointTypes.AttributeModified]=WebInspector.UIString("Attribute Modified");this._breakpointTypeLabels[this._breakpointTypes.NodeRemoved]=WebInspector.UIString("Node Removed");this._contextMenuLabels={};this._contextMenuLabels[this._breakpointTypes.SubtreeModified]=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Subtree modifications":"Subtree Modifications");this._contextMenuLabels[this._breakpointTypes.AttributeModified]=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Attributes modifications":"Attributes Modifications");this._contextMenuLabels[this._breakpointTypes.NodeRemoved]=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Node removal":"Node Removal");WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._inspectedURLChanged,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.NodeRemoved,this._nodeRemoved,this);}
 WebInspector.DOMBreakpointsSidebarPane.prototype={_inspectedURLChanged:function(event)
-{this._breakpointElements={};this._reset();var url=event.data;this._inspectedURL=url.removeURLFragment();},populateNodeContextMenu:function(node,contextMenu)
+{this._breakpointElements={};this._reset();var url=(event.data);this._inspectedURL=url.removeURLFragment();},populateNodeContextMenu:function(node,contextMenu)
 {if(node.pseudoType())
 return;var nodeBreakpoints={};for(var id in this._breakpointElements){var element=this._breakpointElements[id];if(element._node===node)
 nodeBreakpoints[element._type]=true;}
@@ -5571,11 +5767,10 @@
 this._setBreakpoint(node,type,true);else
 this._removeBreakpoint(node,type);this._saveBreakpoints();}
 var breakPointSubMenu=contextMenu.appendSubMenuItem(WebInspector.UIString("Break on..."));for(var key in this._breakpointTypes){var type=this._breakpointTypes[key];var label=this._contextMenuLabels[type];breakPointSubMenu.appendCheckboxItem(label,toggleBreakpoint.bind(this,type),nodeBreakpoints[type]);}},createBreakpointHitStatusMessage:function(auxData,callback)
-{if(auxData.type===this._breakpointTypes.SubtreeModified){var targetNodeObject=WebInspector.RemoteObject.fromPayload(auxData["targetNode"]);function didPushNodeToFrontend(targetNodeId)
+{if(auxData.type===this._breakpointTypes.SubtreeModified){var targetNodeObject=WebInspector.RemoteObject.fromPayload(auxData["targetNode"]);targetNodeObject.pushNodeToFrontend(didPushNodeToFrontend.bind(this));}else
+this._doCreateBreakpointHitStatusMessage(auxData,null,callback);function didPushNodeToFrontend(targetNodeId)
 {if(targetNodeId)
-targetNodeObject.release();this._doCreateBreakpointHitStatusMessage(auxData,targetNodeId,callback);}
-targetNodeObject.pushNodeToFrontend(didPushNodeToFrontend.bind(this));}else
-this._doCreateBreakpointHitStatusMessage(auxData,null,callback);},_doCreateBreakpointHitStatusMessage:function(auxData,targetNodeId,callback)
+targetNodeObject.release();this._doCreateBreakpointHitStatusMessage(auxData,targetNodeId,callback);}},_doCreateBreakpointHitStatusMessage:function(auxData,targetNodeId,callback)
 {var message;var typeLabel=this._breakpointTypeLabels[auxData.type];var linkifiedNode=WebInspector.DOMPresentationUtils.linkifyNodeById(auxData.nodeId);var substitutions=[typeLabel,linkifiedNode];var targetNode="";if(targetNodeId)
 targetNode=WebInspector.DOMPresentationUtils.linkifyNodeById(targetNodeId);if(auxData.type===this._breakpointTypes.SubtreeModified){if(auxData.insertion){if(targetNodeId!==auxData.nodeId){message="Paused on a \"%s\" breakpoint set on %s, because a new child was added to its descendant %s.";substitutions.push(targetNode);}else
 message="Paused on a \"%s\" breakpoint set on %s, because a new child was added to that node.";}else{message="Paused on a \"%s\" breakpoint set on %s, because its descendant %s was removed.";substitutions.push(targetNode);}}else
@@ -5590,7 +5785,7 @@
 {for(var id in this._breakpointElements){var element=this._breakpointElements[id];if(element._node===node)
 this._removeBreakpoint(element._node,element._type);}},_setBreakpoint:function(node,type,enabled)
 {var breakpointId=this._createBreakpointId(node.id,type);if(breakpointId in this._breakpointElements)
-return;var element=document.createElement("li");element._node=node;element._type=type;element.addEventListener("contextmenu",this._contextMenu.bind(this,node,type),true);var checkboxElement=document.createElement("input");checkboxElement.className="checkbox-elem";checkboxElement.type="checkbox";checkboxElement.checked=enabled;checkboxElement.addEventListener("click",this._checkboxClicked.bind(this,node,type),false);element._checkboxElement=checkboxElement;element.appendChild(checkboxElement);var labelElement=document.createElement("span");element.appendChild(labelElement);var linkifiedNode=WebInspector.DOMPresentationUtils.linkifyNodeById(node.id);linkifiedNode.addStyleClass("monospace");labelElement.appendChild(linkifiedNode);var description=document.createElement("div");description.className="source-text";description.textContent=this._breakpointTypeLabels[type];labelElement.appendChild(description);var currentElement=this.listElement.firstChild;while(currentElement){if(currentElement._type&&currentElement._type<element._type)
+return;var element=document.createElement("li");element._node=node;element._type=type;element.addEventListener("contextmenu",this._contextMenu.bind(this,node,type),true);var checkboxElement=document.createElement("input");checkboxElement.className="checkbox-elem";checkboxElement.type="checkbox";checkboxElement.checked=enabled;checkboxElement.addEventListener("click",this._checkboxClicked.bind(this,node,type),false);element._checkboxElement=checkboxElement;element.appendChild(checkboxElement);var labelElement=document.createElement("span");element.appendChild(labelElement);var linkifiedNode=WebInspector.DOMPresentationUtils.linkifyNodeById(node.id);linkifiedNode.classList.add("monospace");labelElement.appendChild(linkifiedNode);var description=document.createElement("div");description.className="source-text";description.textContent=this._breakpointTypeLabels[type];labelElement.appendChild(description);var currentElement=this.listElement.firstChild;while(currentElement){if(currentElement._type&&currentElement._type<element._type)
 break;currentElement=currentElement.nextSibling;}
 this._addListElement(element,currentElement);this._breakpointElements[breakpointId]=element;if(enabled)
 DOMDebuggerAgent.setDOMBreakpoint(node.id,type);},_removeAllBreakpoints:function()
@@ -5606,8 +5801,8 @@
 DOMDebuggerAgent.setDOMBreakpoint(node.id,type);else
 DOMDebuggerAgent.removeDOMBreakpoint(node.id,type);this._saveBreakpoints();},highlightBreakpoint:function(auxData)
 {var breakpointId=this._createBreakpointId(auxData.nodeId,auxData.type);var element=this._breakpointElements[breakpointId];if(!element)
-return;this.expand();element.addStyleClass("breakpoint-hit");this._highlightedElement=element;},clearBreakpointHighlight:function()
-{if(this._highlightedElement){this._highlightedElement.removeStyleClass("breakpoint-hit");delete this._highlightedElement;}},_createBreakpointId:function(nodeId,type)
+return;this.expand();element.classList.add("breakpoint-hit");this._highlightedElement=element;},clearBreakpointHighlight:function()
+{if(this._highlightedElement){this._highlightedElement.classList.remove("breakpoint-hit");delete this._highlightedElement;}},_createBreakpointId:function(nodeId,type)
 {return nodeId+":"+type;},_saveBreakpoints:function()
 {var breakpoints=[];var storedBreakpoints=WebInspector.settings.domBreakpoints.get();for(var i=0;i<storedBreakpoints.length;++i){var breakpoint=storedBreakpoints[i];if(breakpoint.url!==this._inspectedURL)
 breakpoints.push(breakpoint);}
@@ -5633,7 +5828,7 @@
 {WebInspector.SidebarPane.prototype.wasShown.call(this);this._reattachBody();},_reattachBody:function()
 {if(this.bodyElement.parentNode!==this.element)
 this.element.appendChild(this.bodyElement);},__proto__:WebInspector.SidebarPane.prototype}
-WebInspector.domBreakpointsSidebarPane=null;WebInspector.Color=function(rgba,format,originalText)
+WebInspector.domBreakpointsSidebarPane;WebInspector.Color=function(rgba,format,originalText)
 {this._rgba=rgba;this._originalText=originalText||null;this._format=format||null;if(typeof this._rgba[3]==="undefined")
 this._rgba[3]=1;for(var i=0;i<4;++i){if(this._rgba[i]<0)
 this._rgba[i]=0;if(this._rgba[i]>1)
@@ -5692,7 +5887,9 @@
 {if(!WebInspector.Color._rgbaToNickname){WebInspector.Color._rgbaToNickname={};for(var nickname in WebInspector.Color.Nicknames){var rgba=WebInspector.Color.Nicknames[nickname];WebInspector.Color._rgbaToNickname[rgba]=nickname;}}
 return WebInspector.Color._rgbaToNickname[this._canonicalRGBA()]||null;},toProtocolRGBA:function()
 {var rgba=this._canonicalRGBA();var result={r:rgba[0],g:rgba[1],b:rgba[2]};if(rgba[3]!==1)
-result.a=rgba[3];return result;}}
+result.a=rgba[3];return result;},invert:function()
+{var rgba=[];rgba[0]=1-this._rgba[0];rgba[1]=1-this._rgba[1];rgba[2]=1-this._rgba[2];rgba[3]=this._rgba[3];return new WebInspector.Color(rgba);},setAlpha:function(alpha)
+{var rgba=this._rgba.slice();rgba[3]=alpha;return new WebInspector.Color(rgba);}}
 WebInspector.Color._parseRgbNumeric=function(value)
 {var parsed=parseInt(value,10);if(value.indexOf("%")!==-1)
 parsed/=100;else
@@ -5734,7 +5931,7 @@
 return name.toLowerCase();return match[1].toLowerCase();}
 WebInspector.CSSMetadata.isPropertyInherited=function(propertyName)
 {return!!(WebInspector.CSSMetadata.InheritedProperties[WebInspector.CSSMetadata.canonicalPropertyName(propertyName)]||WebInspector.CSSMetadata.NonStandardInheritedProperties[propertyName.toLowerCase()]);}
-WebInspector.CSSMetadata._colors=["aqua","black","blue","fuchsia","gray","green","lime","maroon","navy","olive","orange","purple","red","silver","teal","white","yellow","transparent","currentcolor","grey","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen"];WebInspector.CSSMetadata._colorAwareProperties=["background","background-color","background-image","border","border-color","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","box-shadow","color","fill","outline","outline-color","stroke","text-line-through-color","text-overline-color","text-shadow","text-underline-color","-webkit-box-shadow","-webkit-column-rule-color","-webkit-text-decoration-color","-webkit-text-emphasis","-webkit-text-emphasis-color"].keySet();WebInspector.CSSMetadata._propertyDataMap={"table-layout":{values:["auto","fixed"]},"visibility":{values:["hidden","visible","collapse"]},"background-repeat":{values:["repeat","repeat-x","repeat-y","no-repeat","space","round"]},"content":{values:["list-item","close-quote","no-close-quote","no-open-quote","open-quote"]},"list-style-image":{values:["none"]},"clear":{values:["none","left","right","both"]},"text-underline-mode":{values:["continuous","skip-white-space"]},"overflow-x":{values:["hidden","auto","visible","overlay","scroll"]},"stroke-linejoin":{values:["round","miter","bevel"]},"baseline-shift":{values:["baseline","sub","super"]},"border-bottom-width":{values:["medium","thick","thin"]},"marquee-speed":{values:["normal","slow","fast"]},"margin-top-collapse":{values:["collapse","separate","discard"]},"max-height":{values:["none"]},"box-orient":{values:["horizontal","vertical","inline-axis","block-axis"],},"font-stretch":{values:["normal","wider","narrower","ultra-condensed","extra-condensed","condensed","semi-condensed","semi-expanded","expanded","extra-expanded","ultra-expanded"]},"text-underline-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"text-overline-mode":{values:["continuous","skip-white-space"]},"-webkit-background-composite":{values:["highlight","clear","copy","source-over","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","xor","plus-darker","plus-lighter"]},"border-left-width":{values:["medium","thick","thin"]},"-webkit-writing-mode":{values:["lr","rl","tb","lr-tb","rl-tb","tb-rl","horizontal-tb","vertical-rl","vertical-lr","horizontal-bt"]},"text-line-through-mode":{values:["continuous","skip-white-space"]},"border-collapse":{values:["collapse","separate"]},"page-break-inside":{values:["auto","avoid"]},"border-top-width":{values:["medium","thick","thin"]},"outline-color":{values:["invert"]},"text-line-through-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"outline-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"cursor":{values:["none","copy","auto","crosshair","default","pointer","move","vertical-text","cell","context-menu","alias","progress","no-drop","not-allowed","-webkit-zoom-in","-webkit-zoom-out","e-resize","ne-resize","nw-resize","n-resize","se-resize","sw-resize","s-resize","w-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","col-resize","row-resize","text","wait","help","all-scroll","-webkit-grab","-webkit-grabbing"]},"border-width":{values:["medium","thick","thin"]},"size":{values:["a3","a4","a5","b4","b5","landscape","ledger","legal","letter","portrait"]},"background-size":{values:["contain","cover"]},"direction":{values:["ltr","rtl"]},"marquee-direction":{values:["left","right","auto","reverse","forwards","backwards","ahead","up","down"]},"enable-background":{values:["accumulate","new"]},"float":{values:["none","left","right"]},"overflow-y":{values:["hidden","auto","visible","overlay","scroll"]},"margin-bottom-collapse":{values:["collapse","separate","discard"]},"box-reflect":{values:["left","right","above","below"]},"overflow":{values:["hidden","auto","visible","overlay","scroll"]},"text-rendering":{values:["auto","optimizeSpeed","optimizeLegibility","geometricPrecision"]},"text-align":{values:["-webkit-auto","start","end","left","right","center","justify","-webkit-left","-webkit-right","-webkit-center"]},"list-style-position":{values:["outside","inside","hanging"]},"margin-bottom":{values:["auto"]},"color-interpolation":{values:["linearrgb"]},"background-origin":{values:["border-box","content-box","padding-box"]},"word-wrap":{values:["normal","break-word"]},"font-weight":{values:["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},"margin-before-collapse":{values:["collapse","separate","discard"]},"text-overline-width":{values:["normal","medium","auto","thick","thin"]},"text-transform":{values:["none","capitalize","uppercase","lowercase"]},"border-right-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"border-left-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"-webkit-text-emphasis":{values:["circle","filled","open","dot","double-circle","triangle","sesame"]},"font-style":{values:["italic","oblique","normal"]},"speak":{values:["none","normal","spell-out","digits","literal-punctuation","no-punctuation"]},"color-rendering":{values:["auto","optimizeSpeed","optimizeQuality"]},"list-style-type":{values:["none","inline","disc","circle","square","decimal","decimal-leading-zero","arabic-indic","binary","bengali","cambodian","khmer","devanagari","gujarati","gurmukhi","kannada","lower-hexadecimal","lao","malayalam","mongolian","myanmar","octal","oriya","persian","urdu","telugu","tibetan","thai","upper-hexadecimal","lower-roman","upper-roman","lower-greek","lower-alpha","lower-latin","upper-alpha","upper-latin","afar","ethiopic-halehame-aa-et","ethiopic-halehame-aa-er","amharic","ethiopic-halehame-am-et","amharic-abegede","ethiopic-abegede-am-et","cjk-earthly-branch","cjk-heavenly-stem","ethiopic","ethiopic-halehame-gez","ethiopic-abegede","ethiopic-abegede-gez","hangul-consonant","hangul","lower-norwegian","oromo","ethiopic-halehame-om-et","sidama","ethiopic-halehame-sid-et","somali","ethiopic-halehame-so-et","tigre","ethiopic-halehame-tig","tigrinya-er","ethiopic-halehame-ti-er","tigrinya-er-abegede","ethiopic-abegede-ti-er","tigrinya-et","ethiopic-halehame-ti-et","tigrinya-et-abegede","ethiopic-abegede-ti-et","upper-greek","upper-norwegian","asterisks","footnotes","hebrew","armenian","lower-armenian","upper-armenian","georgian","cjk-ideographic","hiragana","katakana","hiragana-iroha","katakana-iroha"]},"-webkit-text-combine":{values:["none","horizontal"]},"outline":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"font":{values:["caption","icon","menu","message-box","small-caption","-webkit-mini-control","-webkit-small-control","-webkit-control","status-bar","italic","oblique","small-caps","normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900","xx-small","x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large","smaller","larger","serif","sans-serif","cursive","fantasy","monospace","-webkit-body","-webkit-pictograph"]},"dominant-baseline":{values:["middle","auto","central","text-before-edge","text-after-edge","ideographic","alphabetic","hanging","mathematical","use-script","no-change","reset-size"]},"display":{values:["none","inline","block","list-item","run-in","compact","inline-block","table","inline-table","table-row-group","table-header-group","table-footer-group","table-row","table-column-group","table-column","table-cell","table-caption","-webkit-box","-webkit-inline-box","flex","inline-flex","grid","inline-grid"]},"-webkit-text-emphasis-position":{values:["over","under"]},"image-rendering":{values:["auto","optimizeSpeed","optimizeQuality"]},"alignment-baseline":{values:["baseline","middle","auto","before-edge","after-edge","central","text-before-edge","text-after-edge","ideographic","alphabetic","hanging","mathematical"]},"outline-width":{values:["medium","thick","thin"]},"text-line-through-width":{values:["normal","medium","auto","thick","thin"]},"box-align":{values:["baseline","center","stretch","start","end"]},"border-right-width":{values:["medium","thick","thin"]},"border-top-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"line-height":{values:["normal"]},"text-overflow":{values:["clip","ellipsis"]},"overflow-wrap":{values:["normal","break-word"]},"box-direction":{values:["normal","reverse"]},"margin-after-collapse":{values:["collapse","separate","discard"]},"page-break-before":{values:["left","right","auto","always","avoid"]},"border-image":{values:["repeat","stretch"]},"text-decoration":{values:["blink","line-through","overline","underline"]},"position":{values:["absolute","fixed","relative","static"]},"font-family":{values:["serif","sans-serif","cursive","fantasy","monospace","-webkit-body","-webkit-pictograph"]},"text-overflow-mode":{values:["clip","ellipsis"]},"border-bottom-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"unicode-bidi":{values:["normal","bidi-override","embed"]},"clip-rule":{values:["nonzero","evenodd"]},"margin-left":{values:["auto"]},"margin-top":{values:["auto"]},"zoom":{values:["normal","document","reset"]},"text-overline-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"max-width":{values:["none"]},"caption-side":{values:["top","bottom"]},"empty-cells":{values:["hide","show"]},"pointer-events":{values:["none","all","auto","visible","visiblepainted","visiblefill","visiblestroke","painted","fill","stroke"]},"letter-spacing":{values:["normal"]},"background-clip":{values:["border-box","content-box","padding-box"]},"-webkit-font-smoothing":{values:["none","auto","antialiased","subpixel-antialiased"]},"border":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"font-size":{values:["xx-small","x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large","smaller","larger"]},"font-variant":{values:["small-caps","normal"]},"vertical-align":{values:["baseline","middle","sub","super","text-top","text-bottom","top","bottom","-webkit-baseline-middle"]},"marquee-style":{values:["none","scroll","slide","alternate"]},"white-space":{values:["normal","nowrap","pre","pre-line","pre-wrap"]},"text-underline-width":{values:["normal","medium","auto","thick","thin"]},"box-lines":{values:["single","multiple"]},"page-break-after":{values:["left","right","auto","always","avoid"]},"clip-path":{values:["none"]},"margin":{values:["auto"]},"marquee-repetition":{values:["infinite"]},"margin-right":{values:["auto"]},"word-break":{values:["normal","break-all","break-word"]},"word-spacing":{values:["normal"]},"-webkit-text-emphasis-style":{values:["circle","filled","open","dot","double-circle","triangle","sesame"]},"-webkit-transform":{values:["scale","scaleX","scaleY","scale3d","rotate","rotateX","rotateY","rotateZ","rotate3d","skew","skewX","skewY","translate","translateX","translateY","translateZ","translate3d","matrix","matrix3d","perspective"]},"image-resolution":{values:["from-image","snap"]},"box-sizing":{values:["content-box","padding-box","border-box"]},"clip":{values:["auto"]},"resize":{values:["none","both","horizontal","vertical"]},"align-content":{values:["flex-start","flex-end","center","space-between","space-around","stretch"]},"align-items":{values:["flex-start","flex-end","center","baseline","stretch"]},"align-self":{values:["auto","flex-start","flex-end","center","baseline","stretch"]},"flex-direction":{values:["row","row-reverse","column","column-reverse"]},"justify-content":{values:["flex-start","flex-end","center","space-between","space-around"]},"flex-wrap":{values:["nowrap","wrap","wrap-reverse"]},"-webkit-animation-timing-function":{values:["ease","linear","ease-in","ease-out","ease-in-out","step-start","step-end","steps","cubic-bezier"]},"-webkit-animation-direction":{values:["normal","reverse","alternate","alternate-reverse"]},"-webkit-animation-play-state":{values:["running","paused"]},"-webkit-animation-fill-mode":{values:["none","forwards","backwards","both"]},"-webkit-backface-visibility":{values:["visible","hidden"]},"-webkit-box-decoration-break":{values:["slice","clone"]},"-webkit-column-break-after":{values:["auto","always","avoid","left","right","page","column","avoid-page","avoid-column"]},"-webkit-column-break-before":{values:["auto","always","avoid","left","right","page","column","avoid-page","avoid-column"]},"-webkit-column-break-inside":{values:["auto","avoid","avoid-page","avoid-column"]},"-webkit-column-span":{values:["none","all"]},"-webkit-column-count":{values:["auto"]},"-webkit-column-gap":{values:["normal"]},"-webkit-line-break":{values:["auto","loose","normal","strict"]},"-webkit-perspective":{values:["none"]},"-webkit-perspective-origin":{values:["left","center","right","top","bottom"]},"text-align-last":{values:["auto","start","end","left","right","center","justify"]},"-webkit-text-decoration-line":{values:["none","underline","overline","line-through","blink"]},"-webkit-text-decoration-style":{values:["solid","double","dotted","dashed","wavy"]},"-webkit-text-decoration-skip":{values:["none","objects","spaces","ink","edges","box-decoration"]},"-webkit-transform-origin":{values:["left","center","right","top","bottom"]},"-webkit-transform-style":{values:["flat","preserve-3d"]},"-webkit-transition-timing-function":{values:["ease","linear","ease-in","ease-out","ease-in-out","step-start","step-end","steps","cubic-bezier"]},"-webkit-flex":{m:"flexbox"},"-webkit-flex-basis":{m:"flexbox"},"-webkit-flex-flow":{m:"flexbox"},"-webkit-flex-grow":{m:"flexbox"},"-webkit-flex-shrink":{m:"flexbox"},"-webkit-animation":{m:"animations"},"-webkit-animation-delay":{m:"animations"},"-webkit-animation-duration":{m:"animations"},"-webkit-animation-iteration-count":{m:"animations"},"-webkit-animation-name":{m:"animations"},"-webkit-column-rule":{m:"multicol"},"-webkit-column-rule-color":{m:"multicol",a:"crc"},"-webkit-column-rule-style":{m:"multicol",a:"crs"},"-webkit-column-rule-width":{m:"multicol",a:"crw"},"-webkit-column-width":{m:"multicol",a:"cw"},"-webkit-columns":{m:"multicol"},"-webkit-order":{m:"flexbox"},"-webkit-text-decoration-color":{m:"text-decor"},"-webkit-text-emphasis-color":{m:"text-decor"},"-webkit-transition":{m:"transitions"},"-webkit-transition-delay":{m:"transitions"},"-webkit-transition-duration":{m:"transitions"},"-webkit-transition-property":{m:"transitions"},"background":{m:"background"},"background-attachment":{m:"background"},"background-color":{m:"background"},"background-image":{m:"background"},"background-position":{m:"background"},"background-position-x":{m:"background"},"background-position-y":{m:"background"},"background-repeat-x":{m:"background"},"background-repeat-y":{m:"background"},"border-top":{m:"background"},"border-right":{m:"background"},"border-bottom":{m:"background"},"border-left":{m:"background"},"border-radius":{m:"background"},"bottom":{m:"visuren"},"box-shadow":{m:"background"},"color":{m:"color",a:"foreground"},"counter-increment":{m:"generate"},"counter-reset":{m:"generate"},"grid-definition-columns":{m:"grid"},"grid-definition-rows":{m:"grid"},"height":{m:"box"},"image-orientation":{m:"images"},"left":{m:"visuren"},"list-style":{m:"lists"},"min-height":{m:"box"},"min-width":{m:"box"},"opacity":{m:"color",a:"transparency"},"orphans":{m:"page"},"outline-offset":{m:"ui"},"padding":{m:"box",a:"padding1"},"padding-bottom":{m:"box"},"padding-left":{m:"box"},"padding-right":{m:"box"},"padding-top":{m:"box"},"page":{m:"page"},"quotes":{m:"generate"},"right":{m:"visuren"},"tab-size":{m:"text"},"text-indent":{m:"text"},"text-shadow":{m:"text-decor"},"top":{m:"visuren"},"unicode-range":{m:"fonts",a:"descdef-unicode-range"},"widows":{m:"page"},"width":{m:"box"},"z-index":{m:"visuren"}}
+WebInspector.CSSMetadata._colors=["aqua","black","blue","fuchsia","gray","green","lime","maroon","navy","olive","orange","purple","red","silver","teal","white","yellow","transparent","currentcolor","grey","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen"];WebInspector.CSSMetadata._colorAwareProperties=["background","background-color","background-image","border","border-color","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","box-shadow","color","fill","outline","outline-color","stroke","text-line-through-color","text-overline-color","text-shadow","text-underline-color","-webkit-box-shadow","-webkit-column-rule-color","-webkit-text-decoration-color","-webkit-text-emphasis","-webkit-text-emphasis-color"].keySet();WebInspector.CSSMetadata._propertyDataMap={"table-layout":{values:["auto","fixed"]},"visibility":{values:["hidden","visible","collapse"]},"background-repeat":{values:["repeat","repeat-x","repeat-y","no-repeat","space","round"]},"content":{values:["list-item","close-quote","no-close-quote","no-open-quote","open-quote"]},"list-style-image":{values:["none"]},"clear":{values:["none","left","right","both"]},"text-underline-mode":{values:["continuous","skip-white-space"]},"overflow-x":{values:["hidden","auto","visible","overlay","scroll"]},"stroke-linejoin":{values:["round","miter","bevel"]},"baseline-shift":{values:["baseline","sub","super"]},"border-bottom-width":{values:["medium","thick","thin"]},"marquee-speed":{values:["normal","slow","fast"]},"margin-top-collapse":{values:["collapse","separate","discard"]},"max-height":{values:["none"]},"box-orient":{values:["horizontal","vertical","inline-axis","block-axis"],},"font-stretch":{values:["normal","wider","narrower","ultra-condensed","extra-condensed","condensed","semi-condensed","semi-expanded","expanded","extra-expanded","ultra-expanded"]},"text-underline-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"text-overline-mode":{values:["continuous","skip-white-space"]},"-webkit-background-composite":{values:["highlight","clear","copy","source-over","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","xor","plus-darker","plus-lighter"]},"border-left-width":{values:["medium","thick","thin"]},"box-shadow":{values:["inset","none"]},"-webkit-writing-mode":{values:["lr","rl","tb","lr-tb","rl-tb","tb-rl","horizontal-tb","vertical-rl","vertical-lr","horizontal-bt"]},"text-line-through-mode":{values:["continuous","skip-white-space"]},"border-collapse":{values:["collapse","separate"]},"page-break-inside":{values:["auto","avoid"]},"border-top-width":{values:["medium","thick","thin"]},"outline-color":{values:["invert"]},"text-line-through-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"outline-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"cursor":{values:["none","copy","auto","crosshair","default","pointer","move","vertical-text","cell","context-menu","alias","progress","no-drop","not-allowed","-webkit-zoom-in","-webkit-zoom-out","e-resize","ne-resize","nw-resize","n-resize","se-resize","sw-resize","s-resize","w-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","col-resize","row-resize","text","wait","help","all-scroll","-webkit-grab","-webkit-grabbing"]},"border-width":{values:["medium","thick","thin"]},"size":{values:["a3","a4","a5","b4","b5","landscape","ledger","legal","letter","portrait"]},"background-size":{values:["contain","cover"]},"direction":{values:["ltr","rtl"]},"marquee-direction":{values:["left","right","auto","reverse","forwards","backwards","ahead","up","down"]},"enable-background":{values:["accumulate","new"]},"float":{values:["none","left","right"]},"overflow-y":{values:["hidden","auto","visible","overlay","scroll"]},"margin-bottom-collapse":{values:["collapse","separate","discard"]},"box-reflect":{values:["left","right","above","below"]},"overflow":{values:["hidden","auto","visible","overlay","scroll"]},"text-rendering":{values:["auto","optimizeSpeed","optimizeLegibility","geometricPrecision"]},"text-align":{values:["-webkit-auto","start","end","left","right","center","justify","-webkit-left","-webkit-right","-webkit-center"]},"list-style-position":{values:["outside","inside","hanging"]},"margin-bottom":{values:["auto"]},"color-interpolation":{values:["linearrgb"]},"background-origin":{values:["border-box","content-box","padding-box"]},"word-wrap":{values:["normal","break-word"]},"font-weight":{values:["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},"margin-before-collapse":{values:["collapse","separate","discard"]},"text-overline-width":{values:["normal","medium","auto","thick","thin"]},"text-transform":{values:["none","capitalize","uppercase","lowercase"]},"border-right-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"border-left-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"-webkit-text-emphasis":{values:["circle","filled","open","dot","double-circle","triangle","sesame"]},"font-style":{values:["italic","oblique","normal"]},"speak":{values:["none","normal","spell-out","digits","literal-punctuation","no-punctuation"]},"color-rendering":{values:["auto","optimizeSpeed","optimizeQuality"]},"list-style-type":{values:["none","inline","disc","circle","square","decimal","decimal-leading-zero","arabic-indic","binary","bengali","cambodian","khmer","devanagari","gujarati","gurmukhi","kannada","lower-hexadecimal","lao","malayalam","mongolian","myanmar","octal","oriya","persian","urdu","telugu","tibetan","thai","upper-hexadecimal","lower-roman","upper-roman","lower-greek","lower-alpha","lower-latin","upper-alpha","upper-latin","afar","ethiopic-halehame-aa-et","ethiopic-halehame-aa-er","amharic","ethiopic-halehame-am-et","amharic-abegede","ethiopic-abegede-am-et","cjk-earthly-branch","cjk-heavenly-stem","ethiopic","ethiopic-halehame-gez","ethiopic-abegede","ethiopic-abegede-gez","hangul-consonant","hangul","lower-norwegian","oromo","ethiopic-halehame-om-et","sidama","ethiopic-halehame-sid-et","somali","ethiopic-halehame-so-et","tigre","ethiopic-halehame-tig","tigrinya-er","ethiopic-halehame-ti-er","tigrinya-er-abegede","ethiopic-abegede-ti-er","tigrinya-et","ethiopic-halehame-ti-et","tigrinya-et-abegede","ethiopic-abegede-ti-et","upper-greek","upper-norwegian","asterisks","footnotes","hebrew","armenian","lower-armenian","upper-armenian","georgian","cjk-ideographic","hiragana","katakana","hiragana-iroha","katakana-iroha"]},"-webkit-text-combine":{values:["none","horizontal"]},"outline":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"font":{values:["caption","icon","menu","message-box","small-caption","-webkit-mini-control","-webkit-small-control","-webkit-control","status-bar","italic","oblique","small-caps","normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900","xx-small","x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large","smaller","larger","serif","sans-serif","cursive","fantasy","monospace","-webkit-body","-webkit-pictograph"]},"dominant-baseline":{values:["middle","auto","central","text-before-edge","text-after-edge","ideographic","alphabetic","hanging","mathematical","use-script","no-change","reset-size"]},"display":{values:["none","inline","block","list-item","run-in","compact","inline-block","table","inline-table","table-row-group","table-header-group","table-footer-group","table-row","table-column-group","table-column","table-cell","table-caption","-webkit-box","-webkit-inline-box","flex","inline-flex","grid","inline-grid"]},"-webkit-text-emphasis-position":{values:["over","under"]},"image-rendering":{values:["auto","optimizeSpeed","optimizeQuality"]},"alignment-baseline":{values:["baseline","middle","auto","before-edge","after-edge","central","text-before-edge","text-after-edge","ideographic","alphabetic","hanging","mathematical"]},"outline-width":{values:["medium","thick","thin"]},"text-line-through-width":{values:["normal","medium","auto","thick","thin"]},"box-align":{values:["baseline","center","stretch","start","end"]},"border-right-width":{values:["medium","thick","thin"]},"border-top-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"line-height":{values:["normal"]},"text-overflow":{values:["clip","ellipsis"]},"overflow-wrap":{values:["normal","break-word"]},"box-direction":{values:["normal","reverse"]},"margin-after-collapse":{values:["collapse","separate","discard"]},"page-break-before":{values:["left","right","auto","always","avoid"]},"border-image":{values:["repeat","stretch"]},"text-decoration":{values:["blink","line-through","overline","underline"]},"position":{values:["absolute","fixed","relative","static"]},"font-family":{values:["serif","sans-serif","cursive","fantasy","monospace","-webkit-body","-webkit-pictograph"]},"text-overflow-mode":{values:["clip","ellipsis"]},"border-bottom-style":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"unicode-bidi":{values:["normal","bidi-override","embed","isolate","isolate-override","plaintext"]},"clip-rule":{values:["nonzero","evenodd"]},"margin-left":{values:["auto"]},"margin-top":{values:["auto"]},"zoom":{values:["normal","document","reset"]},"text-overline-style":{values:["none","dotted","dashed","solid","double","dot-dash","dot-dot-dash","wave"]},"max-width":{values:["none"]},"caption-side":{values:["top","bottom"]},"empty-cells":{values:["hide","show"]},"pointer-events":{values:["none","all","auto","visible","visiblepainted","visiblefill","visiblestroke","painted","fill","stroke","bounding-box"]},"letter-spacing":{values:["normal"]},"background-clip":{values:["border-box","content-box","padding-box"]},"-webkit-font-smoothing":{values:["none","auto","antialiased","subpixel-antialiased"]},"border":{values:["none","hidden","inset","groove","ridge","outset","dotted","dashed","solid","double"]},"font-size":{values:["xx-small","x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large","smaller","larger"]},"font-variant":{values:["small-caps","normal"]},"vertical-align":{values:["baseline","middle","sub","super","text-top","text-bottom","top","bottom","-webkit-baseline-middle"]},"marquee-style":{values:["none","scroll","slide","alternate"]},"white-space":{values:["normal","nowrap","pre","pre-line","pre-wrap"]},"text-underline-width":{values:["normal","medium","auto","thick","thin"]},"box-lines":{values:["single","multiple"]},"page-break-after":{values:["left","right","auto","always","avoid"]},"clip-path":{values:["none"]},"margin":{values:["auto"]},"marquee-repetition":{values:["infinite"]},"margin-right":{values:["auto"]},"word-break":{values:["normal","break-all","break-word"]},"word-spacing":{values:["normal"]},"-webkit-text-emphasis-style":{values:["circle","filled","open","dot","double-circle","triangle","sesame"]},"-webkit-transform":{values:["scale","scaleX","scaleY","scale3d","rotate","rotateX","rotateY","rotateZ","rotate3d","skew","skewX","skewY","translate","translateX","translateY","translateZ","translate3d","matrix","matrix3d","perspective"]},"image-resolution":{values:["from-image","snap"]},"box-sizing":{values:["content-box","padding-box","border-box"]},"clip":{values:["auto"]},"resize":{values:["none","both","horizontal","vertical"]},"align-content":{values:["flex-start","flex-end","center","space-between","space-around","stretch"]},"align-items":{values:["flex-start","flex-end","center","baseline","stretch"]},"align-self":{values:["auto","flex-start","flex-end","center","baseline","stretch"]},"flex-direction":{values:["row","row-reverse","column","column-reverse"]},"justify-content":{values:["flex-start","flex-end","center","space-between","space-around"]},"flex-wrap":{values:["nowrap","wrap","wrap-reverse"]},"-webkit-animation-timing-function":{values:["ease","linear","ease-in","ease-out","ease-in-out","step-start","step-end","steps","cubic-bezier"]},"-webkit-animation-direction":{values:["normal","reverse","alternate","alternate-reverse"]},"-webkit-animation-play-state":{values:["running","paused"]},"-webkit-animation-fill-mode":{values:["none","forwards","backwards","both"]},"-webkit-backface-visibility":{values:["visible","hidden"]},"-webkit-box-decoration-break":{values:["slice","clone"]},"-webkit-column-break-after":{values:["auto","always","avoid","left","right","page","column","avoid-page","avoid-column"]},"-webkit-column-break-before":{values:["auto","always","avoid","left","right","page","column","avoid-page","avoid-column"]},"-webkit-column-break-inside":{values:["auto","avoid","avoid-page","avoid-column"]},"-webkit-column-span":{values:["none","all"]},"-webkit-column-count":{values:["auto"]},"-webkit-column-gap":{values:["normal"]},"-webkit-line-break":{values:["auto","loose","normal","strict"]},"-webkit-perspective":{values:["none"]},"-webkit-perspective-origin":{values:["left","center","right","top","bottom"]},"text-align-last":{values:["auto","start","end","left","right","center","justify"]},"-webkit-text-decoration-line":{values:["none","underline","overline","line-through","blink"]},"-webkit-text-decoration-style":{values:["solid","double","dotted","dashed","wavy"]},"-webkit-text-decoration-skip":{values:["none","objects","spaces","ink","edges","box-decoration"]},"-webkit-transform-origin":{values:["left","center","right","top","bottom"]},"-webkit-transform-style":{values:["flat","preserve-3d"]},"-webkit-transition-timing-function":{values:["ease","linear","ease-in","ease-out","ease-in-out","step-start","step-end","steps","cubic-bezier"]},"-webkit-flex":{m:"flexbox"},"-webkit-flex-basis":{m:"flexbox"},"-webkit-flex-flow":{m:"flexbox"},"-webkit-flex-grow":{m:"flexbox"},"-webkit-flex-shrink":{m:"flexbox"},"-webkit-animation":{m:"animations"},"-webkit-animation-delay":{m:"animations"},"-webkit-animation-duration":{m:"animations"},"-webkit-animation-iteration-count":{m:"animations"},"-webkit-animation-name":{m:"animations"},"-webkit-column-rule":{m:"multicol"},"-webkit-column-rule-color":{m:"multicol",a:"crc"},"-webkit-column-rule-style":{m:"multicol",a:"crs"},"-webkit-column-rule-width":{m:"multicol",a:"crw"},"-webkit-column-width":{m:"multicol",a:"cw"},"-webkit-columns":{m:"multicol"},"-webkit-order":{m:"flexbox"},"-webkit-text-decoration-color":{m:"text-decor"},"-webkit-text-emphasis-color":{m:"text-decor"},"-webkit-transition":{m:"transitions"},"-webkit-transition-delay":{m:"transitions"},"-webkit-transition-duration":{m:"transitions"},"-webkit-transition-property":{m:"transitions"},"background":{m:"background"},"background-attachment":{m:"background"},"background-color":{m:"background"},"background-image":{m:"background"},"background-position":{m:"background"},"background-position-x":{m:"background"},"background-position-y":{m:"background"},"background-repeat-x":{m:"background"},"background-repeat-y":{m:"background"},"border-top":{m:"background"},"border-right":{m:"background"},"border-bottom":{m:"background"},"border-left":{m:"background"},"border-radius":{m:"background"},"bottom":{m:"visuren"},"color":{m:"color",a:"foreground"},"counter-increment":{m:"generate"},"counter-reset":{m:"generate"},"grid-definition-columns":{m:"grid"},"grid-definition-rows":{m:"grid"},"height":{m:"box"},"image-orientation":{m:"images"},"left":{m:"visuren"},"list-style":{m:"lists"},"min-height":{m:"box"},"min-width":{m:"box"},"opacity":{m:"color",a:"transparency"},"orphans":{m:"page"},"outline-offset":{m:"ui"},"padding":{m:"box",a:"padding1"},"padding-bottom":{m:"box"},"padding-left":{m:"box"},"padding-right":{m:"box"},"padding-top":{m:"box"},"page":{m:"page"},"quotes":{m:"generate"},"right":{m:"visuren"},"tab-size":{m:"text"},"text-indent":{m:"text"},"text-shadow":{m:"text-decor"},"top":{m:"visuren"},"unicode-range":{m:"fonts",a:"descdef-unicode-range"},"widows":{m:"page"},"width":{m:"box"},"z-index":{m:"visuren"}}
 WebInspector.CSSMetadata.keywordsForProperty=function(propertyName)
 {var acceptedKeywords=["inherit","initial"];var descriptor=WebInspector.CSSMetadata.descriptor(propertyName);if(descriptor&&descriptor.values)
 acceptedKeywords.push.apply(acceptedKeywords,descriptor.values);if(propertyName in WebInspector.CSSMetadata._colorAwareProperties)
@@ -5783,16 +5980,16 @@
 {this.element.disabled=!this._enabled;},__proto__:WebInspector.Object.prototype}
 WebInspector.StatusBarText=function(text,className)
 {WebInspector.StatusBarItem.call(this,document.createElement("span"));this.element.className="status-bar-item status-bar-text";if(className)
-this.element.addStyleClass(className);this.element.textContent=text;}
+this.element.classList.add(className);this.element.textContent=text;}
 WebInspector.StatusBarText.prototype={setText:function(text)
 {this.element.textContent=text;},__proto__:WebInspector.StatusBarItem.prototype}
 WebInspector.StatusBarButton=function(title,className,states)
-{WebInspector.StatusBarItem.call(this,document.createElement("button"));this.element.className=className+" status-bar-item";this.element.addEventListener("click",this._clicked.bind(this),false);this.glyph=document.createElement("div");this.glyph.className="glyph";this.element.appendChild(this.glyph);this.glyphShadow=document.createElement("div");this.glyphShadow.className="glyph shadow";this.element.appendChild(this.glyphShadow);this.states=states;if(!states)
+{WebInspector.StatusBarItem.call(this,document.createElement("button"));this.element.className=className+" status-bar-item";this.element.addEventListener("click",this._clicked.bind(this,false),false);this.glyph=document.createElement("div");this.glyph.className="glyph";this.element.appendChild(this.glyph);this.glyphShadow=document.createElement("div");this.glyphShadow.className="glyph shadow";this.element.appendChild(this.glyphShadow);this.states=states;if(!states)
 this.states=2;if(states==2)
 this._state=false;else
 this._state=0;this.title=title;this.className=className;this._visible=true;}
-WebInspector.StatusBarButton.prototype={_clicked:function()
-{this.dispatchEventToListeners("click");if(this._longClickInterval){clearInterval(this._longClickInterval);delete this._longClickInterval;}},_applyEnabledState:function()
+WebInspector.StatusBarButton.prototype={_clicked:function(optionClick)
+{this.dispatchEventToListeners("click",optionClick);if(this._longClickInterval){clearInterval(this._longClickInterval);delete this._longClickInterval;}},_applyEnabledState:function()
 {this.element.disabled=!this._enabled;if(this._longClickInterval){clearInterval(this._longClickInterval);delete this._longClickInterval;}},enabled:function()
 {return this._enabled;},get title()
 {return this._title;},set title(x)
@@ -5801,8 +5998,8 @@
 {return this._state;},set state(x)
 {if(this._state===x)
 return;if(this.states===2)
-this.element.enableStyleClass("toggled-on",x);else{this.element.removeStyleClass("toggled-"+this._state);if(x!==0)
-this.element.addStyleClass("toggled-"+x);}
+this.element.enableStyleClass("toggled-on",x);else{this.element.classList.remove("toggled-"+this._state);if(x!==0)
+this.element.classList.add("toggled-"+x);}
 this._state=x;},get toggled()
 {if(this.states!==2)
 throw("Only used toggled when there are 2 states, otherwise, use state");return this.state;},set toggled(x)
@@ -5824,23 +6021,23 @@
 {if(buttonsProvider){if(!this._longClickOptionsData){this.makeLongClickEnabled();this.longClickGlyph=document.createElement("div");this.longClickGlyph.className="fill long-click-glyph";this.element.appendChild(this.longClickGlyph);this.longClickGlyphShadow=document.createElement("div");this.longClickGlyphShadow.className="fill long-click-glyph shadow";this.element.appendChild(this.longClickGlyphShadow);var longClickDownListener=this._showOptions.bind(this);this.addEventListener("longClickDown",longClickDownListener,this);this._longClickOptionsData={glyphElement:this.longClickGlyph,glyphShadowElement:this.longClickGlyphShadow,longClickDownListener:longClickDownListener};}
 this._longClickOptionsData.buttonsProvider=buttonsProvider;}else{if(!this._longClickOptionsData)
 return;this.element.removeChild(this._longClickOptionsData.glyphElement);this.element.removeChild(this._longClickOptionsData.glyphShadowElement);this.removeEventListener("longClickDown",this._longClickOptionsData.longClickDownListener,this);delete this._longClickOptionsData;this.unmakeLongClickEnabled();}},_showOptions:function()
-{var buttons=this._longClickOptionsData.buttonsProvider();var mainButtonClone=new WebInspector.StatusBarButton(this.title,this.className,this.states);mainButtonClone.addEventListener("click",this._clicked,this);mainButtonClone.state=this.state;buttons.push(mainButtonClone);var mouseUpListener=mouseUp.bind(this);document.documentElement.addEventListener("mouseup",mouseUpListener,false);var optionsGlassPane=new WebInspector.GlassPane();var optionsBarElement=optionsGlassPane.element.createChild("div","alternate-status-bar-buttons-bar");const buttonHeight=23;var hostButtonPosition=this.element.totalOffset();var topNotBottom=hostButtonPosition.top<document.documentElement.offsetHeight/2;if(topNotBottom)
+{var buttons=this._longClickOptionsData.buttonsProvider();var mainButtonClone=new WebInspector.StatusBarButton(this.title,this.className,this.states);mainButtonClone.addEventListener("click",this._clicked.bind(this,true),this);mainButtonClone.state=this.state;buttons.unshift(mainButtonClone);var mouseUpListener=mouseUp.bind(this);document.documentElement.addEventListener("mouseup",mouseUpListener,false);var optionsGlassPane=new WebInspector.GlassPane();var optionsBarElement=optionsGlassPane.element.createChild("div","alternate-status-bar-buttons-bar");const buttonHeight=23;var hostButtonPosition=this.element.totalOffset();var topNotBottom=hostButtonPosition.top+buttonHeight*buttons.length<document.documentElement.offsetHeight;if(!topNotBottom)
 buttons=buttons.reverse();optionsBarElement.style.height=(buttonHeight*buttons.length)+"px";if(topNotBottom)
 optionsBarElement.style.top=(hostButtonPosition.top+1)+"px";else
 optionsBarElement.style.top=(hostButtonPosition.top-(buttonHeight*(buttons.length-1)))+"px";optionsBarElement.style.left=(hostButtonPosition.left+1)+"px";var boundMouseOver=mouseOver.bind(this);var boundMouseOut=mouseOut.bind(this);for(var i=0;i<buttons.length;++i){buttons[i].element.addEventListener("mousemove",boundMouseOver,false);buttons[i].element.addEventListener("mouseout",boundMouseOut,false);optionsBarElement.appendChild(buttons[i].element);}
-var hostButtonIndex=topNotBottom?0:buttons.length-1;buttons[hostButtonIndex].element.addStyleClass("emulate-active");function mouseOver(e)
+var hostButtonIndex=topNotBottom?0:buttons.length-1;buttons[hostButtonIndex].element.classList.add("emulate-active");function mouseOver(e)
 {if(e.which!==1)
-return;var buttonElement=e.target.enclosingNodeOrSelfWithClass("status-bar-item");buttonElement.addStyleClass("emulate-active");}
+return;var buttonElement=e.target.enclosingNodeOrSelfWithClass("status-bar-item");buttonElement.classList.add("emulate-active");}
 function mouseOut(e)
 {if(e.which!==1)
-return;var buttonElement=e.target.enclosingNodeOrSelfWithClass("status-bar-item");buttonElement.removeStyleClass("emulate-active");}
+return;var buttonElement=e.target.enclosingNodeOrSelfWithClass("status-bar-item");buttonElement.classList.remove("emulate-active");}
 function mouseUp(e)
 {if(e.which!==1)
-return;optionsGlassPane.dispose();document.documentElement.removeEventListener("mouseup",mouseUpListener,false);for(var i=0;i<buttons.length;++i){if(buttons[i].element.hasStyleClass("emulate-active")){buttons[i].element.removeStyleClass("emulate-active");buttons[i]._clicked();break;}}}},__proto__:WebInspector.StatusBarItem.prototype}
+return;optionsGlassPane.dispose();document.documentElement.removeEventListener("mouseup",mouseUpListener,false);for(var i=0;i<buttons.length;++i){if(buttons[i].element.classList.contains("emulate-active")){buttons[i].element.classList.remove("emulate-active");buttons[i]._clicked(true);break;}}}},__proto__:WebInspector.StatusBarItem.prototype}
 WebInspector.StatusBarComboBox=function(changeHandler,className)
 {WebInspector.StatusBarItem.call(this,document.createElement("span"));this.element.className="status-bar-select-container";this._selectElement=this.element.createChild("select","status-bar-item");this.element.createChild("div","status-bar-select-arrow");if(changeHandler)
 this._selectElement.addEventListener("change",changeHandler,false);if(className)
-this._selectElement.addStyleClass(className);}
+this._selectElement.classList.add(className);}
 WebInspector.StatusBarComboBox.prototype={selectElement:function()
 {return this._selectElement;},size:function()
 {return this._selectElement.childElementCount;},addOption:function(option)
@@ -5856,6 +6053,26 @@
 {this._selectElement.selectedIndex=Array.prototype.indexOf.call(this._selectElement,option);},setSelectedIndex:function(index)
 {this._selectElement.selectedIndex=index;},selectedIndex:function()
 {return this._selectElement.selectedIndex;},__proto__:WebInspector.StatusBarItem.prototype}
+WebInspector.StatusBarCheckbox=function(title)
+{WebInspector.StatusBarItem.call(this,document.createElement("label"));this.element.classList.add("status-bar-item","checkbox");this._checkbox=this.element.createChild("input");this._checkbox.type="checkbox";this.element.createTextChild(title);}
+WebInspector.StatusBarCheckbox.prototype={checked:function()
+{return this._checkbox.checked;},__proto__:WebInspector.StatusBarItem.prototype}
+WebInspector.StatusBarStatesSettingButton=function(className,states,titles,currentStateSetting,lastStateSetting,stateChangedCallback)
+{WebInspector.StatusBarButton.call(this,"",className,states.length);var onClickBound=this._onClick.bind(this);this.addEventListener("click",onClickBound,this);this._states=states;this._buttons=[];for(var index=0;index<states.length;index++){var button=new WebInspector.StatusBarButton(titles[index],className,states.length);button.state=this._states[index];button.addEventListener("click",onClickBound,this);this._buttons.push(button);}
+this._currentStateSetting=currentStateSetting;this._lastStateSetting=lastStateSetting;this._stateChangedCallback=stateChangedCallback;this.setLongClickOptionsEnabled(this._createOptions.bind(this));this._currentState=null;this.toggleState(this._defaultState());}
+WebInspector.StatusBarStatesSettingButton.prototype={_onClick:function(e)
+{this.toggleState(e.target.state);},toggleState:function(state)
+{if(this._currentState===state)
+return;if(this._currentState)
+this._lastStateSetting.set(this._currentState);this._currentState=state;this._currentStateSetting.set(this._currentState);if(this._stateChangedCallback)
+this._stateChangedCallback(state);var defaultState=this._defaultState();this.state=defaultState;this.title=this._buttons[this._states.indexOf(defaultState)].title;},_defaultState:function()
+{if(!this._currentState){var state=this._currentStateSetting.get();return this._states.indexOf(state)>=0?state:this._states[0];}
+var lastState=this._lastStateSetting.get();if(lastState&&this._states.indexOf(lastState)>=0&&lastState!=this._currentState)
+return lastState;if(this._states.length>1&&this._currentState===this._states[0])
+return this._states[1];return this._states[0];},_createOptions:function()
+{var options=[];for(var index=0;index<this._states.length;index++){if(this._states[index]!==this.state&&this._states[index]!==this._currentState)
+options.push(this._buttons[index]);}
+return options;},__proto__:WebInspector.StatusBarButton.prototype}
 WebInspector.CompletionDictionary=function(){}
 WebInspector.CompletionDictionary.prototype={addWord:function(word){},removeWord:function(word){},hasWord:function(word){},wordsWithPrefix:function(prefix){},wordCount:function(word){}}
 WebInspector.SampleCompletionDictionary=function(){this._words={};}
@@ -5872,17 +6089,20 @@
 return words;},hasWord:function(word)
 {return!!this._words[word];},wordCount:function(word)
 {return this._words[word]?this._words[word]:0;}}
-WebInspector.TextEditor=function(){};WebInspector.TextEditor.Events={GutterClick:"gutterClick"};WebInspector.TextEditor.GutterClickEventData;WebInspector.TextEditor.prototype={undo:function(){},redo:function(){},isClean:function(){},markClean:function(){},indent:function(){},cursorPositionToCoordinates:function(lineNumber,column){return null;},coordinatesToCursorPosition:function(x,y){return null;},tokenAtTextPosition:function(lineNumber,column){return null;},setMimeType:function(mimeType){},setReadOnly:function(readOnly){},readOnly:function(){},defaultFocusedElement:function(){},highlightRegex:function(regex,cssClass){},highlightRange:function(range,cssClass){},removeHighlight:function(highlightDescriptor){},revealLine:function(lineNumber){},addBreakpoint:function(lineNumber,disabled,conditional){},removeBreakpoint:function(lineNumber){},setExecutionLine:function(lineNumber){},clearExecutionLine:function(){},addDecoration:function(lineNumber,element){},removeDecoration:function(lineNumber,element){},highlightSearchResults:function(regex,range){},highlightPosition:function(lineNumber,columnNumber){},clearPositionHighlight:function(){},elementsToRestoreScrollPositionsFor:function(){},inheritScrollPositions:function(textEditor){},beginUpdates:function(){},endUpdates:function(){},onResize:function(){},editRange:function(range,text){},scrollToLine:function(lineNumber){},firstVisibleLine:function(){},lastVisibleLine:function(){},selection:function(){},lastSelection:function(){},setSelection:function(textRange){},copyRange:function(range){},setText:function(text){},text:function(){},range:function(){},line:function(lineNumber){},get linesCount(){},setAttribute:function(line,name,value){},getAttribute:function(line,name){},removeAttribute:function(line,name){},wasShown:function(){},willHide:function(){},setCompletionDictionary:function(dictionary){},}
+WebInspector.TextEditor=function(){};WebInspector.TextEditor.Events={GutterClick:"gutterClick"};WebInspector.TextEditor.GutterClickEventData;WebInspector.TextEditor.prototype={undo:function(){},redo:function(){},isClean:function(){},markClean:function(){},indent:function(){},cursorPositionToCoordinates:function(lineNumber,column){return null;},coordinatesToCursorPosition:function(x,y){return null;},tokenAtTextPosition:function(lineNumber,column){return null;},setMimeType:function(mimeType){},setReadOnly:function(readOnly){},readOnly:function(){},defaultFocusedElement:function(){},highlightRange:function(range,cssClass){},removeHighlight:function(highlightDescriptor){},revealLine:function(lineNumber){},addBreakpoint:function(lineNumber,disabled,conditional){},removeBreakpoint:function(lineNumber){},setExecutionLine:function(lineNumber){},clearExecutionLine:function(){},addDecoration:function(lineNumber,element){},removeDecoration:function(lineNumber,element){},highlightSearchResults:function(regex,range){},highlightPosition:function(lineNumber,columnNumber){},clearPositionHighlight:function(){},elementsToRestoreScrollPositionsFor:function(){},inheritScrollPositions:function(textEditor){},beginUpdates:function(){},endUpdates:function(){},onResize:function(){},editRange:function(range,text){},scrollToLine:function(lineNumber){},firstVisibleLine:function(){},lastVisibleLine:function(){},selection:function(){},lastSelection:function(){},setSelection:function(textRange){},copyRange:function(range){},setText:function(text){},text:function(){},range:function(){},line:function(lineNumber){},get linesCount(){},setAttribute:function(line,name,value){},getAttribute:function(line,name){},removeAttribute:function(line,name){},wasShown:function(){},willHide:function(){},setCompletionDictionary:function(dictionary){},textEditorPositionHandle:function(lineNumber,columnNumber){}}
+WebInspector.TextEditorPositionHandle=function()
+{}
+WebInspector.TextEditorPositionHandle.prototype={resolve:function(){},equal:function(positionHandle){}}
 WebInspector.TextEditorDelegate=function()
 {}
-WebInspector.TextEditorDelegate.prototype={onTextChanged:function(oldRange,newRange){},selectionChanged:function(textRange){},scrollChanged:function(lineNumber){},editorFocused:function(){},populateLineGutterContextMenu:function(contextMenu,lineNumber){},populateTextAreaContextMenu:function(contextMenu,lineNumber){},createLink:function(hrefValue,isExternal){}}
+WebInspector.TextEditorDelegate.prototype={onTextChanged:function(oldRange,newRange){},selectionChanged:function(textRange){},scrollChanged:function(lineNumber){},editorFocused:function(){},populateLineGutterContextMenu:function(contextMenu,lineNumber){},populateTextAreaContextMenu:function(contextMenu,lineNumber){},createLink:function(hrefValue,isExternal){},onJumpToPosition:function(from,to){}}
 WebInspector.SourceFrame=function(contentProvider)
-{WebInspector.View.call(this);this.element.addStyleClass("script-view");this.element.addStyleClass("fill");this._url=contentProvider.contentURL();this._contentProvider=contentProvider;var textEditorDelegate=new WebInspector.TextEditorDelegateForSourceFrame(this);loadScript("CodeMirrorTextEditor.js");this._textEditor=new WebInspector.CodeMirrorTextEditor(this._url,textEditorDelegate);this._currentSearchResultIndex=-1;this._searchResults=[];this._messages=[];this._rowMessages={};this._messageBubbles={};this._textEditor.setReadOnly(!this.canEditSource());this._shortcuts={};this.addShortcut(WebInspector.KeyboardShortcut.makeKey("s",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta),this._commitEditing.bind(this));this.element.addEventListener("keydown",this._handleKeyDown.bind(this),false);this._sourcePosition=new WebInspector.StatusBarText("","source-frame-cursor-position");}
+{WebInspector.View.call(this);this.element.classList.add("script-view");this.element.classList.add("fill");this._url=contentProvider.contentURL();this._contentProvider=contentProvider;var textEditorDelegate=new WebInspector.TextEditorDelegateForSourceFrame(this);loadScript("CodeMirrorTextEditor.js");this._textEditor=new WebInspector.CodeMirrorTextEditor(this._url,textEditorDelegate);this._currentSearchResultIndex=-1;this._searchResults=[];this._messages=[];this._rowMessages={};this._messageBubbles={};this._textEditor.setReadOnly(!this.canEditSource());this._shortcuts={};this.addShortcut(WebInspector.KeyboardShortcut.makeKey("s",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta),this._commitEditing.bind(this));this.element.addEventListener("keydown",this._handleKeyDown.bind(this),false);this._sourcePosition=new WebInspector.StatusBarText("","source-frame-cursor-position");}
 WebInspector.SourceFrame.createSearchRegex=function(query,modifiers)
 {var regex;modifiers=modifiers||"";try{if(/^\/.+\/$/.test(query)){regex=new RegExp(query.substring(1,query.length-1),modifiers);regex.__fromRegExpQuery=true;}}catch(e){}
 if(!regex)
 regex=createPlainTextSearchRegex(query,"i"+modifiers);return regex;}
-WebInspector.SourceFrame.Events={ScrollChanged:"ScrollChanged",SelectionChanged:"SelectionChanged"}
+WebInspector.SourceFrame.Events={ScrollChanged:"ScrollChanged",SelectionChanged:"SelectionChanged",JumpHappened:"JumpHappened"}
 WebInspector.SourceFrame.prototype={addShortcut:function(key,handler)
 {this._shortcuts[key]=handler;},wasShown:function()
 {this._ensureContentLoaded();this._textEditor.show(this.element);this._editorAttached=true;this._wasShownOrLoaded();},_isEditorShowing:function()
@@ -5915,8 +6135,8 @@
 {if(this._selectionToSet&&this.loaded&&this._isEditorShowing()){this._textEditor.setSelection(this._selectionToSet);delete this._selectionToSet;}},_clearSelectionToSet:function()
 {delete this._selectionToSet;},_wasShownOrLoaded:function()
 {this._innerHighlightPositionIfNeeded();this._innerRevealLineIfNeeded();this._innerSetSelectionIfNeeded();this._innerScrollToLineIfNeeded();},onTextChanged:function(oldRange,newRange)
-{if(!this._isReplacing)
-WebInspector.searchController.cancelSearch();this.clearMessages();},_simplifyMimeType:function(content,mimeType)
+{if(this._searchResultsChangedCallback&&!this._isReplacing)
+this._searchResultsChangedCallback();this.clearMessages();},_simplifyMimeType:function(content,mimeType)
 {if(!mimeType)
 return"";if(mimeType.indexOf("javascript")>=0||mimeType.indexOf("jscript")>=0||mimeType.indexOf("ecmascript")>=0)
 return"text/javascript";if(mimeType==="text/x-php"&&content.match(/\<\?.*\?\>/g))
@@ -5926,13 +6146,13 @@
 {if(!this._loaded){this._loaded=true;this._textEditor.setText(content||"");this._textEditor.markClean();}else{var firstLine=this._textEditor.firstVisibleLine();var selection=this._textEditor.selection();this._textEditor.setText(content||"");this._textEditor.scrollToLine(firstLine);this._textEditor.setSelection(selection);}
 this._updateHighlighterType(content||"");this._textEditor.beginUpdates();this._setTextEditorDecorations();this._wasShownOrLoaded();if(this._delayedFindSearchMatches){this._delayedFindSearchMatches();delete this._delayedFindSearchMatches;}
 this.onTextEditorContentLoaded();this._textEditor.endUpdates();},onTextEditorContentLoaded:function(){},_setTextEditorDecorations:function()
-{this._rowMessages={};this._messageBubbles={};this._textEditor.beginUpdates();this._addExistingMessagesToSource();this._textEditor.endUpdates();},performSearch:function(query,shouldJump,callback,currentMatchChangedCallback)
+{this._rowMessages={};this._messageBubbles={};this._textEditor.beginUpdates();this._addExistingMessagesToSource();this._textEditor.endUpdates();},performSearch:function(query,shouldJump,callback,currentMatchChangedCallback,searchResultsChangedCallback)
 {function doFindSearchMatches(query)
 {this._currentSearchResultIndex=-1;this._searchResults=[];var regex=WebInspector.SourceFrame.createSearchRegex(query);this._searchRegex=regex;this._searchResults=this._collectRegexMatches(regex);if(!this._searchResults.length)
 this._textEditor.cancelSearchResultsHighlight();else if(shouldJump)
 this.jumpToNextSearchResult();else
 this._textEditor.highlightSearchResults(regex,null);callback(this,this._searchResults.length);}
-this._resetSearch();this._currentSearchMatchChangedCallback=currentMatchChangedCallback;if(this.loaded)
+this._resetSearch();this._currentSearchMatchChangedCallback=currentMatchChangedCallback;this._searchResultsChangedCallback=searchResultsChangedCallback;if(this.loaded)
 doFindSearchMatches.call(this,query);else
 this._delayedFindSearchMatches=doFindSearchMatches.bind(this,query);this._ensureContentLoaded();},_editorFocused:function()
 {if(!this._searchResults.length)
@@ -5942,7 +6162,7 @@
 return 0;for(var i=0;i<this._searchResults.length;++i){if(this._searchResults[i].compareTo(selection)>=0)
 return i;}
 return 0;},_resetSearch:function()
-{delete this._delayedFindSearchMatches;delete this._currentSearchMatchChangedCallback;this._currentSearchResultIndex=-1;this._searchResults=[];delete this._searchRegex;},searchCanceled:function()
+{delete this._delayedFindSearchMatches;delete this._currentSearchMatchChangedCallback;delete this._searchResultsChangedCallback;this._currentSearchResultIndex=-1;this._searchResults=[];delete this._searchRegex;},searchCanceled:function()
 {var range=this._currentSearchResultIndex!==-1?this._searchResults[this._currentSearchResultIndex]:null;this._resetSearch();if(!this.loaded)
 return;this._textEditor.cancelSearchResultsHighlight();if(range)
 this._textEditor.setSelection(range);},hasSearchResults:function()
@@ -5956,7 +6176,7 @@
 {return this._currentSearchResultIndex;},jumpToSearchResult:function(index)
 {if(!this.loaded||!this._searchResults.length)
 return;this._currentSearchResultIndex=(index+this._searchResults.length)%this._searchResults.length;if(this._currentSearchMatchChangedCallback)
-this._currentSearchMatchChangedCallback(this._currentSearchResultIndex);this._textEditor.highlightSearchResults(this._searchRegex,this._searchResults[this._currentSearchResultIndex]);},replaceSearchMatchWith:function(text)
+this._currentSearchMatchChangedCallback(this._currentSearchResultIndex);this._textEditor.highlightSearchResults(this._searchRegex,this._searchResults[this._currentSearchResultIndex]);},replaceSelectionWith:function(text)
 {var range=this._searchResults[this._currentSearchResultIndex];if(!range)
 return;this._textEditor.highlightSearchResults(this._searchRegex,null);this._isReplacing=true;var newRange=this._textEditor.editRange(range,text);delete this._isReplacing;this._textEditor.setSelection(newRange.collapseToEnd());},replaceAllWith:function(query,replacement)
 {this._textEditor.highlightSearchResults(this._searchRegex,null);var text=this._textEditor.text();var range=this._textEditor.range();var regex=WebInspector.SourceFrame.createSearchRegex(query,"g");if(regex.__fromRegExpQuery)
@@ -5972,7 +6192,7 @@
 lineNumber=0;var rowMessages=this._rowMessages[lineNumber];if(!rowMessages){rowMessages=[];this._rowMessages[lineNumber]=rowMessages;}
 for(var i=0;i<rowMessages.length;++i){if(rowMessages[i].consoleMessage.isEqual(msg)){rowMessages[i].repeatCount=msg.totalRepeatCount;this._updateMessageRepeatCount(rowMessages[i]);return;}}
 var rowMessage={consoleMessage:msg};rowMessages.push(rowMessage);this._textEditor.beginUpdates();var messageBubbleElement=this._messageBubbles[lineNumber];if(!messageBubbleElement){messageBubbleElement=document.createElement("div");messageBubbleElement.className="webkit-html-message-bubble";this._messageBubbles[lineNumber]=messageBubbleElement;this._textEditor.addDecoration(lineNumber,messageBubbleElement);}
-var imageElement=document.createElement("div");switch(msg.level){case WebInspector.ConsoleMessage.MessageLevel.Error:messageBubbleElement.addStyleClass("webkit-html-error-message");imageElement.className="error-icon-small";break;case WebInspector.ConsoleMessage.MessageLevel.Warning:messageBubbleElement.addStyleClass("webkit-html-warning-message");imageElement.className="warning-icon-small";break;}
+var imageElement=document.createElement("div");switch(msg.level){case WebInspector.ConsoleMessage.MessageLevel.Error:messageBubbleElement.classList.add("webkit-html-error-message");imageElement.className="error-icon-small";break;case WebInspector.ConsoleMessage.MessageLevel.Warning:messageBubbleElement.classList.add("webkit-html-warning-message");imageElement.className="warning-icon-small";break;}
 var messageLineElement=document.createElement("div");messageLineElement.className="webkit-html-message-line";messageBubbleElement.appendChild(messageLineElement);messageLineElement.appendChild(imageElement);messageLineElement.appendChild(document.createTextNode(msg.message));rowMessage.element=messageLineElement;rowMessage.repeatCount=msg.totalRepeatCount;this._updateMessageRepeatCount(rowMessage);this._textEditor.endUpdates();},_updateMessageRepeatCount:function(rowMessage)
 {if(rowMessage.repeatCount<2)
 return;if(!rowMessage.repeatCountElement){var repeatCountElement=document.createElement("span");rowMessage.element.appendChild(repeatCountElement);rowMessage.repeatCountElement=repeatCountElement;}
@@ -5984,7 +6204,8 @@
 delete this._rowMessages[lineNumber];if(!messageBubbleElement.childElementCount){this._textEditor.removeDecoration(lineNumber,messageBubbleElement);delete this._messageBubbles[lineNumber];}
 break;}},populateLineGutterContextMenu:function(contextMenu,lineNumber)
 {},populateTextAreaContextMenu:function(contextMenu,lineNumber)
-{},inheritScrollPositions:function(sourceFrame)
+{},onJumpToPosition:function(from,to)
+{this.dispatchEventToListeners(WebInspector.SourceFrame.Events.JumpHappened,{from:from,to:to});},inheritScrollPositions:function(sourceFrame)
 {this._textEditor.inheritScrollPositions(sourceFrame._textEditor);},canEditSource:function()
 {return false;},commitEditing:function(text)
 {},selectionChanged:function(textRange)
@@ -6008,15 +6229,16 @@
 {this._sourceFrame._editorFocused();},populateLineGutterContextMenu:function(contextMenu,lineNumber)
 {this._sourceFrame.populateLineGutterContextMenu(contextMenu,lineNumber);},populateTextAreaContextMenu:function(contextMenu,lineNumber)
 {this._sourceFrame.populateTextAreaContextMenu(contextMenu,lineNumber);},createLink:function(hrefValue,isExternal)
-{var targetLocation=WebInspector.ParsedURL.completeURL(this._sourceFrame._url,hrefValue);return WebInspector.linkifyURLAsNode(targetLocation||hrefValue,hrefValue,undefined,isExternal);},__proto__:WebInspector.TextEditorDelegate.prototype}
+{var targetLocation=WebInspector.ParsedURL.completeURL(this._sourceFrame._url,hrefValue);return WebInspector.linkifyURLAsNode(targetLocation||hrefValue,hrefValue,undefined,isExternal);},onJumpToPosition:function(from,to)
+{this._sourceFrame.onJumpToPosition(from,to);}}
 WebInspector.ResourceView=function(resource)
-{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.addStyleClass("resource-view");this.resource=resource;}
+{WebInspector.View.call(this);this.registerRequiredCSS("resourceView.css");this.element.classList.add("resource-view");this.resource=resource;}
 WebInspector.ResourceView.prototype={hasContent:function()
 {return false;},__proto__:WebInspector.View.prototype}
 WebInspector.ResourceView.hasTextContent=function(resource)
 {if(resource.type.isTextType())
 return true;if(resource.type===WebInspector.resourceTypes.Other)
-return resource.content&&!resource.contentEncoded;return false;}
+return!!resource.content&&!resource.contentEncoded;return false;}
 WebInspector.ResourceView.nonSourceViewForResource=function(resource)
 {switch(resource.type){case WebInspector.resourceTypes.Image:return new WebInspector.ImageView(resource);case WebInspector.resourceTypes.Font:return new WebInspector.FontView(resource);default:return new WebInspector.ResourceView(resource);}}
 WebInspector.ResourceSourceFrame=function(resource)
@@ -6025,12 +6247,12 @@
 {return this._resource;},populateTextAreaContextMenu:function(contextMenu,lineNumber)
 {contextMenu.appendApplicableItems(this._resource);},__proto__:WebInspector.SourceFrame.prototype}
 WebInspector.ResourceSourceFrameFallback=function(resource)
-{WebInspector.View.call(this);this._resource=resource;this.element.addStyleClass("fill");this.element.addStyleClass("script-view");this._content=this.element.createChild("div","script-view-fallback monospace");}
+{WebInspector.View.call(this);this._resource=resource;this.element.classList.add("fill");this.element.classList.add("script-view");this._content=this.element.createChild("div","script-view-fallback monospace");}
 WebInspector.ResourceSourceFrameFallback.prototype={wasShown:function()
 {if(!this._contentRequested){this._contentRequested=true;this._resource.requestContent(this._contentLoaded.bind(this));}},_contentLoaded:function(content)
 {this._content.textContent=content;},__proto__:WebInspector.View.prototype}
 WebInspector.FontView=function(resource)
-{WebInspector.ResourceView.call(this,resource);this.element.addStyleClass("font");}
+{WebInspector.ResourceView.call(this,resource);this.element.classList.add("font");}
 WebInspector.FontView._fontPreviewLines=["ABCDEFGHIJKLM","NOPQRSTUVWXYZ","abcdefghijklm","nopqrstuvwxyz","1234567890"];WebInspector.FontView._fontId=0;WebInspector.FontView._measureFontSize=50;WebInspector.FontView.prototype={hasContent:function()
 {return true;},_createContentIfNeeded:function()
 {if(this.fontPreviewElement)
@@ -6045,58 +6267,78 @@
 return;this.fontPreviewElement.style.removeProperty("visibility");var dimension=this._measureElement();const height=dimension.height;const width=dimension.width;const containerWidth=this.element.offsetWidth-50;const containerHeight=this.element.offsetHeight-30;if(!height||!width||!containerWidth||!containerHeight){this.fontPreviewElement.style.removeProperty("font-size");return;}
 var widthRatio=containerWidth/width;var heightRatio=containerHeight/height;var finalFontSize=Math.floor(WebInspector.FontView._measureFontSize*Math.min(widthRatio,heightRatio))-2;this.fontPreviewElement.style.setProperty("font-size",finalFontSize+"px",null);},__proto__:WebInspector.ResourceView.prototype}
 WebInspector.ImageView=function(resource)
-{WebInspector.ResourceView.call(this,resource);this.element.addStyleClass("image");}
+{WebInspector.ResourceView.call(this,resource);this.element.classList.add("image");}
 WebInspector.ImageView.prototype={hasContent:function()
 {return true;},wasShown:function()
 {this._createContentIfNeeded();},_createContentIfNeeded:function()
 {if(this._container)
-return;var imageContainer=document.createElement("div");imageContainer.className="image";this.element.appendChild(imageContainer);var imagePreviewElement=document.createElement("img");imagePreviewElement.addStyleClass("resource-image-view");imageContainer.appendChild(imagePreviewElement);imagePreviewElement.addEventListener("contextmenu",this._contextMenu.bind(this),true);this._container=document.createElement("div");this._container.className="info";this.element.appendChild(this._container);var imageNameElement=document.createElement("h1");imageNameElement.className="title";imageNameElement.textContent=this.resource.displayName;this._container.appendChild(imageNameElement);var infoListElement=document.createElement("dl");infoListElement.className="infoList";this.resource.populateImageSource(imagePreviewElement);function onImageLoad()
+return;var imageContainer=document.createElement("div");imageContainer.className="image";this.element.appendChild(imageContainer);var imagePreviewElement=document.createElement("img");imagePreviewElement.classList.add("resource-image-view");imageContainer.appendChild(imagePreviewElement);imagePreviewElement.addEventListener("contextmenu",this._contextMenu.bind(this),true);this._container=document.createElement("div");this._container.className="info";this.element.appendChild(this._container);var imageNameElement=document.createElement("h1");imageNameElement.className="title";imageNameElement.textContent=this.resource.displayName;this._container.appendChild(imageNameElement);var infoListElement=document.createElement("dl");infoListElement.className="infoList";this.resource.populateImageSource(imagePreviewElement);function onImageLoad()
 {var content=this.resource.content;if(content)
 var resourceSize=this._base64ToSize(content);else
 var resourceSize=this.resource.resourceSize;var imageProperties=[{name:WebInspector.UIString("Dimensions"),value:WebInspector.UIString("%d × %d",imagePreviewElement.naturalWidth,imagePreviewElement.naturalHeight)},{name:WebInspector.UIString("File size"),value:Number.bytesToString(resourceSize)},{name:WebInspector.UIString("MIME type"),value:this.resource.mimeType}];infoListElement.removeChildren();for(var i=0;i<imageProperties.length;++i){var dt=document.createElement("dt");dt.textContent=imageProperties[i].name;infoListElement.appendChild(dt);var dd=document.createElement("dd");dd.textContent=imageProperties[i].value;infoListElement.appendChild(dd);}
 var dt=document.createElement("dt");dt.textContent=WebInspector.UIString("URL");infoListElement.appendChild(dt);var dd=document.createElement("dd");var externalResource=true;dd.appendChild(WebInspector.linkifyURLAsNode(this.resource.url,undefined,undefined,externalResource));infoListElement.appendChild(dd);this._container.appendChild(infoListElement);}
-imagePreviewElement.addEventListener("load",onImageLoad.bind(this),false);},_base64ToSize:function(content)
+imagePreviewElement.addEventListener("load",onImageLoad.bind(this),false);this._imagePreviewElement=imagePreviewElement;},_base64ToSize:function(content)
 {if(!content.length)
 return 0;var size=(content.length||0)*3/4;if(content.length>0&&content[content.length-1]==="=")
 size--;if(content.length>1&&content[content.length-2]==="=")
 size--;return size;},_contextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy image URL":"Copy Image URL"),this._copyImageURL.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Open image in new tab":"Open Image in New Tab"),this._openInNewTab.bind(this));contextMenu.show();},_copyImageURL:function()
+{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy image URL":"Copy Image URL"),this._copyImageURL.bind(this));if(this._imagePreviewElement.src)
+contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy image as Data URL":"Copy Image As Data URL"),this._copyImageAsDataURL.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Open image in new tab":"Open Image in New Tab"),this._openInNewTab.bind(this));contextMenu.show();},_copyImageAsDataURL:function()
+{InspectorFrontendHost.copyText(this._imagePreviewElement.src);},_copyImageURL:function()
 {InspectorFrontendHost.copyText(this.resource.url);},_openInNewTab:function()
 {InspectorFrontendHost.openInNewTab(this.resource.url);},__proto__:WebInspector.ResourceView.prototype}
 WebInspector.SplitView=function(isVertical,sidebarSizeSettingName,defaultSidebarWidth,defaultSidebarHeight)
-{WebInspector.View.call(this);this.registerRequiredCSS("splitView.css");this.element.addStyleClass("split-view");this.element.addStyleClass("fill");this._firstElement=this.element.createChild("div","split-view-contents scroll-target split-view-contents-first");this._secondElement=this.element.createChild("div","split-view-contents scroll-target split-view-contents-second");this._resizerElement=this.element.createChild("div","split-view-resizer");this.installResizer(this._resizerElement);this._resizable=true;this._savedSidebarWidth=defaultSidebarWidth||200;this._savedSidebarHeight=defaultSidebarHeight||this._savedSidebarWidth;if(0<this._savedSidebarWidth&&this._savedSidebarWidth<1&&0<this._savedSidebarHeight&&this._savedSidebarHeight<1)
-this._useFraction=true;this._sidebarSizeSettingName=sidebarSizeSettingName;this.setSecondIsSidebar(true);this._innerSetVertical(isVertical);}
+{WebInspector.View.call(this);this.registerRequiredCSS("splitView.css");this.element.classList.add("split-view");this.element.classList.add("fill");this._firstElement=this.element.createChild("div","split-view-contents scroll-target split-view-contents-first");this._secondElement=this.element.createChild("div","split-view-contents scroll-target split-view-contents-second");this._resizerElement=this.element.createChild("div","split-view-resizer");this._onDragStartBound=this._onDragStart.bind(this);this._resizerElements=[];this._resizable=true;this._savedSidebarWidth=defaultSidebarWidth||200;this._savedSidebarHeight=defaultSidebarHeight||this._savedSidebarWidth;if(0<this._savedSidebarWidth&&this._savedSidebarWidth<1&&0<this._savedSidebarHeight&&this._savedSidebarHeight<1)
+this._useFraction=true;this._sidebarSizeSettingName=sidebarSizeSettingName;this.setSecondIsSidebar(true);this._innerSetVertical(isVertical);this.installResizer(this._resizerElement);}
 WebInspector.SplitView.prototype={isVertical:function()
 {return this._isVertical;},setVertical:function(isVertical)
 {if(this._isVertical===isVertical)
 return;this._innerSetVertical(isVertical);if(this.isShowing())
-this._updateLayout();},_innerSetVertical:function(isVertical)
-{this.element.removeStyleClass(this._isVertical?"hbox":"vbox");this._isVertical=isVertical;this.element.addStyleClass(this._isVertical?"hbox":"vbox");delete this._resizerElementSize;this._sidebarSize=-1;},_updateLayout:function()
-{delete this._totalSize;this._innerSetSidebarSize(this._lastSidebarSize());},firstElement:function()
+this._updateLayout();for(var i=0;i<this._resizerElements.length;++i)
+this._resizerElements[i].style.setProperty("cursor",this._isVertical?"ew-resize":"ns-resize");},_innerSetVertical:function(isVertical)
+{this.element.classList.remove(this._isVertical?"hbox":"vbox");this._isVertical=isVertical;this.element.classList.add(this._isVertical?"hbox":"vbox");delete this._resizerElementSize;this._sidebarSize=-1;},_updateLayout:function()
+{delete this._totalSize;this._innerSetSidebarSize(this._lastSidebarSize());},setFirstView:function(view)
+{if(this._firstView)
+this._firstView.detach();this._firstView=view;view.show(this._firstElement);},setSecondView:function(view)
+{if(this._secondView)
+this._secondView.detach();this._secondView=view;view.show(this._secondElement);},setMainView:function(view)
+{if(this.isSidebarSecond())
+this.setFirstView(view);else
+this.setSecondView(view);},setSidebarView:function(view)
+{if(this.isSidebarSecond())
+this.setSecondView(view);else
+this.setFirstView(view);},firstElement:function()
 {return this._firstElement;},secondElement:function()
-{return this._secondElement;},get mainElement()
-{return this.isSidebarSecond()?this.firstElement():this.secondElement();},get sidebarElement()
+{return this._secondElement;},mainElement:function()
+{return this.isSidebarSecond()?this.firstElement():this.secondElement();},sidebarElement:function()
 {return this.isSidebarSecond()?this.secondElement():this.firstElement();},isSidebarSecond:function()
 {return this._secondIsSidebar;},setSecondIsSidebar:function(secondIsSidebar)
-{this.sidebarElement.removeStyleClass("split-view-sidebar");this.mainElement.removeStyleClass("split-view-main");this._secondIsSidebar=secondIsSidebar;this.sidebarElement.addStyleClass("split-view-sidebar");this.mainElement.addStyleClass("split-view-main");},resizerElement:function()
+{this.sidebarElement().classList.remove("split-view-sidebar");this.mainElement().classList.remove("split-view-main");this._secondIsSidebar=secondIsSidebar;this.sidebarElement().classList.add("split-view-sidebar");this.mainElement().classList.add("split-view-main");},resizerElement:function()
 {return this._resizerElement;},showOnlyFirst:function()
-{this._showOnly(this._firstElement,this._secondElement);},showOnlySecond:function()
-{this._showOnly(this._secondElement,this._firstElement);},_showOnly:function(sideA,sideB)
-{sideA.removeStyleClass("hidden");sideA.addStyleClass("maximized");sideB.addStyleClass("hidden");sideB.removeStyleClass("maximized");this._removeAllLayoutProperties();this._isShowingOne=true;this._sidebarSize=-1;this.setResizable(false);this.doResize();},_removeAllLayoutProperties:function()
-{this.sidebarElement.style.removeProperty("flexBasis");this._resizerElement.style.removeProperty("left");this._resizerElement.style.removeProperty("right");this._resizerElement.style.removeProperty("top");this._resizerElement.style.removeProperty("bottom");this._resizerElement.style.removeProperty("margin-left");this._resizerElement.style.removeProperty("margin-right");this._resizerElement.style.removeProperty("margin-top");this._resizerElement.style.removeProperty("margin-bottom");},showBoth:function()
-{this._firstElement.removeStyleClass("hidden");this._firstElement.removeStyleClass("maximized");this._secondElement.removeStyleClass("hidden");this._secondElement.removeStyleClass("maximized");this._isShowingOne=false;this._sidebarSize=-1;this.setResizable(true);this.doResize();},setResizable:function(resizable)
-{this._resizable=resizable;this._resizerElement.enableStyleClass("hidden",!resizable);},setSidebarSize:function(size)
-{this._innerSetSidebarSize(size);this._saveSidebarSize();},sidebarSize:function()
+{this._showOnly(this._firstElement,this._secondElement);if(this._firstView)
+this._firstView.show(this._firstElement);if(this._secondView)
+this._secondView.detach();this.doResize();},showOnlySecond:function()
+{this._showOnly(this._secondElement,this._firstElement);if(this._firstView)
+this._firstView.detach();if(this._secondView)
+this._secondView.show(this._secondElement);this.doResize();},_showOnly:function(sideA,sideB)
+{sideA.classList.remove("hidden");sideA.classList.add("maximized");sideB.classList.add("hidden");sideB.classList.remove("maximized");this._removeAllLayoutProperties();this._isShowingOne=true;this._sidebarSize=-1;this.setResizable(false);},_removeAllLayoutProperties:function()
+{this.sidebarElement().style.removeProperty("flexBasis");this._resizerElement.style.removeProperty("left");this._resizerElement.style.removeProperty("right");this._resizerElement.style.removeProperty("top");this._resizerElement.style.removeProperty("bottom");this._resizerElement.style.removeProperty("margin-left");this._resizerElement.style.removeProperty("margin-right");this._resizerElement.style.removeProperty("margin-top");this._resizerElement.style.removeProperty("margin-bottom");},showBoth:function()
+{this._firstElement.classList.remove("hidden");this._firstElement.classList.remove("maximized");this._secondElement.classList.remove("hidden");this._secondElement.classList.remove("maximized");if(this._firstView)
+this._firstView.show(this._firstElement);if(this._secondView)
+this._secondView.show(this._secondElement);this._isShowingOne=false;this._sidebarSize=-1;this.setResizable(true);this.doResize();},setResizable:function(resizable)
+{this._resizable=resizable;this._resizerElement.enableStyleClass("hidden",!resizable);},setSidebarSize:function(size,ignoreConstraints)
+{this._innerSetSidebarSize(size,ignoreConstraints);this._saveSidebarSize();},sidebarSize:function()
 {return Math.max(0,this._sidebarSize);},totalSize:function()
 {if(!this._totalSize)
-this._totalSize=this._isVertical?this.element.offsetWidth:this.element.offsetHeight;return this._totalSize;},_innerSetSidebarSize:function(size)
+this._totalSize=this._isVertical?this.element.offsetWidth:this.element.offsetHeight;return this._totalSize;},_innerSetSidebarSize:function(size,ignoreConstraints)
 {if(this._isShowingOne){this._sidebarSize=size;return;}
+if(!ignoreConstraints)
 size=this._applyConstraints(size);if(this._sidebarSize===size)
 return;if(size<0){return;}
 this._removeAllLayoutProperties();var sizeValue;if(this._useFraction)
 sizeValue=(size/this.totalSize())*100+"%";else
 sizeValue=size+"px";if(!this._resizerElementSize)
-this._resizerElementSize=this._isVertical?this._resizerElement.offsetWidth:this._resizerElement.offsetHeight;this.sidebarElement.style.flexBasis=sizeValue;if(this._isVertical){if(this._secondIsSidebar){this._resizerElement.style.right=sizeValue;this._resizerElement.style.marginRight=-this._resizerElementSize/2+"px";}else{this._resizerElement.style.left=sizeValue;this._resizerElement.style.marginLeft=-this._resizerElementSize/2+"px";}}else{if(this._secondIsSidebar){this._resizerElement.style.bottom=sizeValue;this._resizerElement.style.marginBottom=-this._resizerElementSize/2+"px";}else{this._resizerElement.style.top=sizeValue;this._resizerElement.style.marginTop=-this._resizerElementSize/2+"px";}}
+this._resizerElementSize=this._isVertical?this._resizerElement.offsetWidth:this._resizerElement.offsetHeight;this.sidebarElement().style.flexBasis=sizeValue;if(this._isVertical){if(this._secondIsSidebar){this._resizerElement.style.right=sizeValue;this._resizerElement.style.marginRight=-this._resizerElementSize/2+"px";}else{this._resizerElement.style.left=sizeValue;this._resizerElement.style.marginLeft=-this._resizerElementSize/2+"px";}}else{if(this._secondIsSidebar){this._resizerElement.style.bottom=sizeValue;this._resizerElement.style.marginBottom=-this._resizerElementSize/2+"px";}else{this._resizerElement.style.top=sizeValue;this._resizerElement.style.marginTop=-this._resizerElementSize/2+"px";}}
 this._sidebarSize=size;this._muteOnResize=true;this.doResize();delete this._muteOnResize;},setSidebarElementConstraints:function(minWidth,minHeight)
 {if(typeof minWidth==="number")
 this._minimumSidebarWidth=minWidth;if(typeof minHeight==="number")
@@ -6104,8 +6346,10 @@
 {if(typeof minWidth==="number")
 this._minimumMainWidth=minWidth;if(typeof minHeight==="number")
 this._minimumMainHeight=minHeight;},_applyConstraints:function(sidebarSize)
-{const minPadding=20;var totalSize=this.totalSize();var from=(this.isVertical()?this._minimumSidebarWidth:this._minimumSidebarHeight)||0;var fromInPercents=false;if(from&&from<1){fromInPercents=true;from=Math.round(totalSize*from);}
-from=Math.max(from,minPadding);var minMainSize=(this.isVertical()?this._minimumMainWidth:this._minimumMainHeight)||0;var toInPercents=false;if(minMainSize&&minMainSize<1){toInPercents=true;minMainSize=Math.round(totalSize*minMainSize);}
+{const minPadding=20;var totalSize=this.totalSize();var minimumSiderbarSizeContraint=this.isVertical()?this._minimumSidebarWidth:this._minimumSidebarHeight;var from=minimumSiderbarSizeContraint||0;var fromInPercents=false;if(from&&from<1){fromInPercents=true;from=Math.round(totalSize*from);}
+if(typeof minimumSiderbarSizeContraint!=="number")
+from=Math.max(from,minPadding);var minimumMainSizeConstraint=this.isVertical()?this._minimumMainWidth:this._minimumMainHeight;var minMainSize=minimumMainSizeConstraint||0;var toInPercents=false;if(minMainSize&&minMainSize<1){toInPercents=true;minMainSize=Math.round(totalSize*minMainSize);}
+if(typeof minimumMainSizeConstraint!=="number")
 minMainSize=Math.max(minMainSize,minPadding);var to=totalSize-minMainSize;if(from<=to)
 return Number.constrain(sidebarSize,from,to);if(!fromInPercents&&!toInPercents)
 return-1;if(toInPercents&&sidebarSize>=from&&from<totalSize)
@@ -6122,8 +6366,9 @@
 {if(this._saveSidebarSize)
 this._saveSidebarSize();this._callOnVisibleChildren(doSaveSidebarSizeRecursively);}
 this._saveSidebarSize();this._callOnVisibleChildren(doSaveSidebarSizeRecursively);},installResizer:function(resizerElement)
-{resizerElement.addEventListener("mousedown",this._onDragStart.bind(this),false);},_onDragStart:function(event)
-{WebInspector._elementDragStart(this._startResizerDragging.bind(this),this._resizerDragging.bind(this),this._endResizerDragging.bind(this),this._isVertical?"ew-resize":"ns-resize",event);},_sizeSetting:function()
+{resizerElement.addEventListener("mousedown",this._onDragStartBound,false);resizerElement.style.setProperty("cursor",this._isVertical?"ew-resize":"ns-resize");this._resizerElements.push(resizerElement);},uninstallResizer:function(resizerElement)
+{resizerElement.removeEventListener("mousedown",this._onDragStartBound,false);resizerElement.style.removeProperty("cursor");this._resizerElements.remove(resizerElement);},_onDragStart:function(event)
+{WebInspector.elementDragStart(this._startResizerDragging.bind(this),this._resizerDragging.bind(this),this._endResizerDragging.bind(this),this._isVertical?"ew-resize":"ns-resize",event);},_sizeSetting:function()
 {if(!this._sidebarSizeSettingName)
 return null;var settingName=this._sidebarSizeSettingName+(this._isVertical?"":"H");if(!WebInspector.settings[settingName])
 WebInspector.settings[settingName]=WebInspector.settings.createSetting(settingName,undefined);return WebInspector.settings[settingName];},_lastSidebarSize:function()
@@ -6136,6 +6381,11 @@
 this._savedSidebarWidth=size;else
 this._savedSidebarHeight=size;var sizeSetting=this._sizeSetting();if(sizeSetting)
 sizeSetting.set(size);},__proto__:WebInspector.View.prototype}
+WebInspector.StackView=function(isVertical)
+{WebInspector.View.call(this);this._isVertical=isVertical;}
+WebInspector.StackView.prototype={appendView:function(view,sidebarSizeSettingName,defaultSidebarWidth,defaultSidebarHeight)
+{var splitView=new WebInspector.SplitView(this._isVertical,sidebarSizeSettingName,defaultSidebarWidth,defaultSidebarHeight);splitView.setFirstView(view);splitView.showOnlyFirst();if(!this._currentSplitView){splitView.show(this.element);}else{this._currentSplitView.setSecondView(splitView);this._currentSplitView.showBoth();}
+this._currentSplitView=splitView;return splitView;},__proto__:WebInspector.View.prototype}
 WebInspector.SidebarView=function(sidebarPosition,sidebarWidthSettingName,defaultSidebarWidth,defaultSidebarHeight)
 {WebInspector.SplitView.call(this,true,sidebarWidthSettingName,defaultSidebarWidth,defaultSidebarHeight);this.setSidebarElementConstraints(Preferences.minSidebarWidth,Preferences.minSidebarHeight);this.setMainElementConstraints(0.5,0.5);this.setSecondIsSidebar(sidebarPosition===WebInspector.SidebarView.SidebarPosition.End);}
 WebInspector.SidebarView.EventTypes={Resized:"Resized"}
@@ -6152,23 +6402,32 @@
 this.showOnlyFirst();else
 this.showOnlySecond();},showSidebarElement:function()
 {this.showBoth();},elementsToRestoreScrollPositionsFor:function()
-{return[this.mainElement,this.sidebarElement];},__proto__:WebInspector.SplitView.prototype}
+{return[this.mainElement(),this.sidebarElement()];},__proto__:WebInspector.SplitView.prototype}
 WebInspector.ConsolePanel=function()
 {WebInspector.Panel.call(this,"console");this._view=WebInspector.consoleView;}
-WebInspector.ConsolePanel.prototype={wasShown:function()
-{WebInspector.Panel.prototype.wasShown.call(this);if(WebInspector.inspectorView.drawer().visible()){WebInspector.inspectorView.drawer().hide(true);this._drawerWasVisible=true;}
-this._view.show(this.element);},willHide:function()
-{if(this._drawerWasVisible){WebInspector.inspectorView.drawer().show(true);delete this._drawerWasVisible;}
-WebInspector.Panel.prototype.willHide.call(this);},searchCanceled:function()
-{this._view.searchCanceled();},performSearch:function(query,shouldJump)
-{this._view.performSearch(query,shouldJump,this);},jumpToNextSearchResult:function()
-{this._view.jumpToNextSearchResult(this);},jumpToPreviousSearchResult:function()
-{this._view.jumpToPreviousSearchResult(this);},__proto__:WebInspector.Panel.prototype}
+WebInspector.ConsolePanel.prototype={defaultFocusedElement:function()
+{return this._view.defaultFocusedElement();},wasShown:function()
+{WebInspector.Panel.prototype.wasShown.call(this);this._view.show(this.element);},willHide:function()
+{WebInspector.Panel.prototype.willHide.call(this);if(WebInspector.ConsolePanel.WrapperView._instance)
+WebInspector.ConsolePanel.WrapperView._instance._showViewInWrapper();},__proto__:WebInspector.Panel.prototype}
+WebInspector.ConsolePanel.ViewFactory=function()
+{}
+WebInspector.ConsolePanel.ViewFactory.prototype={createView:function()
+{if(!WebInspector.ConsolePanel.WrapperView._instance)
+WebInspector.ConsolePanel.WrapperView._instance=new WebInspector.ConsolePanel.WrapperView();return WebInspector.ConsolePanel.WrapperView._instance;}}
+WebInspector.ConsolePanel.WrapperView=function()
+{WebInspector.View.call(this);this.element.className="fill console-view-wrapper";this._view=WebInspector.consoleView;this.wasShown();}
+WebInspector.ConsolePanel.WrapperView.prototype={wasShown:function()
+{if(!WebInspector.inspectorView.currentPanel()||WebInspector.inspectorView.currentPanel().name!=="console")
+this._showViewInWrapper();},defaultFocusedElement:function()
+{return this._view.defaultFocusedElement();},focus:function()
+{this._view.focus();},_showViewInWrapper:function()
+{this._view.show(this.element);},__proto__:WebInspector.View.prototype}
 function defineCommonExtensionSymbols(apiPrivate)
 {if(!apiPrivate.audits)
 apiPrivate.audits={};apiPrivate.audits.Severity={Info:"info",Warning:"warning",Severe:"severe"};if(!apiPrivate.console)
 apiPrivate.console={};apiPrivate.console.Severity={Debug:"debug",Log:"log",Warning:"warning",Error:"error"};if(!apiPrivate.panels)
-apiPrivate.panels={};apiPrivate.panels.SearchAction={CancelSearch:"cancelSearch",PerformSearch:"performSearch",NextSearchResult:"nextSearchResult",PreviousSearchResult:"previousSearchResult"};apiPrivate.Events={AuditStarted:"audit-started-",ButtonClicked:"button-clicked-",ConsoleMessageAdded:"console-message-added",PanelObjectSelected:"panel-objectSelected-",NetworkRequestFinished:"network-request-finished",OpenResource:"open-resource",PanelSearch:"panel-search-",ResourceAdded:"resource-added",ResourceContentCommitted:"resource-content-committed",TimelineEventRecorded:"timeline-event-recorded",ViewShown:"view-shown-",ViewHidden:"view-hidden-"};apiPrivate.Commands={AddAuditCategory:"addAuditCategory",AddAuditResult:"addAuditResult",AddConsoleMessage:"addConsoleMessage",AddRequestHeaders:"addRequestHeaders",CreatePanel:"createPanel",CreateSidebarPane:"createSidebarPane",CreateStatusBarButton:"createStatusBarButton",EvaluateOnInspectedPage:"evaluateOnInspectedPage",ForwardKeyboardEvent:"_forwardKeyboardEvent",GetConsoleMessages:"getConsoleMessages",GetHAR:"getHAR",GetPageResources:"getPageResources",GetRequestContent:"getRequestContent",GetResourceContent:"getResourceContent",Reload:"Reload",Subscribe:"subscribe",SetOpenResourceHandler:"setOpenResourceHandler",SetResourceContent:"setResourceContent",SetSidebarContent:"setSidebarContent",SetSidebarHeight:"setSidebarHeight",SetSidebarPage:"setSidebarPage",ShowPanel:"showPanel",StopAuditCategoryRun:"stopAuditCategoryRun",OpenResource:"openResource",Reload:"Reload",Unsubscribe:"unsubscribe",UpdateAuditProgress:"updateAuditProgress",UpdateButton:"updateButton",InspectedURLChanged:"inspectedURLChanged"};}
+apiPrivate.panels={};apiPrivate.panels.SearchAction={CancelSearch:"cancelSearch",PerformSearch:"performSearch",NextSearchResult:"nextSearchResult",PreviousSearchResult:"previousSearchResult"};apiPrivate.Events={AuditStarted:"audit-started-",ButtonClicked:"button-clicked-",ConsoleMessageAdded:"console-message-added",PanelObjectSelected:"panel-objectSelected-",NetworkRequestFinished:"network-request-finished",OpenResource:"open-resource",PanelSearch:"panel-search-",ResourceAdded:"resource-added",ResourceContentCommitted:"resource-content-committed",TimelineEventRecorded:"timeline-event-recorded",ViewShown:"view-shown-",ViewHidden:"view-hidden-"};apiPrivate.Commands={AddAuditCategory:"addAuditCategory",AddAuditResult:"addAuditResult",AddConsoleMessage:"addConsoleMessage",AddRequestHeaders:"addRequestHeaders",ApplyStyleSheet:"applyStyleSheet",CreatePanel:"createPanel",CreateSidebarPane:"createSidebarPane",CreateStatusBarButton:"createStatusBarButton",EvaluateOnInspectedPage:"evaluateOnInspectedPage",ForwardKeyboardEvent:"_forwardKeyboardEvent",GetConsoleMessages:"getConsoleMessages",GetHAR:"getHAR",GetPageResources:"getPageResources",GetRequestContent:"getRequestContent",GetResourceContent:"getResourceContent",InspectedURLChanged:"inspectedURLChanged",OpenResource:"openResource",Reload:"Reload",Subscribe:"subscribe",SetOpenResourceHandler:"setOpenResourceHandler",SetResourceContent:"setResourceContent",SetSidebarContent:"setSidebarContent",SetSidebarHeight:"setSidebarHeight",SetSidebarPage:"setSidebarPage",ShowPanel:"showPanel",StopAuditCategoryRun:"stopAuditCategoryRun",Unsubscribe:"unsubscribe",UpdateAuditProgress:"updateAuditProgress",UpdateButton:"updateButton"};}
 function injectedExtensionAPI(injectedScriptId)
 {var apiPrivate={};defineCommonExtensionSymbols(apiPrivate);var commands=apiPrivate.Commands;var events=apiPrivate.Events;var userAction=false;function EventSinkImpl(type,customDispatch)
 {this._type=type;this._listeners=[];this._customDispatch=customDispatch;}
@@ -6178,7 +6437,7 @@
 extensionServer.sendRequest({command:commands.Subscribe,type:this._type});this._listeners.push(callback);extensionServer.registerHandler("notify-"+this._type,this._dispatch.bind(this));},removeListener:function(callback)
 {var listeners=this._listeners;for(var i=0;i<listeners.length;++i){if(listeners[i]===callback){listeners.splice(i,1);break;}}
 if(this._listeners.length===0)
-extensionServer.sendRequest({command:commands.Unsubscribe,type:this._type});},_fire:function()
+extensionServer.sendRequest({command:commands.Unsubscribe,type:this._type});},_fire:function(vararg)
 {var listeners=this._listeners.slice();for(var i=0;i<listeners.length;++i)
 listeners[i].apply(null,arguments);},_dispatch:function(request)
 {if(this._customDispatch)
@@ -6212,14 +6471,14 @@
 {var panels={elements:new ElementsPanel(),sources:new SourcesPanel(),};function panelGetter(name)
 {return panels[name];}
 for(var panel in panels)
-this.__defineGetter__(panel,panelGetter.bind(null,panel));}
+this.__defineGetter__(panel,panelGetter.bind(null,panel));this.applyStyleSheet=function(styleSheet){extensionServer.sendRequest({command:commands.ApplyStyleSheet,styleSheet:styleSheet});};}
 Panels.prototype={create:function(title,icon,page,callback)
 {var id="extension-panel-"+extensionServer.nextObjectId();var request={command:commands.CreatePanel,id:id,title:title,icon:icon,page:page};extensionServer.sendRequest(request,callback&&callback.bind(this,new ExtensionPanel(id)));},setOpenResourceHandler:function(callback)
-{var hadHandler=extensionServer.hasHandler(events.OpenResource);if(!callback)
-extensionServer.unregisterHandler(events.OpenResource);else{function callbackWrapper(message)
+{var hadHandler=extensionServer.hasHandler(events.OpenResource);function callbackWrapper(message)
 {userAction=true;try{callback.call(null,new Resource(message.resource),message.lineNumber);}finally{userAction=false;}}
-extensionServer.registerHandler(events.OpenResource,callbackWrapper);}
-if(hadHandler===!callback)
+if(!callback)
+extensionServer.unregisterHandler(events.OpenResource);else
+extensionServer.registerHandler(events.OpenResource,callbackWrapper);if(hadHandler===!callback)
 extensionServer.sendRequest({command:commands.SetOpenResourceHandler,"handlerPresent":!!callback});},openResource:function(url,lineNumber,callback)
 {extensionServer.sendRequest({command:commands.OpenResource,"url":url,"lineNumber":lineNumber},callback);},get SearchAction()
 {return apiPrivate.panels.SearchAction;}}
@@ -6235,10 +6494,22 @@
 {var id="extension-sidebar-"+extensionServer.nextObjectId();var request={command:commands.CreateSidebarPane,panel:this._hostPanelName,id:id,title:title};function callbackWrapper()
 {callback(new ExtensionSidebarPane(id));}
 extensionServer.sendRequest(request,callback&&callbackWrapper);},__proto__:ExtensionViewImpl.prototype}
-function ElementsPanel()
+function declareInterfaceClass(implConstructor)
+{return function()
+{var impl={__proto__:implConstructor.prototype};implConstructor.apply(impl,arguments);populateInterfaceClass(this,impl);}}
+function defineDeprecatedProperty(object,className,oldName,newName)
+{var warningGiven=false;function getter()
+{if(!warningGiven){console.warn(className+"."+oldName+" is deprecated. Use "+className+"."+newName+" instead");warningGiven=true;}
+return object[newName];}
+object.__defineGetter__(oldName,getter);}
+function extractCallbackArgument(args)
+{var lastArgument=args[args.length-1];return typeof lastArgument==="function"?lastArgument:undefined;}
+var AuditCategory=declareInterfaceClass(AuditCategoryImpl);var AuditResult=declareInterfaceClass(AuditResultImpl);var Button=declareInterfaceClass(ButtonImpl);var EventSink=declareInterfaceClass(EventSinkImpl);var ExtensionPanel=declareInterfaceClass(ExtensionPanelImpl);var ExtensionSidebarPane=declareInterfaceClass(ExtensionSidebarPaneImpl);var PanelWithSidebar=declareInterfaceClass(PanelWithSidebarImpl);var Request=declareInterfaceClass(RequestImpl);var Resource=declareInterfaceClass(ResourceImpl);var Timeline=declareInterfaceClass(TimelineImpl);function ElementsPanel()
 {PanelWithSidebar.call(this,"elements");}
+ElementsPanel.prototype={__proto__:PanelWithSidebar.prototype}
 function SourcesPanel()
 {PanelWithSidebar.call(this,"sources");}
+SourcesPanel.prototype={__proto__:PanelWithSidebar.prototype}
 function ExtensionPanelImpl(id)
 {ExtensionViewImpl.call(this,id);this.onSearch=new EventSink(events.PanelSearch+id);}
 ExtensionPanelImpl.prototype={createStatusBarButton:function(iconPath,tooltipText,disabled)
@@ -6252,7 +6523,7 @@
 {var request={command:commands.SetSidebarContent,id:this._id,expression:expression,rootTitle:rootTitle,evaluateOnPage:true,};if(typeof evaluateOptions==="object")
 request.evaluateOptions=evaluateOptions;extensionServer.sendRequest(request,extractCallbackArgument(arguments));},setObject:function(jsonObject,rootTitle,callback)
 {extensionServer.sendRequest({command:commands.SetSidebarContent,id:this._id,expression:jsonObject,rootTitle:rootTitle},callback);},setPage:function(page)
-{extensionServer.sendRequest({command:commands.SetSidebarPage,id:this._id,page:page});}}
+{extensionServer.sendRequest({command:commands.SetSidebarPage,id:this._id,page:page});},__proto__:ExtensionViewImpl.prototype}
 function ButtonImpl(id)
 {this._id=id;this.onClicked=new EventSink(events.ButtonClicked+id);}
 ButtonImpl.prototype={update:function(iconPath,tooltipText,disabled)
@@ -6336,17 +6607,7 @@
 interface[member]=descriptor.value.bind(implementation);else if(typeof descriptor.get==="function")
 interface.__defineGetter__(member,descriptor.get.bind(implementation));else
 Object.defineProperty(interface,member,descriptor);}}
-function declareInterfaceClass(implConstructor)
-{return function()
-{var impl={__proto__:implConstructor.prototype};implConstructor.apply(impl,arguments);populateInterfaceClass(this,impl);}}
-function defineDeprecatedProperty(object,className,oldName,newName)
-{var warningGiven=false;function getter()
-{if(!warningGiven){console.warn(className+"."+oldName+" is deprecated. Use "+className+"."+newName+" instead");warningGiven=true;}
-return object[newName];}
-object.__defineGetter__(oldName,getter);}
-function extractCallbackArgument(args)
-{var lastArgument=args[args.length-1];return typeof lastArgument==="function"?lastArgument:undefined;}
-var AuditCategory=declareInterfaceClass(AuditCategoryImpl);var AuditResult=declareInterfaceClass(AuditResultImpl);var Button=declareInterfaceClass(ButtonImpl);var EventSink=declareInterfaceClass(EventSinkImpl);var ExtensionPanel=declareInterfaceClass(ExtensionPanelImpl);var ExtensionSidebarPane=declareInterfaceClass(ExtensionSidebarPaneImpl);var PanelWithSidebar=declareInterfaceClass(PanelWithSidebarImpl);var Request=declareInterfaceClass(RequestImpl);var Resource=declareInterfaceClass(ResourceImpl);var Timeline=declareInterfaceClass(TimelineImpl);if(!extensionServer)
+if(!extensionServer)
 extensionServer=new ExtensionServerClient();return new InspectorExtensionAPI();}
 function buildExtensionAPIInjectedScript(extensionInfo)
 {return"(function(injectedScriptId){ "+"var extensionServer;"+
@@ -6380,12 +6641,12 @@
 this.evaluate(expression,evaluateOptions,onEvaluate);return parentElement;},node:function(expression,evaluateOptions)
 {var parentElement=document.createElement("div");function onNodeAvailable(nodeId)
 {if(!nodeId)
-return;var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.rootDOMNode=WebInspector.domAgent.nodeForId(nodeId);treeOutline.element.addStyleClass("outline-disclosure");treeOutline.setVisible(true);parentElement.appendChild(treeOutline.element);}
+return;var treeOutline=new WebInspector.ElementsTreeOutline(false,false);treeOutline.rootDOMNode=WebInspector.domAgent.nodeForId(nodeId);treeOutline.element.classList.add("outline-disclosure");treeOutline.setVisible(true);parentElement.appendChild(treeOutline.element);}
 function onEvaluate(remoteObject)
 {remoteObject.pushNodeToFrontend(onNodeAvailable);}
 this.evaluate(expression,evaluateOptions,onEvaluate);return parentElement;}}
 WebInspector.ExtensionAuditCategoryResults._lastId=0;WebInspector.ExtensionServer=function()
-{this._clientObjects={};this._handlers={};this._subscribers={};this._subscriptionStartHandlers={};this._subscriptionStopHandlers={};this._extraHeaders={};this._requests={};this._lastRequestId=0;this._registeredExtensions={};this._status=new WebInspector.ExtensionStatus();var commands=WebInspector.extensionAPI.Commands;this._registerHandler(commands.AddAuditCategory,this._onAddAuditCategory.bind(this));this._registerHandler(commands.AddAuditResult,this._onAddAuditResult.bind(this));this._registerHandler(commands.AddConsoleMessage,this._onAddConsoleMessage.bind(this));this._registerHandler(commands.AddRequestHeaders,this._onAddRequestHeaders.bind(this));this._registerHandler(commands.CreatePanel,this._onCreatePanel.bind(this));this._registerHandler(commands.CreateSidebarPane,this._onCreateSidebarPane.bind(this));this._registerHandler(commands.CreateStatusBarButton,this._onCreateStatusBarButton.bind(this));this._registerHandler(commands.EvaluateOnInspectedPage,this._onEvaluateOnInspectedPage.bind(this));this._registerHandler(commands.ForwardKeyboardEvent,this._onForwardKeyboardEvent.bind(this));this._registerHandler(commands.GetHAR,this._onGetHAR.bind(this));this._registerHandler(commands.GetConsoleMessages,this._onGetConsoleMessages.bind(this));this._registerHandler(commands.GetPageResources,this._onGetPageResources.bind(this));this._registerHandler(commands.GetRequestContent,this._onGetRequestContent.bind(this));this._registerHandler(commands.GetResourceContent,this._onGetResourceContent.bind(this));this._registerHandler(commands.Reload,this._onReload.bind(this));this._registerHandler(commands.SetOpenResourceHandler,this._onSetOpenResourceHandler.bind(this));this._registerHandler(commands.SetResourceContent,this._onSetResourceContent.bind(this));this._registerHandler(commands.SetSidebarHeight,this._onSetSidebarHeight.bind(this));this._registerHandler(commands.SetSidebarContent,this._onSetSidebarContent.bind(this));this._registerHandler(commands.SetSidebarPage,this._onSetSidebarPage.bind(this));this._registerHandler(commands.ShowPanel,this._onShowPanel.bind(this));this._registerHandler(commands.StopAuditCategoryRun,this._onStopAuditCategoryRun.bind(this));this._registerHandler(commands.Subscribe,this._onSubscribe.bind(this));this._registerHandler(commands.OpenResource,this._onOpenResource.bind(this));this._registerHandler(commands.Unsubscribe,this._onUnsubscribe.bind(this));this._registerHandler(commands.UpdateButton,this._onUpdateButton.bind(this));this._registerHandler(commands.UpdateAuditProgress,this._onUpdateAuditProgress.bind(this));window.addEventListener("message",this._onWindowMessage.bind(this),false);}
+{this._clientObjects={};this._handlers={};this._subscribers={};this._subscriptionStartHandlers={};this._subscriptionStopHandlers={};this._extraHeaders={};this._requests={};this._lastRequestId=0;this._registeredExtensions={};this._status=new WebInspector.ExtensionStatus();var commands=WebInspector.extensionAPI.Commands;this._registerHandler(commands.AddAuditCategory,this._onAddAuditCategory.bind(this));this._registerHandler(commands.AddAuditResult,this._onAddAuditResult.bind(this));this._registerHandler(commands.AddConsoleMessage,this._onAddConsoleMessage.bind(this));this._registerHandler(commands.AddRequestHeaders,this._onAddRequestHeaders.bind(this));this._registerHandler(commands.ApplyStyleSheet,this._onApplyStyleSheet.bind(this));this._registerHandler(commands.CreatePanel,this._onCreatePanel.bind(this));this._registerHandler(commands.CreateSidebarPane,this._onCreateSidebarPane.bind(this));this._registerHandler(commands.CreateStatusBarButton,this._onCreateStatusBarButton.bind(this));this._registerHandler(commands.EvaluateOnInspectedPage,this._onEvaluateOnInspectedPage.bind(this));this._registerHandler(commands.ForwardKeyboardEvent,this._onForwardKeyboardEvent.bind(this));this._registerHandler(commands.GetHAR,this._onGetHAR.bind(this));this._registerHandler(commands.GetConsoleMessages,this._onGetConsoleMessages.bind(this));this._registerHandler(commands.GetPageResources,this._onGetPageResources.bind(this));this._registerHandler(commands.GetRequestContent,this._onGetRequestContent.bind(this));this._registerHandler(commands.GetResourceContent,this._onGetResourceContent.bind(this));this._registerHandler(commands.Reload,this._onReload.bind(this));this._registerHandler(commands.SetOpenResourceHandler,this._onSetOpenResourceHandler.bind(this));this._registerHandler(commands.SetResourceContent,this._onSetResourceContent.bind(this));this._registerHandler(commands.SetSidebarHeight,this._onSetSidebarHeight.bind(this));this._registerHandler(commands.SetSidebarContent,this._onSetSidebarContent.bind(this));this._registerHandler(commands.SetSidebarPage,this._onSetSidebarPage.bind(this));this._registerHandler(commands.ShowPanel,this._onShowPanel.bind(this));this._registerHandler(commands.StopAuditCategoryRun,this._onStopAuditCategoryRun.bind(this));this._registerHandler(commands.Subscribe,this._onSubscribe.bind(this));this._registerHandler(commands.OpenResource,this._onOpenResource.bind(this));this._registerHandler(commands.Unsubscribe,this._onUnsubscribe.bind(this));this._registerHandler(commands.UpdateButton,this._onUpdateButton.bind(this));this._registerHandler(commands.UpdateAuditProgress,this._onUpdateAuditProgress.bind(this));window.addEventListener("message",this._onWindowMessage.bind(this),false);}
 WebInspector.ExtensionServer.prototype={hasExtensions:function()
 {return!!Object.keys(this._registeredExtensions).length;},notifySearchAction:function(panelId,action,searchString)
 {this._postNotification(WebInspector.extensionAPI.Events.PanelSearch+panelId,action,searchString);},notifyViewShown:function(identifier,frameIndex)
@@ -6410,9 +6671,11 @@
 for(var name in message.headers)
 extensionHeaders[name]=message.headers[name];var allHeaders=({});for(var extension in this._extraHeaders){var headers=this._extraHeaders[extension];for(name in headers){if(typeof headers[name]==="string")
 allHeaders[name]=headers[name];}}
-NetworkAgent.setExtraHTTPHeaders(allHeaders);},_onCreatePanel:function(message,port)
+NetworkAgent.setExtraHTTPHeaders(allHeaders);},_onApplyStyleSheet:function(message)
+{if(!WebInspector.experimentsSettings.applyCustomStylesheet.isEnabled())
+return;var styleSheet=document.createElement("style");styleSheet.textContent=message.styleSheet;document.head.appendChild(styleSheet);},_onCreatePanel:function(message,port)
 {var id=message.id;if(id in this._clientObjects||id in WebInspector.panels)
-return this._status.E_EXISTS(id);var page=this._expandResourcePath(port._extensionOrigin,message.page);var panelDescriptor=new WebInspector.PanelDescriptor(id,message.title,undefined,undefined,new WebInspector.ExtensionPanel(id,page));this._clientObjects[id]=panelDescriptor.panel();WebInspector.inspectorView.addPanel(panelDescriptor);return this._status.OK();},_onShowPanel:function(message)
+return this._status.E_EXISTS(id);var page=this._expandResourcePath(port._extensionOrigin,message.page);var panelDescriptor=new WebInspector.ExtensionServerPanelDescriptor(id,message.title,new WebInspector.ExtensionPanel(id,page));this._clientObjects[id]=panelDescriptor.panel();WebInspector.inspectorView.addPanel(panelDescriptor);return this._status.OK();},_onShowPanel:function(message)
 {WebInspector.showPanel(message.id);},_onCreateStatusBarButton:function(message,port)
 {var panel=this._clientObjects[message.panel];if(!panel||!(panel instanceof WebInspector.ExtensionPanel))
 return this._status.E_NOTFOUND(message.panel);var button=new WebInspector.ExtensionButton(message.id,this._expandResourcePath(port._extensionOrigin,message.icon),message.tooltip,message.disabled);this._clientObjects[message.id]=button;panel.addStatusBarItem(button.element);return this._status.OK();},_onUpdateButton:function(message,port)
@@ -6438,9 +6701,9 @@
 return false;var lineNumber=details.lineNumber;if(typeof lineNumber==="number")
 lineNumber+=1;port.postMessage({command:"open-resource",resource:this._makeResource(contentProvider),lineNumber:lineNumber});return true;},_onReload:function(message)
 {var options=(message.options||{});NetworkAgent.setUserAgentOverride(typeof options.userAgent==="string"?options.userAgent:"");var injectedScript;if(options.injectedScript)
-injectedScript="(function(){"+options.injectedScript+"})()";var preprocessingScript=options.preprocessingScript;PageAgent.reload(!!options.ignoreCache,injectedScript,preprocessingScript);return this._status.OK();},_onEvaluateOnInspectedPage:function(message,port)
+injectedScript="(function(){"+options.injectedScript+"})()";var preprocessingScript=options.preprocessingScript;WebInspector.resourceTreeModel.reloadPage(!!options.ignoreCache,injectedScript,preprocessingScript);return this._status.OK();},_onEvaluateOnInspectedPage:function(message,port)
 {function callback(error,resultPayload,wasThrown)
-{var result;if(error)
+{var result;if(error||!resultPayload)
 result=this._status.E_PROTOCOLERROR(error.toString());else if(wasThrown)
 result={isException:true,value:resultPayload.description};else
 result={value:resultPayload.value};this._dispatchCallback(message.requestId,port,result);}
@@ -6493,7 +6756,7 @@
 return;var event=new window.KeyboardEvent(message.eventType,{keyIdentifier:message.keyIdentifier,location:message.location,ctrlKey:message.ctrlKey,altKey:message.altKey,shiftKey:message.shiftKey,metaKey:message.metaKey});document.dispatchEvent(event);},_dispatchCallback:function(requestId,port,result)
 {if(requestId)
 port.postMessage({command:"callback",requestId:requestId,result:result});},initExtensions:function()
-{this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.ConsoleMessageAdded,WebInspector.console,WebInspector.ConsoleModel.Events.MessageAdded,this._notifyConsoleMessageAdded);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.NetworkRequestFinished,WebInspector.networkManager,WebInspector.NetworkManager.EventTypes.RequestFinished,this._notifyRequestFinished);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.ResourceAdded,WebInspector.workspace,WebInspector.Workspace.Events.UISourceCodeAdded,this._notifyResourceAdded);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected+"elements",WebInspector.notifications,WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._notifyElementsSelectionChanged);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected+"sources",WebInspector.notifications,WebInspector.SourceFrame.Events.SelectionChanged,this._notifySourceFrameSelectionChanged);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.ResourceContentCommitted,WebInspector.workspace,WebInspector.Workspace.Events.UISourceCodeContentCommitted,this._notifyUISourceCodeContentCommitted);function onTimelineSubscriptionStarted()
+{this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.ConsoleMessageAdded,WebInspector.console,WebInspector.ConsoleModel.Events.MessageAdded,this._notifyConsoleMessageAdded);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.NetworkRequestFinished,WebInspector.networkManager,WebInspector.NetworkManager.EventTypes.RequestFinished,this._notifyRequestFinished);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.ResourceAdded,WebInspector.workspace,WebInspector.Workspace.Events.UISourceCodeAdded,this._notifyResourceAdded);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected+"elements",WebInspector.notifications,WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._notifyElementsSelectionChanged);this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected+"sources",WebInspector.notifications,WebInspector.SourceFrame.Events.SelectionChanged,this._notifySourceFrameSelectionChanged);this._registerResourceContentCommittedHandler(this._notifyUISourceCodeContentCommitted);function onTimelineSubscriptionStarted()
 {WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,this._notifyTimelineEventRecorded,this);WebInspector.timelineManager.start();}
 function onTimelineSubscriptionStopped()
 {WebInspector.timelineManager.stop();WebInspector.timelineManager.removeEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,this._notifyTimelineEventRecorded,this);}
@@ -6527,7 +6790,12 @@
 this._dispatchCallback(message.requestId,event.target,result);},_registerHandler:function(command,callback)
 {console.assert(command);this._handlers[command]=callback;},_registerSubscriptionHandler:function(eventTopic,onSubscribeFirst,onUnsubscribeLast)
 {this._subscriptionStartHandlers[eventTopic]=onSubscribeFirst;this._subscriptionStopHandlers[eventTopic]=onUnsubscribeLast;},_registerAutosubscriptionHandler:function(eventTopic,eventTarget,frontendEventType,handler)
-{this._registerSubscriptionHandler(eventTopic,eventTarget.addEventListener.bind(eventTarget,frontendEventType,handler,this),eventTarget.removeEventListener.bind(eventTarget,frontendEventType,handler,this));},_expandResourcePath:function(extensionPath,resourcePath)
+{this._registerSubscriptionHandler(eventTopic,eventTarget.addEventListener.bind(eventTarget,frontendEventType,handler,this),eventTarget.removeEventListener.bind(eventTarget,frontendEventType,handler,this));},_registerResourceContentCommittedHandler:function(handler)
+{function addFirstEventListener()
+{WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeContentCommitted,handler,this);WebInspector.workspace.setHasResourceContentTrackingExtensions(true);}
+function removeLastEventListener()
+{WebInspector.workspace.setHasResourceContentTrackingExtensions(false);WebInspector.workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeContentCommitted,handler,this);}
+this._registerSubscriptionHandler(WebInspector.extensionAPI.Events.ResourceContentCommitted,addFirstEventListener.bind(this),removeLastEventListener.bind(this));},_expandResourcePath:function(extensionPath,resourcePath)
 {if(!resourcePath)
 return;return extensionPath+this._normalizePath(resourcePath);},_normalizePath:function(path)
 {var source=path.split("/");var result=[];for(var i=0;i<source.length;++i){if(source[i]===".")
@@ -6536,26 +6804,32 @@
 result.pop();else
 result.push(source[i]);}
 return"/"+result.join("/");},evaluate:function(expression,exposeCommandLineAPI,returnByValue,options,securityOrigin,callback)
-{var contextId;if(typeof options==="object"){function resolveURLToFrame(url)
+{var contextId;function resolveURLToFrame(url)
 {var found;function hasMatchingURL(frame)
 {found=(frame.url===url)?frame:null;return found;}
 WebInspector.resourceTreeModel.frames().some(hasMatchingURL);return found;}
-var frame=options.frameURL?resolveURLToFrame(options.frameURL):WebInspector.resourceTreeModel.mainFrame;if(!frame){if(options.frameURL)
+if(typeof options==="object"){var frame=options.frameURL?resolveURLToFrame(options.frameURL):WebInspector.resourceTreeModel.mainFrame;if(!frame){if(options.frameURL)
 console.warn("evaluate: there is no frame with URL "+options.frameURL);else
 console.warn("evaluate: the main frame is not yet available");return this._status.E_NOTFOUND(options.frameURL||"<top>");}
 var contextSecurityOrigin;if(options.useContentScriptContext)
 contextSecurityOrigin=securityOrigin;else if(options.scriptExecutionContext)
-contextSecurityOrigin=options.scriptExecutionContext;var frameContextList=WebInspector.runtimeModel.contextListByFrame(frame);var context;if(contextSecurityOrigin){context=frameContextList.contextBySecurityOrigin(contextSecurityOrigin);if(!context){console.warn("The JS context "+contextSecurityOrigin+" was not found in the frame "+frame.url)
+contextSecurityOrigin=options.scriptExecutionContext;var frameContextList=WebInspector.runtimeModel.contextListByFrame(frame);var context;if(contextSecurityOrigin){context=frameContextList.contextBySecurityOrigin(contextSecurityOrigin);if(!context){console.warn("The JavaScript context "+contextSecurityOrigin+" was not found in the frame "+frame.url)
 return this._status.E_NOTFOUND(contextSecurityOrigin)}}else{context=frameContextList.mainWorldContext();if(!context)
 return this._status.E_FAILED(frame.url+" has no execution context");}
 contextId=context.id;}
 RuntimeAgent.evaluate(expression,"extension",exposeCommandLineAPI,true,contextId,returnByValue,false,callback);}}
+WebInspector.ExtensionServerPanelDescriptor=function(name,title,panel)
+{this._name=name;this._title=title;this._panel=panel;}
+WebInspector.ExtensionServerPanelDescriptor.prototype={name:function()
+{return this._name;},title:function()
+{return this._title;},panel:function()
+{return this._panel;}}
 WebInspector.ExtensionStatus=function()
 {function makeStatus(code,description)
 {var details=Array.prototype.slice.call(arguments,2);var status={code:code,description:description,details:details};if(code!=="OK"){status.isError=true;console.log("Extension server error: "+String.vsprintf(description,details));}
 return status;}
 this.OK=makeStatus.bind(null,"OK","OK");this.E_EXISTS=makeStatus.bind(null,"E_EXISTS","Object already exists: %s");this.E_BADARG=makeStatus.bind(null,"E_BADARG","Invalid argument %s: %s");this.E_BADARGTYPE=makeStatus.bind(null,"E_BADARGTYPE","Invalid type for argument %s: got %s, expected %s");this.E_NOTFOUND=makeStatus.bind(null,"E_NOTFOUND","Object not found: %s");this.E_NOTSUPPORTED=makeStatus.bind(null,"E_NOTSUPPORTED","Object does not support requested operation: %s");this.E_PROTOCOLERROR=makeStatus.bind(null,"E_PROTOCOLERROR","Inspector protocol error: %s");this.E_FAILED=makeStatus.bind(null,"E_FAILED","Operation failed: %s");}
-WebInspector.addExtensions=function(extensions)
+WebInspector.ExtensionStatus.Record;WebInspector.addExtensions=function(extensions)
 {WebInspector.extensionServer._addExtensions(extensions);}
 WebInspector.extensionAPI={};defineCommonExtensionSymbols(WebInspector.extensionAPI);WebInspector.extensionServer=new WebInspector.ExtensionServer();window.addExtension=function(page,name)
 {WebInspector.extensionServer._addExtension({startPage:page,name:name,});}
@@ -6574,14 +6848,15 @@
 {WebInspector.extensionServer.notifyViewShown(this._id);},willHide:function()
 {WebInspector.extensionServer.notifyViewHidden(this._id);},__proto__:WebInspector.View.prototype}
 WebInspector.ExtensionPanel=function(id,pageURL)
-{WebInspector.Panel.call(this,id);this.setHideOnDetach();this.element.addStyleClass("extension-panel");this._panelStatusBarElement=this.element.createChild("div","panel-status-bar hidden");var extensionView=new WebInspector.ExtensionView(id,pageURL,"extension panel");extensionView.show(this.element);this.setDefaultFocusedElement(extensionView.defaultFocusedElement());}
+{WebInspector.Panel.call(this,id);this.setHideOnDetach();this.element.classList.add("extension-panel");this._panelStatusBarElement=this.element.createChild("div","panel-status-bar hidden");this._searchableView=new WebInspector.SearchableView(this);this._searchableView.show(this.element);var extensionView=new WebInspector.ExtensionView(id,pageURL,"extension panel");extensionView.show(this._searchableView.element);this.setDefaultFocusedElement(extensionView.defaultFocusedElement());}
 WebInspector.ExtensionPanel.prototype={defaultFocusedElement:function()
 {return WebInspector.View.prototype.defaultFocusedElement.call(this);},addStatusBarItem:function(element)
-{this._panelStatusBarElement.removeStyleClass("hidden");this._panelStatusBarElement.appendChild(element);},searchCanceled:function(startingNewSearch)
-{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.CancelSearch);WebInspector.Panel.prototype.searchCanceled.apply(this,arguments);},performSearch:function(query,shouldJump)
+{this._panelStatusBarElement.classList.remove("hidden");this._panelStatusBarElement.appendChild(element);},searchCanceled:function()
+{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.CancelSearch);this._searchableView.updateSearchMatchesCount(0);},searchableView:function()
+{return this._searchableView;},performSearch:function(query,shouldJump)
 {WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.PerformSearch,query);},jumpToNextSearchResult:function()
-{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.NextSearchResult);WebInspector.Panel.prototype.jumpToNextSearchResult.call(this);},jumpToPreviousSearchResult:function()
-{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.PreviousSearchResult);WebInspector.Panel.prototype.jumpToPreviousSearchResult.call(this);},__proto__:WebInspector.Panel.prototype}
+{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.NextSearchResult);},jumpToPreviousSearchResult:function()
+{WebInspector.extensionServer.notifySearchAction(this.name,WebInspector.extensionAPI.panels.SearchAction.PreviousSearchResult);},__proto__:WebInspector.Panel.prototype}
 WebInspector.ExtensionButton=function(id,iconURL,tooltip,disabled)
 {this._id=id;this.element=document.createElement("button");this.element.className="status-bar-item extension";this.element.addEventListener("click",this._onClicked.bind(this),false);this.update(iconURL,tooltip,disabled);}
 WebInspector.ExtensionButton.prototype={update:function(iconURL,tooltip,disabled)
@@ -6594,7 +6869,7 @@
 {WebInspector.SidebarPane.call(this,title);this.setHideOnDetach();this._id=id;}
 WebInspector.ExtensionSidebarPane.prototype={setObject:function(object,title,callback)
 {this._createObjectPropertiesView();this._setObject(WebInspector.RemoteObject.fromLocalObject(object),title,callback);},setExpression:function(expression,title,evaluateOptions,securityOrigin,callback)
-{this._createObjectPropertiesView();return WebInspector.extensionServer.evaluate(expression,true,false,evaluateOptions,securityOrigin,this._onEvaluate.bind(this,title,callback));},setPage:function(url)
+{this._createObjectPropertiesView();WebInspector.extensionServer.evaluate(expression,true,false,evaluateOptions,securityOrigin,this._onEvaluate.bind(this,title,callback));},setPage:function(url)
 {if(this._objectPropertiesView){this._objectPropertiesView.detach();delete this._objectPropertiesView;}
 if(this._extensionView)
 this._extensionView.detach(true);this._extensionView=new WebInspector.ExtensionView(this._id,url,"extension fill");this._extensionView.show(this.bodyElement);if(!this.bodyElement.style.height)
@@ -6608,7 +6883,7 @@
 this._objectPropertiesView=new WebInspector.ExtensionNotifierView(this._id);this._objectPropertiesView.show(this.bodyElement);},_setObject:function(object,title,callback)
 {if(!this._objectPropertiesView){callback("operation cancelled");return;}
 this._objectPropertiesView.element.removeChildren();var section=new WebInspector.ObjectPropertiesSection(object,title);if(!title)
-section.headerElement.addStyleClass("hidden");section.expanded=true;section.editable=false;this._objectPropertiesView.element.appendChild(section.element);callback();},__proto__:WebInspector.SidebarPane.prototype}
+section.headerElement.classList.add("hidden");section.expanded=true;section.editable=false;this._objectPropertiesView.element.appendChild(section.element);callback();},__proto__:WebInspector.SidebarPane.prototype}
 WebInspector.EmptyView=function(text)
 {WebInspector.View.call(this);this._text=text;}
 WebInspector.EmptyView.prototype={wasShown:function()
@@ -6661,12 +6936,92 @@
 WebInspector.DOMSyntaxHighlighter.prototype={createSpan:function(content,className)
 {var span=document.createElement("span");span.className="cm-"+className;if(this._stripExtraWhitespace&&className!=="whitespace")
 content=content.replace(/^[\n\r]*/,"").replace(/\s*$/,"");span.appendChild(document.createTextNode(content));return span;},syntaxHighlightNode:function(node)
-{var lines=node.textContent.split("\n");node.removeChildren();var tokenize=WebInspector.CodeMirrorUtils.createTokenizer(this._mimeType);for(var i=lines[0].length?0:1;i<lines.length;++i){var line=lines[i];var plainTextStart=0;function processToken(token,tokenType,column,newColumn)
-{if(tokenType){if(column>plainTextStart){var plainText=line.substring(plainTextStart,column);node.appendChild(document.createTextNode(plainText));}
-node.appendChild(this.createSpan(token,tokenType));plainTextStart=newColumn;}}
-tokenize(line,processToken.bind(this));if(plainTextStart<line.length){var plainText=line.substring(plainTextStart,line.length);node.appendChild(document.createTextNode(plainText));}
+{var lines=node.textContent.split("\n");node.removeChildren();function processToken(token,tokenType,column,newColumn)
+{if(!tokenType)
+return;if(column>plainTextStart){var plainText=line.substring(plainTextStart,column);node.appendChild(document.createTextNode(plainText));}
+node.appendChild(this.createSpan(token,tokenType));plainTextStart=newColumn;}
+var tokenize=WebInspector.CodeMirrorUtils.createTokenizer(this._mimeType);for(var i=lines[0].length?0:1;i<lines.length;++i){var line=lines[i];var plainTextStart=0;tokenize(line,processToken.bind(this));if(plainTextStart<line.length){var plainText=line.substring(plainTextStart,line.length);node.appendChild(document.createTextNode(plainText));}
 if(i<lines.length-1)
 node.appendChild(document.createElement("br"));}}}
+window.requestFileSystem=window.requestFileSystem||window.webkitRequestFileSystem;WebInspector.TempFile=function(dirPath,name,callback)
+{this._fileEntry=null;this._writer=null;function didInitFs(fs)
+{fs.root.getDirectory(dirPath,{create:true},didGetDir.bind(this),boundErrorHandler);}
+function didGetDir(dir)
+{dir.getFile(name,{create:true},didCreateFile.bind(this),boundErrorHandler);}
+function didCreateFile(fileEntry)
+{this._fileEntry=fileEntry;fileEntry.createWriter(didCreateWriter.bind(this),boundErrorHandler);}
+function didCreateWriter(writer)
+{function didTruncate(e)
+{this._writer=writer;writer.onwrite=null;writer.onerror=null;callback(this);}
+function onTruncateError(e)
+{WebInspector.log("Failed to truncate temp file "+e.code+" : "+e.message,WebInspector.ConsoleMessage.MessageLevel.Error);callback(null);}
+if(writer.length){writer.onwrite=didTruncate.bind(this);writer.onerror=onTruncateError.bind(this);writer.truncate(0);}else{this._writer=writer;callback(this);}}
+function errorHandler(e)
+{WebInspector.log("Failed to create temp file "+e.code+" : "+e.message,WebInspector.ConsoleMessage.MessageLevel.Error);callback(null);}
+var boundErrorHandler=errorHandler.bind(this)
+function didClearTempStorage()
+{window.requestFileSystem(window.TEMPORARY,10,didInitFs.bind(this),boundErrorHandler);}
+WebInspector.TempFile._ensureTempStorageCleared(didClearTempStorage.bind(this));}
+WebInspector.TempFile.prototype={write:function(data,callback)
+{var blob=new Blob([data],{type:'text/plain'});this._writer.onerror=function(e)
+{WebInspector.log("Failed to write into a temp file: "+e.message,WebInspector.ConsoleMessage.MessageLevel.Error);callback(false);}
+this._writer.onwrite=function(e)
+{callback(true);}
+this._writer.write(blob);},finishWriting:function()
+{this._writer=null;},read:function(callback)
+{function didGetFile(file)
+{var reader=new FileReader();reader.onloadend=function(e)
+{callback((this.result));}
+reader.onerror=function(error)
+{WebInspector.log("Failed to read from temp file: "+error.message,WebInspector.ConsoleMessage.MessageLevel.Error);}
+reader.readAsText(file);}
+function didFailToGetFile(error)
+{WebInspector.log("Failed to load temp file: "+error.message,WebInspector.ConsoleMessage.MessageLevel.Error);callback(null);}
+this._fileEntry.file(didGetFile.bind(this),didFailToGetFile.bind(this));},writeToOutputSteam:function(outputStream,delegate)
+{function didGetFile(file)
+{var reader=new WebInspector.ChunkedFileReader(file,10*1000*1000,delegate);reader.start(outputStream);}
+function didFailToGetFile(error)
+{WebInspector.log("Failed to load temp file: "+error.message,WebInspector.ConsoleMessage.MessageLevel.Error);outputStream.close();}
+this._fileEntry.file(didGetFile.bind(this),didFailToGetFile.bind(this));},remove:function()
+{if(this._fileEntry)
+this._fileEntry.remove(function(){});}}
+WebInspector.BufferedTempFileWriter=function(dirPath,name)
+{this._chunks=[];this._tempFile=null;this._isWriting=false;this._finishCallback=null;this._isFinished=false;new WebInspector.TempFile(dirPath,name,this._didCreateTempFile.bind(this));}
+WebInspector.BufferedTempFileWriter.prototype={write:function(data)
+{if(!this._chunks)
+return;if(this._finishCallback)
+throw new Error("Now writes are allowed after close.");this._chunks.push(data);if(this._tempFile&&!this._isWriting)
+this._writeNextChunk();},close:function(callback)
+{this._finishCallback=callback;if(this._isFinished)
+callback(this._tempFile);else if(!this._isWriting&&!this._chunks.length)
+this._notifyFinished();},_didCreateTempFile:function(tempFile)
+{this._tempFile=tempFile;if(!tempFile){this._chunks=null;this._notifyFinished();return;}
+if(this._chunks.length)
+this._writeNextChunk();},_writeNextChunk:function()
+{var chunkSize=0;var endIndex=0;for(;endIndex<this._chunks.length;endIndex++){chunkSize+=this._chunks[endIndex].length;if(chunkSize>10*1000*1000)
+break;}
+var chunk=this._chunks.slice(0,endIndex+1).join("");this._chunks.splice(0,endIndex+1);this._isWriting=true;this._tempFile.write(chunk,this._didWriteChunk.bind(this));},_didWriteChunk:function(success)
+{this._isWriting=false;if(!success){this._tempFile=null;this._chunks=null;this._notifyFinished();return;}
+if(this._chunks.length)
+this._writeNextChunk();else if(this._finishCallback)
+this._notifyFinished();},_notifyFinished:function()
+{this._isFinished=true;if(this._tempFile)
+this._tempFile.finishWriting();if(this._finishCallback)
+this._finishCallback(this._tempFile);}}
+WebInspector.TempStorageCleaner=function()
+{this._worker=new SharedWorker("TempStorageSharedWorker.js","TempStorage");this._callbacks=[];this._worker.port.onmessage=this._handleMessage.bind(this);this._worker.port.onerror=this._handleError.bind(this);}
+WebInspector.TempStorageCleaner.prototype={ensureStorageCleared:function(callback)
+{if(this._callbacks)
+this._callbacks.push(callback);else
+callback();},_handleMessage:function(event)
+{if(event.data.type==="tempStorageCleared"){if(event.data.error)
+WebInspector.log(event.data.error,WebInspector.ConsoleMessage.MessageLevel.Error);this._notifyCallbacks();}},_handleError:function(event)
+{WebInspector.log(WebInspector.UIString("Failed to clear temp storage: %s",event.data),WebInspector.ConsoleMessage.MessageLevel.Error);this._notifyCallbacks();},_notifyCallbacks:function()
+{var callbacks=this._callbacks;this._callbacks=null;for(var i=0;i<callbacks.length;i++)
+callbacks[i]();}}
+WebInspector.TempFile._ensureTempStorageCleared=function(callback)
+{if(!WebInspector.TempFile._storageCleaner)
+WebInspector.TempFile._storageCleaner=new WebInspector.TempStorageCleaner();WebInspector.TempFile._storageCleaner.ensureStorageCleared(callback);}
 WebInspector.TextRange=function(startLine,startColumn,endLine,endColumn)
 {this.startLine=startLine;this.startColumn=startColumn;this.endLine=endLine;this.endColumn=endColumn;}
 WebInspector.TextRange.createFromLocation=function(line,column)
@@ -6690,9 +7045,12 @@
 return 1;if(this.startLine<other.startLine)
 return-1;if(this.startColumn>other.startColumn)
 return 1;if(this.startColumn<other.startColumn)
-return-1;return 0;},shift:function(lineOffset)
+return-1;return 0;},equal:function(other)
+{return this.startLine===other.startLine&&this.endLine===other.endLine&&this.startColumn===other.startColumn&&this.endColumn===other.endColumn;},shift:function(lineOffset)
 {return new WebInspector.TextRange(this.startLine+lineOffset,this.startColumn,this.endLine+lineOffset,this.endColumn);},toString:function()
 {return JSON.stringify(this);}}
+WebInspector.SourceRange=function(offset,length)
+{this.offset=offset;this.length=length;}
 WebInspector.TextUtils={isStopChar:function(char)
 {return(char>" "&&char<"0")||(char>"9"&&char<"A")||(char>"Z"&&char<"_")||(char>"_"&&char<"a")||(char>"z"&&char<="~");},isWordChar:function(char)
 {return!WebInspector.TextUtils.isStopChar(char)&&!WebInspector.TextUtils.isSpaceChar(char);},isSpaceChar:function(char)
@@ -6707,7 +7065,13 @@
 words.push(text.substring(startWord,i));startWord=-1;}else if(startWord===-1)
 startWord=i;}
 if(startWord!==-1)
-words.push(text.substring(startWord));return words;},}
+words.push(text.substring(startWord));return words;},findBalancedCurlyBrackets:function(source,startIndex,lastIndex){lastIndex=lastIndex||source.length;startIndex=startIndex||0;var counter=0;var inString=false;for(var index=startIndex;index<lastIndex;++index){var character=source[index];if(inString){if(character==="\\")
+++index;else if(character==="\"")
+inString=false;}else{if(character==="\"")
+inString=true;else if(character==="{")
+++counter;else if(character==="}"){if(--counter===0)
+return index+1;}}}
+return-1;}}
 WebInspector.TextUtils._SpaceCharRegex=/\s/;WebInspector.TextUtils.Indent={TwoSpaces:"  ",FourSpaces:"    ",EightSpaces:"        ",TabCharacter:"\t"}
 WebInspector.FileSystemModel=function()
 {WebInspector.Object.call(this);this._fileSystemsForOrigin={};WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded,this._securityOriginAdded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved,this._securityOriginRemoved,this);FileSystemAgent.enable();this._reset();}
@@ -6732,10 +7096,11 @@
 {this._requestDirectoryContent(directory.url,this._directoryContentReceived.bind(this,directory,callback));},_requestDirectoryContent:function(url,callback)
 {function innerCallback(error,errorCode,backendEntries)
 {if(error){callback(FileError.SECURITY_ERR);return;}
-if(errorCode!==0){callback(errorCode,null);return;}
+if(errorCode!==0){callback(errorCode);return;}
 callback(errorCode,backendEntries);}
 FileSystemAgent.requestDirectoryContent(url,innerCallback.bind(this));},_directoryContentReceived:function(parentDirectory,callback,errorCode,backendEntries)
-{var entries=[];for(var i=0;i<backendEntries.length;++i){if(backendEntries[i].isDirectory)
+{if(!backendEntries){callback(errorCode);return;}
+var entries=[];for(var i=0;i<backendEntries.length;++i){if(backendEntries[i].isDirectory)
 entries.push(new WebInspector.FileSystemModel.Directory(this,parentDirectory.fileSystem,backendEntries[i]));else
 entries.push(new WebInspector.FileSystemModel.File(this,parentDirectory.fileSystem,backendEntries[i]));}
 callback(errorCode,entries);},requestMetadata:function(entry,callback)
@@ -6833,19 +7198,13 @@
 return;this._output.close();this._delegate.onTransferFinished();}}
 WebInspector.createFileSelectorElement=function(callback){var fileSelectorElement=document.createElement("input");fileSelectorElement.type="file";fileSelectorElement.style.display="none";fileSelectorElement.setAttribute("tabindex",-1);fileSelectorElement.onchange=onChange;function onChange(event)
 {callback(fileSelectorElement.files[0]);};return fileSelectorElement;}
-WebInspector.findBalancedCurlyBrackets=function(source,startIndex,lastIndex){lastIndex=lastIndex||source.length;startIndex=startIndex||0;var counter=0;var inString=false;for(var index=startIndex;index<lastIndex;++index){var character=source[index];if(inString){if(character==="\\")
-++index;else if(character==="\"")
-inString=false;}else{if(character==="\"")
-inString=true;else if(character==="{")
-++counter;else if(character==="}"){if(--counter===0)
-return index+1;}}}
-return-1;}
 WebInspector.FileOutputStream=function()
 {}
 WebInspector.FileOutputStream.prototype={open:function(fileName,callback)
-{this._closed=false;this._writeCallbacks=[];this._fileName=fileName;function callbackWrapper()
-{WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.SavedURL,callbackWrapper,this);WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);callback(this);}
-WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.SavedURL,callbackWrapper,this);WebInspector.fileManager.save(this._fileName,"",true);},write:function(data,callback)
+{this._closed=false;this._writeCallbacks=[];this._fileName=fileName;function callbackWrapper(accepted)
+{if(accepted)
+WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);callback(accepted);}
+WebInspector.fileManager.save(this._fileName,"",true,callbackWrapper.bind(this));},write:function(data,callback)
 {this._writeCallbacks.push(callback);WebInspector.fileManager.append(this._fileName,data);},close:function()
 {this._closed=true;if(this._writeCallbacks.length)
 return;WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);WebInspector.fileManager.close(this._fileName);},_onAppendDone:function(event)
@@ -6853,7 +7212,7 @@
 return;var callback=this._writeCallbacks.shift();if(callback)
 callback(this);if(!this._writeCallbacks.length){if(this._closed){WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.AppendedToURL,this._onAppendDone,this);WebInspector.fileManager.close(this._fileName);}}}}
 WebInspector.DebuggerModel=function()
-{InspectorBackend.registerDebuggerDispatcher(new WebInspector.DebuggerDispatcher(this));this._debuggerPausedDetails=null;this._scripts={};this._scriptsBySourceURL={};this._canSetScriptSource=false;this._breakpointsActive=true;WebInspector.settings.pauseOnExceptionStateString=WebInspector.settings.createSetting("pauseOnExceptionStateString",WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions);WebInspector.settings.pauseOnExceptionStateString.addChangeListener(this._pauseOnExceptionStateChanged,this);this.enableDebugger();WebInspector.DebuggerModel.applySkipStackFrameSettings();}
+{InspectorBackend.registerDebuggerDispatcher(new WebInspector.DebuggerDispatcher(this));this._debuggerPausedDetails=null;this._scripts={};this._scriptsBySourceURL={};this._breakpointsActive=true;WebInspector.settings.pauseOnExceptionStateString=WebInspector.settings.createSetting("pauseOnExceptionStateString",WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions);WebInspector.settings.pauseOnExceptionStateString.addChangeListener(this._pauseOnExceptionStateChanged,this);WebInspector.settings.lastPauseOnExceptionState=WebInspector.settings.createSetting("lastPauseOnExceptionState",WebInspector.DebuggerModel.PauseOnExceptionsState.PauseOnUncaughtExceptions);WebInspector.settings.enableAsyncStackTraces.addChangeListener(this._asyncStackTracesStateChanged,this);this.enableDebugger();WebInspector.DebuggerModel.applySkipStackFrameSettings();}
 WebInspector.DebuggerModel.PauseOnExceptionsState={DontPauseOnExceptions:"none",PauseOnAllExceptions:"all",PauseOnUncaughtExceptions:"uncaught"};WebInspector.DebuggerModel.Location=function(scriptId,lineNumber,columnNumber)
 {this.scriptId=scriptId;this.lineNumber=lineNumber;this.columnNumber=columnNumber;}
 WebInspector.DebuggerModel.Events={DebuggerWasEnabled:"DebuggerWasEnabled",DebuggerWasDisabled:"DebuggerWasDisabled",DebuggerPaused:"DebuggerPaused",DebuggerResumed:"DebuggerResumed",ParsedScriptSource:"ParsedScriptSource",FailedToParseScriptSource:"FailedToParseScriptSource",BreakpointResolved:"BreakpointResolved",GlobalObjectCleared:"GlobalObjectCleared",CallFrameSelected:"CallFrameSelected",ConsoleCommandEvaluatedInSelectedCallFrame:"ConsoleCommandEvaluatedInSelectedCallFrame",BreakpointsActiveStateChanged:"BreakpointsActiveStateChanged"}
@@ -6861,18 +7220,16 @@
 WebInspector.DebuggerModel.prototype={debuggerEnabled:function()
 {return!!this._debuggerEnabled;},enableDebugger:function()
 {if(this._debuggerEnabled)
-return;function callback(error,result)
-{this._canSetScriptSource=result;}
-DebuggerAgent.canSetScriptSource(callback.bind(this));DebuggerAgent.enable(this._debuggerWasEnabled.bind(this));},disableDebugger:function()
+return;DebuggerAgent.enable(this._debuggerWasEnabled.bind(this));},disableDebugger:function()
 {if(!this._debuggerEnabled)
 return;DebuggerAgent.disable(this._debuggerWasDisabled.bind(this));},skipAllPauses:function(skip,untilReload)
 {if(this._skipAllPausesTimeout){clearTimeout(this._skipAllPausesTimeout);delete this._skipAllPausesTimeout;}
 DebuggerAgent.setSkipAllPauses(skip,untilReload);},skipAllPausesUntilReloadOrTimeout:function(timeout)
 {if(this._skipAllPausesTimeout)
-clearTimeout(this._skipAllPausesTimeout);DebuggerAgent.setSkipAllPauses(true,true);this._skipAllPausesTimeout=setTimeout(this.skipAllPauses.bind(this,false),timeout);},canSetScriptSource:function()
-{return this._canSetScriptSource;},_debuggerWasEnabled:function()
-{this._debuggerEnabled=true;this._pauseOnExceptionStateChanged();this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerWasEnabled);},_pauseOnExceptionStateChanged:function()
-{DebuggerAgent.setPauseOnExceptions(WebInspector.settings.pauseOnExceptionStateString.get());},_debuggerWasDisabled:function()
+clearTimeout(this._skipAllPausesTimeout);DebuggerAgent.setSkipAllPauses(true,true);this._skipAllPausesTimeout=setTimeout(this.skipAllPauses.bind(this,false),timeout);},_debuggerWasEnabled:function()
+{this._debuggerEnabled=true;this._pauseOnExceptionStateChanged();this._asyncStackTracesStateChanged();this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerWasEnabled);},_pauseOnExceptionStateChanged:function()
+{DebuggerAgent.setPauseOnExceptions(WebInspector.settings.pauseOnExceptionStateString.get());},_asyncStackTracesStateChanged:function()
+{const maxAsyncStackChainDepth=4;var enabled=WebInspector.settings.enableAsyncStackTraces.get();DebuggerAgent.setAsyncCallStackDepth(enabled?maxAsyncStackChainDepth:0);},_debuggerWasDisabled:function()
 {this._debuggerEnabled=false;this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerWasDisabled);},continueToLocation:function(rawLocation)
 {DebuggerAgent.continueToLocation(rawLocation);},stepIntoSelection:function(rawLocation)
 {function callback(requestedLocation,error)
@@ -6909,17 +7266,17 @@
 {return this._scripts[scriptId]||null;},scriptsForSourceURL:function(sourceURL)
 {if(!sourceURL)
 return[];return this._scriptsBySourceURL[sourceURL]||[];},setScriptSource:function(scriptId,newSource,callback)
-{this._scripts[scriptId].editSource(newSource,this._didEditScriptSource.bind(this,scriptId,newSource,callback));},_didEditScriptSource:function(scriptId,newSource,callback,error,errorData,callFrames,needsStepIn)
+{this._scripts[scriptId].editSource(newSource,this._didEditScriptSource.bind(this,scriptId,newSource,callback));},_didEditScriptSource:function(scriptId,newSource,callback,error,errorData,callFrames,asyncStackTrace,needsStepIn)
 {callback(error,errorData);if(needsStepIn)
 this.stepInto();else if(!error&&callFrames&&callFrames.length)
-this._pausedScript(callFrames,this._debuggerPausedDetails.reason,this._debuggerPausedDetails.auxData,this._debuggerPausedDetails.breakpointIds);},get callFrames()
+this._pausedScript(callFrames,this._debuggerPausedDetails.reason,this._debuggerPausedDetails.auxData,this._debuggerPausedDetails.breakpointIds,asyncStackTrace);},get callFrames()
 {return this._debuggerPausedDetails?this._debuggerPausedDetails.callFrames:null;},debuggerPausedDetails:function()
 {return this._debuggerPausedDetails;},_setDebuggerPausedDetails:function(debuggerPausedDetails)
 {if(this._debuggerPausedDetails)
 this._debuggerPausedDetails.dispose();this._debuggerPausedDetails=debuggerPausedDetails;if(this._debuggerPausedDetails)
-this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPausedDetails);if(debuggerPausedDetails){this.setSelectedCallFrame(debuggerPausedDetails.callFrames[0]);DebuggerAgent.setOverlayMessage(WebInspector.UIString("Paused in debugger"));}else{this.setSelectedCallFrame(null);DebuggerAgent.setOverlayMessage();}},_pausedScript:function(callFrames,reason,auxData,breakpointIds)
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerPaused,this._debuggerPausedDetails);if(debuggerPausedDetails){this.setSelectedCallFrame(debuggerPausedDetails.callFrames[0]);DebuggerAgent.setOverlayMessage(WebInspector.UIString("Paused in debugger"));}else{this.setSelectedCallFrame(null);DebuggerAgent.setOverlayMessage();}},_pausedScript:function(callFrames,reason,auxData,breakpointIds,asyncStackTrace)
 {if(this._pendingStepIntoLocation){var requestedLocation=this._pendingStepIntoLocation;delete this._pendingStepIntoLocation;if(callFrames.length>0){var topLocation=callFrames[0].location;if(topLocation.lineNumber==requestedLocation.lineNumber&&topLocation.columnNumber==requestedLocation.columnNumber&&topLocation.scriptId==requestedLocation.scriptId){this.stepInto();return;}}}
-this._setDebuggerPausedDetails(new WebInspector.DebuggerPausedDetails(this,callFrames,reason,auxData,breakpointIds));},_resumedScript:function()
+this._setDebuggerPausedDetails(new WebInspector.DebuggerPausedDetails(callFrames,reason,auxData,breakpointIds,asyncStackTrace));},_resumedScript:function()
 {this._setDebuggerPausedDetails(null);this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerResumed);},_parsedScriptSource:function(scriptId,sourceURL,startLine,startColumn,endLine,endColumn,isContentScript,sourceMapURL,hasSourceURL)
 {var script=new WebInspector.Script(scriptId,sourceURL,startLine,startColumn,endLine,endColumn,isContentScript,sourceMapURL,hasSourceURL);this._registerScript(script);this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.ParsedScriptSource,script);},_registerScript:function(script)
 {this._scripts[script.scriptId]=script;if(script.isAnonymousScript())
@@ -6939,7 +7296,8 @@
 {return this._selectedCallFrame;},_selectedCallFrameId:function()
 {var callFrame=this.selectedCallFrame();return callFrame?callFrame.id:undefined;},evaluateOnSelectedCallFrame:function(code,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,callback)
 {function didEvaluate(result,wasThrown)
-{if(returnByValue)
+{if(!result)
+callback(null,false);else if(returnByValue)
 callback(null,!!wasThrown,wasThrown?null:result);else
 callback(WebInspector.RemoteObject.fromPayload(result),!!wasThrown);if(objectGroup==="console")
 this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.ConsoleCommandEvaluatedInSelectedCallFrame);}
@@ -6955,55 +7313,72 @@
 {return this._breakpointsActive;},createLiveLocation:function(rawLocation,updateDelegate)
 {var script=this._scripts[rawLocation.scriptId];return script.createLiveLocation(rawLocation,updateDelegate);},rawLocationToUILocation:function(rawLocation)
 {var script=this._scripts[rawLocation.scriptId];if(!script)
-return null;return script.rawLocationToUILocation(rawLocation.lineNumber,rawLocation.columnNumber);},callStackModified:function(newCallFrames,details)
+return null;return script.rawLocationToUILocation(rawLocation.lineNumber,rawLocation.columnNumber);},callStackModified:function(newCallFrames,details,asyncStackTrace)
 {if(details&&details["stack_update_needs_step_in"])
-this.stepInto();else{if(newCallFrames&&newCallFrames.length)
-this._pausedScript(newCallFrames,this._debuggerPausedDetails.reason,this._debuggerPausedDetails.auxData,this._debuggerPausedDetails.breakpointIds);}},__proto__:WebInspector.Object.prototype}
+this.stepInto();else if(newCallFrames&&newCallFrames.length)
+this._pausedScript(newCallFrames,this._debuggerPausedDetails.reason,this._debuggerPausedDetails.auxData,this._debuggerPausedDetails.breakpointIds,asyncStackTrace);},__proto__:WebInspector.Object.prototype}
 WebInspector.DebuggerModel.applySkipStackFrameSettings=function()
 {if(!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled())
 return;var settings=WebInspector.settings;var patternParameter=settings.skipStackFramesSwitch.get()?settings.skipStackFramesPattern.get():undefined;DebuggerAgent.skipStackFrames(patternParameter);}
 WebInspector.DebuggerEventTypes={JavaScriptPause:0,JavaScriptBreakpoint:1,NativeBreakpoint:2};WebInspector.DebuggerDispatcher=function(debuggerModel)
 {this._debuggerModel=debuggerModel;}
-WebInspector.DebuggerDispatcher.prototype={paused:function(callFrames,reason,auxData,breakpointIds)
-{this._debuggerModel._pausedScript(callFrames,reason,auxData,breakpointIds||[]);},resumed:function()
+WebInspector.DebuggerDispatcher.prototype={paused:function(callFrames,reason,auxData,breakpointIds,asyncStackTrace)
+{this._debuggerModel._pausedScript(callFrames,reason,auxData,breakpointIds||[],asyncStackTrace);},resumed:function()
 {this._debuggerModel._resumedScript();},globalObjectCleared:function()
 {this._debuggerModel._globalObjectCleared();},scriptParsed:function(scriptId,sourceURL,startLine,startColumn,endLine,endColumn,isContentScript,sourceMapURL,hasSourceURL)
 {this._debuggerModel._parsedScriptSource(scriptId,sourceURL,startLine,startColumn,endLine,endColumn,!!isContentScript,sourceMapURL,hasSourceURL);},scriptFailedToParse:function(sourceURL,source,startingLine,errorLine,errorMessage)
 {},breakpointResolved:function(breakpointId,location)
 {this._debuggerModel._breakpointResolved(breakpointId,location);}}
-WebInspector.DebuggerModel.CallFrame=function(script,payload)
-{this._script=script;this._payload=payload;this._locations=[];}
+WebInspector.DebuggerModel.CallFrame=function(script,payload,isAsync)
+{this._script=script;this._payload=payload;this._locations=[];this._isAsync=isAsync;}
+WebInspector.DebuggerModel.CallFrame.fromPayloadArray=function(callFrames,isAsync)
+{var result=[];for(var i=0;i<callFrames.length;++i){var callFrame=callFrames[i];var script=WebInspector.debuggerModel.scriptForId(callFrame.location.scriptId);if(script)
+result.push(new WebInspector.DebuggerModel.CallFrame(script,callFrame,isAsync));}
+return result;}
 WebInspector.DebuggerModel.CallFrame.prototype={get script()
 {return this._script;},get type()
 {return this._payload.type;},get id()
 {return this._payload.callFrameId;},get scopeChain()
 {return this._payload.scopeChain;},get this()
-{return this._payload.this;},get functionName()
+{return this._payload.this;},get returnValue()
+{return this._payload.returnValue;},get functionName()
 {return this._payload.functionName;},get location()
-{var rawLocation=(this._payload.location);return rawLocation;},evaluate:function(code,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,callback)
+{var rawLocation=(this._payload.location);return rawLocation;},isAsync:function()
+{return!!this._isAsync;},evaluate:function(code,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,callback)
 {function didEvaluateOnCallFrame(error,result,wasThrown)
 {if(error){console.error(error);callback(null,false);return;}
 callback(result,wasThrown);}
 DebuggerAgent.evaluateOnCallFrame(this._payload.callFrameId,code,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,didEvaluateOnCallFrame.bind(this));},restart:function(callback)
-{function protocolCallback(error,callFrames,details)
+{function protocolCallback(error,callFrames,details,asyncStackTrace)
 {if(!error)
-WebInspector.debuggerModel.callStackModified(callFrames,details);if(callback)
+WebInspector.debuggerModel.callStackModified(callFrames,details,asyncStackTrace);if(callback)
 callback(error);}
 DebuggerAgent.restartFrame(this._payload.callFrameId,protocolCallback);},getStepIntoLocations:function(callback)
 {if(this._stepInLocations){callback(this._stepInLocations.slice(0));return;}
-function getStepInPositionsCallback(error,stepInPositions){if(error){return;}
-this._stepInLocations=stepInPositions;callback(this._stepInLocations.slice(0));}
+function getStepInPositionsCallback(error,stepInPositions)
+{if(error)
+return;this._stepInLocations=stepInPositions;callback(this._stepInLocations.slice(0));}
 DebuggerAgent.getStepInPositions(this.id,getStepInPositionsCallback.bind(this));},createLiveLocation:function(updateDelegate)
-{var location=this._script.createLiveLocation(this.location,updateDelegate);this._locations.push(location);return location;},dispose:function(updateDelegate)
+{var location=this._script.createLiveLocation(this.location,updateDelegate);this._locations.push(location);return location;},dispose:function()
 {for(var i=0;i<this._locations.length;++i)
 this._locations[i].dispose();this._locations=[];}}
-WebInspector.DebuggerPausedDetails=function(model,callFrames,reason,auxData,breakpointIds)
-{this.callFrames=[];for(var i=0;i<callFrames.length;++i){var callFrame=callFrames[i];var script=model.scriptForId(callFrame.location.scriptId);if(script)
-this.callFrames.push(new WebInspector.DebuggerModel.CallFrame(script,callFrame));}
-this.reason=reason;this.auxData=auxData;this.breakpointIds=breakpointIds;}
+WebInspector.DebuggerModel.StackTrace=function(callFrames,asyncStackTrace,description)
+{this.callFrames=callFrames;this.asyncStackTrace=asyncStackTrace;this.description=description;}
+WebInspector.DebuggerModel.StackTrace.fromPayload=function(payload,isAsync)
+{if(!payload)
+return null;var callFrames=WebInspector.DebuggerModel.CallFrame.fromPayloadArray(payload.callFrames,isAsync);if(!callFrames.length)
+return null;var asyncStackTrace=WebInspector.DebuggerModel.StackTrace.fromPayload(payload.asyncStackTrace,true);return new WebInspector.DebuggerModel.StackTrace(callFrames,asyncStackTrace,payload.description);}
+WebInspector.DebuggerModel.StackTrace.prototype={dispose:function()
+{for(var i=0;i<this.callFrames.length;++i)
+this.callFrames[i].dispose();if(this.asyncStackTrace)
+this.asyncStackTrace.dispose();}}
+WebInspector.DebuggerPausedDetails=function(callFrames,reason,auxData,breakpointIds,asyncStackTrace)
+{this.callFrames=WebInspector.DebuggerModel.CallFrame.fromPayloadArray(callFrames);this.reason=reason;this.auxData=auxData;this.breakpointIds=breakpointIds;this.asyncStackTrace=WebInspector.DebuggerModel.StackTrace.fromPayload(asyncStackTrace,true);}
 WebInspector.DebuggerPausedDetails.prototype={dispose:function()
-{for(var i=0;i<this.callFrames.length;++i){var callFrame=this.callFrames[i];callFrame.dispose();}}}
-WebInspector.debuggerModel=null;WebInspector.SourceMap=function(sourceMappingURL,payload)
+{for(var i=0;i<this.callFrames.length;++i)
+this.callFrames[i].dispose();if(this.asyncStackTrace)
+this.asyncStackTrace.dispose();}}
+WebInspector.debuggerModel;WebInspector.SourceMap=function(sourceMappingURL,payload)
 {if(!WebInspector.SourceMap.prototype._base64Map){const base64Digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";WebInspector.SourceMap.prototype._base64Map={};for(var i=0;i<base64Digits.length;++i)
 WebInspector.SourceMap.prototype._base64Map[base64Digits.charAt(i)]=i;}
 this._sourceMappingURL=sourceMappingURL;this._reverseMappingsBySourceURL={};this._mappings=[];this._sources={};this._sourceContentByURL={};this._parseMappingPayload(payload);}
@@ -7063,12 +7438,13 @@
 WebInspector.Script=function(scriptId,sourceURL,startLine,startColumn,endLine,endColumn,isContentScript,sourceMapURL,hasSourceURL)
 {this.scriptId=scriptId;this.sourceURL=sourceURL;this.lineOffset=startLine;this.columnOffset=startColumn;this.endLine=endLine;this.endColumn=endColumn;this.isContentScript=isContentScript;this.sourceMapURL=sourceMapURL;this.hasSourceURL=hasSourceURL;this._locations=new Set();this._sourceMappings=[];}
 WebInspector.Script.Events={ScriptEdited:"ScriptEdited",}
-WebInspector.Script.snippetSourceURLPrefix="snippets:///";WebInspector.Script.prototype={contentURL:function()
+WebInspector.Script.snippetSourceURLPrefix="snippets:///";WebInspector.Script._trimSourceURLComment=function(source)
+{var sourceURLRegex=/\n[\040\t]*\/\/[@#]\ssourceURL=\s*(\S*?)\s*$/mg;return source.replace(sourceURLRegex,"");},WebInspector.Script.prototype={contentURL:function()
 {return this.sourceURL;},contentType:function()
 {return WebInspector.resourceTypes.Script;},requestContent:function(callback)
 {if(this._source){callback(this._source);return;}
 function didGetScriptSource(error,source)
-{this._source=error?"":source;callback(this._source);}
+{this._source=WebInspector.Script._trimSourceURLComment(error?"":source);callback(this._source);}
 if(this.scriptId){DebuggerAgent.getScriptSource(this.scriptId,didGetScriptSource.bind(this));}else
 callback("");},searchInContent:function(query,caseSensitive,isRegex,callback)
 {function innerCallback(error,searchMatches)
@@ -7076,12 +7452,15 @@
 console.error(error);var result=[];for(var i=0;i<searchMatches.length;++i){var searchMatch=new WebInspector.ContentProvider.SearchMatch(searchMatches[i].lineNumber,searchMatches[i].lineContent);result.push(searchMatch);}
 callback(result||[]);}
 if(this.scriptId){DebuggerAgent.searchInContent(this.scriptId,query,caseSensitive,isRegex,innerCallback.bind(this));}else
-callback([]);},editSource:function(newSource,callback)
-{function didEditScriptSource(error,errorData,callFrames,debugData)
+callback([]);},_appendSourceURLCommentIfNeeded:function(source)
+{if(!this.hasSourceURL)
+return source;return source+"\n //# sourceURL="+this.sourceURL;},editSource:function(newSource,callback)
+{function didEditScriptSource(error,errorData,callFrames,debugData,asyncStackTrace)
 {if(!error)
-this._source=newSource;var needsStepIn=!!debugData&&debugData["stack_update_needs_step_in"]===true;callback(error,errorData,callFrames,needsStepIn);if(!error)
+this._source=newSource;var needsStepIn=!!debugData&&debugData["stack_update_needs_step_in"]===true;callback(error,errorData,callFrames,asyncStackTrace,needsStepIn);if(!error)
 this.dispatchEventToListeners(WebInspector.Script.Events.ScriptEdited,newSource);}
-if(this.scriptId){DebuggerAgent.setScriptSource(this.scriptId,newSource,undefined,didEditScriptSource.bind(this));}else
+newSource=WebInspector.Script._trimSourceURLComment(newSource);newSource=this._appendSourceURLCommentIfNeeded(newSource);if(this.scriptId)
+DebuggerAgent.setScriptSource(this.scriptId,newSource,undefined,didEditScriptSource.bind(this));else
 callback("Script failed to parse");},isInlineScript:function()
 {var startsAtZero=!this.lineOffset&&!this.columnOffset;return!!this.sourceURL&&!startsAtZero;},isAnonymousScript:function()
 {return!this.sourceURL;},isSnippet:function()
@@ -7117,7 +7496,7 @@
 WebInspector.Linkifier.DefaultFormatter.prototype={formatLiveAnchor:function(anchor,uiLocation)
 {var text=uiLocation.linkText();if(this._maxLength)
 text=text.trimMiddle(this._maxLength);anchor.textContent=text;var titleText=uiLocation.uiSourceCode.originURL();if(typeof uiLocation.lineNumber==="number")
-titleText+=":"+(uiLocation.lineNumber+1);anchor.title=titleText;},__proto__:WebInspector.LinkifierFormatter.prototype}
+titleText+=":"+(uiLocation.lineNumber+1);anchor.title=titleText;}}
 WebInspector.Linkifier.DefaultCSSFormatter=function()
 {WebInspector.Linkifier.DefaultFormatter.call(this,WebInspector.Linkifier.DefaultCSSFormatter.MaxLengthForDisplayedURLs);}
 WebInspector.Linkifier.DefaultCSSFormatter.MaxLengthForDisplayedURLs=30;WebInspector.Linkifier.DefaultCSSFormatter.prototype={formatLiveAnchor:function(anchor,uiLocation)
@@ -7175,23 +7554,31 @@
 {return true;},rename:function(path,newName,callback)
 {var filePath=this._filePathForPath(path);this._fileSystem.renameFile(filePath,newName,innerCallback.bind(this));function innerCallback(success,newName)
 {if(!success){callback(false,newName);return;}
-var slash=filePath.lastIndexOf("/");var parentPath=filePath.substring(0,slash);filePath=parentPath+"/"+newName;var newURL=this._workspace.urlForPath(this._fileSystem.path(),filePath);var extension=this._extensionForPath(newName);var newOriginURL=this._fileSystemURL+filePath
-var newContentType=this._contentTypeForExtension(extension);callback(true,newName,newURL,newOriginURL,newContentType);}},searchInFileContent:function(path,query,caseSensitive,isRegex,callback)
+var validNewName=(newName);console.assert(validNewName);var slash=filePath.lastIndexOf("/");var parentPath=filePath.substring(0,slash);filePath=parentPath+"/"+validNewName;var newURL=this._workspace.urlForPath(this._fileSystem.path(),filePath);var extension=this._extensionForPath(validNewName);var newOriginURL=this._fileSystemURL+filePath
+var newContentType=this._contentTypeForExtension(extension);callback(true,validNewName,newURL,newOriginURL,newContentType);}},searchInFileContent:function(path,query,caseSensitive,isRegex,callback)
 {var filePath=this._filePathForPath(path);this._fileSystem.requestFileContent(filePath,contentCallback.bind(this));function contentCallback(content)
 {var result=[];if(content!==null)
-result=WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex);callback(result);}},searchInContent:function(query,caseSensitive,isRegex,progress,callback)
-{var requestId=++WebInspector.FileSystemProjectDelegate._lastRequestId;this._searchCallbacks[requestId]=innerCallback.bind(this);InspectorFrontendHost.searchInPath(requestId,this._fileSystem.path(),isRegex?"":query);function innerCallback(files)
+result=WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex);callback(result);}},findFilesMatchingSearchRequest:function(queries,fileQueries,caseSensitive,isRegex,progress,callback)
+{var result=[];var queriesToRun=queries.slice();if(!queriesToRun.length)
+queriesToRun.push("");progress.setTotalWork(queriesToRun.length);searchNextQuery.call(this);function searchNextQuery()
+{if(!queriesToRun.length){matchFileQueries.call(this,result);return;}
+var query=queriesToRun.shift();this._searchInPath(isRegex?"":query,progress,innerCallback.bind(this));}
+function innerCallback(files)
+{files=files.sort();progress.worked(1);if(!result)
+result=files;else
+result=result.intersectOrdered(files,String.naturalOrderComparator);searchNextQuery.call(this);}
+function matchFileQueries(files)
+{var fileRegexes=[];for(var i=0;i<fileQueries.length;++i)
+fileRegexes.push(new RegExp(fileQueries[i],caseSensitive?"":"i"));function filterOutNonMatchingFiles(file)
+{for(var i=0;i<fileRegexes.length;++i){if(!file.match(fileRegexes[i]))
+return false;}
+return true;}
+files=files.filter(filterOutNonMatchingFiles);progress.done();callback(files);}},_searchInPath:function(query,progress,callback)
+{var requestId=++WebInspector.FileSystemProjectDelegate._lastRequestId;this._searchCallbacks[requestId]=innerCallback.bind(this);InspectorFrontendHost.searchInPath(requestId,this._fileSystem.path(),query);function innerCallback(files)
 {function trimAndNormalizeFileSystemPath(fullPath)
 {var trimmedPath=fullPath.substr(this._fileSystem.path().length+1);if(WebInspector.isWin())
 trimmedPath=trimmedPath.replace(/\\/g,"/");return trimmedPath;}
-files=files.map(trimAndNormalizeFileSystemPath.bind(this));var result=new StringMap();progress.setTotalWork(files.length);if(files.length===0){progress.done();callback(result);return;}
-var fileIndex=0;var maxFileContentRequests=20;var callbacksLeft=0;function searchInNextFiles()
-{for(;callbacksLeft<maxFileContentRequests;++callbacksLeft){if(fileIndex>=files.length)
-break;var path=files[fileIndex++];var filePath=this._filePathForPath(path);this._fileSystem.requestFileContent(filePath,contentCallback.bind(this,path));}}
-searchInNextFiles.call(this);function contentCallback(path,content)
-{var matches=[];if(content!==null)
-matches=WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex);result.put(path,matches);progress.worked(1);--callbacksLeft;if(fileIndex<files.length){searchInNextFiles.call(this);}else{if(callbacksLeft)
-return;progress.done();callback(result);}}}},searchCompleted:function(requestId,files)
+files=files.map(trimAndNormalizeFileSystemPath.bind(this));progress.worked(1);callback(files);}},searchCompleted:function(requestId,files)
 {if(!this._searchCallbacks[requestId])
 return;var callback=this._searchCallbacks[requestId];delete this._searchCallbacks[requestId];callback(files);},indexContent:function(progress,callback)
 {var requestId=++WebInspector.FileSystemProjectDelegate._lastRequestId;this._indexingCallbacks[requestId]=callback;this._indexingProgresses[requestId]=progress;progress.setTotalWork(1);progress.addEventListener(WebInspector.Progress.Events.Canceled,this._indexingCanceled.bind(this,requestId));InspectorFrontendHost.indexPath(requestId,this._fileSystem.path());},_indexingCanceled:function(requestId)
@@ -7213,7 +7600,8 @@
 {this._fileSystem.requestFilesRecursive(path,this._addFile.bind(this));},excludeFolder:function(path)
 {WebInspector.isolatedFileSystemManager.mapping().addExcludedFolder(this._fileSystem.path(),path);},createFile:function(path,name,content,callback)
 {this._fileSystem.createFile(path,name,innerCallback.bind(this));var createFilePath;function innerCallback(filePath)
-{createFilePath=filePath;if(!filePath||!content){contentSet.call(this);return;}
+{if(!filePath){callback(null);return;}
+createFilePath=filePath;if(!content){contentSet.call(this);return;}
 this._fileSystem.setFileContent(filePath,content,contentSet.bind(this));}
 function contentSet()
 {this._addFile(createFilePath);callback(createFilePath);}},deleteFile:function(path)
@@ -7223,7 +7611,7 @@
 console.assert(false);var slash=filePath.lastIndexOf("/");var parentPath=filePath.substring(0,slash);var name=filePath.substring(slash+1);var url=this._workspace.urlForPath(this._fileSystem.path(),filePath);var extension=this._extensionForPath(name);var contentType=this._contentTypeForExtension(extension);var fileDescriptor=new WebInspector.FileDescriptor(parentPath,name,this._fileSystemURL+filePath,url,contentType,true);this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileAdded,fileDescriptor);},_removeFile:function(path)
 {this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRemoved,path);},reset:function()
 {this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.Reset,null);},__proto__:WebInspector.Object.prototype}
-WebInspector.fileSystemProjectDelegate=null;WebInspector.FileSystemWorkspaceProvider=function(isolatedFileSystemManager,workspace)
+WebInspector.fileSystemProjectDelegate;WebInspector.FileSystemWorkspaceProvider=function(isolatedFileSystemManager,workspace)
 {this._isolatedFileSystemManager=isolatedFileSystemManager;this._workspace=workspace;this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded,this._fileSystemAdded,this);this._isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved,this._fileSystemRemoved,this);this._projectDelegates={};}
 WebInspector.FileSystemWorkspaceProvider.prototype={_fileSystemAdded:function(event)
 {var fileSystem=(event.data);var projectId=WebInspector.FileSystemProjectDelegate.projectId(fileSystem.path());var projectDelegate=new WebInspector.FileSystemProjectDelegate(fileSystem,this._workspace)
@@ -7231,7 +7619,7 @@
 {var fileSystem=(event.data);var projectId=WebInspector.FileSystemProjectDelegate.projectId(fileSystem.path());this._workspace.removeProject(projectId);delete this._projectDelegates[projectId];},fileSystemPath:function(uiSourceCode)
 {var projectDelegate=this._projectDelegates[uiSourceCode.project().id()];return projectDelegate.fileSystemPath();},delegate:function(fileSystemPath)
 {var projectId=WebInspector.FileSystemProjectDelegate.projectId(fileSystemPath);return this._projectDelegates[projectId];}}
-WebInspector.fileSystemWorkspaceProvider=null;WebInspector.FileSystemMapping=function()
+WebInspector.fileSystemWorkspaceProvider;WebInspector.FileSystemMapping=function()
 {WebInspector.Object.call(this);this._fileSystemMappingSetting=WebInspector.settings.createSetting("fileSystemMapping",{});this._excludedFoldersSetting=WebInspector.settings.createSetting("workspaceExcludedFolders",{});var defaultCommonExcludedFolders=["/\\.git/","/\\.sass-cache/","/\\.hg/","/\\.idea/","/\\.svn/","/\\.cache/","/\\.project/"];var defaultWinExcludedFolders=["/Thumbs.db$","/ehthumbs.db$","/Desktop.ini$","/\\$RECYCLE.BIN/"];var defaultMacExcludedFolders=["/\\.DS_Store$","/\\.Trashes$","/\\.Spotlight-V100$","/\\.AppleDouble$","/\\.LSOverride$","/Icon$","/\\._.*$"];var defaultLinuxExcludedFolders=["/.*~$"];var defaultExcludedFolders=defaultCommonExcludedFolders;if(WebInspector.isWin())
 defaultExcludedFolders=defaultExcludedFolders.concat(defaultWinExcludedFolders);else if(WebInspector.isMac())
 defaultExcludedFolders=defaultExcludedFolders.concat(defaultMacExcludedFolders);else
@@ -7296,50 +7684,50 @@
 WebInspector.IsolatedFileSystem=function(manager,path,name,rootURL)
 {this._manager=manager;this._path=path;this._name=name;this._rootURL=rootURL;}
 WebInspector.IsolatedFileSystem.errorMessage=function(error)
-{var msg;switch(error.code){case FileError.QUOTA_EXCEEDED_ERR:msg="QUOTA_EXCEEDED_ERR";break;case FileError.NOT_FOUND_ERR:msg="NOT_FOUND_ERR";break;case FileError.SECURITY_ERR:msg="SECURITY_ERR";break;case FileError.INVALID_MODIFICATION_ERR:msg="INVALID_MODIFICATION_ERR";break;case FileError.INVALID_STATE_ERR:msg="INVALID_STATE_ERR";break;default:msg="Unknown Error";break;};return"File system error: "+msg;}
+{var msg;switch(error.code){case FileError.QUOTA_EXCEEDED_ERR:msg="QUOTA_EXCEEDED_ERR";break;case FileError.NOT_FOUND_ERR:msg="NOT_FOUND_ERR";break;case FileError.SECURITY_ERR:msg="SECURITY_ERR";break;case FileError.INVALID_MODIFICATION_ERR:msg="INVALID_MODIFICATION_ERR";break;case FileError.INVALID_STATE_ERR:msg="INVALID_STATE_ERR";break;default:msg=WebInspector.UIString("Unknown Error");break;};return WebInspector.UIString("File system error: %s",msg);}
 WebInspector.IsolatedFileSystem.prototype={path:function()
 {return this._path;},name:function()
 {return this._name;},rootURL:function()
 {return this._rootURL;},_requestFileSystem:function(callback)
 {this._manager.requestDOMFileSystem(this._path,callback);},requestFilesRecursive:function(path,callback)
 {this._requestFileSystem(fileSystemLoaded.bind(this));var domFileSystem;function fileSystemLoaded(fs)
-{domFileSystem=fs;this._requestEntries(domFileSystem,path,innerCallback.bind(this));}
+{domFileSystem=(fs);console.assert(domFileSystem);this._requestEntries(domFileSystem,path,innerCallback.bind(this));}
 function innerCallback(entries)
 {for(var i=0;i<entries.length;++i){var entry=entries[i];if(!entry.isDirectory){if(this._manager.mapping().isFileExcluded(this._path,entry.fullPath))
 continue;callback(entry.fullPath.substr(1));}
 else{if(this._manager.mapping().isFileExcluded(this._path,entry.fullPath+"/"))
 continue;this._requestEntries(domFileSystem,entry.fullPath,innerCallback.bind(this));}}}},createFile:function(path,name,callback)
 {this._requestFileSystem(fileSystemLoaded.bind(this));var newFileIndex=1;if(!name)
-name="NewFile";var nameCandidate;function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getDirectory(path,null,dirEntryLoaded.bind(this),errorHandler.bind(this));}
+name="NewFile";var nameCandidate;function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getDirectory(path,null,dirEntryLoaded.bind(this),errorHandler.bind(this));}
 function dirEntryLoaded(dirEntry)
 {var nameCandidate=name;if(newFileIndex>1)
-nameCandidate+=newFileIndex;++newFileIndex;dirEntry.getFile(nameCandidate,{create:true,exclusive:true},fileCreated,fileCreationError);function fileCreated(entry)
+nameCandidate+=newFileIndex;++newFileIndex;dirEntry.getFile(nameCandidate,{create:true,exclusive:true},fileCreated,fileCreationError.bind(this));function fileCreated(entry)
 {callback(entry.fullPath.substr(1));}
 function fileCreationError(error)
-{if(error.code===FileError.INVALID_MODIFICATION_ERR){dirEntryLoaded(dirEntry);return;}
+{if(error.code===FileError.INVALID_MODIFICATION_ERR){dirEntryLoaded.call(this,dirEntry);return;}
 var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when testing if file exists '"+(this._path+"/"+path+"/"+nameCandidate)+"'");callback(null);}}
 function errorHandler(error)
 {var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);var filePath=this._path+"/"+path;if(nameCandidate)
 filePath+="/"+nameCandidate;console.error(errorMessage+" when getting content for file '"+(filePath)+"'");callback(null);}},deleteFile:function(path)
-{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getFile(path,null,fileEntryLoaded.bind(this),errorHandler.bind(this));}
+{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getFile(path,null,fileEntryLoaded.bind(this),errorHandler.bind(this));}
 function fileEntryLoaded(fileEntry)
 {fileEntry.remove(fileEntryRemoved.bind(this),errorHandler.bind(this));}
 function fileEntryRemoved()
 {}
 function errorHandler(error)
 {var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when deleting file '"+(this._path+"/"+path)+"'");}},requestMetadata:function(path,callback)
-{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler);}
+{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler);}
 function fileEntryLoaded(entry)
 {entry.getMetadata(successHandler,errorHandler);}
 function successHandler(metadata)
 {callback(metadata.modificationTime,metadata.size);}
 function errorHandler(error)
 {callback(null,null);}},requestFileContent:function(path,callback)
-{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler.bind(this));}
+{this._requestFileSystem(fileSystemLoaded.bind(this));function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler.bind(this));}
 function fileEntryLoaded(entry)
 {entry.file(fileLoaded,errorHandler.bind(this));}
 function fileLoaded(file)
@@ -7349,8 +7737,8 @@
 function errorHandler(error)
 {if(error.code===FileError.NOT_FOUND_ERR){callback(null);return;}
 var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when getting content for file '"+(this._path+"/"+path)+"'");callback(null);}},setFileContent:function(path,content,callback)
-{this._requestFileSystem(fileSystemLoaded);function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getFile(path,{create:true},fileEntryLoaded,errorHandler.bind(this));}
+{this._requestFileSystem(fileSystemLoaded);function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getFile(path,{create:true},fileEntryLoaded,errorHandler.bind(this));}
 function fileEntryLoaded(entry)
 {entry.createWriter(fileWriterCreated,errorHandler.bind(this));}
 function fileWriterCreated(fileWriter)
@@ -7361,8 +7749,8 @@
 function errorHandler(error)
 {var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when setting content for file '"+(this._path+"/"+path)+"'");callback();}},renameFile:function(path,newName,callback)
 {newName=newName?newName.trim():newName;if(!newName||newName.indexOf("/")!==-1){callback(false);return;}
-var fileEntry;var dirEntry;var newFileEntry;this._requestFileSystem(fileSystemLoaded);function fileSystemLoaded(domFileSystem)
-{domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler.bind(this));}
+var fileEntry;var dirEntry;var newFileEntry;this._requestFileSystem(fileSystemLoaded);function fileSystemLoaded(fs)
+{var domFileSystem=(fs);console.assert(domFileSystem);domFileSystem.root.getFile(path,null,fileEntryLoaded,errorHandler.bind(this));}
 function fileEntryLoaded(entry)
 {if(entry.name===newName){callback(false);return;}
 fileEntry=entry;fileEntry.getParent(dirEntryLoaded,errorHandler.bind(this));}
@@ -7418,17 +7806,17 @@
 {if(!this._loaded){if(!this._pendingFileSystemRequests[fileSystemPath])
 this._pendingFileSystemRequests[fileSystemPath]=this._pendingFileSystemRequests[fileSystemPath]||[];this._pendingFileSystemRequests[fileSystemPath].push(callback);return;}
 callback(this._isolatedFileSystem(fileSystemPath));},__proto__:WebInspector.Object.prototype}
-WebInspector.isolatedFileSystemManager=null;WebInspector.IsolatedFileSystemDispatcher=function(IsolatedFileSystemManager)
+WebInspector.isolatedFileSystemManager;WebInspector.IsolatedFileSystemDispatcher=function(IsolatedFileSystemManager)
 {this._IsolatedFileSystemManager=IsolatedFileSystemManager;}
 WebInspector.IsolatedFileSystemDispatcher.prototype={fileSystemsLoaded:function(fileSystems)
 {this._IsolatedFileSystemManager._fileSystemsLoaded(fileSystems);},fileSystemRemoved:function(fileSystemPath)
 {this._IsolatedFileSystemManager._fileSystemRemoved(fileSystemPath);},fileSystemAdded:function(errorMessage,fileSystem)
 {this._IsolatedFileSystemManager._fileSystemAdded(errorMessage,fileSystem);}}
-WebInspector.isolatedFileSystemDispatcher=null;WebInspector.FileDescriptor=function(parentPath,name,originURL,url,contentType,isEditable,isContentScript)
+WebInspector.isolatedFileSystemDispatcher;WebInspector.FileDescriptor=function(parentPath,name,originURL,url,contentType,isEditable,isContentScript)
 {this.parentPath=parentPath;this.name=name;this.originURL=originURL;this.url=url;this.contentType=contentType;this.isEditable=isEditable;this.isContentScript=isContentScript||false;}
 WebInspector.ProjectDelegate=function(){}
 WebInspector.ProjectDelegate.Events={FileAdded:"FileAdded",FileRemoved:"FileRemoved",Reset:"Reset",}
-WebInspector.ProjectDelegate.prototype={id:function(){},type:function(){},displayName:function(){},requestMetadata:function(path,callback){},requestFileContent:function(path,callback){},canSetFileContent:function(){},setFileContent:function(path,newContent,callback){},canRename:function(){},rename:function(path,newName,callback){},refresh:function(path){},excludeFolder:function(path){},createFile:function(path,name,content,callback){},deleteFile:function(path){},remove:function(){},searchInFileContent:function(path,query,caseSensitive,isRegex,callback){},searchInContent:function(query,caseSensitive,isRegex,progress,callback){},indexContent:function(progress,callback){}}
+WebInspector.ProjectDelegate.prototype={id:function(){},type:function(){},displayName:function(){},requestMetadata:function(path,callback){},requestFileContent:function(path,callback){},canSetFileContent:function(){},setFileContent:function(path,newContent,callback){},canRename:function(){},rename:function(path,newName,callback){},refresh:function(path){},excludeFolder:function(path){},createFile:function(path,name,content,callback){},deleteFile:function(path){},remove:function(){},searchInFileContent:function(path,query,caseSensitive,isRegex,callback){},findFilesMatchingSearchRequest:function(queries,fileQueries,caseSensitive,isRegex,progress,callback){},indexContent:function(progress,callback){}}
 WebInspector.Project=function(workspace,projectDelegate)
 {this._uiSourceCodesMap={};this._uiSourceCodesList=[];this._workspace=workspace;this._projectDelegate=projectDelegate;this._displayName=this._projectDelegate.displayName();this._projectDelegate.addEventListener(WebInspector.ProjectDelegate.Events.FileAdded,this._fileAdded,this);this._projectDelegate.addEventListener(WebInspector.ProjectDelegate.Events.FileRemoved,this._fileRemoved,this);this._projectDelegate.addEventListener(WebInspector.ProjectDelegate.Events.Reset,this._reset,this);}
 WebInspector.Project.prototype={id:function()
@@ -7441,7 +7829,8 @@
 {var path=(event.data);this._removeFile(path);},_removeFile:function(path)
 {var uiSourceCode=this.uiSourceCode(path);if(!uiSourceCode)
 return;var entry=this._uiSourceCodesMap[path];var movedUISourceCode=this._uiSourceCodesList[this._uiSourceCodesList.length-1];this._uiSourceCodesList[entry.index]=movedUISourceCode;var movedEntry=this._uiSourceCodesMap[movedUISourceCode.path()];movedEntry.index=entry.index;this._uiSourceCodesList.splice(this._uiSourceCodesList.length-1,1);delete this._uiSourceCodesMap[path];this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.UISourceCodeRemoved,entry.uiSourceCode);},_reset:function()
-{this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.ProjectWillReset,this);this._uiSourceCodesMap={};this._uiSourceCodesList=[];},uiSourceCode:function(path)
+{this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.ProjectWillReset,this);this._uiSourceCodesMap={};this._uiSourceCodesList=[];},workspace:function()
+{return this._workspace;},uiSourceCode:function(path)
 {var entry=this._uiSourceCodesMap[path];return entry?entry.uiSourceCode:null;},uiSourceCodeForOriginURL:function(originURL)
 {for(var i=0;i<this._uiSourceCodesList.length;++i){var uiSourceCode=this._uiSourceCodesList[i];if(uiSourceCode.originURL()===originURL)
 return uiSourceCode;}
@@ -7464,15 +7853,18 @@
 {callback(filePath);}},deleteFile:function(path)
 {this._projectDelegate.deleteFile(path);},remove:function()
 {this._projectDelegate.remove();},searchInFileContent:function(uiSourceCode,query,caseSensitive,isRegex,callback)
-{this._projectDelegate.searchInFileContent(uiSourceCode.path(),query,caseSensitive,isRegex,callback);},searchInContent:function(query,caseSensitive,isRegex,progress,callback)
-{this._projectDelegate.searchInContent(query,caseSensitive,isRegex,progress,callback);},indexContent:function(progress,callback)
+{this._projectDelegate.searchInFileContent(uiSourceCode.path(),query,caseSensitive,isRegex,callback);},findFilesMatchingSearchRequest:function(queries,fileQueries,caseSensitive,isRegex,progress,callback)
+{this._projectDelegate.findFilesMatchingSearchRequest(queries,fileQueries,caseSensitive,isRegex,progress,callback);},indexContent:function(progress,callback)
 {this._projectDelegate.indexContent(progress,callback);},dispose:function()
 {this._projectDelegate.reset();}}
 WebInspector.projectTypes={Debugger:"debugger",LiveEdit:"liveedit",Network:"network",Snippets:"snippets",FileSystem:"filesystem"}
 WebInspector.Workspace=function(fileSystemMapping)
-{this._fileSystemMapping=fileSystemMapping;this._projects={};}
+{this._fileSystemMapping=fileSystemMapping;this._projects={};this._hasResourceContentTrackingExtensions=false;}
 WebInspector.Workspace.Events={UISourceCodeAdded:"UISourceCodeAdded",UISourceCodeRemoved:"UISourceCodeRemoved",UISourceCodeContentCommitted:"UISourceCodeContentCommitted",ProjectWillReset:"ProjectWillReset"}
-WebInspector.Workspace.prototype={uiSourceCode:function(projectId,path)
+WebInspector.Workspace.prototype={unsavedSourceCodes:function()
+{function filterUnsaved(sourceCode)
+{return sourceCode.isDirty();}
+return this.uiSourceCodes().filter(filterUnsaved);},uiSourceCode:function(projectId,path)
 {var project=this._projects[projectId];return project?project.uiSourceCode(path):null;},uiSourceCodeForOriginURL:function(originURL)
 {var networkProjects=this.projectsForType(WebInspector.projectTypes.Network)
 for(var i=0;i<networkProjects.length;++i){var project=networkProjects[i];var uiSourceCode=project.uiSourceCodeForOriginURL(originURL);if(uiSourceCode)
@@ -7499,8 +7891,10 @@
 return this._networkUISourceCodeForURL(url);var projectId=WebInspector.FileSystemProjectDelegate.projectId(file.fileSystemPath);var project=this.project(projectId);return project?project.uiSourceCode(file.filePath):null;},urlForPath:function(fileSystemPath,filePath)
 {return this._fileSystemMapping.urlForPath(fileSystemPath,filePath);},addMapping:function(networkUISourceCode,uiSourceCode,fileSystemWorkspaceProvider)
 {var url=networkUISourceCode.url;var path=uiSourceCode.path();var fileSystemPath=fileSystemWorkspaceProvider.fileSystemPath(uiSourceCode);this._fileSystemMapping.addMappingForResource(url,fileSystemPath,path);WebInspector.suggestReload();},removeMapping:function(uiSourceCode)
-{this._fileSystemMapping.removeMappingForURL(uiSourceCode.url);WebInspector.suggestReload();},__proto__:WebInspector.Object.prototype}
-WebInspector.workspace=null;WebInspector.WorkspaceController=function(workspace)
+{this._fileSystemMapping.removeMappingForURL(uiSourceCode.url);WebInspector.suggestReload();},setHasResourceContentTrackingExtensions:function(hasExtensions)
+{this._hasResourceContentTrackingExtensions=hasExtensions;},hasResourceContentTrackingExtensions:function()
+{return this._hasResourceContentTrackingExtensions;},__proto__:WebInspector.Object.prototype}
+WebInspector.workspace;WebInspector.WorkspaceController=function(workspace)
 {this._workspace=workspace;WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._inspectedURLChanged,this);window.addEventListener("focus",this._windowFocused.bind(this),false);}
 WebInspector.WorkspaceController.prototype={_inspectedURLChanged:function(event)
 {WebInspector.Revision.filterOutStaleRevisions();},_windowFocused:function(event)
@@ -7508,7 +7902,7 @@
 return;this._fileSystemRefreshTimeout=setTimeout(refreshFileSystems.bind(this),1000);function refreshFileSystems()
 {delete this._fileSystemRefreshTimeout;var projects=this._workspace.projects();for(var i=0;i<projects.length;++i)
 projects[i].refresh("/");}}}
-WebInspector.workspaceController=null;WebInspector.ContentProviderBasedProjectDelegate=function(type)
+WebInspector.ContentProviderBasedProjectDelegate=function(type)
 {this._type=type;this._contentProviders={};this._isContentScriptMap={};}
 WebInspector.ContentProviderBasedProjectDelegate.prototype={id:function()
 {return"";},type:function()
@@ -7522,7 +7916,7 @@
 {return false;},rename:function(path,newName,callback)
 {this.performRename(path,newName,innerCallback.bind(this));function innerCallback(success,newName)
 {if(success)
-this._updateName(path,newName);callback(success,newName);}},refresh:function(path)
+this._updateName(path,(newName));callback(success,newName);}},refresh:function(path)
 {},excludeFolder:function(path)
 {},createFile:function(path,name,content,callback)
 {},deleteFile:function(path)
@@ -7530,14 +7924,27 @@
 {},performRename:function(path,newName,callback)
 {callback(false);},_updateName:function(path,newName)
 {var oldPath=path;var copyOfPath=path.split("/");copyOfPath[copyOfPath.length-1]=newName;var newPath=copyOfPath.join("/");this._contentProviders[newPath]=this._contentProviders[oldPath];delete this._contentProviders[oldPath];},searchInFileContent:function(path,query,caseSensitive,isRegex,callback)
-{var contentProvider=this._contentProviders[path];contentProvider.searchInContent(query,caseSensitive,isRegex,callback);},searchInContent:function(query,caseSensitive,isRegex,progress,callback)
-{var result=new StringMap();var paths=Object.keys(this._contentProviders);var totalCount=paths.length;if(totalCount===0){setTimeout(doneCallback,0);return;}
+{var contentProvider=this._contentProviders[path];contentProvider.searchInContent(query,caseSensitive,isRegex,callback);},findFilesMatchingSearchRequest:function(queries,fileQueries,caseSensitive,isRegex,progress,callback)
+{var result=[];var paths=Object.keys(this._contentProviders);var totalCount=paths.length;if(totalCount===0){setTimeout(doneCallback,0);return;}
 function filterOutContentScripts(path)
 {return!this._isContentScriptMap[path];}
 if(!WebInspector.settings.searchInContentScripts.get())
-paths=paths.filter(filterOutContentScripts.bind(this));var barrier=new CallbackBarrier();progress.setTotalWork(paths.length);for(var i=0;i<paths.length;++i)
-this._contentProviders[paths[i]].searchInContent(query,caseSensitive,isRegex,barrier.createCallback(contentCallback.bind(this,i)));barrier.callWhenDone(doneCallback);function contentCallback(i,searchMatches)
-{result.put(paths[i],searchMatches);progress.worked(1);}
+paths=paths.filter(filterOutContentScripts.bind(this));var fileRegexes=[];for(var i=0;i<fileQueries.length;++i)
+fileRegexes.push(new RegExp(fileQueries[i],caseSensitive?"":"i"));function filterOutNonMatchingFiles(file)
+{for(var i=0;i<fileRegexes.length;++i){if(!file.match(fileRegexes[i]))
+return false;}
+return true;}
+paths=paths.filter(filterOutNonMatchingFiles);var barrier=new CallbackBarrier();progress.setTotalWork(paths.length);for(var i=0;i<paths.length;++i)
+searchInContent.call(this,paths[i],barrier.createCallback(searchInContentCallback.bind(this,paths[i])));barrier.callWhenDone(doneCallback);function searchInContent(path,callback)
+{var queriesToRun=queries.slice();searchNextQuery.call(this);function searchNextQuery()
+{if(!queriesToRun.length){callback(true);return;}
+var query=queriesToRun.shift();this._contentProviders[path].searchInContent(query,caseSensitive,isRegex,contentCallback.bind(this));}
+function contentCallback(searchMatches)
+{if(!searchMatches.length){callback(false);return;}
+searchNextQuery.call(this);}}
+function searchInContentCallback(path,matches)
+{if(matches)
+result.push(path);progress.worked(1);}
 function doneCallback()
 {callback(result);progress.done();}},indexContent:function(progress,callback)
 {setTimeout(innerCallback,0);function innerCallback()
@@ -7569,7 +7976,7 @@
 return this._simpleProjectDelegates[projectName];var simpleProjectDelegate=new WebInspector.SimpleProjectDelegate(projectName,this._type);this._simpleProjectDelegates[projectName]=simpleProjectDelegate;this._workspace.addProject(simpleProjectDelegate);return simpleProjectDelegate;},addFileForURL:function(url,contentProvider,isEditable,isContentScript)
 {return this._innerAddFileForURL(url,contentProvider,isEditable,false,isContentScript);},addUniqueFileForURL:function(url,contentProvider,isEditable,isContentScript)
 {return this._innerAddFileForURL(url,contentProvider,isEditable,true,isContentScript);},_innerAddFileForURL:function(url,contentProvider,isEditable,forceUnique,isContentScript)
-{var splitURL=WebInspector.ParsedURL.splitURL(url);var projectName=splitURL[0];var parentPath=splitURL.slice(1,splitURL.length-1).join("/");var name=splitURL[splitURL.length-1];var projectDelegate=this._projectDelegate(projectName);var path=projectDelegate.addFile(parentPath,name,forceUnique,url,contentProvider,isEditable,isContentScript);return this._workspace.uiSourceCode(projectDelegate.id(),path);},reset:function()
+{var splitURL=WebInspector.ParsedURL.splitURL(url);var projectName=splitURL[0];var parentPath=splitURL.slice(1,splitURL.length-1).join("/");var name=splitURL[splitURL.length-1];var projectDelegate=this._projectDelegate(projectName);var path=projectDelegate.addFile(parentPath,name,forceUnique,url,contentProvider,isEditable,isContentScript);var uiSourceCode=(this._workspace.uiSourceCode(projectDelegate.id(),path));console.assert(uiSourceCode);return uiSourceCode;},reset:function()
 {for(var projectName in this._simpleProjectDelegates)
 this._simpleProjectDelegates[projectName].reset();this._simpleProjectDelegates={};},__proto__:WebInspector.Object.prototype}
 WebInspector.BreakpointManager=function(breakpointStorage,debuggerModel,workspace)
@@ -7686,7 +8093,7 @@
 breakpointsArray.push(this._breakpoints[id]);this._setting.set(breakpointsArray);}}
 WebInspector.BreakpointManager.Storage.Item=function(breakpoint)
 {this.sourceFileId=breakpoint._sourceFileId;this.lineNumber=breakpoint.lineNumber();this.condition=breakpoint.condition();this.enabled=breakpoint.enabled();}
-WebInspector.breakpointManager=null;WebInspector.ConcatenatedScriptsContentProvider=function(scripts)
+WebInspector.breakpointManager;WebInspector.ConcatenatedScriptsContentProvider=function(scripts)
 {this._scripts=scripts;}
 WebInspector.ConcatenatedScriptsContentProvider.scriptOpenTag="<script>";WebInspector.ConcatenatedScriptsContentProvider.scriptCloseTag="</script>";WebInspector.ConcatenatedScriptsContentProvider.prototype={_sortedScripts:function()
 {if(this._sortedScriptsArray)
@@ -7712,7 +8119,7 @@
 {var content="";var lineNumber=0;var columnNumber=0;var scriptOpenTag=WebInspector.ConcatenatedScriptsContentProvider.scriptOpenTag;var scriptCloseTag=WebInspector.ConcatenatedScriptsContentProvider.scriptCloseTag;for(var i=0;i<scripts.length;++i){for(var newLinesCount=scripts[i].lineOffset-lineNumber;newLinesCount>0;--newLinesCount){columnNumber=0;content+="\n";}
 for(var spacesCount=scripts[i].columnOffset-columnNumber-scriptOpenTag.length;spacesCount>0;--spacesCount)
 content+=" ";content+=scriptOpenTag;content+=sources[i];content+=scriptCloseTag;lineNumber=scripts[i].endLine;columnNumber=scripts[i].endColumn+scriptCloseTag.length;}
-return content;},__proto__:WebInspector.ContentProvider.prototype}
+return content;}}
 WebInspector.CompilerSourceMappingContentProvider=function(sourceURL,contentType)
 {this._sourceURL=sourceURL;this._contentType=contentType;}
 WebInspector.CompilerSourceMappingContentProvider.prototype={contentURL:function()
@@ -7723,7 +8130,7 @@
 callback(content);}},searchInContent:function(query,caseSensitive,isRegex,callback)
 {this.requestContent(contentLoaded);function contentLoaded(content)
 {if(typeof content!=="string"){callback([]);return;}
-callback(WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex));}},__proto__:WebInspector.ContentProvider.prototype}
+callback(WebInspector.ContentProvider.performSearchInContent(content,query,caseSensitive,isRegex));}}}
 WebInspector.StaticContentProvider=function(contentType,content)
 {this._content=content;this._contentType=contentType;}
 WebInspector.StaticContentProvider.prototype={contentURL:function()
@@ -7732,13 +8139,14 @@
 {callback(this._content);},searchInContent:function(query,caseSensitive,isRegex,callback)
 {function performSearch()
 {callback(WebInspector.ContentProvider.performSearchInContent(this._content,query,caseSensitive,isRegex));}
-window.setTimeout(performSearch.bind(this),0);},__proto__:WebInspector.ContentProvider.prototype}
+window.setTimeout(performSearch.bind(this),0);}}
 WebInspector.DefaultScriptMapping=function(workspace)
 {this._projectDelegate=new WebInspector.DebuggerProjectDelegate();this._workspace=workspace;this._workspace.addProject(this._projectDelegate);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);this._debuggerReset();}
 WebInspector.DefaultScriptMapping.prototype={rawLocationToUILocation:function(rawLocation)
 {var debuggerModelLocation=(rawLocation);var script=WebInspector.debuggerModel.scriptForId(debuggerModelLocation.scriptId);var uiSourceCode=this._uiSourceCodeForScriptId[script.scriptId];var lineNumber=debuggerModelLocation.lineNumber;var columnNumber=debuggerModelLocation.columnNumber||0;return new WebInspector.UILocation(uiSourceCode,lineNumber,columnNumber);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
 {var scriptId=this._scriptIdForUISourceCode.get(uiSourceCode);var script=WebInspector.debuggerModel.scriptForId(scriptId);return WebInspector.debuggerModel.createRawLocation(script,lineNumber,columnNumber);},addScript:function(script)
-{var path=this._projectDelegate.addScript(script);var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);this._uiSourceCodeForScriptId[script.scriptId]=uiSourceCode;this._scriptIdForUISourceCode.put(uiSourceCode,script.scriptId);uiSourceCode.setSourceMapping(this);script.pushSourceMapping(this);script.addEventListener(WebInspector.Script.Events.ScriptEdited,this._scriptEdited.bind(this,script.scriptId));return uiSourceCode;},_scriptEdited:function(scriptId,event)
+{var path=this._projectDelegate.addScript(script);var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);if(!uiSourceCode){console.assert(uiSourceCode);return;}
+this._uiSourceCodeForScriptId[script.scriptId]=uiSourceCode;this._scriptIdForUISourceCode.put(uiSourceCode,script.scriptId);uiSourceCode.setSourceMapping(this);script.pushSourceMapping(this);script.addEventListener(WebInspector.Script.Events.ScriptEdited,this._scriptEdited.bind(this,script.scriptId));},_scriptEdited:function(scriptId,event)
 {var content=(event.data);this._uiSourceCodeForScriptId[scriptId].addRevision(content);},_debuggerReset:function()
 {this._uiSourceCodeForScriptId={};this._scriptIdForUISourceCode=new Map();this._projectDelegate.reset();}}
 WebInspector.DebuggerProjectDelegate=function()
@@ -7793,16 +8201,12 @@
 {if(error){this._update();WebInspector.LiveEditSupport.logDetailedError(error,errorData,this._script);return;}
 this._scriptSource=source;this._update();WebInspector.LiveEditSupport.logSuccess();}
 if(!this._script)
-return;var source=this._uiSourceCode.workingCopy();if(this._script.hasSourceURL&&!this._sourceEndsWithSourceURL(source))
-source+="\n //# sourceURL="+this._script.sourceURL;WebInspector.debuggerModel.setScriptSource(this._script.scriptId,source,innerCallback.bind(this));},_isDiverged:function()
+return;var source=this._uiSourceCode.workingCopy();WebInspector.debuggerModel.setScriptSource(this._script.scriptId,source,innerCallback.bind(this));},_isDiverged:function()
 {if(this._uiSourceCode.formatted())
 return false;if(this._uiSourceCode.isDirty())
 return true;if(!this._script)
 return false;if(typeof this._scriptSource==="undefined")
-return false;return!this._sourceMatchesScriptSource(this._uiSourceCode.workingCopy(),this._scriptSource);},_sourceMatchesScriptSource:function(source,scriptSource)
-{if(!scriptSource.startsWith(source))
-return false;var scriptSourceTail=scriptSource.substr(source.length).trim();return!scriptSourceTail||!!scriptSourceTail.match(/^\/\/[@#]\ssourceURL=\s*(\S*?)\s*$/m);},_sourceEndsWithSourceURL:function(source)
-{return!!source.match(/\/\/[@#]\ssourceURL=\s*(\S*?)\s*$/m);},_workingCopyChanged:function(event)
+return false;return this._uiSourceCode.workingCopy()!==this._scriptSource;},_workingCopyChanged:function(event)
 {this._update();},_update:function()
 {if(this._isDiverged()&&!this._hasDivergedFromVM)
 this._divergeFromVM();else if(!this._isDiverged()&&this._hasDivergedFromVM)
@@ -7822,11 +8226,11 @@
 WebInspector.CompilerScriptMapping.prototype={rawLocationToUILocation:function(rawLocation)
 {var debuggerModelLocation=(rawLocation);var sourceMap=this._sourceMapForScriptId[debuggerModelLocation.scriptId];if(!sourceMap)
 return null;var lineNumber=debuggerModelLocation.lineNumber;var columnNumber=debuggerModelLocation.columnNumber||0;var entry=sourceMap.findEntry(lineNumber,columnNumber);if(!entry||entry.length===2)
-return null;var url=entry[2];var uiSourceCode=this._workspace.uiSourceCodeForURL(url);if(!uiSourceCode)
-return null;return new WebInspector.UILocation(uiSourceCode,entry[3],entry[4]);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
+return null;var url=(entry[2]);var uiSourceCode=this._workspace.uiSourceCodeForURL(url);if(!uiSourceCode)
+return null;return new WebInspector.UILocation(uiSourceCode,(entry[3]),(entry[4]));},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
 {if(!uiSourceCode.url)
 return null;var sourceMap=this._sourceMapForURL.get(uiSourceCode.url);if(!sourceMap)
-return null;var entry=sourceMap.findEntryReversed(uiSourceCode.url,lineNumber);return WebInspector.debuggerModel.createRawLocation(this._scriptForSourceMap.get(sourceMap)||null,entry[0],entry[1]);},addScript:function(script)
+return null;var script=(this._scriptForSourceMap.get(sourceMap));console.assert(script);var entry=sourceMap.findEntryReversed(uiSourceCode.url,lineNumber);return WebInspector.debuggerModel.createRawLocation(script,(entry[0]),(entry[1]));},addScript:function(script)
 {script.pushSourceMapping(this);this.loadSourceMapForScript(script,sourceMapLoaded.bind(this));function sourceMapLoaded(sourceMap)
 {if(!sourceMap)
 return;if(this._scriptForSourceMap.get(sourceMap)){this._sourceMapForScriptId[script.scriptId]=sourceMap;script.updateLocations();return;}
@@ -7844,9 +8248,9 @@
 var sourceMap=this._sourceMapForSourceMapURL[sourceMapURL];if(sourceMap){callback(sourceMap);return;}
 var pendingCallbacks=this._pendingSourceMapLoadingCallbacks[sourceMapURL];if(pendingCallbacks){pendingCallbacks.push(callback);return;}
 pendingCallbacks=[callback];this._pendingSourceMapLoadingCallbacks[sourceMapURL]=pendingCallbacks;WebInspector.SourceMap.load(sourceMapURL,scriptURL,sourceMapLoaded.bind(this));function sourceMapLoaded(sourceMap)
-{var callbacks=this._pendingSourceMapLoadingCallbacks[sourceMapURL];delete this._pendingSourceMapLoadingCallbacks[sourceMapURL];if(!callbacks)
+{var url=(sourceMapURL);var callbacks=this._pendingSourceMapLoadingCallbacks[url];delete this._pendingSourceMapLoadingCallbacks[url];if(!callbacks)
 return;if(sourceMap)
-this._sourceMapForSourceMapURL[sourceMapURL]=sourceMap;for(var i=0;i<callbacks.length;++i)
+this._sourceMapForSourceMapURL[url]=sourceMap;for(var i=0;i<callbacks.length;++i)
 callbacks[i](sourceMap);}},_debuggerReset:function()
 {function unbindUISourceCodesForSourceMap(sourceMap)
 {var sourceURLs=sourceMap.sources();for(var i=0;i<sourceURLs.length;++i){var sourceURL=sourceURLs[i];var uiSourceCode=this._workspace.uiSourceCodeForURL(sourceURL);if(!uiSourceCode)
@@ -7862,8 +8266,7 @@
 WebInspector.LiveEditSupport.logDetailedError=function(error,errorData,contextScript)
 {var warningLevel=WebInspector.ConsoleMessage.MessageLevel.Warning;if(!errorData){if(error)
 WebInspector.log(WebInspector.UIString("LiveEdit failed: %s",error),warningLevel,false);return;}
-var compileError=errorData.compileError;if(compileError){var message="LiveEdit compile failed: "+compileError.message;if(contextScript)
-message+=" at "+contextScript.sourceURL+":"+compileError.lineNumber+":"+compileError.columnNumber;WebInspector.log(message,WebInspector.ConsoleMessage.MessageLevel.Error,false);}else{WebInspector.log("Unknown LiveEdit error: "+JSON.stringify(errorData)+"; "+error,warningLevel,false);}}
+var compileError=errorData.compileError;if(compileError){var location=contextScript?WebInspector.UIString(" at %s:%d:%d",contextScript.sourceURL,compileError.lineNumber,compileError.columnNumber):"";var message=WebInspector.UIString("LiveEdit compile failed: %s%s",compileError.message,location);WebInspector.log(message,WebInspector.ConsoleMessage.MessageLevel.Error,false);}else{WebInspector.log(WebInspector.UIString("Unknown LiveEdit error: %s; %s",JSON.stringify(errorData),error),warningLevel,false);}}
 WebInspector.LiveEditSupport.logSuccess=function()
 {WebInspector.log(WebInspector.UIString("Recompilation and update succeeded."),WebInspector.ConsoleMessage.MessageLevel.Debug,false);}
 WebInspector.LiveEditScriptFile=function(uiSourceCode,liveEditUISourceCode,scriptId)
@@ -7877,7 +8280,7 @@
 {return false;},isMergingToVM:function()
 {return false;},checkMapping:function()
 {},__proto__:WebInspector.Object.prototype}
-WebInspector.liveEditSupport=null;WebInspector.CSSStyleSheetMapping=function(cssModel,workspace,networkWorkspaceProvider)
+WebInspector.liveEditSupport;WebInspector.CSSStyleSheetMapping=function(cssModel,workspace,networkWorkspaceProvider)
 {this._cssModel=cssModel;this._workspace=workspace;this._stylesSourceMapping=new WebInspector.StylesSourceMapping(cssModel,workspace);this._sassSourceMapping=new WebInspector.SASSSourceMapping(cssModel,workspace,networkWorkspaceProvider);cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetAdded,this);cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetRemoved,this);}
 WebInspector.CSSStyleSheetMapping.prototype={_styleSheetAdded:function(event)
 {var header=(event.data);this._stylesSourceMapping.addHeader(header);this._sassSourceMapping.addHeader(header);},_styleSheetRemoved:function(event)
@@ -7917,7 +8320,7 @@
 return;if(stopPolling||(now=new Date().getTime())>pollData.deadlineMs){delete pollData.dataByURL[cssURL];if(!Object.keys(pollData.dataByURL).length)
 delete this._pollDataForSASSURL[sassURL];return;}
 var nextPoll=this.pollIntervalMs+pollData.dataByURL[cssURL].previousPoll;var remainingTimeoutMs=Math.max(0,nextPoll-now);pollData.dataByURL[cssURL].previousPoll=now+remainingTimeoutMs;pollData.dataByURL[cssURL].timer=setTimeout(this._reloadCSS.bind(this,cssURL,sassURL,this._pollCallback.bind(this)),remainingTimeoutMs);},_reloadCSS:function(cssURL,sassURL,callback)
-{var cssUISourceCode=this._workspace.uiSourceCodeForURL(cssURL);if(!cssUISourceCode){WebInspector.log(cssURL+" resource missing. Please reload the page.");callback(cssURL,sassURL,true);return;}
+{var cssUISourceCode=this._workspace.uiSourceCodeForURL(cssURL);if(!cssUISourceCode){WebInspector.log(WebInspector.UIString("%s resource missing. Please reload the page.",cssURL));callback(cssURL,sassURL,true);return;}
 if(this._workspace.hasMappingForURL(sassURL))
 this._reloadCSSFromFileSystem(cssUISourceCode,sassURL,callback);else
 this._reloadCSSFromNetwork(cssUISourceCode,sassURL,callback);},_reloadCSSFromNetwork:function(cssUISourceCode,sassURL,callback)
@@ -7978,7 +8381,7 @@
 {var uiSourceCode=(event.data.uiSourceCode);if(uiSourceCode.project().type()===WebInspector.projectTypes.FileSystem)
 this._sassFileSaved(uiSourceCode.url,true);},_reset:function()
 {this._addingRevisionCounter=0;this._completeSourceMapURLForCSSURL={};this._cssURLsForSASSURL={};this._pendingSourceMapLoadingCallbacks={};this._pollDataForSASSURL={};this._sourceMapByURL={};this._sourceMapByStyleSheetURL={};}}
-WebInspector.DOMNode=function(domAgent,doc,isInShadowTree,payload){this._domAgent=domAgent;this.ownerDocument=doc;this._isInShadowTree=isInShadowTree;this.id=payload.nodeId;domAgent._idToDOMNode[this.id]=this;this._nodeType=payload.nodeType;this._nodeName=payload.nodeName;this._localName=payload.localName;this._nodeValue=payload.nodeValue;this._pseudoType=payload.pseudoType;this._shadowRoots=[];this._attributes=[];this._attributesMap={};if(payload.attributes)
+WebInspector.DOMNode=function(domAgent,doc,isInShadowTree,payload){this._domAgent=domAgent;this.ownerDocument=doc;this._isInShadowTree=isInShadowTree;this.id=payload.nodeId;domAgent._idToDOMNode[this.id]=this;this._nodeType=payload.nodeType;this._nodeName=payload.nodeName;this._localName=payload.localName;this._nodeValue=payload.nodeValue;this._pseudoType=payload.pseudoType;this._shadowRootType=payload.shadowRootType;this._shadowRoots=[];this._attributes=[];this._attributesMap={};if(payload.attributes)
 this._setAttributesPayload(payload.attributes);this._userProperties={};this._descendantUserPropertyCounters={};this._childNodeCount=payload.childNodeCount||0;this._children=null;this.nextSibling=null;this.previousSibling=null;this.firstChild=null;this.lastChild=null;this.parentNode=null;if(payload.shadowRoots){for(var i=0;i<payload.shadowRoots.length;++i){var root=payload.shadowRoots[i];var node=new WebInspector.DOMNode(this._domAgent,this.ownerDocument,true,root);this._shadowRoots.push(node);node.parentNode=this;}}
 if(payload.templateContent){this._templateContent=new WebInspector.DOMNode(this._domAgent,this.ownerDocument,true,payload.templateContent);this._templateContent.parentNode=this;}
 if(payload.children)
@@ -7987,10 +8390,7 @@
 this.ownerDocument.documentElement=this;if(this.ownerDocument&&!this.ownerDocument.body&&this._nodeName==="BODY")
 this.ownerDocument.body=this;}else if(this._nodeType===Node.DOCUMENT_TYPE_NODE){this.publicId=payload.publicId;this.systemId=payload.systemId;this.internalSubset=payload.internalSubset;}else if(this._nodeType===Node.ATTRIBUTE_NODE){this.name=payload.name;this.value=payload.value;}}
 WebInspector.DOMNode.PseudoElementNames={Before:"before",After:"after"}
-WebInspector.DOMNode.XPathStep=function(value,optimized)
-{this.value=value;this.optimized=optimized;}
-WebInspector.DOMNode.XPathStep.prototype={toString:function()
-{return this.value;}}
+WebInspector.DOMNode.ShadowRootTypes={UserAgent:"user-agent",Author:"author"}
 WebInspector.DOMNode.prototype={children:function()
 {return this._children?this._children.slice():null;},hasAttributes:function()
 {return this._attributes.length>0;},childNodeCount:function()
@@ -8003,7 +8403,8 @@
 {return this._pseudoType;},hasPseudoElements:function()
 {return Object.keys(this._pseudoElements).length!==0;},pseudoElements:function()
 {return this._pseudoElements;},isInShadowTree:function()
-{return this._isInShadowTree;},nodeNameInCorrectCase:function()
+{return this._isInShadowTree;},shadowRootType:function()
+{return this._shadowRootType||null;},nodeNameInCorrectCase:function()
 {return this.isXMLNode()?this.nodeName():this.nodeName().toLowerCase();},setNodeName:function(name,callback)
 {DOMAgent.setNodeName(this.id,name,WebInspector.domAgent._markRevision(this,callback));},localName:function()
 {return this._localName;},nodeValue:function()
@@ -8033,15 +8434,10 @@
 {function copy(error,text)
 {if(!error)
 InspectorFrontendHost.copyText(text);}
-DOMAgent.getOuterHTML(this.id,copy);},copyXPath:function(optimized)
-{InspectorFrontendHost.copyText(this.xPath(optimized));},eventListeners:function(objectGroupId,callback)
+DOMAgent.getOuterHTML(this.id,copy);},eventListeners:function(objectGroupId,callback)
 {DOMAgent.getEventListenersForNode(this.id,objectGroupId,callback);},path:function()
 {var path=[];var node=this;while(node&&"index"in node&&node._nodeName.length){path.push([node.index,node._nodeName]);node=node.parentNode;}
-path.reverse();return path.join(",");},appropriateSelectorFor:function(justSelector)
-{var lowerCaseName=this.localName()||this.nodeName().toLowerCase();var id=this.getAttribute("id");if(id){var selector="#"+id;return(justSelector?selector:lowerCaseName+selector);}
-var className=this.getAttribute("class");if(className){var selector="."+className.trim().replace(/\s+/g,".");return(justSelector?selector:lowerCaseName+selector);}
-if(lowerCaseName==="input"&&this.getAttribute("type"))
-return lowerCaseName+"[type=\""+this.getAttribute("type")+"\"]";return lowerCaseName;},isAncestor:function(node)
+path.reverse();return path.join(",");},isAncestor:function(node)
 {if(!node)
 return false;var currentNode=node.parentNode;while(currentNode){if(this===currentNode)
 return true;currentNode=currentNode.parentNode;}
@@ -8069,28 +8465,7 @@
 this._addAttribute(name,value);},_removeAttribute:function(name)
 {var attr=this._attributesMap[name];if(attr){this._attributes.remove(attr);delete this._attributesMap[name];}},moveTo:function(targetNode,anchorNode,callback)
 {DOMAgent.moveTo(this.id,targetNode.id,anchorNode?anchorNode.id:undefined,WebInspector.domAgent._markRevision(this,callback));},isXMLNode:function()
-{return!!this.ownerDocument&&!!this.ownerDocument.xmlVersion;},xPath:function(optimized)
-{if(this._nodeType===Node.DOCUMENT_NODE)
-return"/";var steps=[];var contextNode=this;while(contextNode){var step=contextNode._xPathValue(optimized);if(!step)
-break;steps.push(step);if(step.optimized)
-break;contextNode=contextNode.parentNode;}
-steps.reverse();return(steps.length&&steps[0].optimized?"":"/")+steps.join("/");},_xPathValue:function(optimized)
-{var ownValue;var ownIndex=this._xPathIndex();if(ownIndex===-1)
-return null;switch(this._nodeType){case Node.ELEMENT_NODE:if(optimized&&this.getAttribute("id"))
-return new WebInspector.DOMNode.XPathStep("//*[@id=\""+this.getAttribute("id")+"\"]",true);ownValue=this._localName;break;case Node.ATTRIBUTE_NODE:ownValue="@"+this._nodeName;break;case Node.TEXT_NODE:case Node.CDATA_SECTION_NODE:ownValue="text()";break;case Node.PROCESSING_INSTRUCTION_NODE:ownValue="processing-instruction()";break;case Node.COMMENT_NODE:ownValue="comment()";break;case Node.DOCUMENT_NODE:ownValue="";break;default:ownValue="";break;}
-if(ownIndex>0)
-ownValue+="["+ownIndex+"]";return new WebInspector.DOMNode.XPathStep(ownValue,this._nodeType===Node.DOCUMENT_NODE);},_xPathIndex:function()
-{function areNodesSimilar(left,right)
-{if(left===right)
-return true;if(left._nodeType===Node.ELEMENT_NODE&&right._nodeType===Node.ELEMENT_NODE)
-return left._localName===right._localName;if(left._nodeType===right._nodeType)
-return true;var leftType=left._nodeType===Node.CDATA_SECTION_NODE?Node.TEXT_NODE:left._nodeType;var rightType=right._nodeType===Node.CDATA_SECTION_NODE?Node.TEXT_NODE:right._nodeType;return leftType===rightType;}
-var siblings=this.parentNode?this.parentNode._children:null;if(!siblings)
-return 0;var hasSameNamedElements;for(var i=0;i<siblings.length;++i){if(areNodesSimilar(this,siblings[i])&&siblings[i]!==this){hasSameNamedElements=true;break;}}
-if(!hasSameNamedElements)
-return 0;var ownIndex=1;for(var i=0;i<siblings.length;++i){if(areNodesSimilar(this,siblings[i])){if(siblings[i]===this)
-return ownIndex;++ownIndex;}}
-return-1;},_updateChildUserPropertyCountsOnRemoval:function(parentNode)
+{return!!this.ownerDocument&&!!this.ownerDocument.xmlVersion;},_updateChildUserPropertyCountsOnRemoval:function(parentNode)
 {var result={};if(this._userProperties){for(var name in this._userProperties)
 result[name]=(result[name]||0)+1;}
 if(this._descendantUserPropertyCounters){for(var name in this._descendantUserPropertyCounters){var counter=this._descendantUserPropertyCounters[name];result[name]=(result[name]||0)+counter;}}
@@ -8106,14 +8481,14 @@
 {if(!this._userProperties.hasOwnProperty(name))
 return;delete this._userProperties[name];if(this.parentNode)
 this.parentNode._updateDescendantUserPropertyCount(name,-1);},getUserProperty:function(name)
-{return this._userProperties?this._userProperties[name]:null;},descendantUserPropertyCount:function(name)
+{return(this._userProperties&&this._userProperties[name])||null;},descendantUserPropertyCount:function(name)
 {return this._descendantUserPropertyCounters&&this._descendantUserPropertyCounters[name]?this._descendantUserPropertyCounters[name]:0;},resolveURL:function(url)
 {if(!url)
 return url;for(var frameOwnerCandidate=this;frameOwnerCandidate;frameOwnerCandidate=frameOwnerCandidate.parentNode){if(frameOwnerCandidate.baseURL)
 return WebInspector.ParsedURL.completeURL(frameOwnerCandidate.baseURL,url);}
 return null;}}
 WebInspector.DOMDocument=function(domAgent,payload)
-{WebInspector.DOMNode.call(this,domAgent,this,false,payload);this.documentURL=payload.documentURL||"";this.baseURL=(payload.baseURL);console.assert(this.baseURL);this.xmlVersion=payload.xmlVersion;this._listeners={};}
+{WebInspector.DOMNode.call(this,domAgent,this,false,payload);this.documentURL=payload.documentURL||"";this.baseURL=payload.baseURL||"";this.xmlVersion=payload.xmlVersion;this._listeners={};}
 WebInspector.DOMDocument.prototype={__proto__:WebInspector.DOMNode.prototype}
 WebInspector.DOMAgent=function(){this._idToDOMNode={};this._document=null;this._attributeLoadNodeIds={};InspectorBackend.registerDOMDispatcher(new WebInspector.DOMDispatcher(this));this._defaultHighlighter=new WebInspector.DefaultDOMNodeHighlighter();this._highlighter=this._defaultHighlighter;}
 WebInspector.DOMAgent.Events={AttrModified:"AttrModified",AttrRemoved:"AttrRemoved",CharacterDataModified:"CharacterDataModified",NodeInserted:"NodeInserted",NodeRemoved:"NodeRemoved",DocumentUpdated:"DocumentUpdated",ChildNodeCountUpdated:"ChildNodeCountUpdated",UndoRedoRequested:"UndoRedoRequested",UndoRedoCompleted:"UndoRedoCompleted",InspectNodeRequested:"InspectNodeRequested"}
@@ -8145,7 +8520,7 @@
 return;node._removeAttribute(name);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrRemoved,{node:node,name:name});},_inlineStyleInvalidated:function(nodeIds)
 {for(var i=0;i<nodeIds.length;++i)
 this._attributeLoadNodeIds[nodeIds[i]]=true;if("_loadNodeAttributesTimeout"in this)
-return;this._loadNodeAttributesTimeout=setTimeout(this._loadNodeAttributes.bind(this),0);},_loadNodeAttributes:function()
+return;this._loadNodeAttributesTimeout=setTimeout(this._loadNodeAttributes.bind(this),20);},_loadNodeAttributes:function()
 {function callback(nodeId,error,attributes)
 {if(error){return;}
 var node=this._idToDOMNode[nodeId];if(node){if(node._setAttributesPayload(attributes))
@@ -8153,7 +8528,7 @@
 delete this._loadNodeAttributesTimeout;for(var nodeId in this._attributeLoadNodeIds){var nodeIdAsNumber=parseInt(nodeId,10);DOMAgent.getAttributes(nodeIdAsNumber,callback.bind(this,nodeIdAsNumber));}
 this._attributeLoadNodeIds={};},_characterDataModified:function(nodeId,newValue)
 {var node=this._idToDOMNode[nodeId];node._nodeValue=newValue;this.dispatchEventToListeners(WebInspector.DOMAgent.Events.CharacterDataModified,node);},nodeForId:function(nodeId)
-{return this._idToDOMNode[nodeId];},_documentUpdated:function()
+{return this._idToDOMNode[nodeId]||null;},_documentUpdated:function()
 {this._setDocument(null);},_setDocument:function(payload)
 {this._idToDOMNode={};if(payload&&"nodeId"in payload)
 this._document=new WebInspector.DOMDocument(this,payload);else
@@ -8187,12 +8562,12 @@
 {this.cancelSearch();function callback(error,searchId,resultsCount)
 {this._searchId=searchId;searchCallback(resultsCount);}
 DOMAgent.performSearch(query,callback.bind(this));},searchResult:function(index,callback)
-{if(this._searchId){function mycallback(error,nodeIds)
+{if(this._searchId)
+DOMAgent.getSearchResults(this._searchId,index,index+1,searchResultsCallback.bind(this));else
+callback(null);function searchResultsCallback(error,nodeIds)
 {if(error){console.error(error);callback(null);return;}
 if(nodeIds.length!=1)
-return;callback(this._idToDOMNode[nodeIds[0]]);}
-DOMAgent.getSearchResults(this._searchId,index,index+1,mycallback.bind(this));}else
-callback(null);},cancelSearch:function()
+return;callback(this.nodeForId(nodeIds[0]));}},cancelSearch:function()
 {if(this._searchId){DOMAgent.discardSearchResults(this._searchId);delete this._searchId;}},querySelector:function(nodeId,selectors,callback)
 {DOMAgent.querySelector(nodeId,selectors,this._wrapClientCallback(callback));},querySelectorAll:function(nodeId,selectors,callback)
 {DOMAgent.querySelectorAll(nodeId,selectors,this._wrapClientCallback(callback));},highlightDOMNode:function(nodeId,mode,objectId)
@@ -8254,7 +8629,7 @@
 DOMAgent.highlightNode(config,objectId?undefined:nodeId,objectId);else
 DOMAgent.hideHighlight();},setInspectModeEnabled:function(enabled,inspectShadowDOM,config,callback)
 {DOMAgent.setInspectModeEnabled(enabled,inspectShadowDOM,config,callback);}}
-WebInspector.domAgent=null;WebInspector.evaluateForTestInFrontend=function(callId,script)
+WebInspector.domAgent;WebInspector.evaluateForTestInFrontend=function(callId,script)
 {if(!InspectorFrontendHost.isUnderTest())
 return;function invokeMethod()
 {var message;try{script=script+"//# sourceURL=evaluateInWebInspector"+callId+".js";var result=window.eval(script);message=typeof result==="undefined"?"\"<undefined>\"":JSON.stringify(result);}catch(e){message=e.toString();}
@@ -8281,8 +8656,8 @@
 this._delegate.onEnter();if(this._closeKeys.indexOf(event.keyCode)>=0){this._hide();event.consume(true);}}};WebInspector.DialogDelegate=function()
 {}
 WebInspector.DialogDelegate.prototype={show:function(element)
-{element.appendChild(this.element);this.element.addStyleClass("dialog-contents");element.addStyleClass("dialog");},position:function(element,relativeToElement)
-{var offset=relativeToElement.offsetRelativeToWindow(window);var positionX=offset.x+(relativeToElement.offsetWidth-element.offsetWidth)/2;positionX=Number.constrain(positionX,0,window.innerWidth-element.offsetWidth);var positionY=offset.y+(relativeToElement.offsetHeight-element.offsetHeight)/2;positionY=Number.constrain(positionY,0,window.innerHeight-element.offsetHeight);element.style.left=positionX+"px";element.style.top=positionY+"px";},focus:function(){},onEnter:function(){},willHide:function(){},__proto__:WebInspector.Object.prototype}
+{element.appendChild(this.element);this.element.classList.add("dialog-contents");element.classList.add("dialog");},position:function(element,relativeToElement)
+{var offset=relativeToElement.offsetRelativeToWindow(window);var positionX=offset.x+(relativeToElement.offsetWidth-element.offsetWidth)/2;positionX=Number.constrain(positionX,0,window.innerWidth-element.offsetWidth);var positionY=offset.y+(relativeToElement.offsetHeight-element.offsetHeight)/2;positionY=Number.constrain(positionY,0,window.innerHeight-element.offsetHeight);element.style.left=positionX+"px";element.style.top=positionY+"px";element.style.position="absolute";},focus:function(){},onEnter:function(){},willHide:function(){},__proto__:WebInspector.Object.prototype}
 WebInspector.GoToLineDialog=function(view)
 {WebInspector.DialogDelegate.call(this);this.element=document.createElement("div");this.element.className="go-to-line-dialog";this.element.createChild("label").textContent=WebInspector.UIString("Go to line: ");this._input=this.element.createChild("input");this._input.setAttribute("type","text");this._input.setAttribute("size",6);this._goButton=this.element.createChild("button");this._goButton.textContent=WebInspector.UIString("Go");this._goButton.addEventListener("click",this._onGoClick.bind(this),false);this._view=view;}
 WebInspector.GoToLineDialog.install=function(panel,viewGetter)
@@ -8302,12 +8677,12 @@
 {this.element=document.createElement("div");this.element.className="sidebar-overlay";this._view=view;this._widthSettingName=widthSettingName;this._minimalWidth=minimalWidth;this._savedWidth=minimalWidth||300;if(this._widthSettingName)
 WebInspector.settings[this._widthSettingName]=WebInspector.settings.createSetting(this._widthSettingName,undefined);this._resizerElement=document.createElement("div");this._resizerElement.className="sidebar-overlay-resizer";this._installResizer(this._resizerElement);}
 WebInspector.SidebarOverlay.prototype={show:function(relativeToElement)
-{relativeToElement.appendChild(this.element);relativeToElement.addStyleClass("sidebar-overlay-shown");this._view.show(this.element);this.element.appendChild(this._resizerElement);if(this._resizerWidgetElement)
+{relativeToElement.appendChild(this.element);relativeToElement.classList.add("sidebar-overlay-shown");this._view.show(this.element);this.element.appendChild(this._resizerElement);if(this._resizerWidgetElement)
 this.element.appendChild(this._resizerWidgetElement);this.position(relativeToElement);},position:function(relativeToElement)
 {this._totalWidth=relativeToElement.offsetWidth;this._setWidth(this._preferredWidth());},focus:function()
 {WebInspector.setCurrentFocusElement(this._view.element);},hide:function()
 {var element=this.element.parentElement;if(!element)
-return;this._view.detach();element.removeChild(this.element);element.removeStyleClass("sidebar-overlay-shown");this.element.removeChild(this._resizerElement);if(this._resizerWidgetElement)
+return;this._view.detach();element.removeChild(this.element);element.classList.remove("sidebar-overlay-shown");this.element.removeChild(this._resizerElement);if(this._resizerWidgetElement)
 this.element.removeChild(this._resizerWidgetElement);},_setWidth:function(newWidth)
 {var width=Number.constrain(newWidth,this._minimalWidth,this._totalWidth);if(this._width===width)
 return;this.element.style.width=width+"px";this._resizerElement.style.left=(width-3)+"px";this._width=width;this._view.doResize();this._saveWidth();},_preferredWidth:function()
@@ -8321,15 +8696,15 @@
 {WebInspector.installDragHandle(resizerElement,this._startResizerDragging.bind(this),this._resizerDragging.bind(this),this._endResizerDragging.bind(this),"ew-resize");},set resizerWidgetElement(resizerWidgetElement)
 {this._resizerWidgetElement=resizerWidgetElement;this._installResizer(resizerWidgetElement);}}
 WebInspector.SettingsScreen=function(onHide)
-{WebInspector.HelpScreen.call(this);this.element.id="settings-screen";this._onHide=onHide;this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.element.addStyleClass("help-window-main");var settingsLabelElement=document.createElement("div");settingsLabelElement.className="help-window-label";settingsLabelElement.createTextChild(WebInspector.UIString("Settings"));this._tabbedPane.element.insertBefore(settingsLabelElement,this._tabbedPane.element.firstChild);this._tabbedPane.element.appendChild(this._createCloseButton());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.General,WebInspector.UIString("General"),new WebInspector.GenericSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Overrides,WebInspector.UIString("Overrides"),new WebInspector.OverridesSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Workspace,WebInspector.UIString("Workspace"),new WebInspector.WorkspaceSettingsTab());if(WebInspector.experimentsSettings.experimentsEnabled)
+{WebInspector.HelpScreen.call(this);this.element.id="settings-screen";this._onHide=onHide;this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.element.classList.add("help-window-main");var settingsLabelElement=document.createElement("div");settingsLabelElement.className="help-window-label";settingsLabelElement.createTextChild(WebInspector.UIString("Settings"));this._tabbedPane.element.insertBefore(settingsLabelElement,this._tabbedPane.element.firstChild);this._tabbedPane.element.appendChild(this._createCloseButton());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.General,WebInspector.UIString("General"),new WebInspector.GenericSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Workspace,WebInspector.UIString("Workspace"),new WebInspector.WorkspaceSettingsTab());if(WebInspector.experimentsSettings.experimentsEnabled)
 this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Experiments,WebInspector.UIString("Experiments"),new WebInspector.ExperimentsSettingsTab());this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Shortcuts,WebInspector.UIString("Shortcuts"),WebInspector.shortcutsScreen.createShortcutsTabView());this._tabbedPane.shrinkableTabs=false;this._tabbedPane.verticalTabLayout=true;this._lastSelectedTabSetting=WebInspector.settings.createSetting("lastSelectedSettingsTab",WebInspector.SettingsScreen.Tabs.General);this.selectTab(this._lastSelectedTabSetting.get());this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);}
 WebInspector.SettingsScreen.regexValidator=function(text)
 {var regex;try{regex=new RegExp(text);}catch(e){}
-return regex?null:"Invalid pattern";}
+return regex?null:WebInspector.UIString("Invalid pattern");}
 WebInspector.SettingsScreen.integerValidator=function(min,max,text)
-{var value=parseInt(text,10);if(isNaN(value))
-return"Invalid number format";if(value<min||value>max)
-return"Value is out of range ["+min+", "+max+"]";return null;}
+{var value=Number(text);if(isNaN(value))
+return WebInspector.UIString("Invalid number format");if(value<min||value>max)
+return WebInspector.UIString("Value is out of range [%d, %d]",min,max);return null;}
 WebInspector.SettingsScreen.Tabs={General:"general",Overrides:"overrides",Workspace:"workspace",Experiments:"experiments",Shortcuts:"shortcuts"}
 WebInspector.SettingsScreen.prototype={selectTab:function(tabId)
 {this._tabbedPane.selectTab(tabId);},_tabSelected:function(event)
@@ -8362,7 +8737,7 @@
 {var p=document.createElement("p");var labelElement=p.createChild("label");labelElement.textContent=label;var inputElement=p.createChild("input");inputElement.value=setting.get();inputElement.type="text";if(numeric)
 inputElement.className="numeric";if(maxLength)
 inputElement.maxLength=maxLength;if(width)
-inputElement.style.width=width;if(validatorCallback){var errorMessageLabel=p.createChild("div");errorMessageLabel.addStyleClass("field-error-message");errorMessageLabel.style.color="DarkRed";inputElement.oninput=function()
+inputElement.style.width=width;if(validatorCallback){var errorMessageLabel=p.createChild("div");errorMessageLabel.classList.add("field-error-message");errorMessageLabel.style.color="DarkRed";inputElement.oninput=function()
 {var error=validatorCallback(inputElement.value);if(!error)
 error="";errorMessageLabel.textContent=error;};}
 function onBlur()
@@ -8370,35 +8745,31 @@
 inputElement.addEventListener("blur",onBlur,false);return p;},_createCustomSetting:function(name,element)
 {var p=document.createElement("p");var fieldsetElement=document.createElement("fieldset");fieldsetElement.createChild("label").textContent=name;fieldsetElement.appendChild(element);p.appendChild(fieldsetElement);return p;},__proto__:WebInspector.View.prototype}
 WebInspector.GenericSettingsTab=function()
-{WebInspector.SettingsTab.call(this,WebInspector.UIString("General"),"general-tab-content");var p=this._appendSection();p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Disable cache (while DevTools is open)"),WebInspector.settings.cacheDisabled));var disableJSElement=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Disable JavaScript"),WebInspector.settings.javaScriptDisabled);p.appendChild(disableJSElement);WebInspector.settings.javaScriptDisabled.addChangeListener(this._javaScriptDisabledChanged,this);this._disableJSCheckbox=disableJSElement.getElementsByTagName("input")[0];this._updateScriptDisabledCheckbox();p=this._appendSection(WebInspector.UIString("Appearance"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Split panels vertically when docked to right"),WebInspector.settings.splitVerticallyWhenDockedToRight));p=this._appendSection(WebInspector.UIString("Elements"));var colorFormatElement=this._createSelectSetting(WebInspector.UIString("Color format"),[[WebInspector.UIString("As authored"),WebInspector.Color.Format.Original],["HEX: #DAC0DE",WebInspector.Color.Format.HEX],["RGB: rgb(128, 255, 255)",WebInspector.Color.Format.RGB],["HSL: hsl(300, 80%, 90%)",WebInspector.Color.Format.HSL]],WebInspector.settings.colorFormat);p.appendChild(colorFormatElement);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show user agent styles"),WebInspector.settings.showUserAgentStyles));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Word wrap"),WebInspector.settings.domWordWrap));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show Shadow DOM"),WebInspector.settings.showShadowDOM));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show rulers"),WebInspector.settings.showMetricsRulers));p=this._appendSection(WebInspector.UIString("Rendering"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show paint rectangles"),WebInspector.settings.showPaintRects));this._forceCompositingModeCheckbox=document.createElement("input");var checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Force accelerated compositing"),WebInspector.settings.forceCompositingMode,false,this._forceCompositingModeCheckbox);p.appendChild(checkbox);WebInspector.settings.forceCompositingMode.addChangeListener(this._forceCompositingModeChanged,this);var fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.forceCompositingMode);this._showCompositedLayersBordersCheckbox=document.createElement("input");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show composited layer borders"),WebInspector.settings.showDebugBorders,false,this._showCompositedLayersBordersCheckbox));this._showFPSCheckbox=document.createElement("input");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show FPS meter"),WebInspector.settings.showFPSCounter,false,this._showFPSCheckbox));this._continousPaintingCheckbox=document.createElement("input");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable continuous page repainting"),WebInspector.settings.continuousPainting,false,this._continousPaintingCheckbox));this._showScrollBottleneckRectsCheckbox=document.createElement("input");var tooltip=WebInspector.UIString("Shows areas of the page that slow down scrolling:\nTouch and mousewheel event listeners can delay scrolling.\nSome areas need to repaint their content when scrolled.");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show potential scroll bottlenecks"),WebInspector.settings.showScrollBottleneckRects,false,this._showScrollBottleneckRectsCheckbox,tooltip));checkbox.appendChild(fieldset);this._forceCompositingModeChanged();p=this._appendSection(WebInspector.UIString("Sources"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Search in content scripts"),WebInspector.settings.searchInContentScripts));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable JS source maps"),WebInspector.settings.jsSourceMapsEnabled));checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable CSS source maps"),WebInspector.settings.cssSourceMapsEnabled);p.appendChild(checkbox);fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.cssSourceMapsEnabled);var autoReloadCSSCheckbox=fieldset.createChild("input");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Auto-reload generated CSS"),WebInspector.settings.cssReloadEnabled,false,autoReloadCSSCheckbox));checkbox.appendChild(fieldset);var indentationElement=this._createSelectSetting(WebInspector.UIString("Default indentation"),[[WebInspector.UIString("2 spaces"),WebInspector.TextUtils.Indent.TwoSpaces],[WebInspector.UIString("4 spaces"),WebInspector.TextUtils.Indent.FourSpaces],[WebInspector.UIString("8 spaces"),WebInspector.TextUtils.Indent.EightSpaces],[WebInspector.UIString("Tab character"),WebInspector.TextUtils.Indent.TabCharacter]],WebInspector.settings.textEditorIndent);p.appendChild(indentationElement);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Detect indentation"),WebInspector.settings.textEditorAutoDetectIndent));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Autocompletion"),WebInspector.settings.textEditorAutocompletion));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Bracket matching"),WebInspector.settings.textEditorBracketMatching));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show whitespace characters"),WebInspector.settings.showWhitespacesInEditor));if(WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled()){checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Skip stepping through sources with particular names"),WebInspector.settings.skipStackFramesSwitch);fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.skipStackFramesSwitch);fieldset.appendChild(this._createInputSetting(WebInspector.UIString("Pattern"),WebInspector.settings.skipStackFramesPattern,false,1000,"100px",WebInspector.SettingsScreen.regexValidator));checkbox.appendChild(fieldset);p.appendChild(checkbox);}
-WebInspector.settings.skipStackFramesSwitch.addChangeListener(this._skipStackFramesSwitchOrPatternChanged,this);WebInspector.settings.skipStackFramesPattern.addChangeListener(this._skipStackFramesSwitchOrPatternChanged,this);p=this._appendSection(WebInspector.UIString("Profiler"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show advanced heap snapshot properties"),WebInspector.settings.showAdvancedHeapSnapshotProperties));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("High resolution CPU profiling"),WebInspector.settings.highResolutionCpuProfiling));p=this._appendSection(WebInspector.UIString("Timeline"));checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Limit number of captured JS stack frames"),WebInspector.settings.timelineLimitStackFramesFlag);p.appendChild(checkbox);fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.timelineLimitStackFramesFlag);var frameCountValidator=WebInspector.SettingsScreen.integerValidator.bind(this,0,99);fieldset.appendChild(this._createInputSetting(WebInspector.UIString("Frames to capture"),WebInspector.settings.timelineStackFramesToCapture,true,2,"2em",frameCountValidator));checkbox.appendChild(fieldset);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show CPU activity on the ruler"),WebInspector.settings.showCpuOnTimelineRuler));p=this._appendSection(WebInspector.UIString("Console"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Log XMLHttpRequests"),WebInspector.settings.monitoringXHREnabled));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Preserve log upon navigation"),WebInspector.settings.preserveConsoleLog));if(WebInspector.extensionServer.hasExtensions()){var handlerSelector=new WebInspector.HandlerSelector(WebInspector.openAnchorLocationRegistry);p=this._appendSection(WebInspector.UIString("Extensions"));p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in"),handlerSelector.element));}
+{WebInspector.SettingsTab.call(this,WebInspector.UIString("General"),"general-tab-content");var p=this._appendSection();p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Disable cache (while DevTools is open)"),WebInspector.settings.cacheDisabled));var disableJSElement=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Disable JavaScript"),WebInspector.settings.javaScriptDisabled);p.appendChild(disableJSElement);WebInspector.settings.javaScriptDisabled.addChangeListener(this._javaScriptDisabledChanged,this);this._disableJSCheckbox=disableJSElement.getElementsByTagName("input")[0];this._updateScriptDisabledCheckbox();p=this._appendSection(WebInspector.UIString("Appearance"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show 'Emulation' view in console drawer."),WebInspector.settings.showEmulationViewInDrawer));this._appendDrawerNote(p.lastElementChild);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show 'Rendering' view in console drawer."),WebInspector.settings.showRenderingViewInDrawer));this._appendDrawerNote(p.lastElementChild);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Split panels vertically when docked to right"),WebInspector.settings.splitVerticallyWhenDockedToRight));p=this._appendSection(WebInspector.UIString("Elements"));var colorFormatElement=this._createSelectSetting(WebInspector.UIString("Color format"),[[WebInspector.UIString("As authored"),WebInspector.Color.Format.Original],["HEX: #DAC0DE",WebInspector.Color.Format.HEX],["RGB: rgb(128, 255, 255)",WebInspector.Color.Format.RGB],["HSL: hsl(300, 80%, 90%)",WebInspector.Color.Format.HSL]],WebInspector.settings.colorFormat);p.appendChild(colorFormatElement);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show user agent styles"),WebInspector.settings.showUserAgentStyles));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Word wrap"),WebInspector.settings.domWordWrap));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show Shadow DOM"),WebInspector.settings.showShadowDOM));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show rulers"),WebInspector.settings.showMetricsRulers));p=this._appendSection(WebInspector.UIString("Sources"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Search in content scripts"),WebInspector.settings.searchInContentScripts));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable JavaScript source maps"),WebInspector.settings.jsSourceMapsEnabled));var checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Enable CSS source maps"),WebInspector.settings.cssSourceMapsEnabled);p.appendChild(checkbox);var fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.cssSourceMapsEnabled);var autoReloadCSSCheckbox=fieldset.createChild("input");fieldset.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Auto-reload generated CSS"),WebInspector.settings.cssReloadEnabled,false,autoReloadCSSCheckbox));checkbox.appendChild(fieldset);var indentationElement=this._createSelectSetting(WebInspector.UIString("Default indentation"),[[WebInspector.UIString("2 spaces"),WebInspector.TextUtils.Indent.TwoSpaces],[WebInspector.UIString("4 spaces"),WebInspector.TextUtils.Indent.FourSpaces],[WebInspector.UIString("8 spaces"),WebInspector.TextUtils.Indent.EightSpaces],[WebInspector.UIString("Tab character"),WebInspector.TextUtils.Indent.TabCharacter]],WebInspector.settings.textEditorIndent);p.appendChild(indentationElement);p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Detect indentation"),WebInspector.settings.textEditorAutoDetectIndent));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Autocompletion"),WebInspector.settings.textEditorAutocompletion));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Bracket matching"),WebInspector.settings.textEditorBracketMatching));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show whitespace characters"),WebInspector.settings.showWhitespacesInEditor));if(WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled()){checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Skip stepping through sources with particular names"),WebInspector.settings.skipStackFramesSwitch);fieldset=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.skipStackFramesSwitch);fieldset.appendChild(this._createInputSetting(WebInspector.UIString("Pattern"),WebInspector.settings.skipStackFramesPattern,false,1000,"100px",WebInspector.SettingsScreen.regexValidator));checkbox.appendChild(fieldset);p.appendChild(checkbox);}
+WebInspector.settings.skipStackFramesSwitch.addChangeListener(this._skipStackFramesSwitchOrPatternChanged,this);WebInspector.settings.skipStackFramesPattern.addChangeListener(this._skipStackFramesSwitchOrPatternChanged,this);p=this._appendSection(WebInspector.UIString("Profiler"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show advanced heap snapshot properties"),WebInspector.settings.showAdvancedHeapSnapshotProperties));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("High resolution CPU profiling"),WebInspector.settings.highResolutionCpuProfiling));p=this._appendSection(WebInspector.UIString("Console"));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Log XMLHttpRequests"),WebInspector.settings.monitoringXHREnabled));p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Preserve log upon navigation"),WebInspector.settings.preserveConsoleLog));if(WebInspector.extensionServer.hasExtensions()){var handlerSelector=new WebInspector.HandlerSelector(WebInspector.openAnchorLocationRegistry);p=this._appendSection(WebInspector.UIString("Extensions"));p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in"),handlerSelector.element));}
 p=this._appendSection();var panelShortcutTitle=WebInspector.UIString("Enable %s + 1-9 shortcut to switch panels",WebInspector.isMac()?"Cmd":"Ctrl");p.appendChild(WebInspector.SettingsTab.createSettingCheckbox(panelShortcutTitle,WebInspector.settings.shortcutPanelSwitch));}
-WebInspector.GenericSettingsTab.prototype={_forceCompositingModeChanged:function(event)
-{var compositing=event?!!event.data:WebInspector.settings.forceCompositingMode.get();if(!compositing){this._showFPSCheckbox.checked=false;this._continousPaintingCheckbox.checked=false;this._showCompositedLayersBordersCheckbox.checked=false;this._showScrollBottleneckRectsCheckbox.checked=false;WebInspector.settings.showFPSCounter.set(false);WebInspector.settings.continuousPainting.set(false);WebInspector.settings.showDebugBorders.set(false);WebInspector.settings.showScrollBottleneckRects.set(false);}
-this._forceCompositingModeCheckbox.checked=compositing;},_updateScriptDisabledCheckbox:function()
+WebInspector.GenericSettingsTab.prototype={_updateScriptDisabledCheckbox:function()
 {function executionStatusCallback(error,status)
 {if(error||!status)
 return;switch(status){case"forbidden":this._disableJSCheckbox.checked=true;this._disableJSCheckbox.disabled=true;break;case"disabled":this._disableJSCheckbox.checked=true;break;default:this._disableJSCheckbox.checked=false;break;}}
 PageAgent.getScriptExecutionStatus(executionStatusCallback.bind(this));},_javaScriptDisabledChanged:function()
 {PageAgent.setScriptExecutionDisabled(WebInspector.settings.javaScriptDisabled.get(),this._updateScriptDisabledCheckbox.bind(this));},_skipStackFramesSwitchOrPatternChanged:function()
-{WebInspector.DebuggerModel.applySkipStackFrameSettings();},__proto__:WebInspector.SettingsTab.prototype}
+{WebInspector.DebuggerModel.applySkipStackFrameSettings();},_appendDrawerNote:function(p)
+{var noteElement=p.createChild("div","help-field-note");noteElement.createTextChild("Hit ");noteElement.createChild("span","help-key").textContent="Esc";noteElement.createTextChild(WebInspector.UIString(" or click the"));noteElement.appendChild(new WebInspector.StatusBarButton(WebInspector.UIString("Drawer"),"console-status-bar-item").element);noteElement.createTextChild(WebInspector.UIString("toolbar item"));},__proto__:WebInspector.SettingsTab.prototype}
 WebInspector.WorkspaceSettingsTab=function()
 {WebInspector.SettingsTab.call(this,WebInspector.UIString("Workspace"),"workspace-tab-content");WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded,this._fileSystemAdded,this);WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved,this._fileSystemRemoved,this);this._commonSection=this._appendSection(WebInspector.UIString("Common"));var folderExcludePatternInput=this._createInputSetting(WebInspector.UIString("Folder exclude pattern"),WebInspector.settings.workspaceFolderExcludePattern,false,0,"270px",WebInspector.SettingsScreen.regexValidator);this._commonSection.appendChild(folderExcludePatternInput);this._fileSystemsSection=this._appendSection(WebInspector.UIString("Folders"));this._fileSystemsListContainer=this._fileSystemsSection.createChild("p","settings-list-container");this._addFileSystemRowElement=this._fileSystemsSection.createChild("div");var addFileSystemButton=this._addFileSystemRowElement.createChild("input","settings-tab-text-button");addFileSystemButton.type="button";addFileSystemButton.value=WebInspector.UIString("Add folder\u2026");addFileSystemButton.addEventListener("click",this._addFileSystemClicked.bind(this));this._editFileSystemButton=this._addFileSystemRowElement.createChild("input","settings-tab-text-button");this._editFileSystemButton.type="button";this._editFileSystemButton.value=WebInspector.UIString("Edit\u2026");this._editFileSystemButton.addEventListener("click",this._editFileSystemClicked.bind(this));this._updateEditFileSystemButtonState();this._reset();}
-WebInspector.OverridesSettingsTab=function()
-{WebInspector.SettingsTab.call(this,WebInspector.UIString("Overrides"),"overrides-tab-content");this.containerElement.appendChild(WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("Show 'Emulation' view in console drawer"),WebInspector.settings.showEmulationViewInDrawer));}
-WebInspector.OverridesSettingsTab.prototype={__proto__:WebInspector.SettingsTab.prototype}
 WebInspector.WorkspaceSettingsTab.prototype={wasShown:function()
 {WebInspector.SettingsTab.prototype.wasShown.call(this);this._reset();},_reset:function()
 {this._resetFileSystems();},_resetFileSystems:function()
 {this._fileSystemsListContainer.removeChildren();var fileSystemPaths=WebInspector.isolatedFileSystemManager.mapping().fileSystemPaths();delete this._fileSystemsList;if(!fileSystemPaths.length){var noFileSystemsMessageElement=this._fileSystemsListContainer.createChild("div","no-file-systems-message");noFileSystemsMessageElement.textContent=WebInspector.UIString("You have no file systems added.");return;}
-this._fileSystemsList=new WebInspector.SettingsList(["path"],this._renderFileSystem.bind(this));this._fileSystemsList.element.addStyleClass("file-systems-list");this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Selected,this._fileSystemSelected.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileSystemRemovedfromList.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.DoubleClicked,this._fileSystemDoubleClicked.bind(this));this._fileSystemsListContainer.appendChild(this._fileSystemsList.element);for(var i=0;i<fileSystemPaths.length;++i)
+this._fileSystemsList=new WebInspector.SettingsList(["path"],this._renderFileSystem.bind(this));this._fileSystemsList.element.classList.add("file-systems-list");this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Selected,this._fileSystemSelected.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileSystemRemovedfromList.bind(this));this._fileSystemsList.addEventListener(WebInspector.SettingsList.Events.DoubleClicked,this._fileSystemDoubleClicked.bind(this));this._fileSystemsListContainer.appendChild(this._fileSystemsList.element);for(var i=0;i<fileSystemPaths.length;++i)
 this._fileSystemsList.addItem(fileSystemPaths[i]);this._updateEditFileSystemButtonState();},_updateEditFileSystemButtonState:function()
 {this._editFileSystemButton.disabled=!this._selectedFileSystemPath();},_fileSystemSelected:function(event)
 {this._updateEditFileSystemButtonState();},_fileSystemDoubleClicked:function(event)
 {var id=(event.data);this._editFileSystem(id);},_editFileSystemClicked:function(event)
 {this._editFileSystem(this._selectedFileSystemPath());},_editFileSystem:function(id)
-{WebInspector.EditFileSystemDialog.show(document.body,id);},_createRemoveButton:function(handler)
-{var removeButton=document.createElement("button");removeButton.addStyleClass("button");removeButton.addStyleClass("remove-item-button");removeButton.value=WebInspector.UIString("Remove");if(handler)
+{WebInspector.EditFileSystemDialog.show(WebInspector.inspectorView.devtoolsElement(),id);},_createRemoveButton:function(handler)
+{var removeButton=document.createElement("button");removeButton.classList.add("button");removeButton.classList.add("remove-item-button");removeButton.value=WebInspector.UIString("Remove");if(handler)
 removeButton.addEventListener("click",handler,false);else
 removeButton.disabled=true;return removeButton;},_renderFileSystem:function(columnElement,column,id)
 {if(!id)
@@ -8424,7 +8795,7 @@
 WebInspector.SettingsController=function()
 {this._statusBarButton=new WebInspector.StatusBarButton(WebInspector.UIString("Settings"),"settings-status-bar-item");this._statusBarButton.element.addEventListener("mouseup",this._mouseUp.bind(this),false);this._settingsScreen;}
 WebInspector.SettingsController.prototype={get statusBarItem()
-{return this._statusBarButton.element;},_mouseUp:function(event)
+{return this._statusBarButton.element;},_mouseUp:function()
 {this.showSettingsScreen();},_onHideSettingsScreen:function()
 {delete this._settingsScreenVisible;},showSettingsScreen:function(tabId)
 {if(!this._settingsScreen)
@@ -8435,10 +8806,10 @@
 {if(this._settingsScreen&&this._settingsScreen.isShowing())
 this._settingsScreen.doResize();}}
 WebInspector.SettingsList=function(columns,itemRenderer)
-{this.element=document.createElement("div");this.element.addStyleClass("settings-list");this.element.tabIndex=-1;this._itemRenderer=itemRenderer;this._listItems={};this._ids=[];this._columns=columns;}
+{this.element=document.createElement("div");this.element.classList.add("settings-list");this.element.tabIndex=-1;this._itemRenderer=itemRenderer;this._listItems={};this._ids=[];this._columns=columns;}
 WebInspector.SettingsList.Events={Selected:"Selected",Removed:"Removed",DoubleClicked:"DoubleClicked",}
 WebInspector.SettingsList.prototype={addItem:function(itemId,beforeId)
-{var listItem=document.createElement("div");listItem._id=itemId;listItem.addStyleClass("settings-list-item");if(typeof beforeId!==undefined)
+{var listItem=document.createElement("div");listItem._id=itemId;listItem.classList.add("settings-list-item");if(typeof beforeId!==undefined)
 this.element.insertBefore(listItem,this._listItems[beforeId]);else
 this.element.appendChild(listItem);var listItemContents=listItem.createChild("div","settings-list-item-contents");var listItemColumnsElement=listItemContents.createChild("div","settings-list-item-columns");listItem.columnElements={};for(var i=0;i<this._columns.length;++i){var columnElement=listItemColumnsElement.createChild("div","list-column");var columnId=this._columns[i];listItem.columnElements[columnId]=columnElement;this._itemRenderer(columnElement,columnId,itemId);}
 var removeItemButton=this._createRemoveButton(removeItemClicked.bind(this));listItemContents.addEventListener("click",this.selectItem.bind(this,itemId),false);listItemContents.addEventListener("dblclick",this._onDoubleClick.bind(this,itemId),false);listItemContents.appendChild(removeItemButton);this._listItems[itemId]=listItem;if(typeof beforeId!==undefined)
@@ -8454,51 +8825,51 @@
 {return this._selectedId?this._listItems[this._selectedId]:null;},itemForId:function(itemId)
 {return this._listItems[itemId];},_onDoubleClick:function(id,event)
 {this.dispatchEventToListeners(WebInspector.SettingsList.Events.DoubleClicked,id);},selectItem:function(id,event)
-{if(typeof this._selectedId!=="undefined"){this._listItems[this._selectedId].removeStyleClass("selected");}
-this._selectedId=id;if(typeof this._selectedId!=="undefined"){this._listItems[this._selectedId].addStyleClass("selected");}
+{if(typeof this._selectedId!=="undefined"){this._listItems[this._selectedId].classList.remove("selected");}
+this._selectedId=id;if(typeof this._selectedId!=="undefined"){this._listItems[this._selectedId].classList.add("selected");}
 this.dispatchEventToListeners(WebInspector.SettingsList.Events.Selected,id);if(event)
 event.consume();},_createRemoveButton:function(handler)
-{var removeButton=document.createElement("button");removeButton.addStyleClass("remove-item-button");removeButton.value=WebInspector.UIString("Remove");removeButton.addEventListener("click",handler,false);return removeButton;},__proto__:WebInspector.Object.prototype}
+{var removeButton=document.createElement("button");removeButton.classList.add("remove-item-button");removeButton.value=WebInspector.UIString("Remove");removeButton.addEventListener("click",handler,false);return removeButton;},__proto__:WebInspector.Object.prototype}
 WebInspector.EditableSettingsList=function(columns,valuesProvider,validateHandler,editHandler)
-{WebInspector.SettingsList.call(this,columns,this._renderColumn.bind(this));this._validateHandler=validateHandler;this._editHandler=editHandler;this._valuesProvider=valuesProvider;this._addInputElements={};this._editInputElements={};this._textElements={};this._addMappingItem=this.addItem(null);this._addMappingItem.addStyleClass("item-editing");this._addMappingItem.addStyleClass("add-list-item");}
+{WebInspector.SettingsList.call(this,columns,this._renderColumn.bind(this));this._validateHandler=validateHandler;this._editHandler=editHandler;this._valuesProvider=valuesProvider;this._addInputElements={};this._editInputElements={};this._textElements={};this._addMappingItem=this.addItem(null);this._addMappingItem.classList.add("item-editing");this._addMappingItem.classList.add("add-list-item");}
 WebInspector.EditableSettingsList.prototype={addItem:function(itemId,beforeId)
-{var listItem=WebInspector.SettingsList.prototype.addItem.call(this,itemId,beforeId);listItem.addStyleClass("editable");return listItem;},_renderColumn:function(columnElement,columnId,itemId)
-{columnElement.addStyleClass("settings-list-column-"+columnId);var placeholder=(columnId==="url")?WebInspector.UIString("URL prefix"):WebInspector.UIString("Folder path");if(itemId===null){var inputElement=columnElement.createChild("input","list-column-editor");inputElement.placeholder=placeholder;inputElement.addEventListener("blur",this._onAddMappingInputBlur.bind(this));inputElement.addEventListener("input",this._validateEdit.bind(this,itemId));this._addInputElements[columnId]=inputElement;return;}
-if(!this._editInputElements[itemId])
+{var listItem=WebInspector.SettingsList.prototype.addItem.call(this,itemId,beforeId);listItem.classList.add("editable");return listItem;},_renderColumn:function(columnElement,columnId,itemId)
+{columnElement.classList.add("settings-list-column-"+columnId);var placeholder=(columnId==="url")?WebInspector.UIString("URL prefix"):WebInspector.UIString("Folder path");if(itemId===null){var inputElement=columnElement.createChild("input","list-column-editor");inputElement.placeholder=placeholder;inputElement.addEventListener("blur",this._onAddMappingInputBlur.bind(this));inputElement.addEventListener("input",this._validateEdit.bind(this,itemId));this._addInputElements[columnId]=inputElement;return;}
+var validItemId=itemId;if(!this._editInputElements[itemId])
 this._editInputElements[itemId]={};if(!this._textElements[itemId])
 this._textElements[itemId]={};var value=this._valuesProvider(itemId,columnId);var textElement=columnElement.createChild("span","list-column-text");textElement.textContent=value;textElement.title=value;columnElement.addEventListener("click",rowClicked.bind(this),false);this._textElements[itemId][columnId]=textElement;var inputElement=columnElement.createChild("input","list-column-editor");inputElement.value=value;inputElement.addEventListener("blur",this._editMappingBlur.bind(this,itemId));inputElement.addEventListener("input",this._validateEdit.bind(this,itemId));columnElement.inputElement=inputElement;this._editInputElements[itemId][columnId]=inputElement;function rowClicked(event)
 {if(itemId===this._editingId)
-return;event.consume();console.assert(!this._editingId);this._editingId=itemId;var listItem=this.itemForId(itemId);listItem.addStyleClass("item-editing");var inputElement=event.target.inputElement||this._editInputElements[itemId][this.columns()[0]];inputElement.focus();inputElement.select();}},_data:function(itemId)
+return;event.consume();console.assert(!this._editingId);this._editingId=validItemId;var listItem=this.itemForId(validItemId);listItem.classList.add("item-editing");var inputElement=event.target.inputElement||this._editInputElements[validItemId][this.columns()[0]];inputElement.focus();inputElement.select();}},_data:function(itemId)
 {var inputElements=this._inputElements(itemId);var data={};var columns=this.columns();for(var i=0;i<columns.length;++i)
 data[columns[i]]=inputElements[columns[i]].value;return data;},_inputElements:function(itemId)
 {if(!itemId)
-return this._addInputElements;return this._editInputElements[itemId];},_validateEdit:function(itemId)
+return this._addInputElements;return this._editInputElements[itemId]||null;},_validateEdit:function(itemId)
 {var errorColumns=this._validateHandler(itemId,this._data(itemId));var hasChanges=this._hasChanges(itemId);var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var inputElement=this._inputElements(itemId)[columnId];if(hasChanges&&errorColumns.indexOf(columnId)!==-1)
-inputElement.addStyleClass("editable-item-error");else
-inputElement.removeStyleClass("editable-item-error");}
+inputElement.classList.add("editable-item-error");else
+inputElement.classList.remove("editable-item-error");}
 return!errorColumns.length;},_hasChanges:function(itemId)
 {var hasChanges=false;var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var oldValue=itemId?this._textElements[itemId][columnId].textContent:"";var newValue=this._inputElements(itemId)[columnId].value;if(oldValue!==newValue){hasChanges=true;break;}}
 return hasChanges;},_editMappingBlur:function(itemId,event)
 {var inputElements=Object.values(this._editInputElements[itemId]);if(inputElements.indexOf(event.relatedTarget)!==-1)
-return;var listItem=this.itemForId(itemId);listItem.removeStyleClass("item-editing");delete this._editingId;if(!this._hasChanges(itemId))
-return;if(!this._validateEdit(itemId)){var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var inputElement=this._editInputElements[itemId][columnId];inputElement.value=this._textElements[itemId][columnId].textContent;inputElement.removeStyleClass("editable-item-error");}
+return;var listItem=this.itemForId(itemId);listItem.classList.remove("item-editing");delete this._editingId;if(!this._hasChanges(itemId))
+return;if(!this._validateEdit(itemId)){var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var inputElement=this._editInputElements[itemId][columnId];inputElement.value=this._textElements[itemId][columnId].textContent;inputElement.classList.remove("editable-item-error");}
 return;}
 this._editHandler(itemId,this._data(itemId));},_onAddMappingInputBlur:function(event)
 {var inputElements=Object.values(this._addInputElements);if(inputElements.indexOf(event.relatedTarget)!==-1)
 return;if(!this._hasChanges(null))
 return;if(!this._validateEdit(null))
 return;this._editHandler(null,this._data(null));var columns=this.columns();for(var i=0;i<columns.length;++i){var columnId=columns[i];var inputElement=this._addInputElements[columnId];inputElement.value="";}},__proto__:WebInspector.SettingsList.prototype}
-WebInspector.EditFileSystemDialog=function(fileSystemPath)
-{WebInspector.DialogDelegate.call(this);this._fileSystemPath=fileSystemPath;this.element=document.createElement("div");this.element.className="edit-file-system-dialog";var header=this.element.createChild("div","header");var headerText=header.createChild("span");headerText.textContent="Edit file system";var closeButton=header.createChild("div","close-button-gray done-button");closeButton.addEventListener("click",this._onDoneClick.bind(this),false);var contents=this.element.createChild("div","contents");WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingAdded,this._fileMappingAdded,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingRemoved,this._fileMappingRemoved,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.ExcludedFolderAdded,this._excludedFolderAdded,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.ExcludedFolderRemoved,this._excludedFolderRemoved,this);var blockHeader=contents.createChild("div","block-header");blockHeader.textContent="Mappings";this._fileMappingsSection=contents.createChild("div","file-mappings-section");this._fileMappingsListContainer=this._fileMappingsSection.createChild("div","settings-list-container");var entries=WebInspector.isolatedFileSystemManager.mapping().mappingEntries(this._fileSystemPath);this._fileMappingsList=new WebInspector.EditableSettingsList(["url","path"],this._fileMappingValuesProvider.bind(this),this._fileMappingValidate.bind(this),this._fileMappingEdit.bind(this));this._fileMappingsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileMappingRemovedfromList.bind(this));this._fileMappingsList.element.addStyleClass("file-mappings-list");this._fileMappingsListContainer.appendChild(this._fileMappingsList.element);this._entries={};for(var i=0;i<entries.length;++i)
-this._addMappingRow(entries[i]);blockHeader=contents.createChild("div","block-header");blockHeader.textContent="Excluded folders";this._excludedFolderListSection=contents.createChild("div","excluded-folders-section");this._excludedFolderListContainer=this._excludedFolderListSection.createChild("div","settings-list-container");var excludedFolderEntries=WebInspector.isolatedFileSystemManager.mapping().excludedFolders(fileSystemPath);this._excludedFolderList=new WebInspector.EditableSettingsList(["path"],this._excludedFolderValueProvider.bind(this),this._excludedFolderValidate.bind(this),this._excludedFolderEdit.bind(this));this._excludedFolderList.addEventListener(WebInspector.SettingsList.Events.Removed,this._excludedFolderRemovedfromList.bind(this));this._excludedFolderList.element.addStyleClass("excluded-folders-list");this._excludedFolderListContainer.appendChild(this._excludedFolderList.element);this._excludedFolderEntries=new StringMap();for(var i=0;i<excludedFolderEntries.length;++i)
+WebInspector.settingsController;WebInspector.EditFileSystemDialog=function(fileSystemPath)
+{WebInspector.DialogDelegate.call(this);this._fileSystemPath=fileSystemPath;this.element=document.createElement("div");this.element.className="edit-file-system-dialog";var header=this.element.createChild("div","header");var headerText=header.createChild("span");headerText.textContent=WebInspector.UIString("Edit file system");var closeButton=header.createChild("div","close-button-gray done-button");closeButton.addEventListener("click",this._onDoneClick.bind(this),false);var contents=this.element.createChild("div","contents");WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingAdded,this._fileMappingAdded,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.FileMappingRemoved,this._fileMappingRemoved,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.ExcludedFolderAdded,this._excludedFolderAdded,this);WebInspector.isolatedFileSystemManager.mapping().addEventListener(WebInspector.FileSystemMapping.Events.ExcludedFolderRemoved,this._excludedFolderRemoved,this);var blockHeader=contents.createChild("div","block-header");blockHeader.textContent=WebInspector.UIString("Mappings");this._fileMappingsSection=contents.createChild("div","file-mappings-section");this._fileMappingsListContainer=this._fileMappingsSection.createChild("div","settings-list-container");var entries=WebInspector.isolatedFileSystemManager.mapping().mappingEntries(this._fileSystemPath);this._fileMappingsList=new WebInspector.EditableSettingsList(["url","path"],this._fileMappingValuesProvider.bind(this),this._fileMappingValidate.bind(this),this._fileMappingEdit.bind(this));this._fileMappingsList.addEventListener(WebInspector.SettingsList.Events.Removed,this._fileMappingRemovedfromList.bind(this));this._fileMappingsList.element.classList.add("file-mappings-list");this._fileMappingsListContainer.appendChild(this._fileMappingsList.element);this._entries={};for(var i=0;i<entries.length;++i)
+this._addMappingRow(entries[i]);blockHeader=contents.createChild("div","block-header");blockHeader.textContent=WebInspector.UIString("Excluded folders");this._excludedFolderListSection=contents.createChild("div","excluded-folders-section");this._excludedFolderListContainer=this._excludedFolderListSection.createChild("div","settings-list-container");var excludedFolderEntries=WebInspector.isolatedFileSystemManager.mapping().excludedFolders(fileSystemPath);this._excludedFolderList=new WebInspector.EditableSettingsList(["path"],this._excludedFolderValueProvider.bind(this),this._excludedFolderValidate.bind(this),this._excludedFolderEdit.bind(this));this._excludedFolderList.addEventListener(WebInspector.SettingsList.Events.Removed,this._excludedFolderRemovedfromList.bind(this));this._excludedFolderList.element.classList.add("excluded-folders-list");this._excludedFolderListContainer.appendChild(this._excludedFolderList.element);this._excludedFolderEntries=new StringMap();for(var i=0;i<excludedFolderEntries.length;++i)
 this._addExcludedFolderRow(excludedFolderEntries[i]);this.element.tabIndex=0;}
 WebInspector.EditFileSystemDialog.show=function(element,fileSystemPath)
-{WebInspector.Dialog.show(element,new WebInspector.EditFileSystemDialog(fileSystemPath));var glassPane=document.getElementById("glass-pane");glassPane.addStyleClass("settings-glass-pane");}
+{WebInspector.Dialog.show(element,new WebInspector.EditFileSystemDialog(fileSystemPath));var glassPane=document.getElementById("glass-pane");glassPane.classList.add("settings-glass-pane");}
 WebInspector.EditFileSystemDialog.prototype={show:function(element)
-{element.appendChild(this.element);this.element.addStyleClass("dialog-contents");element.addStyleClass("settings-dialog");element.addStyleClass("settings-tab");this._dialogElement=element;},_resize:function()
-{if(!this._dialogElement)
-return;const width=540;const minHeight=150;var maxHeight=document.body.offsetHeight-10;maxHeight=Math.max(minHeight,maxHeight);this._dialogElement.style.maxHeight=maxHeight+"px";this._dialogElement.style.width=width+"px";},position:function(element,relativeToElement)
-{this._resize();},willHide:function(event)
+{element.appendChild(this.element);this.element.classList.add("dialog-contents");element.classList.add("settings-dialog");element.classList.add("settings-tab");this._dialogElement=element;},_resize:function()
+{if(!this._dialogElement||!this._relativeToElement)
+return;const width=540;const minHeight=150;var maxHeight=this._relativeToElement.offsetHeight-10;maxHeight=Math.max(minHeight,maxHeight);this._dialogElement.style.maxHeight=maxHeight+"px";this._dialogElement.style.width=width+"px";WebInspector.DialogDelegate.prototype.position(this._dialogElement,this._relativeToElement);},position:function(element,relativeToElement)
+{this._relativeToElement=relativeToElement;this._resize();},willHide:function(event)
 {},_fileMappingAdded:function(event)
 {var entry=(event.data);this._addMappingRow(entry);},_fileMappingRemoved:function(event)
 {var entry=(event.data);if(this._fileSystemPath!==entry.fileSystemPath)
@@ -8544,7 +8915,7 @@
 {WebInspector.Dialog.hide();},onEnter:function()
 {},__proto__:WebInspector.DialogDelegate.prototype}
 WebInspector.ShortcutsScreen=function()
-{this._sections=({});}
+{this._sections={};}
 WebInspector.ShortcutsScreen.prototype={section:function(name)
 {var section=this._sections[name];if(!section)
 this._sections[name]=section=new WebInspector.ShortcutsSection(name);return section;},createShortcutsTabView:function()
@@ -8553,7 +8924,7 @@
 {return a.order-b.order;}
 orderedSections.sort(compareSections);var view=new WebInspector.View();view.element.className="settings-tab-container";view.element.createChild("header").createChild("h3").appendChild(document.createTextNode(WebInspector.UIString("Shortcuts")));var scrollPane=view.element.createChild("div","help-container-wrapper");var container=scrollPane.createChild("div");container.className="help-content help-container";for(var i=0;i<orderedSections.length;++i)
 orderedSections[i].renderSection(container);var note=scrollPane.createChild("p","help-footnote");var noteLink=note.createChild("a");noteLink.href="https://developers.google.com/chrome-developer-tools/docs/shortcuts";noteLink.target="_blank";noteLink.createTextChild(WebInspector.UIString("Full list of keyboard shortcuts and gestures"));return view;}}
-WebInspector.shortcutsScreen=null;WebInspector.ShortcutsSection=function(name)
+WebInspector.shortcutsScreen;WebInspector.ShortcutsSection=function(name)
 {this.name=name;this._lines=([]);this.order=++WebInspector.ShortcutsSection._sequenceNumber;};WebInspector.ShortcutsSection._sequenceNumber=0;WebInspector.ShortcutsSection.prototype={addKey:function(key,description)
 {this._addLine(this._renderKey(key),description);},addRelatedKeys:function(keys,description)
 {this._addLine(this._renderSequence(keys,"/"),description);},addAlternateKeys:function(keys,description)
@@ -8566,119 +8937,10 @@
 {var result=document.createDocumentFragment();for(var i=0;i<nodes.length;++i){if(i>0)
 result.appendChild(delimiter.cloneNode(true));result.appendChild(nodes[i]);}
 return result;}}
-WebInspector.OverridesView=function()
-{WebInspector.View.call(this);this.registerRequiredCSS("overrides.css");this.registerRequiredCSS("helpScreen.css");this.element.classList.add("overrides-view","fill","vbox");this._tabbedPane=new WebInspector.TabbedPane();this._tabbedPane.shrinkableTabs=false;this._tabbedPane.verticalTabLayout=true;new WebInspector.OverridesView.DeviceTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.ViewportTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.UserAgentTab().appendAsTab(this._tabbedPane);new WebInspector.OverridesView.SensorsTab().appendAsTab(this._tabbedPane);this._lastSelectedTabSetting=WebInspector.settings.createSetting("lastSelectedEmulateTab","device");this._tabbedPane.selectTab(this._lastSelectedTabSetting.get());this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabbedPane.show(this.element);this._warningFooter=this.element.createChild("div","overrides-footer");this._overridesWarningUpdated();WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport.Events.OverridesWarningUpdated,this._overridesWarningUpdated,this);}
-WebInspector.OverridesView.prototype={_tabSelected:function(event)
-{this._lastSelectedTabSetting.set(this._tabbedPane.selectedTabId);},_overridesWarningUpdated:function()
-{var message=WebInspector.overridesSupport.warningMessage();this._warningFooter.enableStyleClass("hidden",!message);this._warningFooter.textContent=message;},__proto__:WebInspector.View.prototype}
-WebInspector.OverridesView.Tab=function(id,name,settings)
-{WebInspector.View.call(this);this._id=id;this._name=name;this._settings=settings;for(var i=0;i<settings.length;++i)
-settings[i].addChangeListener(this._updateActiveState,this);}
-WebInspector.OverridesView.Tab.prototype={appendAsTab:function(tabbedPane)
-{this._tabbedPane=tabbedPane;tabbedPane.appendTab(this._id,this._name,this);this._updateActiveState();},_updateActiveState:function()
-{var active=false;for(var i=0;!active&&i<this._settings.length;++i)
-active=this._settings[i].get();this._tabbedPane.element.enableStyleClass("overrides-activate-"+this._id,active);this._tabbedPane.changeTabTitle(this._id,active?this._name+" \u2713":this._name);},_createInput:function(parentElement,id,defaultText,eventListener,numeric)
-{var element=parentElement.createChild("input");element.id=id;element.type="text";element.maxLength=12;element.style.width="80px";element.value=defaultText;element.align="right";if(numeric)
-element.className="numeric";element.addEventListener("blur",eventListener,false);element.addEventListener("keydown",keyDownListener,false);function keyDownListener(event)
-{if(isEnterKey(event))
-eventListener(event);}
-return element;},_createNonPersistedCheckbox:function(title,callback)
-{var labelElement=document.createElement("label");var checkboxElement=labelElement.createChild("input");checkboxElement.type="checkbox";checkboxElement.checked=false;checkboxElement.addEventListener("click",onclick,false);labelElement.appendChild(document.createTextNode(title));return labelElement;function onclick()
-{callback(checkboxElement.checked);}},_createSettingCheckbox:function(name,setting,callback)
-{var checkbox=WebInspector.SettingsTab.createCheckbox(name,setting.get.bind(setting),listener,true);function listener(value)
-{if(setting.get()===value)
-return;setting.set(value);if(callback)
-callback(value);}
-setting.addChangeListener(changeListener);function changeListener()
-{if(checkbox.firstChild.checked!==setting.get())
-checkbox.firstChild.checked=setting.get();}
-return checkbox;}}
-WebInspector.OverridesView.Tab.prototype.__proto__=WebInspector.View.prototype;WebInspector.OverridesView.DeviceTab=function()
-{WebInspector.OverridesView.Tab.call(this,"device",WebInspector.UIString("Device"),[]);this.element.addStyleClass("overrides-device");this._emulatedDeviceSetting=WebInspector.settings.createSetting("emulatedDevice","Google Nexus 4");this._emulateDeviceViewportSetting=WebInspector.settings.overrideDeviceMetrics;this._emulateDeviceUserAgentSetting=WebInspector.settings.overrideUserAgent;this._deviceSelectElement=this.element.createChild("select");var devices=WebInspector.OverridesView.DeviceTab._phones.concat(WebInspector.OverridesView.DeviceTab._tablets);devices.sort();var selectionRestored=false;for(var i=0;i<devices.length;++i){var device=devices[i];var option=new Option(device[0],device[0]);option._userAgent=device[1];option._metrics=device[2];this._deviceSelectElement.add(option);if(this._emulatedDeviceSetting.get()===device[0]){this._deviceSelectElement.selectedIndex=i;selectionRestored=true;}}
-if(!selectionRestored)
-this._deviceSelectElement.selectedIndex=devices.length-1;this._deviceSelectElement.addEventListener("change",this._deviceSelected.bind(this),false);this._deviceSelectElement.addEventListener("dblclick",this._emulateButtonClicked.bind(this),false);this._deviceSelectElement.addEventListener("keypress",this._keyPressed.bind(this),false);this._deviceSelectElement.disabled=WebInspector.isInspectingDevice();var buttonsBar=this.element.createChild("div");var emulateButton=buttonsBar.createChild("button","settings-tab-text-button");emulateButton.textContent=WebInspector.UIString("Emulate");emulateButton.addEventListener("click",this._emulateButtonClicked.bind(this),false);emulateButton.disabled=WebInspector.isInspectingDevice();this._emulateButton=emulateButton;var resetButton=buttonsBar.createChild("button","settings-tab-text-button");resetButton.textContent=WebInspector.UIString("Reset");resetButton.addEventListener("click",this._resetButtonClicked.bind(this),false);this._viewportValueLabel=this.element.createChild("div","overrides-device-value-label");this._viewportValueLabel.textContent=WebInspector.UIString("Viewport:");this._viewportValueElement=this._viewportValueLabel.createChild("span","overrides-device-value");this._userAgentLabel=this.element.createChild("div","overrides-device-value-label");this._userAgentLabel.textContent=WebInspector.UIString("User agent:");this._userAgentValueElement=this._userAgentLabel.createChild("span","overrides-device-value");this._updateValueLabels();}
-WebInspector.OverridesView.DeviceTab._phones=[["Apple iPhone 3GS","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5","320x480x1x1x1"],["Apple iPhone 4","Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5","640x960x2x1x1"],["Apple iPhone 5","Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53","640x1136x2x1x1"],["BlackBerry Z10","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+","768x1280x2x1x1"],["BlackBerry Z30","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+","720x1280x2x1x1"],["Google Nexus 4","Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","768x1280x2x0x1"],["Google Nexus 5","Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","1080x1920x3x0x1"],["Google Nexus S","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x800x1.5x0x1"],["HTC Evo, Touch HD, Desire HD, Desire","Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x800x1.5x0x1"],["HTC One X, EVO LTE","Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19","720x1280x2x0x1"],["HTC Sensation, Evo 3D","Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","540x960x1.5x0x1"],["LG Optimus 2X, Optimus 3D, Optimus Black","Mozilla/5.0 (Linux; U; Android 2.2; en-us; LG-P990/V08c Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2","480x800x1.5x0x1"],["LG Optimus G","Mozilla/5.0 (Linux; Android 4.0; LG-E975 Build/IMM76L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19","768x1280x2x0x1"],["LG Optimus LTE, Optimus 4X HD","Mozilla/5.0 (Linux; U; Android 2.3; en-us; LG-P930 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","720x1280x1.7x0x1"],["LG Optimus One","Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; LG-MS690 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","320x480x1.5x0x1"],["Motorola Defy, Droid, Droid X, Milestone","Mozilla/5.0 (Linux; U; Android 2.0; en-us; Milestone Build/ SHOLS_U2_01.03.1) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17","480x854x1.5x0x1"],["Motorola Droid 3, Droid 4, Droid Razr, Atrix 4G, Atrix 2","Mozilla/5.0 (Linux; U; Android 2.2; en-us; Droid Build/FRG22D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","540x960x1x0x1"],["Motorola Droid Razr HD","Mozilla/5.0 (Linux; U; Android 2.3; en-us; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","720x1280x1x0x1"],["Nokia C5, C6, C7, N97, N8, X7","NokiaN97/21.1.107 (SymbianOS/9.4; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebkit/525 (KHTML, like Gecko) BrowserNG/7.1.4","360x640x1x1x1"],["Nokia Lumia 7X0, Lumia 8XX, Lumia 900, N800, N810, N900","Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 820)","480x800x1.5x1x1"],["Samsung Galaxy Note 3","Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","1080x1920x2x0x1"],["Samsung Galaxy Note II","Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2x0x1"],["Samsung Galaxy Note","Mozilla/5.0 (Linux; U; Android 2.3; en-us; SAMSUNG-SGH-I717 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","800x1280x2x0x1"],["Samsung Galaxy S III, Galaxy Nexus","Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2x0x1"],["Samsung Galaxy S, S II, W","Mozilla/5.0 (Linux; U; Android 2.1; en-us; GT-I9000 Build/ECLAIR) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","480x800x1.5x0x1"],["Samsung Galaxy S4","Mozilla/5.0 (Linux; U; Android 2.1; en-us; GT-I9000 Build/ECLAIR) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","1080x1920x3x0x1"],["Sony Xperia S, Ion","Mozilla/5.0 (Linux; U; Android 4.0; en-us; LT28at Build/6.1.C.1.111) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","720x1280x2x0x1"],["Sony Xperia Sola, U","Mozilla/5.0 (Linux; U; Android 2.3; en-us; SonyEricssonST25i Build/6.0.B.1.564) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","480x854x1x0x1"],["Sony Xperia Z, Z1","Mozilla/5.0 (Linux; U; Android 4.2; en-us; SonyC6903 Build/14.1.G.1.518) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30","1080x1920x3x0x1"],];WebInspector.OverridesView.DeviceTab._tablets=[["Amazon Amazon Kindle Fire HD 7\"","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire HD Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1280x800x1.5x0x1"],["Amazon Amazon Kindle Fire HD 8.9\"","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire HD Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1920x1200x1.5x0x1"],["Amazon Amazon Kindle Fire","Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1024x600x1x0x1"],["Apple iPad 1 / 2 / iPad Mini","Mozilla/5.0 (iPad; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5","1024x768x1x1x1"],["Apple iPad 3 / 4","Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53","2048x1536x2x1x1"],["BlackBerry PlayBook","Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+","1024x600x1x1x1"],["Google Nexus 10","Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","2560x1600x2x0x1"],["Google Nexus 7 2","Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","1920x1200x2x0x1"],["Google Nexus 7","Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36","1280x800x1.325x0x1"],["Motorola Xoom, Xyboard","Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/525.10 (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2","1280x800x1x0x1"],["Samsung Galaxy Tab 7.7, 8.9, 10.1","Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1280x800x1x0x1"],["Samsung Galaxy Tab","Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1","1024x600x1x0x1"],];WebInspector.OverridesView.DeviceTab.prototype={_keyPressed:function(e)
-{if(e.keyCode===WebInspector.KeyboardShortcut.Keys.Enter.code)
-this._emulateButtonClicked();},_emulateButtonClicked:function()
-{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];WebInspector.overridesSupport.emulateDevice(option._metrics,option._userAgent);},_resetButtonClicked:function()
-{WebInspector.overridesSupport.reset();},_deviceSelected:function()
-{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];this._emulatedDeviceSetting.set(option.value);this._updateValueLabels();},_updateValueLabels:function()
-{var option=this._deviceSelectElement.options[this._deviceSelectElement.selectedIndex];var metrics;if(option._metrics&&(metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(option._metrics)))
-this._viewportValueElement.textContent=WebInspector.UIString("%s \u00D7 %s, devicePixelRatio = %s, font scale factor = %s",metrics.width,metrics.height,metrics.deviceScaleFactor,metrics.fontScaleFactor);else
-this._viewportValueElement.textContent="";this._userAgentValueElement.textContent=option._userAgent||"";}}
-WebInspector.OverridesView.DeviceTab.prototype.__proto__=WebInspector.OverridesView.Tab.prototype;WebInspector.OverridesView.ViewportTab=function()
-{WebInspector.OverridesView.Tab.call(this,"viewport",WebInspector.UIString("Screen"),[WebInspector.settings.overrideDeviceMetrics,WebInspector.settings.overrideCSSMedia]);this.element.addStyleClass("overrides-viewport");const metricsSetting=WebInspector.settings.deviceMetrics.get();var metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);var checkbox=this._createSettingCheckbox(WebInspector.UIString("Emulate screen"),WebInspector.settings.overrideDeviceMetrics,this._onMetricsCheckboxClicked.bind(this));checkbox.firstChild.disabled=WebInspector.isInspectingDevice();WebInspector.settings.deviceMetrics.addChangeListener(this._updateDeviceMetricsElement,this);this.element.appendChild(checkbox);this.element.appendChild(this._createDeviceMetricsElement(metrics));this.element.appendChild(this._createMediaEmulationElement());this._onMetricsCheckboxClicked(WebInspector.settings.overrideDeviceMetrics.get());}
-WebInspector.OverridesView.ViewportTab.prototype={_onMetricsCheckboxClicked:function(enabled)
-{if(enabled&&!this._widthOverrideElement.value)
-this._widthOverrideElement.focus();},_applyDeviceMetricsUserInput:function()
-{this._muteRangeListener=true;this._widthRangeInput.value=this._widthOverrideElement.value;delete this._muteRangeListener;if(this._applyDeviceMetricsTimer)
-clearTimeout(this._applyDeviceMetricsTimer);this._applyDeviceMetricsTimer=setTimeout(this._doApplyDeviceMetricsUserInput.bind(this),50);},_doApplyDeviceMetricsUserInput:function()
-{delete this._applyDeviceMetricsTimer;this._setDeviceMetricsOverride(WebInspector.OverridesSupport.DeviceMetrics.parseUserInput(this._widthOverrideElement.value.trim(),this._heightOverrideElement.value.trim(),this._deviceScaleFactorOverrideElement.value.trim(),this._fontScaleFactorOverrideElement.value.trim(),this._textAutosizingOverrideCheckbox.checked),true);},_setDeviceMetricsOverride:function(metrics,userInputModified)
-{function setValid(condition,element)
-{if(condition)
-element.removeStyleClass("error-input");else
-element.addStyleClass("error-input");}
-setValid(metrics&&metrics.isWidthValid(),this._widthOverrideElement);setValid(metrics&&metrics.isHeightValid(),this._heightOverrideElement);setValid(metrics&&metrics.isDeviceScaleFactorValid(),this._deviceScaleFactorOverrideElement);setValid(metrics&&metrics.isFontScaleFactorValid(),this._fontScaleFactorOverrideElement);setValid(metrics&&metrics.isTextAutosizingValid(),this._textAutosizingOverrideCheckbox);if(!metrics)
-return;if(!userInputModified){this._widthOverrideElement.value=metrics.widthToInput();this._heightOverrideElement.value=metrics.heightToInput();this._deviceScaleFactorOverrideElement.value=metrics.deviceScaleFactorToInput();this._fontScaleFactorOverrideElement.value=metrics.fontScaleFactorToInput();this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing;}
-if(metrics.isValid()){var value=metrics.toSetting();if(value!==WebInspector.settings.deviceMetrics.get())
-WebInspector.settings.deviceMetrics.set(value);}},_createDeviceMetricsElement:function(metrics)
-{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideDeviceMetrics);fieldsetElement.disabled=WebInspector.isInspectingDevice();fieldsetElement.id="metrics-override-section";function swapDimensionsClicked(event)
-{var widthValue=this._widthOverrideElement.value;this._widthOverrideElement.value=this._heightOverrideElement.value;this._heightOverrideElement.value=widthValue;this._applyDeviceMetricsUserInput();}
-var tableElement=fieldsetElement.createChild("table","nowrap");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Resolution:")));cellElement=rowElement.createChild("td");this._widthOverrideElement=this._createInput(cellElement,"metrics-override-width",String(metrics.width||screen.width),this._applyDeviceMetricsUserInput.bind(this),true);this._swapDimensionsElement=cellElement.createChild("button","overrides-swap");this._swapDimensionsElement.appendChild(document.createTextNode(" \u21C4 "));this._swapDimensionsElement.title=WebInspector.UIString("Swap dimensions");this._swapDimensionsElement.addEventListener("click",swapDimensionsClicked.bind(this),false);this._swapDimensionsElement.tabIndex=-1;this._heightOverrideElement=this._createInput(cellElement,"metrics-override-height",String(metrics.height||screen.height),this._applyDeviceMetricsUserInput.bind(this),true);rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.colSpan=4;this._widthRangeInput=cellElement.createChild("input");this._widthRangeInput.type="range";this._widthRangeInput.min=100;this._widthRangeInput.max=2000;this._widthRangeInput.addEventListener("change",this._rangeValueChanged.bind(this),false);this._widthRangeInput.value=this._widthOverrideElement.value;rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Device pixel ratio:")));cellElement=rowElement.createChild("td");this._deviceScaleFactorOverrideElement=this._createInput(cellElement,"metrics-override-device-scale",String(metrics.deviceScaleFactor||1),this._applyDeviceMetricsUserInput.bind(this),true);rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Font scale factor:")));cellElement=rowElement.createChild("td");this._fontScaleFactorOverrideElement=this._createInput(cellElement,"metrics-override-font-scale",String(metrics.fontScaleFactor||1),this._applyDeviceMetricsUserInput.bind(this),true);var checkbox=this._createSettingCheckbox(WebInspector.UIString("Emulate viewport"),WebInspector.settings.emulateViewport);fieldsetElement.appendChild(checkbox);var textAutosizingOverrideElement=this._createNonPersistedCheckbox(WebInspector.UIString("Enable text autosizing"),this._applyDeviceMetricsUserInput.bind(this));this._textAutosizingOverrideCheckbox=textAutosizingOverrideElement.getElementsByTagName("input")[0];this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing;fieldsetElement.appendChild(textAutosizingOverrideElement);checkbox=this._createSettingCheckbox(WebInspector.UIString("Shrink to fit"),WebInspector.settings.deviceFitWindow);fieldsetElement.appendChild(checkbox);return fieldsetElement;},_updateDeviceMetricsElement:function()
-{const metricsSetting=WebInspector.settings.deviceMetrics.get();var metrics=WebInspector.OverridesSupport.DeviceMetrics.parseSetting(metricsSetting);if(this._widthOverrideElement.value!==metrics.width)
-this._widthOverrideElement.value=metrics.width||screen.width;this._muteRangeListener=true;if(this._widthRangeInput.value!=metrics.width)
-this._widthRangeInput.value=metrics.width||screen.width;delete this._muteRangeListener;if(this._heightOverrideElement.value!==metrics.height)
-this._heightOverrideElement.value=metrics.height||screen.height;if(this._deviceScaleFactorOverrideElement.value!==metrics.deviceScaleFactor)
-this._deviceScaleFactorOverrideElement.value=metrics.deviceScaleFactor||1;if(this._fontScaleFactorOverrideElement.value!==metrics.fontScaleFactor)
-this._fontScaleFactorOverrideElement.value=metrics.fontScaleFactor||1;if(this._textAutosizingOverrideCheckbox.checked!==metrics.textAutosizing)
-this._textAutosizingOverrideCheckbox.checked=metrics.textAutosizing||false;},_createMediaEmulationElement:function()
-{var checkbox=WebInspector.SettingsTab.createSettingCheckbox(WebInspector.UIString("CSS media"),WebInspector.settings.overrideCSSMedia,true);var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideCSSMedia);fieldsetElement.disabled=WebInspector.isInspectingDevice();checkbox.appendChild(fieldsetElement);var mediaSelectElement=fieldsetElement.createChild("select");var mediaTypes=WebInspector.CSSStyleModel.MediaTypes;var defaultMedia=WebInspector.settings.emulatedCSSMedia.get();for(var i=0;i<mediaTypes.length;++i){var mediaType=mediaTypes[i];if(mediaType==="all"){continue;}
-var option=document.createElement("option");option.text=mediaType;option.value=mediaType;mediaSelectElement.add(option);if(mediaType===defaultMedia)
-mediaSelectElement.selectedIndex=mediaSelectElement.options.length-1;}
-mediaSelectElement.addEventListener("change",this._emulateMediaChanged.bind(this,mediaSelectElement),false);return checkbox;},_emulateMediaChanged:function(select)
-{var media=select.options[select.selectedIndex].value;WebInspector.settings.emulatedCSSMedia.set(media);},_rangeValueChanged:function()
-{if(this._muteRangeListener)
-return;this._widthOverrideElement.value=this._widthRangeInput.value;this._applyDeviceMetricsUserInput();}}
-WebInspector.OverridesView.ViewportTab.prototype.__proto__=WebInspector.OverridesView.Tab.prototype;WebInspector.OverridesView.UserAgentTab=function()
-{WebInspector.OverridesView.Tab.call(this,"user-agent",WebInspector.UIString("User Agent"),[WebInspector.settings.overrideUserAgent]);this.element.addStyleClass("overrides-user-agent");var checkbox=this._createSettingCheckbox(WebInspector.UIString("Spoof user agent"),WebInspector.settings.overrideUserAgent);checkbox.firstChild.disabled=WebInspector.isInspectingDevice();this.element.appendChild(checkbox);this.element.appendChild(this._createUserAgentSelectRowElement());}
-WebInspector.OverridesView.UserAgentTab._userAgents=[["Internet Explorer 10","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"],["Internet Explorer 9","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"],["Internet Explorer 8","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)"],["Internet Explorer 7","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"],["Firefox 7 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"],["Firefox 7 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"],["Firefox 4 \u2014 Windows","Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"],["Firefox 4 \u2014 Mac","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"],["Firefox 14 \u2014 Android Mobile","Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0"],["Firefox 14 \u2014 Android Tablet","Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0"],["Chrome \u2014 Android Mobile","Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"],["Chrome \u2014 Android Tablet","Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"],["iPhone \u2014 iOS 7","Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A4449d Safari/9537.53"],["iPhone \u2014 iOS 6","Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"],["iPad \u2014 iOS 7","Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"],["iPad \u2014 iOS 6","Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"],["Android 2.3 \u2014 Nexus S","Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"],["Android 4.0.2 \u2014 Galaxy Nexus","Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"],["BlackBerry \u2014 PlayBook 2.1","Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+"],["BlackBerry \u2014 9900","Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+"],["BlackBerry \u2014 BB10","Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+"],["MeeGo \u2014 Nokia N9","Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13"],];WebInspector.OverridesView.UserAgentTab.prototype={_createUserAgentSelectRowElement:function()
-{var userAgent=WebInspector.settings.userAgent.get();var userAgents=WebInspector.OverridesView.UserAgentTab._userAgents.concat([[WebInspector.UIString("Other"),"Other"]]);var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideUserAgent);fieldsetElement.disabled=WebInspector.isInspectingDevice();this._selectElement=fieldsetElement.createChild("select");fieldsetElement.createChild("br");this._otherUserAgentElement=fieldsetElement.createChild("input");this._otherUserAgentElement.type="text";this._otherUserAgentElement.value=userAgent;this._otherUserAgentElement.title=userAgent;var selectionRestored=false;for(var i=0;i<userAgents.length;++i){var agent=userAgents[i];var option=new Option(agent[0],agent[1]);option._metrics=agent[2]?agent[2]:"";this._selectElement.add(option);if(userAgent===agent[1]){this._selectElement.selectedIndex=i;selectionRestored=true;}}
-if(!selectionRestored){if(!userAgent)
-this._selectElement.selectedIndex=0;else
-this._selectElement.selectedIndex=userAgents.length-1;}
-this._selectElement.addEventListener("change",this._userAgentChanged.bind(this,true),false);WebInspector.settings.userAgent.addChangeListener(this._userAgentSettingChanged,this);fieldsetElement.addEventListener("dblclick",textDoubleClicked.bind(this),false);this._otherUserAgentElement.addEventListener("blur",textChanged.bind(this),false);function textDoubleClicked()
-{this._selectElement.selectedIndex=userAgents.length-1;this._userAgentChanged();}
-function textChanged()
-{if(WebInspector.settings.userAgent.get()!==this._otherUserAgentElement.value)
-WebInspector.settings.userAgent.set(this._otherUserAgentElement.value);}
-return fieldsetElement;},_userAgentChanged:function(isUserGesture)
-{var value=this._selectElement.options[this._selectElement.selectedIndex].value;if(value!=="Other"){WebInspector.settings.userAgent.set(value);this._otherUserAgentElement.value=value;this._otherUserAgentElement.title=value;this._otherUserAgentElement.disabled=true;}else{this._otherUserAgentElement.disabled=false;this._otherUserAgentElement.focus();}},_userAgentSettingChanged:function()
-{var value=WebInspector.settings.userAgent.get();var options=this._selectElement.options;var foundMatch=false;for(var i=0;i<options.length;++i){if(options[i].value===value){if(this._selectElement.selectedIndex!==i)
-this._selectElement.selectedIndex=i;foundMatch=true;break;}}
-this._otherUserAgentElement.disabled=foundMatch;if(!foundMatch)
-this._selectElement.selectedIndex=options.length-1;if(this._otherUserAgentElement.value!==value){this._otherUserAgentElement.value=value;this._otherUserAgentElement.title=value;}}}
-WebInspector.OverridesView.UserAgentTab.prototype.__proto__=WebInspector.OverridesView.Tab.prototype;WebInspector.OverridesView.SensorsTab=function()
-{WebInspector.OverridesView.Tab.call(this,"sensors",WebInspector.UIString("Sensors"),[WebInspector.settings.emulateTouchEvents,WebInspector.settings.overrideGeolocation,WebInspector.settings.overrideDeviceOrientation]);this.element.addStyleClass("overrides-sensors");if(!WebInspector.isInspectingDevice())
-this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Emulate touch screen"),WebInspector.settings.emulateTouchEvents));this._appendGeolocationOverrideControl();if(!WebInspector.isInspectingDevice())
-this._apendDeviceOrientationOverrideControl();}
-WebInspector.OverridesView.SensorsTab.prototype={_appendGeolocationOverrideControl:function()
-{const geolocationSetting=WebInspector.settings.geolocationOverride.get();var geolocation=WebInspector.OverridesSupport.GeolocationPosition.parseSetting(geolocationSetting);this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Emulate geolocation coordinates"),WebInspector.settings.overrideGeolocation,this._geolocationOverrideCheckboxClicked.bind(this)));this.element.appendChild(this._createGeolocationOverrideElement(geolocation));this._geolocationOverrideCheckboxClicked(WebInspector.settings.overrideGeolocation.get());},_geolocationOverrideCheckboxClicked:function(enabled)
-{if(enabled&&!this._latitudeElement.value)
-this._latitudeElement.focus();},_applyGeolocationUserInput:function()
-{this._setGeolocationPosition(WebInspector.OverridesSupport.GeolocationPosition.parseUserInput(this._latitudeElement.value.trim(),this._longitudeElement.value.trim(),this._geolocationErrorElement.checked),true);},_setGeolocationPosition:function(geolocation,userInputModified)
-{if(!geolocation)
-return;if(!userInputModified){this._latitudeElement.value=geolocation.latitude;this._longitudeElement.value=geolocation.longitude;}
-var value=geolocation.toSetting();WebInspector.settings.geolocationOverride.set(value);},_createGeolocationOverrideElement:function(geolocation)
-{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideGeolocation);fieldsetElement.id="geolocation-override-section";var tableElement=fieldsetElement.createChild("table");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td");cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode(WebInspector.UIString("Lat = ")));this._latitudeElement=this._createInput(cellElement,"geolocation-override-latitude",String(geolocation.latitude),this._applyGeolocationUserInput.bind(this),true);cellElement.appendChild(document.createTextNode(" , "));cellElement.appendChild(document.createTextNode(WebInspector.UIString("Lon = ")));this._longitudeElement=this._createInput(cellElement,"geolocation-override-longitude",String(geolocation.longitude),this._applyGeolocationUserInput.bind(this),true);rowElement=tableElement.createChild("tr");cellElement=rowElement.createChild("td");cellElement.colSpan=2;var geolocationErrorLabelElement=document.createElement("label");var geolocationErrorCheckboxElement=geolocationErrorLabelElement.createChild("input");geolocationErrorCheckboxElement.id="geolocation-error";geolocationErrorCheckboxElement.type="checkbox";geolocationErrorCheckboxElement.checked=!geolocation||geolocation.error;geolocationErrorCheckboxElement.addEventListener("click",this._applyGeolocationUserInput.bind(this),false);geolocationErrorLabelElement.appendChild(document.createTextNode(WebInspector.UIString("Emulate position unavailable")));this._geolocationErrorElement=geolocationErrorCheckboxElement;cellElement.appendChild(geolocationErrorLabelElement);return fieldsetElement;},_apendDeviceOrientationOverrideControl:function()
-{const deviceOrientationSetting=WebInspector.settings.deviceOrientationOverride.get();var deviceOrientation=WebInspector.OverridesSupport.DeviceOrientation.parseSetting(deviceOrientationSetting);this.element.appendChild(this._createSettingCheckbox(WebInspector.UIString("Accelerometer"),WebInspector.settings.overrideDeviceOrientation,this._deviceOrientationOverrideCheckboxClicked.bind(this)));this.element.appendChild(this._createDeviceOrientationOverrideElement(deviceOrientation));this._deviceOrientationOverrideCheckboxClicked(WebInspector.settings.overrideDeviceOrientation.get());},_deviceOrientationOverrideCheckboxClicked:function(enabled)
-{if(enabled&&!this._alphaElement.value)
-this._alphaElement.focus();},_applyDeviceOrientationUserInput:function()
-{this._setDeviceOrientation(WebInspector.OverridesSupport.DeviceOrientation.parseUserInput(this._alphaElement.value.trim(),this._betaElement.value.trim(),this._gammaElement.value.trim()),true);},_setDeviceOrientation:function(deviceOrientation,userInputModified)
-{if(!deviceOrientation)
-return;if(!userInputModified){this._alphaElement.value=deviceOrientation.alpha;this._betaElement.value=deviceOrientation.beta;this._gammaElement.value=deviceOrientation.gamma;}
-var value=deviceOrientation.toSetting();WebInspector.settings.deviceOrientationOverride.set(value);},_createDeviceOrientationOverrideElement:function(deviceOrientation)
-{var fieldsetElement=WebInspector.SettingsTab.createSettingFieldset(WebInspector.settings.overrideDeviceOrientation);fieldsetElement.id="device-orientation-override-section";var tableElement=fieldsetElement.createChild("table");var rowElement=tableElement.createChild("tr");var cellElement=rowElement.createChild("td");cellElement.appendChild(document.createTextNode("\u03B1: "));this._alphaElement=this._createInput(cellElement,"device-orientation-override-alpha",String(deviceOrientation.alpha),this._applyDeviceOrientationUserInput.bind(this),true);cellElement.appendChild(document.createTextNode(" \u03B2: "));this._betaElement=this._createInput(cellElement,"device-orientation-override-beta",String(deviceOrientation.beta),this._applyDeviceOrientationUserInput.bind(this),true);cellElement.appendChild(document.createTextNode(" \u03B3: "));this._gammaElement=this._createInput(cellElement,"device-orientation-override-gamma",String(deviceOrientation.gamma),this._applyDeviceOrientationUserInput.bind(this),true);return fieldsetElement;}}
-WebInspector.OverridesView.SensorsTab.prototype.__proto__=WebInspector.OverridesView.Tab.prototype;WebInspector.HAREntry=function(request)
+WebInspector.ShortcutsScreen.registerShortcuts=function()
+{var elementsSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));var navigate=WebInspector.ShortcutsScreen.ElementsPanelShortcuts.NavigateUp.concat(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.NavigateDown);elementsSection.addRelatedKeys(navigate,WebInspector.UIString("Navigate elements"));var expandCollapse=WebInspector.ShortcutsScreen.ElementsPanelShortcuts.Expand.concat(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.Collapse);elementsSection.addRelatedKeys(expandCollapse,WebInspector.UIString("Expand/collapse"));elementsSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.EditAttribute,WebInspector.UIString("Edit attribute"));elementsSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.HideElement,WebInspector.UIString("Hide element"));elementsSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.ToggleEditAsHTML,WebInspector.UIString("Toggle edit as HTML"));var stylesPaneSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Styles Pane"));var nextPreviousProperty=WebInspector.ShortcutsScreen.ElementsPanelShortcuts.NextProperty.concat(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.PreviousProperty);stylesPaneSection.addRelatedKeys(nextPreviousProperty,WebInspector.UIString("Next/previous property"));stylesPaneSection.addRelatedKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.IncrementValue,WebInspector.UIString("Increment value"));stylesPaneSection.addRelatedKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.DecrementValue,WebInspector.UIString("Decrement value"));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.IncrementBy10,WebInspector.UIString("Increment by %f",10));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.DecrementBy10,WebInspector.UIString("Decrement by %f",10));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.IncrementBy100,WebInspector.UIString("Increment by %f",100));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.DecrementBy100,WebInspector.UIString("Decrement by %f",100));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.IncrementBy01,WebInspector.UIString("Increment by %f",0.1));stylesPaneSection.addAlternateKeys(WebInspector.ShortcutsScreen.ElementsPanelShortcuts.DecrementBy01,WebInspector.UIString("Decrement by %f",0.1));var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Sources Panel"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.PauseContinue,WebInspector.UIString("Pause/Continue"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepOver,WebInspector.UIString("Step over"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepInto,WebInspector.UIString("Step into"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepIntoSelection,WebInspector.UIString("Step into selection"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.StepOut,WebInspector.UIString("Step out"));var nextAndPrevFrameKeys=WebInspector.ShortcutsScreen.SourcesPanelShortcuts.NextCallFrame.concat(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.PrevCallFrame);section.addRelatedKeys(nextAndPrevFrameKeys,WebInspector.UIString("Next/previous call frame"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.EvaluateSelectionInConsole,WebInspector.UIString("Evaluate selection in console"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.AddSelectionToWatch,WebInspector.UIString("Add selection to watch"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.GoToMember,WebInspector.UIString("Go to member"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.ToggleBreakpoint,WebInspector.UIString("Toggle breakpoint"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.ToggleComment,WebInspector.UIString("Toggle comment"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.IncreaseCSSUnitByOne,WebInspector.UIString("Increment CSS unit by 1"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.DecreaseCSSUnitByOne,WebInspector.UIString("Decrement CSS unit by 1"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.IncreaseCSSUnitByTen,WebInspector.UIString("Increment CSS unit by 10"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.DecreaseCSSUnitByTen,WebInspector.UIString("Decrement CSS unit by 10"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.JumpToPreviousLocation,WebInspector.UIString("Jump to previous editing location"));section.addAlternateKeys(WebInspector.ShortcutsScreen.SourcesPanelShortcuts.JumpToNextLocation,WebInspector.UIString("Jump to next editing location"));section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Timeline Panel"));section.addAlternateKeys(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.StartStopRecording,WebInspector.UIString("Start/stop recording"));section.addAlternateKeys(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.SaveToFile,WebInspector.UIString("Save timeline data"));section.addAlternateKeys(WebInspector.ShortcutsScreen.TimelinePanelShortcuts.LoadFromFile,WebInspector.UIString("Load timeline data"));section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Profiles Panel"));section.addAlternateKeys(WebInspector.ShortcutsScreen.ProfilesPanelShortcuts.StartStopRecording,WebInspector.UIString("Start/stop recording"));}
+WebInspector.ShortcutsScreen.ElementsPanelShortcuts={NavigateUp:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up)],NavigateDown:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down)],Expand:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Right)],Collapse:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Left)],EditAttribute:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Enter)],HideElement:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.H)],ToggleEditAsHTML:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F2)],NextProperty:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Tab)],PreviousProperty:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Tab,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementValue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up)],DecrementValue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down)],IncrementBy10:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up,WebInspector.KeyboardShortcut.Modifiers.Shift)],DecrementBy10:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementBy100:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Shift)],DecrementBy100:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementBy01:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecrementBy01:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Alt)]};WebInspector.ShortcutsScreen.SourcesPanelShortcuts={IncreaseCSSUnitByOne:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecreaseCSSUnitByOne:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down,WebInspector.KeyboardShortcut.Modifiers.Alt)],IncreaseCSSUnitByTen:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecreaseCSSUnitByTen:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Alt)],RunSnippet:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Enter,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],PauseContinue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F8),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Backslash,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepOver:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F10),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.SingleQuote,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepInto:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepIntoSelection:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepOut:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.Shift),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon,WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],EvaluateSelectionInConsole:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.Ctrl)],AddSelectionToWatch:[WebInspector.KeyboardShortcut.makeDescriptor("a",WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.Ctrl)],GoToMember:[WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta|WebInspector.KeyboardShortcut.Modifiers.Shift)],ToggleBreakpoint:[WebInspector.KeyboardShortcut.makeDescriptor("b",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],NextCallFrame:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Period,WebInspector.KeyboardShortcut.Modifiers.Ctrl)],PrevCallFrame:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Comma,WebInspector.KeyboardShortcut.Modifiers.Ctrl)],ToggleComment:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Slash,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],JumpToPreviousLocation:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Minus,WebInspector.KeyboardShortcut.Modifiers.Alt)],JumpToNextLocation:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Plus,WebInspector.KeyboardShortcut.Modifiers.Alt)]};WebInspector.ShortcutsScreen.TimelinePanelShortcuts={StartStopRecording:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],SaveToFile:[WebInspector.KeyboardShortcut.makeDescriptor("s",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],LoadFromFile:[WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)]};WebInspector.ShortcutsScreen.ProfilesPanelShortcuts={StartStopRecording:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)]}
+WebInspector.HAREntry=function(request)
 {this._request=request;}
 WebInspector.HAREntry.prototype={build:function()
 {var entry={startedDateTime:new Date(this._request.startTime*1000),time:this._request.timing?WebInspector.HAREntry._toMilliseconds(this._request.duration):0,request:this._buildRequest(),response:this._buildResponse(),cache:{},timings:this._buildTimings()};if(this._request.connectionId)
@@ -8791,7 +9053,7 @@
 {PageAgent.deleteCookie(this.name(),(this.secure()?"https://":"http://")+this.domain()+this.path(),callback);}}
 WebInspector.Cookie.Type={Request:0,Response:1};WebInspector.Cookies={}
 WebInspector.Cookies.getCookiesAsync=function(callback)
-{function mycallback(error,cookies,cookiesString)
+{function mycallback(error,cookies)
 {if(error)
 return;callback(cookies.map(WebInspector.Cookies.buildCookieProtocolObject));}
 PageAgent.getCookies(mycallback);}
@@ -8806,77 +9068,93 @@
 WebInspector.Cookies.cookieDomainMatchesResourceDomain=function(cookieDomain,resourceDomain)
 {if(cookieDomain.charAt(0)!=='.')
 return resourceDomain===cookieDomain;return!!resourceDomain.match(new RegExp("^([^\\.]+\\.)*"+cookieDomain.substring(1).escapeForRegExp()+"$","i"));}
-WebInspector.SearchController=function()
-{this._element=document.createElement("table");this._element.className="toolbar-search";this._element.cellSpacing=0;this._firstRowElement=this._element.createChild("tr");this._secondRowElement=this._element.createChild("tr","hidden");var searchControlElementColumn=this._firstRowElement.createChild("td");this._searchControlElement=searchControlElementColumn.createChild("span","toolbar-search-control");this._searchInputElement=this._searchControlElement.createChild("input","search-replace");this._searchInputElement.id="search-input-field";this._searchInputElement.placeholder=WebInspector.UIString("Find");this._matchesElement=this._searchControlElement.createChild("label","search-results-matches");this._matchesElement.setAttribute("for","search-input-field");this._searchNavigationElement=this._searchControlElement.createChild("div","toolbar-search-navigation-controls");this._searchNavigationPrevElement=this._searchNavigationElement.createChild("div","toolbar-search-navigation toolbar-search-navigation-prev");this._searchNavigationPrevElement.addEventListener("click",this._onPrevButtonSearch.bind(this),false);this._searchNavigationPrevElement.title=WebInspector.UIString("Search Previous");this._searchNavigationNextElement=this._searchNavigationElement.createChild("div","toolbar-search-navigation toolbar-search-navigation-next");this._searchNavigationNextElement.addEventListener("click",this._onNextButtonSearch.bind(this),false);this._searchNavigationNextElement.title=WebInspector.UIString("Search Next");this._searchInputElement.addEventListener("mousedown",this._onSearchFieldManualFocus.bind(this),false);this._searchInputElement.addEventListener("keydown",this._onSearchKeyDown.bind(this),true);this._searchInputElement.addEventListener("input",this._onInput.bind(this),false);this._replaceInputElement=this._secondRowElement.createChild("td").createChild("input","search-replace toolbar-replace-control");this._replaceInputElement.addEventListener("keydown",this._onReplaceKeyDown.bind(this),true);this._replaceInputElement.placeholder=WebInspector.UIString("Replace");this._findButtonElement=this._firstRowElement.createChild("td").createChild("button","hidden");this._findButtonElement.textContent=WebInspector.UIString("Find");this._findButtonElement.tabIndex=-1;this._findButtonElement.addEventListener("click",this._onNextButtonSearch.bind(this),false);this._replaceButtonElement=this._secondRowElement.createChild("td").createChild("button");this._replaceButtonElement.textContent=WebInspector.UIString("Replace");this._replaceButtonElement.disabled=true;this._replaceButtonElement.tabIndex=-1;this._replaceButtonElement.addEventListener("click",this._replace.bind(this),false);this._prevButtonElement=this._firstRowElement.createChild("td").createChild("button","hidden");this._prevButtonElement.textContent=WebInspector.UIString("Previous");this._prevButtonElement.disabled=true;this._prevButtonElement.tabIndex=-1;this._prevButtonElement.addEventListener("click",this._onPrevButtonSearch.bind(this),false);this._replaceAllButtonElement=this._secondRowElement.createChild("td").createChild("button");this._replaceAllButtonElement.textContent=WebInspector.UIString("Replace All");this._replaceAllButtonElement.addEventListener("click",this._replaceAll.bind(this),false);this._replaceElement=this._firstRowElement.createChild("td").createChild("span");this._replaceCheckboxElement=this._replaceElement.createChild("input");this._replaceCheckboxElement.type="checkbox";this._replaceCheckboxElement.id="search-replace-trigger";this._replaceCheckboxElement.addEventListener("click",this._updateSecondRowVisibility.bind(this),false);this._replaceLabelElement=this._replaceElement.createChild("label");this._replaceLabelElement.textContent=WebInspector.UIString("Replace");this._replaceLabelElement.setAttribute("for","search-replace-trigger");var cancelButtonElement=this._firstRowElement.createChild("td").createChild("button");cancelButtonElement.textContent=WebInspector.UIString("Cancel");cancelButtonElement.tabIndex=-1;cancelButtonElement.addEventListener("click",this.closeSearch.bind(this),false);}
-WebInspector.SearchController.prototype={updateSearchMatchesCount:function(matches,provider)
-{provider.currentSearchMatches=matches;if(provider===this._searchProvider)
-this._updateSearchMatchesCountAndCurrentMatchIndex(provider.currentQuery?matches:0,-1);},updateCurrentMatchIndex:function(currentMatchIndex,provider)
-{if(provider===this._searchProvider)
-this._updateSearchMatchesCountAndCurrentMatchIndex(provider.currentSearchMatches,currentMatchIndex);},isSearchVisible:function()
+WebInspector.SearchableView=function(searchable)
+{WebInspector.View.call(this);this._searchProvider=searchable;this.element.classList.add("vbox");this.element.style.flex="auto";this.element.addEventListener("keydown",this._onKeyDown.bind(this),false);this._footerElementContainer=this.element.createChild("div","inspector-footer status-bar hidden");this._footerElementContainer.style.order=100;this._footerElement=this._footerElementContainer.createChild("table","toolbar-search");this._footerElement.cellSpacing=0;this._firstRowElement=this._footerElement.createChild("tr");this._secondRowElement=this._footerElement.createChild("tr","hidden");var searchControlElementColumn=this._firstRowElement.createChild("td");this._searchControlElement=searchControlElementColumn.createChild("span","toolbar-search-control");this._searchInputElement=this._searchControlElement.createChild("input","search-replace");this._searchInputElement.id="search-input-field";this._searchInputElement.placeholder=WebInspector.UIString("Find");this._matchesElement=this._searchControlElement.createChild("label","search-results-matches");this._matchesElement.setAttribute("for","search-input-field");this._searchNavigationElement=this._searchControlElement.createChild("div","toolbar-search-navigation-controls");this._searchNavigationPrevElement=this._searchNavigationElement.createChild("div","toolbar-search-navigation toolbar-search-navigation-prev");this._searchNavigationPrevElement.addEventListener("click",this._onPrevButtonSearch.bind(this),false);this._searchNavigationPrevElement.title=WebInspector.UIString("Search Previous");this._searchNavigationNextElement=this._searchNavigationElement.createChild("div","toolbar-search-navigation toolbar-search-navigation-next");this._searchNavigationNextElement.addEventListener("click",this._onNextButtonSearch.bind(this),false);this._searchNavigationNextElement.title=WebInspector.UIString("Search Next");this._searchInputElement.addEventListener("mousedown",this._onSearchFieldManualFocus.bind(this),false);this._searchInputElement.addEventListener("keydown",this._onSearchKeyDown.bind(this),true);this._searchInputElement.addEventListener("input",this._onInput.bind(this),false);this._replaceInputElement=this._secondRowElement.createChild("td").createChild("input","search-replace toolbar-replace-control");this._replaceInputElement.addEventListener("keydown",this._onReplaceKeyDown.bind(this),true);this._replaceInputElement.placeholder=WebInspector.UIString("Replace");this._findButtonElement=this._firstRowElement.createChild("td").createChild("button","hidden");this._findButtonElement.textContent=WebInspector.UIString("Find");this._findButtonElement.tabIndex=-1;this._findButtonElement.addEventListener("click",this._onNextButtonSearch.bind(this),false);this._replaceButtonElement=this._secondRowElement.createChild("td").createChild("button");this._replaceButtonElement.textContent=WebInspector.UIString("Replace");this._replaceButtonElement.disabled=true;this._replaceButtonElement.tabIndex=-1;this._replaceButtonElement.addEventListener("click",this._replace.bind(this),false);this._prevButtonElement=this._firstRowElement.createChild("td").createChild("button","hidden");this._prevButtonElement.textContent=WebInspector.UIString("Previous");this._prevButtonElement.disabled=true;this._prevButtonElement.tabIndex=-1;this._prevButtonElement.addEventListener("click",this._onPrevButtonSearch.bind(this),false);this._replaceAllButtonElement=this._secondRowElement.createChild("td").createChild("button");this._replaceAllButtonElement.textContent=WebInspector.UIString("Replace All");this._replaceAllButtonElement.addEventListener("click",this._replaceAll.bind(this),false);this._replaceElement=this._firstRowElement.createChild("td").createChild("span");this._replaceCheckboxElement=this._replaceElement.createChild("input");this._replaceCheckboxElement.type="checkbox";this._replaceCheckboxElement.id="search-replace-trigger";this._replaceCheckboxElement.addEventListener("change",this._updateSecondRowVisibility.bind(this),false);this._replaceLabelElement=this._replaceElement.createChild("label");this._replaceLabelElement.textContent=WebInspector.UIString("Replace");this._replaceLabelElement.setAttribute("for","search-replace-trigger");var cancelButtonElement=this._firstRowElement.createChild("td").createChild("button");cancelButtonElement.textContent=WebInspector.UIString("Cancel");cancelButtonElement.tabIndex=-1;cancelButtonElement.addEventListener("click",this.closeSearch.bind(this),false);this._minimalSearchQuerySize=3;this._registerShortcuts();}
+WebInspector.SearchableView.findShortcuts=function()
+{if(WebInspector.SearchableView._findShortcuts)
+return WebInspector.SearchableView._findShortcuts;WebInspector.SearchableView._findShortcuts=[WebInspector.KeyboardShortcut.makeDescriptor("f",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)];if(!WebInspector.isMac())
+WebInspector.SearchableView._findShortcuts.push(WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F3));return WebInspector.SearchableView._findShortcuts;}
+WebInspector.SearchableView.cancelSearchShortcuts=function()
+{if(WebInspector.SearchableView._cancelSearchShortcuts)
+return WebInspector.SearchableView._cancelSearchShortcuts;WebInspector.SearchableView._cancelSearchShortcuts=[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Esc)];return WebInspector.SearchableView._cancelSearchShortcuts;}
+WebInspector.SearchableView.findNextShortcut=function()
+{if(WebInspector.SearchableView._findNextShortcut)
+return WebInspector.SearchableView._findNextShortcut;WebInspector.SearchableView._findNextShortcut=[];if(!WebInspector.isMac())
+WebInspector.SearchableView._findNextShortcut.push(WebInspector.KeyboardShortcut.makeDescriptor("g",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta));return WebInspector.SearchableView._findNextShortcut;}
+WebInspector.SearchableView.findPreviousShortcuts=function()
+{if(WebInspector.SearchableView._findPreviousShortcuts)
+return WebInspector.SearchableView._findPreviousShortcuts;WebInspector.SearchableView._findPreviousShortcuts=[];if(!WebInspector.isMac())
+WebInspector.SearchableView._findPreviousShortcuts.push(WebInspector.KeyboardShortcut.makeDescriptor("g",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta|WebInspector.KeyboardShortcut.Modifiers.Shift));return WebInspector.SearchableView._findPreviousShortcuts;}
+WebInspector.SearchableView.prototype={_onKeyDown:function(event)
+{var shortcutKey=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcutKey];if(handler&&handler(event))
+event.consume(true);},_registerShortcuts:function()
+{this._shortcuts={};function register(shortcuts,handler)
+{for(var i=0;i<shortcuts.length;++i)
+this._shortcuts[shortcuts[i].key]=handler;}
+register.call(this,WebInspector.SearchableView.findShortcuts(),this.handleFindShortcut.bind(this));register.call(this,WebInspector.SearchableView.cancelSearchShortcuts(),this.handleCancelSearchShortcut.bind(this));register.call(this,WebInspector.SearchableView.findNextShortcut(),this.handleFindNextShortcut.bind(this));register.call(this,WebInspector.SearchableView.findPreviousShortcuts(),this.handleFindPreviousShortcut.bind(this));},setMinimalSearchQuerySize:function(minimalSearchQuerySize)
+{this._minimalSearchQuerySize=minimalSearchQuerySize;},setReplaceable:function(replaceable)
+{this._replaceable=replaceable;},updateSearchMatchesCount:function(matches)
+{this._searchProvider.currentSearchMatches=matches;this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentQuery?matches:0,-1);},updateCurrentMatchIndex:function(currentMatchIndex)
+{this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentSearchMatches,currentMatchIndex);},isSearchVisible:function()
 {return this._searchIsVisible;},closeSearch:function()
-{this.cancelSearch();WebInspector.setCurrentFocusElement(WebInspector.previousFocusElement());},cancelSearch:function()
+{this.cancelSearch();WebInspector.setCurrentFocusElement(WebInspector.previousFocusElement());},_toggleSearchBar:function(toggled)
+{this._footerElementContainer.enableStyleClass("hidden",!toggled);this.doResize();},cancelSearch:function()
 {if(!this._searchIsVisible)
-return;this.resetSearch();delete this._searchIsVisible;this._searchHost.setFooterElement(null);this.resetSearch();delete this._searchHost;delete this._searchProvider;},resetSearch:function()
-{this._clearSearch();this._updateReplaceVisibility();this._matchesElement.textContent="";},handleShortcut:function(event)
-{var isMac=WebInspector.isMac();switch(event.keyIdentifier){case"U+0046":if(isMac)
-var isFindKey=event.metaKey&&!event.ctrlKey&&!event.altKey&&!event.shiftKey;else
-var isFindKey=event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey;if(isFindKey){this.showSearchField();event.consume(true);return true;}
-break;case"F3":if(!isMac){this.showSearchField();event.consume(true);return true;}
-break;case"U+0047":if(isMac&&event.metaKey&&!event.ctrlKey&&!event.altKey&&this._searchHost){if(!this._searchProvider){event.consume(true);return true;}
-if(event.shiftKey)
-this._searchProvider.jumpToPreviousSearchResult();else
-this._searchProvider.jumpToNextSearchResult();event.consume(true);return true;}
-break;}
-return false;},_updateSearchNavigationButtonState:function(enabled)
-{this._replaceButtonElement.disabled=!enabled;this._prevButtonElement.disabled=!enabled;if(enabled){this._searchNavigationPrevElement.addStyleClass("enabled");this._searchNavigationNextElement.addStyleClass("enabled");}else{this._searchNavigationPrevElement.removeStyleClass("enabled");this._searchNavigationNextElement.removeStyleClass("enabled");}},_updateSearchMatchesCountAndCurrentMatchIndex:function(matches,currentMatchIndex)
+return;this.resetSearch();delete this._searchIsVisible;this._toggleSearchBar(false);},resetSearch:function()
+{this._clearSearch();this._updateReplaceVisibility();this._matchesElement.textContent="";},handleFindNextShortcut:function()
+{if(!this._searchIsVisible)
+return false;this._searchProvider.jumpToNextSearchResult();return true;},handleFindPreviousShortcut:function()
+{if(!this._searchIsVisible)
+return false;this._searchProvider.jumpToPreviousSearchResult();return true;},handleFindShortcut:function()
+{this.showSearchField();return true;},handleCancelSearchShortcut:function()
+{if(!this._searchIsVisible)
+return false;this.closeSearch();return true;},_updateSearchNavigationButtonState:function(enabled)
+{this._replaceButtonElement.disabled=!enabled;this._prevButtonElement.disabled=!enabled;if(enabled){this._searchNavigationPrevElement.classList.add("enabled");this._searchNavigationNextElement.classList.add("enabled");}else{this._searchNavigationPrevElement.classList.remove("enabled");this._searchNavigationNextElement.classList.remove("enabled");}},_updateSearchMatchesCountAndCurrentMatchIndex:function(matches,currentMatchIndex)
 {if(!this._currentQuery)
 this._matchesElement.textContent="";else if(matches===0||currentMatchIndex>=0)
 this._matchesElement.textContent=WebInspector.UIString("%d of %d",currentMatchIndex+1,matches);else if(matches===1)
 this._matchesElement.textContent=WebInspector.UIString("1 match");else
 this._matchesElement.textContent=WebInspector.UIString("%d matches",matches);this._updateSearchNavigationButtonState(matches>0);},showSearchField:function()
 {if(this._searchIsVisible)
-this.cancelSearch();if(WebInspector.inspectorView.drawer().element.isAncestor(document.activeElement)&&WebInspector.inspectorView.drawer().getSearchProvider())
-this._searchHost=WebInspector.inspectorView.drawer();else
-this._searchHost=WebInspector.inspectorView;this._searchProvider=this._searchHost.getSearchProvider();if(!this._searchProvider)
-return;this._searchHost.setFooterElement(this._element);this._updateReplaceVisibility();if(WebInspector.currentFocusElement()!==this._searchInputElement){var selection=window.getSelection();if(selection.rangeCount){var queryCandidate=selection.toString().replace(/\r?\n.*/,"");if(queryCandidate)
+this.cancelSearch();this._toggleSearchBar(true);this._updateReplaceVisibility();if(WebInspector.currentFocusElement()!==this._searchInputElement){var selection=window.getSelection();if(selection.rangeCount){var queryCandidate=selection.toString().replace(/\r?\n.*/,"");if(queryCandidate)
 this._searchInputElement.value=queryCandidate;}}
 this._performSearch(false,false);this._searchInputElement.focus();this._searchInputElement.select();this._searchIsVisible=true;},_updateReplaceVisibility:function()
-{if(!this._searchProvider)
-return;if(this._searchProvider.canSearchAndReplace())
-this._replaceElement.removeStyleClass("hidden");else{this._replaceElement.addStyleClass("hidden");this._replaceCheckboxElement.checked=false;this._updateSecondRowVisibility();}},_onSearchFieldManualFocus:function(event)
+{this._replaceElement.enableStyleClass("hidden",!this._replaceable);if(!this._replaceable){this._replaceCheckboxElement.checked=false;this._updateSecondRowVisibility();}},_onSearchFieldManualFocus:function(event)
 {WebInspector.setCurrentFocusElement(event.target);},_onSearchKeyDown:function(event)
 {if(isEnterKey(event)){if(!this._currentQuery)
 this._performSearch(true,true);else
 this._jumpToNextSearchResult(event.shiftKey);}},_onReplaceKeyDown:function(event)
 {if(isEnterKey(event))
 this._replace();},_jumpToNextSearchResult:function(isBackwardSearch)
-{if(!this._currentQuery||!this._searchNavigationPrevElement.hasStyleClass("enabled"))
+{if(!this._currentQuery||!this._searchNavigationPrevElement.classList.contains("enabled"))
 return;if(isBackwardSearch)
 this._searchProvider.jumpToPreviousSearchResult();else
 this._searchProvider.jumpToNextSearchResult();},_onNextButtonSearch:function(event)
-{if(!this._searchNavigationNextElement.hasStyleClass("enabled"))
+{if(!this._searchNavigationNextElement.classList.contains("enabled"))
 return;this._jumpToNextSearchResult();this._searchInputElement.focus();},_onPrevButtonSearch:function(event)
-{if(!this._searchNavigationPrevElement.hasStyleClass("enabled"))
+{if(!this._searchNavigationPrevElement.classList.contains("enabled"))
 return;this._jumpToNextSearchResult(true);this._searchInputElement.focus();},_clearSearch:function()
-{delete this._currentQuery;if(this._searchHost){var searchProvider=this._searchHost.getSearchProvider();if(searchProvider&&!!searchProvider.currentQuery){delete searchProvider.currentQuery;searchProvider.searchCanceled();}}
+{delete this._currentQuery;if(!!this._searchProvider.currentQuery){delete this._searchProvider.currentQuery;this._searchProvider.searchCanceled();}
 this._updateSearchMatchesCountAndCurrentMatchIndex(0,-1);},_performSearch:function(forceSearch,shouldJump)
-{var query=this._searchInputElement.value;var minimalSearchQuerySize=this._searchProvider.minimalSearchQuerySize();if(!query||!this._searchProvider||(!forceSearch&&query.length<minimalSearchQuerySize&&!this._currentQuery)){this._clearSearch();return;}
+{var query=this._searchInputElement.value;if(!query||(!forceSearch&&query.length<this._minimalSearchQuerySize&&!this._currentQuery)){this._clearSearch();return;}
 this._currentQuery=query;this._searchProvider.currentQuery=query;this._searchProvider.performSearch(query,shouldJump);},_updateSecondRowVisibility:function()
-{if(!this._searchIsVisible||!this._searchHost)
-return;if(this._replaceCheckboxElement.checked){this._element.addStyleClass("toolbar-search-replace");this._secondRowElement.removeStyleClass("hidden");this._prevButtonElement.removeStyleClass("hidden");this._findButtonElement.removeStyleClass("hidden");this._replaceCheckboxElement.tabIndex=-1;this._replaceInputElement.focus();}else{this._element.removeStyleClass("toolbar-search-replace");this._secondRowElement.addStyleClass("hidden");this._prevButtonElement.addStyleClass("hidden");this._findButtonElement.addStyleClass("hidden");this._replaceCheckboxElement.tabIndex=0;this._searchInputElement.focus();}
-this._searchHost.setFooterElement(this._element);},_replace:function()
-{this._searchProvider.replaceSelectionWith(this._replaceInputElement.value);delete this._currentQuery;this._performSearch(true,true);},_replaceAll:function()
-{this._searchProvider.replaceAllWith(this._searchInputElement.value,this._replaceInputElement.value);},_onInput:function(event)
+{if(this._replaceCheckboxElement.checked){this._footerElement.classList.add("toolbar-search-replace");this._secondRowElement.classList.remove("hidden");this._prevButtonElement.classList.remove("hidden");this._findButtonElement.classList.remove("hidden");this._replaceCheckboxElement.tabIndex=-1;this._replaceInputElement.focus();}else{this._footerElement.classList.remove("toolbar-search-replace");this._secondRowElement.classList.add("hidden");this._prevButtonElement.classList.add("hidden");this._findButtonElement.classList.add("hidden");this._replaceCheckboxElement.tabIndex=0;this._searchInputElement.focus();}
+this.doResize();},_replace:function()
+{(this._searchProvider).replaceSelectionWith(this._replaceInputElement.value);delete this._currentQuery;this._performSearch(true,true);},_replaceAll:function()
+{(this._searchProvider).replaceAllWith(this._searchInputElement.value,this._replaceInputElement.value);},_onInput:function(event)
 {this._onValueChanged();},_onValueChanged:function()
-{this._performSearch(false,true);}}
-WebInspector.searchController=null;WebInspector.Searchable=function()
+{this._performSearch(false,true);},__proto__:WebInspector.View.prototype}
+WebInspector.Searchable=function()
 {}
-WebInspector.Searchable.prototype={canSearchAndReplace:function(){},searchCanceled:function(){},performSearch:function(query,shouldJump,self){},minimalSearchQuerySize:function(){},jumpToNextSearchResult:function(self){},jumpToPreviousSearchResult:function(self){},}
+WebInspector.Searchable.prototype={searchCanceled:function(){},performSearch:function(query,shouldJump){},jumpToNextSearchResult:function(){},jumpToPreviousSearchResult:function(){}}
+WebInspector.Replaceable=function()
+{}
+WebInspector.Replaceable.prototype={replaceSelectionWith:function(text){},replaceAllWith:function(query,replacement){}}
 WebInspector.FilterBar=function()
 {this._filtersShown=false;this._element=document.createElement("div");this._element.className="hbox";this._filterButton=new WebInspector.StatusBarButton(WebInspector.UIString("Filter"),"filters-toggle",3);this._filterButton.element.addEventListener("mousedown",this._handleFilterButtonClick.bind(this),false);this._filters=[];}
 WebInspector.FilterBar.Events={FiltersToggled:"FiltersToggled"}
 WebInspector.FilterBar.FilterBarState={Inactive:"inactive",Active:"active",Shown:"shown"};WebInspector.FilterBar.prototype={filterButton:function()
-{return this._filterButton.element;},filtersElement:function()
+{return this._filterButton;},filtersElement:function()
 {return this._element;},filtersToggled:function()
 {return this._filtersShown;},addFilter:function(filter)
 {this._filters.push(filter);this._element.appendChild(filter.element());filter.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged,this);this._updateFilterButton();},_filterChanged:function(event)
@@ -8886,73 +9164,68 @@
 return WebInspector.FilterBar.FilterBarState.Active;}
 return WebInspector.FilterBar.FilterBarState.Inactive;},_updateFilterButton:function()
 {this._filterButton.state=this._filterBarState();},_handleFilterButtonClick:function(event)
-{this._filtersShown=!this._filtersShown;this._updateFilterButton();this.dispatchEventToListeners(WebInspector.FilterBar.Events.FiltersToggled,this._filtersShown);},__proto__:WebInspector.Object.prototype}
+{this._filtersShown=!this._filtersShown;this._updateFilterButton();this.dispatchEventToListeners(WebInspector.FilterBar.Events.FiltersToggled,this._filtersShown);},clear:function()
+{this._element.removeChildren();this._filters=[];this._updateFilterButton();},__proto__:WebInspector.Object.prototype}
 WebInspector.FilterUI=function()
 {}
 WebInspector.FilterUI.Events={FilterChanged:"FilterChanged"}
 WebInspector.FilterUI.prototype={isActive:function(){},element:function(){}}
-WebInspector.TextFilterUI=function()
-{this._filterElement=document.createElement("div");this._filterElement.className="filter-text-filter";this._filterInputElement=this._filterElement.createChild("input","search-replace toolbar-replace-control");this._filterInputElement.placeholder=WebInspector.UIString("Filter");this._filterInputElement.id="filter-input-field";this._filterInputElement.addEventListener("mousedown",this._onFilterFieldManualFocus.bind(this),false);this._filterInputElement.addEventListener("input",this._onInput.bind(this),false);this._filterInputElement.addEventListener("change",this._onInput.bind(this),false);}
+WebInspector.TextFilterUI=function(supportRegex)
+{this._supportRegex=!!supportRegex;this._regex=null;this._filterElement=document.createElement("div");this._filterElement.className="filter-text-filter";this._filterInputElement=this._filterElement.createChild("input","search-replace toolbar-replace-control");this._filterInputElement.placeholder=WebInspector.UIString("Filter");this._filterInputElement.id="filter-input-field";this._filterInputElement.addEventListener("mousedown",this._onFilterFieldManualFocus.bind(this),false);this._filterInputElement.addEventListener("input",this._onInput.bind(this),false);this._filterInputElement.addEventListener("change",this._onInput.bind(this),false);if(this._supportRegex){this._filterElement.classList.add("supports-regex");this._regexCheckBox=this._filterElement.createChild("input");this._regexCheckBox.type="checkbox";this._regexCheckBox.id="text-filter-regex";this._regexCheckBox.addEventListener("change",this._onInput.bind(this),false);this._regexLabel=this._filterElement.createChild("label");this._regexLabel.htmlFor="text-filter-regex";this._regexLabel.textContent=WebInspector.UIString("Regex");}}
 WebInspector.TextFilterUI.prototype={isActive:function()
 {return!!this._filterInputElement.value;},element:function()
 {return this._filterElement;},value:function()
 {return this._filterInputElement.value;},setValue:function(value)
 {this._filterInputElement.value=value;this._valueChanged();},regex:function()
-{if(this._regex!==undefined)
-return this._regex;var filterQuery=this.value();this._regex=filterQuery?createPlainTextSearchRegex(filterQuery,"i"):null;return this._regex;},_onFilterFieldManualFocus:function(event)
+{return this._regex;},_onFilterFieldManualFocus:function(event)
 {WebInspector.setCurrentFocusElement(event.target);},_onInput:function(event)
-{this._valueChanged();},_valueChanged:function(){delete this._regex;this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},__proto__:WebInspector.Object.prototype}
+{this._valueChanged();},_valueChanged:function(){var filterQuery=this.value();this._regex=null;this._filterInputElement.classList.remove("filter-text-invalid");if(filterQuery){if(this._supportRegex&&this._regexCheckBox.checked){try{this._regex=new RegExp(filterQuery,"i");}catch(e){this._filterInputElement.classList.add("filter-text-invalid");}}else{this._regex=createPlainTextSearchRegex(filterQuery,"i");}}
+this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},__proto__:WebInspector.Object.prototype}
 WebInspector.NamedBitSetFilterUI=function()
-{this._filtersElement=document.createElement("div");this._filtersElement.className="filter-bitset-filter status-bar-item";this._filtersElement.title=WebInspector.UIString("Use %s Click to select multiple types.",WebInspector.KeyboardShortcut.shortcutToString("",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta));this._names=[];this._allowedTypes={};this._typeFilterElements={};this._addTypeFilter(WebInspector.NamedBitSetFilterUI.ALL_TYPES,WebInspector.UIString("All"));this._filtersElement.createChild("div","filter-bitset-filter-divider");this._toggleTypeFilter(WebInspector.NamedBitSetFilterUI.ALL_TYPES,false);}
+{this._filtersElement=document.createElement("div");this._filtersElement.className="filter-bitset-filter status-bar-item";this._filtersElement.title=WebInspector.UIString("Use %s Click to select multiple types.",WebInspector.KeyboardShortcut.shortcutToString("",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta));this._allowedTypes={};this._typeFilterElements={};this.addBit(WebInspector.NamedBitSetFilterUI.ALL_TYPES,WebInspector.UIString("All"));this._filtersElement.createChild("div","filter-bitset-filter-divider");this._toggleTypeFilter(WebInspector.NamedBitSetFilterUI.ALL_TYPES,false);}
 WebInspector.NamedBitSetFilterUI.ALL_TYPES="all";WebInspector.NamedBitSetFilterUI.prototype={isActive:function()
-{return!this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES];},addBit:function(name,label)
-{this._addTypeFilter(name,label);},element:function()
+{return!this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES];},bindSetting:function(setting)
+{console.assert(!this._setting);this._setting=setting;setting.addChangeListener(this._settingChanged.bind(this));this._settingChanged();},element:function()
 {return this._filtersElement;},accept:function(typeName)
-{return!!this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]||!!this._allowedTypes[typeName];},filteredOutTypes:function()
-{if(this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES])
-return[];var result=[];for(var i=0;i<this._names.length;++i){var name=this._names[i];if(!this._allowedTypes[name])
-result.push(name);}
-return result;},setFilteredOutTypes:function(filteredOutTypes)
-{this._allowedTypes={};if(filteredOutTypes.length===0){this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]=true;}else{for(var i=0;i<this._names.length;++i){var name=this._names[i];this._allowedTypes[name]=true;}
-for(var i=0;i<filteredOutTypes.length;++i)
-delete this._allowedTypes[filteredOutTypes[i]];}
+{return!!this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]||!!this._allowedTypes[typeName];},_settingChanged:function()
+{var allowedTypes=this._setting.get();this._allowedTypes={};for(var typeName in this._typeFilterElements){if(allowedTypes[typeName])
+this._allowedTypes[typeName]=true;}
+this._update();},_update:function()
+{if((Object.keys(this._allowedTypes).length===0)||this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]){this._allowedTypes={};this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]=true;}
 for(var typeName in this._typeFilterElements)
-this._typeFilterElements[typeName].enableStyleClass("selected",this._allowedTypes[typeName]);this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},acceptedTypes:function()
-{if(this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES])
-return[WebInspector.NamedBitSetFilterUI.ALL_TYPES];var result=[];for(var i=0;i<this._names.length;++i){var name=this._names[i];if(this._allowedTypes[name])
-result.push(name);}
-return result;},setAcceptedTypes:function(acceptedTypes)
-{this._allowedTypes={};for(var i=0;i<acceptedTypes.length;++i)
-this._allowedTypes[acceptedTypes[i]]=true;for(var typeName in this._typeFilterElements)
-this._typeFilterElements[typeName].enableStyleClass("selected",this._allowedTypes[typeName]);this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},_addTypeFilter:function(typeName,label)
-{var typeFilterElement=this._filtersElement.createChild("li",typeName);typeFilterElement.typeName=typeName;typeFilterElement.createTextChild(label);typeFilterElement.addEventListener("click",this._onTypeFilterClicked.bind(this),false);this._typeFilterElements[typeName]=typeFilterElement;this._names.push(typeName);},_onTypeFilterClicked:function(e)
+this._typeFilterElements[typeName].enableStyleClass("selected",this._allowedTypes[typeName]);this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},addBit:function(name,label)
+{var typeFilterElement=this._filtersElement.createChild("li",name);typeFilterElement.typeName=name;typeFilterElement.createTextChild(label);typeFilterElement.addEventListener("click",this._onTypeFilterClicked.bind(this),false);this._typeFilterElements[name]=typeFilterElement;},_onTypeFilterClicked:function(e)
 {var toggle;if(WebInspector.isMac())
 toggle=e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey;else
 toggle=e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey;this._toggleTypeFilter(e.target.typeName,toggle);},_toggleTypeFilter:function(typeName,allowMultiSelect)
 {if(allowMultiSelect&&typeName!==WebInspector.NamedBitSetFilterUI.ALL_TYPES)
-this._typeFilterElements[WebInspector.NamedBitSetFilterUI.ALL_TYPES].removeStyleClass("selected");else{for(var key in this._typeFilterElements)
-this._typeFilterElements[key].removeStyleClass("selected");}
-var filterElement=this._typeFilterElements[typeName];filterElement.enableStyleClass("selected",!filterElement.hasStyleClass("selected"));this._allowedTypes={};for(var key in this._typeFilterElements){if(this._typeFilterElements[key].hasStyleClass("selected"))
-this._allowedTypes[key]=true;}
-this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},__proto__:WebInspector.Object.prototype}
+this._allowedTypes[WebInspector.NamedBitSetFilterUI.ALL_TYPES]=false;else
+this._allowedTypes={};this._allowedTypes[typeName]=!this._allowedTypes[typeName];if(this._setting)
+this._setting.set(this._allowedTypes);else
+this._update();},__proto__:WebInspector.Object.prototype}
 WebInspector.ComboBoxFilterUI=function(options)
 {this._filterElement=document.createElement("div");this._filterElement.className="filter-combobox-filter";this._options=options;this._filterComboBox=new WebInspector.StatusBarComboBox(this._filterChanged.bind(this));for(var i=0;i<options.length;++i){var filterOption=options[i];var option=document.createElement("option");option.text=filterOption.label;option.title=filterOption.title;this._filterComboBox.addOption(option);this._filterComboBox.element.title=this._filterComboBox.selectedOption().title;}
 this._filterElement.appendChild(this._filterComboBox.element);}
 WebInspector.ComboBoxFilterUI.prototype={isActive:function()
 {return this._filterComboBox.selectedIndex()!==0;},element:function()
 {return this._filterElement;},value:function(typeName)
-{var option=this._options[this._filterComboBox.selectedIndex()];return option.value;},_filterChanged:function(event)
+{var option=this._options[this._filterComboBox.selectedIndex()];return option.value;},setSelectedIndex:function(index)
+{this._filterComboBox.setSelectedIndex(index);},selectedIndex:function(index)
+{return this._filterComboBox.selectedIndex();},_filterChanged:function(event)
 {var option=this._options[this._filterComboBox.selectedIndex()];this._filterComboBox.element.title=option.title;this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},__proto__:WebInspector.Object.prototype}
-WebInspector.CheckboxFilterUI=function(className,title,activeWhenChecked)
-{this._className=className;this._filterElement=document.createElement("div");this._filterElement.classList.add("filter-checkbox-filter","filter-checkbox-filter-"+this._className);this._activeWhenChecked=activeWhenChecked;this._createCheckbox(title);}
+WebInspector.CheckboxFilterUI=function(className,title,activeWhenChecked,setting)
+{this._filterElement=document.createElement("div");this._filterElement.classList.add("filter-checkbox-filter","filter-checkbox-filter-"+className);this._activeWhenChecked=!!activeWhenChecked;this._createCheckbox(title);if(setting){this._setting=setting;setting.addChangeListener(this._settingChanged.bind(this));this._settingChanged();}else{this._checked=!this._activeWhenChecked;this._update();}}
 WebInspector.CheckboxFilterUI.prototype={isActive:function()
-{return this._activeWhenChecked===this._checkElement.checked;},element:function()
+{return this._activeWhenChecked===this._checked;},element:function()
 {return this._filterElement;},checked:function()
-{return this._checkElement.checked;},setChecked:function(checked)
-{this._checkElement.checked=checked;this._checkElement.enableStyleClass("checkbox-filter-checkbox-checked",this._checkElement.checked);this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},_createCheckbox:function(title)
-{var label=this._filterElement.createChild("label");var checkBorder=label.createChild("div","checkbox-filter-checkbox");this._checkElement=checkBorder.createChild("div","checkbox-filter-checkbox-check checkbox-filter-checkbox-checked");this._checkElement.type="checkbox";this._checkElement.checked=true;this._filterElement.addEventListener("click",listener.bind(this),false);function listener(event)
-{this.setChecked(!this._checkElement.checked);}
-var typeElement=label.createChild("span","type");typeElement.textContent=title;},__proto__:WebInspector.Object.prototype}
+{return this._checked;},setState:function(state)
+{this._checked=state;this._update();},_update:function()
+{this._checkElement.enableStyleClass("checkbox-filter-checkbox-checked",this._checked);this.dispatchEventToListeners(WebInspector.FilterUI.Events.FilterChanged,null);},_settingChanged:function()
+{this._checked=this._setting.get();this._update();},_onClick:function(event)
+{this._checked=!this._checked;if(this._setting)
+this._setting.set(this._checked);else
+this._update();},_createCheckbox:function(title)
+{var label=this._filterElement.createChild("label");var checkBorder=label.createChild("div","checkbox-filter-checkbox");this._checkElement=checkBorder.createChild("div","checkbox-filter-checkbox-check");this._filterElement.addEventListener("click",this._onClick.bind(this),false);var typeElement=label.createChild("span","type");typeElement.textContent=title;},__proto__:WebInspector.Object.prototype}
 WebInspector.InspectElementModeController=function()
 {this.toggleSearchButton=new WebInspector.StatusBarButton(WebInspector.UIString("Select an element in the page to inspect it."),"node-search-status-bar-item");this.toggleSearchButton.addEventListener("click",this.toggleSearch,this);this._shortcut=WebInspector.InspectElementModeController.createShortcut();}
 WebInspector.InspectElementModeController.createShortcut=function()
@@ -8967,7 +9240,7 @@
 WebInspector.domAgent.setInspectModeEnabled(enabled,WebInspector.settings.showShadowDOM.get(),callback.bind(this));},handleShortcut:function(event)
 {if(WebInspector.KeyboardShortcut.makeKeyFromEvent(event)!==this._shortcut.key)
 return false;this.toggleSearch();event.consume(true);return true;}}
-WebInspector.inspectElementModeController=null;WebInspector.WorkerManager=function()
+WebInspector.inspectElementModeController;WebInspector.WorkerManager=function()
 {this._workerIdToWindow={};InspectorBackend.registerWorkerDispatcher(new WebInspector.WorkerDispatcher(this));}
 WebInspector.WorkerManager.isWorkerFrontend=function()
 {return!!WebInspector.queryParamsObject["dedicatedWorkerId"]||!!WebInspector.queryParamsObject["isSharedWorker"];}
@@ -9003,7 +9276,7 @@
 {var existingInspector=this._workerIdToWindow[workerId];if(existingInspector){existingInspector.focus();return;}
 this._openInspectorWindow(workerId,false);WorkerAgent.connectToWorker(workerId);},_openInspectorWindow:function(workerId,workerIsPaused)
 {var search=window.location.search;var hash=window.location.hash;var url=window.location.href;url=url.replace(hash,"");url+=(search?"&dedicatedWorkerId=":"?dedicatedWorkerId=")+workerId;if(workerIsPaused)
-url+="&workerPaused=true";url=url.replace("docked=true&","");url+=hash;var width=WebInspector.settings.workerInspectorWidth.get();var height=WebInspector.settings.workerInspectorHeight.get();var workerInspectorWindow=window.open(url,undefined,"location=0,width="+width+",height="+height);workerInspectorWindow.addEventListener("resize",this._onWorkerInspectorResize.bind(this,workerInspectorWindow),false);this._workerIdToWindow[workerId]=workerInspectorWindow;workerInspectorWindow.addEventListener("beforeunload",this._workerInspectorClosing.bind(this,workerId),true);window.addEventListener("beforeunload",this._pageInspectorClosing.bind(this),true);WebInspector.notifications.addEventListener(WebInspector.Events.InspectorClosing,this._pageInspectorClosing,this);},closeWorkerInspector:function(workerId)
+url+="&workerPaused=true";url=url.replace("docked=true&","");url=url.replace("can_dock=true&","");url+=hash;var width=WebInspector.settings.workerInspectorWidth.get();var height=WebInspector.settings.workerInspectorHeight.get();var workerInspectorWindow=window.open(url,undefined,"location=0,width="+width+",height="+height);workerInspectorWindow.addEventListener("resize",this._onWorkerInspectorResize.bind(this,workerInspectorWindow),false);this._workerIdToWindow[workerId]=workerInspectorWindow;workerInspectorWindow.addEventListener("beforeunload",this._workerInspectorClosing.bind(this,workerId),true);window.addEventListener("unload",this._pageInspectorClosing.bind(this),true);},closeWorkerInspector:function(workerId)
 {var workerInspectorWindow=this._workerIdToWindow[workerId];if(workerInspectorWindow)
 workerInspectorWindow.close();},_mainFrameNavigated:function(event)
 {for(var workerId in this._workerIdToWindow)
@@ -9024,7 +9297,7 @@
 {this._workerManager._sendMessageToWorkerInspector(workerId,message);},disconnectedFromWorker:function()
 {this._workerManager._disconnectedFromWorker();}}
 WebInspector.WorkerTerminatedScreen=function()
-{WebInspector.HelpScreen.call(this,WebInspector.UIString("Inspected worker terminated"));var p=this.contentElement.createChild("p");p.addStyleClass("help-section");p.textContent=WebInspector.UIString("Inspected worker has terminated. Once it restarts we will attach to it automatically.");}
+{WebInspector.HelpScreen.call(this,WebInspector.UIString("Inspected worker terminated"));var p=this.contentElement.createChild("p");p.classList.add("help-section");p.textContent=WebInspector.UIString("Inspected worker has terminated. Once it restarts we will attach to it automatically.");}
 WebInspector.WorkerTerminatedScreen.prototype={willHide:function()
 {WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this.hide,this);WebInspector.HelpScreen.prototype.willHide.call(this);},__proto__:WebInspector.HelpScreen.prototype}
 WebInspector.UserMetrics=function()
@@ -9098,14 +9371,14 @@
 var quoteUsed="'";else
 var quoteUsed="\"";}
 var results=[];if(!expressionString){const keywords=["break","case","catch","continue","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with"];properties=properties.concat(keywords);}
-properties.sort();for(var i=0;i<properties.length;++i){var property=properties[i];if(dotNotation&&!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(property))
+properties.sort();for(var i=0;i<properties.length;++i){var property=properties[i];if(dotNotation&&!/^[a-zA-Z_$\u008F-\uFFFF][a-zA-Z0-9_$\u008F-\uFFFF]*$/.test(property))
 continue;if(bracketNotation){if(!/^[0-9]+$/.test(property))
 property=quoteUsed+property.escapeCharacters(quoteUsed+"\\")+quoteUsed;property+="]";}
 if(property.length<prefix.length)
 continue;if(prefix.length&&!property.startsWith(prefix))
 continue;results.push(property);}
 completionsReadyCallback(results);},__proto__:WebInspector.Object.prototype}
-WebInspector.runtimeModel=null;WebInspector.RuntimeDispatcher=function(runtimeModel)
+WebInspector.runtimeModel;WebInspector.RuntimeDispatcher=function(runtimeModel)
 {this._runtimeModel=runtimeModel;}
 WebInspector.RuntimeDispatcher.prototype={executionContextCreated:function(context)
 {this._runtimeModel._executionContextCreated(context);}}
@@ -9124,7 +9397,8 @@
 {return this._executionContexts;},mainWorldContext:function()
 {return this._executionContexts[0];},contextBySecurityOrigin:function(securityOrigin)
 {for(var i=0;i<this._executionContexts.length;++i){var context=this._executionContexts[i];if(!context.isMainWorldContext&&context.name===securityOrigin)
-return context;}},get frameId()
+return context;}
+return null;},get frameId()
 {return this._frame.id;},get url()
 {return this._frame.url;},get displayName()
 {if(!this._frame.parentFrame)
@@ -9132,7 +9406,7 @@
 return subtitle;return name+"( "+subtitle+" )";}
 return"<iframe>";},__proto__:WebInspector.Object.prototype}
 WebInspector.HandlerRegistry=function(setting)
-{WebInspector.Object.call(this);this._handlers={};this._setting=setting;this._activeHandler=this._setting.get();WebInspector.ContextMenu.registerProvider(this);}
+{WebInspector.Object.call(this);this._handlers={};this._setting=setting;this._activeHandler=this._setting.get();WebInspector.moduleManager.registerModule({name:"HandlerRegistry",extensions:[{type:"@WebInspector.ContextMenu.Provider",contextTypes:["WebInspector.UISourceCode","WebInspector.Resource","WebInspector.NetworkRequest","Node"],className:"WebInspector.HandlerRegistry.ContextMenuProvider"}]});}
 WebInspector.HandlerRegistry.prototype={get handlerNames()
 {return Object.getOwnPropertyNames(this._handlers);},get activeHandler()
 {return this._activeHandler;},set activeHandler(value)
@@ -9140,15 +9414,14 @@
 {return this.dispatchToHandler(this._activeHandler,data);},dispatchToHandler:function(name,data)
 {var handler=this._handlers[name];var result=handler&&handler(data);return!!result;},registerHandler:function(name,handler)
 {this._handlers[name]=handler;this.dispatchEventToListeners(WebInspector.HandlerRegistry.EventTypes.HandlersUpdated);},unregisterHandler:function(name)
-{delete this._handlers[name];this.dispatchEventToListeners(WebInspector.HandlerRegistry.EventTypes.HandlersUpdated);},appendApplicableItems:function(event,contextMenu,target)
-{this._appendContentProviderItems(contextMenu,target);this._appendHrefItems(contextMenu,target);},_appendContentProviderItems:function(contextMenu,target)
+{delete this._handlers[name];this.dispatchEventToListeners(WebInspector.HandlerRegistry.EventTypes.HandlersUpdated);},_appendContentProviderItems:function(contextMenu,target)
 {if(!(target instanceof WebInspector.UISourceCode||target instanceof WebInspector.Resource||target instanceof WebInspector.NetworkRequest))
 return;var contentProvider=(target);if(!contentProvider.contentURL())
 return;contextMenu.appendItem(WebInspector.openLinkExternallyLabel(),WebInspector.openResource.bind(WebInspector,contentProvider.contentURL(),false));for(var i=1;i<this.handlerNames.length;++i){var handler=this.handlerNames[i];contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Open using %s":"Open Using %s",handler),this.dispatchToHandler.bind(this,handler,{url:contentProvider.contentURL()}));}
 contextMenu.appendItem(WebInspector.copyLinkAddressLabel(),InspectorFrontendHost.copyText.bind(InspectorFrontendHost,contentProvider.contentURL()));if(!contentProvider.contentURL())
 return;var contentType=contentProvider.contentType();if(contentType!==WebInspector.resourceTypes.Document&&contentType!==WebInspector.resourceTypes.Stylesheet&&contentType!==WebInspector.resourceTypes.Script)
 return;function doSave(forceSaveAs,content)
-{var url=contentProvider.contentURL();WebInspector.fileManager.save(url,content,forceSaveAs);WebInspector.fileManager.close(url);}
+{var url=contentProvider.contentURL();WebInspector.fileManager.save(url,(content),forceSaveAs);WebInspector.fileManager.close(url);}
 function save(forceSaveAs)
 {if(contentProvider instanceof WebInspector.UISourceCode){var uiSourceCode=(contentProvider);uiSourceCode.saveToFileSystem(forceSaveAs);return;}
 contentProvider.requestContent(doSave.bind(this,forceSaveAs));}
@@ -9165,7 +9438,11 @@
 {this.element.removeChildren();var names=this._handlerRegistry.handlerNames;var activeHandler=this._handlerRegistry.activeHandler;for(var i=0;i<names.length;++i){var option=document.createElement("option");option.textContent=names[i];option.selected=activeHandler===names[i];this.element.appendChild(option);}
 this.element.disabled=names.length<=1;},_onChange:function(event)
 {var value=event.target.value;this._handlerRegistry.activeHandler=value;}}
-WebInspector.openAnchorLocationRegistry=null;WebInspector.SnippetStorage=function(settingPrefix,namePrefix)
+WebInspector.HandlerRegistry.ContextMenuProvider=function()
+{}
+WebInspector.HandlerRegistry.ContextMenuProvider.prototype={appendApplicableItems:function(event,contextMenu,target)
+{WebInspector.openAnchorLocationRegistry._appendContentProviderItems(contextMenu,target);WebInspector.openAnchorLocationRegistry._appendHrefItems(contextMenu,target);}}
+WebInspector.openAnchorLocationRegistry;WebInspector.SnippetStorage=function(settingPrefix,namePrefix)
 {this._snippets={};this._lastSnippetIdentifierSetting=WebInspector.settings.createSetting(settingPrefix+"Snippets_lastIdentifier",0);this._snippetsSetting=WebInspector.settings.createSetting(settingPrefix+"Snippets",[]);this._namePrefix=namePrefix;this._loadSettings();}
 WebInspector.SnippetStorage.prototype={get namePrefix()
 {return this._namePrefix;},_saveSettings:function()
@@ -9204,8 +9481,10 @@
 {var snippets=this._snippetStorage.snippets();for(var i=0;i<snippets.length;++i)
 this._addScriptSnippet(snippets[i]);},createScriptSnippet:function(content)
 {var snippet=this._snippetStorage.createSnippet();snippet.content=content;return this._addScriptSnippet(snippet);},_addScriptSnippet:function(snippet)
-{var path=this._projectDelegate.addSnippet(snippet.name,new WebInspector.SnippetContentProvider(snippet));var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);var scriptFile=new WebInspector.SnippetScriptFile(this,uiSourceCode);uiSourceCode.setScriptFile(scriptFile);this._snippetIdForUISourceCode.put(uiSourceCode,snippet.id);uiSourceCode.setSourceMapping(this._snippetScriptMapping);this._uiSourceCodeForSnippetId[snippet.id]=uiSourceCode;return path;},deleteScriptSnippet:function(path)
-{var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);var snippetId=this._snippetIdForUISourceCode.get(uiSourceCode)||"";var snippet=this._snippetStorage.snippetForId(snippetId);this._snippetStorage.deleteSnippet(snippet);this._removeBreakpoints(uiSourceCode);this._releaseSnippetScript(uiSourceCode);delete this._uiSourceCodeForSnippetId[snippet.id];this._snippetIdForUISourceCode.remove(uiSourceCode);this._projectDelegate.removeFile(snippet.name);},renameScriptSnippet:function(name,newName,callback)
+{var path=this._projectDelegate.addSnippet(snippet.name,new WebInspector.SnippetContentProvider(snippet));var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);if(!uiSourceCode){console.assert(uiSourceCode);return"";}
+var scriptFile=new WebInspector.SnippetScriptFile(this,uiSourceCode);uiSourceCode.setScriptFile(scriptFile);this._snippetIdForUISourceCode.put(uiSourceCode,snippet.id);uiSourceCode.setSourceMapping(this._snippetScriptMapping);this._uiSourceCodeForSnippetId[snippet.id]=uiSourceCode;return path;},deleteScriptSnippet:function(path)
+{var uiSourceCode=this._workspace.uiSourceCode(this._projectDelegate.id(),path);if(!uiSourceCode)
+return;var snippetId=this._snippetIdForUISourceCode.get(uiSourceCode)||"";var snippet=this._snippetStorage.snippetForId(snippetId);this._snippetStorage.deleteSnippet(snippet);this._removeBreakpoints(uiSourceCode);this._releaseSnippetScript(uiSourceCode);delete this._uiSourceCodeForSnippetId[snippet.id];this._snippetIdForUISourceCode.remove(uiSourceCode);this._projectDelegate.removeFile(snippet.name);},renameScriptSnippet:function(name,newName,callback)
 {newName=newName.trim();if(!newName||newName.indexOf("/")!==-1||name===newName||this._snippetStorage.snippetForName(newName)){callback(false);return;}
 var snippet=this._snippetStorage.snippetForName(name);console.assert(snippet,"Snippet '"+name+"' was not found.");var uiSourceCode=this._uiSourceCodeForSnippetId[snippet.id];console.assert(uiSourceCode,"No uiSourceCode was found for snippet '"+name+"'.");var breakpointLocations=this._removeBreakpoints(uiSourceCode);snippet.name=newName;this._restoreBreakpoints(uiSourceCode,breakpointLocations);callback(true,newName);},_setScriptSnippetContent:function(name,newContent)
 {var snippet=this._snippetStorage.snippetForName(name);snippet.content=newContent;},_scriptSnippetEdited:function(uiSourceCode)
@@ -9265,7 +9544,7 @@
 {callback(this._snippet.content);},searchInContent:function(query,caseSensitive,isRegex,callback)
 {function performSearch()
 {callback(WebInspector.ContentProvider.performSearchInContent(this._snippet.content,query,caseSensitive,isRegex));}
-window.setTimeout(performSearch.bind(this),0);},__proto__:WebInspector.ContentProvider.prototype}
+window.setTimeout(performSearch.bind(this),0);}}
 WebInspector.SnippetsProjectDelegate=function(model)
 {WebInspector.ContentProviderBasedProjectDelegate.call(this,WebInspector.projectTypes.Snippets);this._model=model;}
 WebInspector.SnippetsProjectDelegate.prototype={id:function()
@@ -9277,7 +9556,7 @@
 {this._model.renameScriptSnippet(path,newName,callback);},createFile:function(path,name,content,callback)
 {var filePath=this._model.createScriptSnippet(content);callback(filePath);},deleteFile:function(path)
 {this._model.deleteScriptSnippet(path);},__proto__:WebInspector.ContentProviderBasedProjectDelegate.prototype}
-WebInspector.scriptSnippetModel=null;WebInspector.Progress=function()
+WebInspector.scriptSnippetModel;WebInspector.Progress=function()
 {}
 WebInspector.Progress.Events={Canceled:"Canceled"}
 WebInspector.Progress.prototype={setTotalWork:function(totalWork){},setTitle:function(title){},setWorked:function(worked,title){},worked:function(worked){},done:function(){},isCanceled:function(){return false;},addEventListener:function(eventType,listener,thisObject){}}
@@ -9337,7 +9616,7 @@
 return;this._bindUISourceCode(uiSourceCode,this._urlToHeadersByFrameId[url].values()[0].values()[0]);},_bindUISourceCode:function(uiSourceCode,header)
 {if(this._styleFiles.get(uiSourceCode)||header.isInline)
 return;var url=uiSourceCode.url;this._styleFiles.put(uiSourceCode,new WebInspector.StyleFile(uiSourceCode,this));header.updateLocations();},_projectWillReset:function(event)
-{var project=(event.data);var uiSourceCodes=project.uiSourceCodes();for(var i=0;i<uiSourceCodes;++i)
+{var project=(event.data);var uiSourceCodes=project.uiSourceCodes();for(var i=0;i<uiSourceCodes.length;++i)
 this._unbindUISourceCode(uiSourceCodes[i]);},_uiSourceCodeRemoved:function(event)
 {var uiSourceCode=(event.data);this._unbindUISourceCode(uiSourceCode);},_initialize:function()
 {this._urlToHeadersByFrameId={};this._styleFiles=new Map();},_mainFrameCreatedOrNavigated:function(event)
@@ -9354,18 +9633,16 @@
 {if(this._updateStyleSheetTextTimer)
 clearTimeout(this._updateStyleSheetTextTimer);this._updateStyleSheetTextTimer=setTimeout(this._updateStyleSheetText.bind(this,styleSheetId),WebInspector.StylesSourceMapping.MinorChangeUpdateTimeoutMs);},_updateStyleSheetText:function(styleSheetId)
 {if(this._updateStyleSheetTextTimer){clearTimeout(this._updateStyleSheetTextTimer);delete this._updateStyleSheetTextTimer;}
-CSSAgent.getStyleSheetText(styleSheetId,callback.bind(this));function callback(error,content)
-{if(!error)
-this._innerStyleSheetChanged(styleSheetId,content);}},_innerStyleSheetChanged:function(styleSheetId,content)
-{var header=this._cssModel.styleSheetHeaderForId(styleSheetId);if(!header)
+var header=this._cssModel.styleSheetHeaderForId(styleSheetId);if(!header)
 return;var styleSheetURL=header.resourceURL();if(!styleSheetURL)
 return;var uiSourceCode=this._workspace.uiSourceCodeForURL(styleSheetURL)
 if(!uiSourceCode)
-return;var styleFile=this._styleFiles.get(uiSourceCode);if(styleFile)
-styleFile.addRevision(content);}}
+return;header.requestContent(callback.bind(this,uiSourceCode));function callback(uiSourceCode,content)
+{var styleFile=this._styleFiles.get(uiSourceCode);if(styleFile)
+styleFile.addRevision(content||"");}}}
 WebInspector.StyleFile=function(uiSourceCode,mapping)
 {this._uiSourceCode=uiSourceCode;this._mapping=mapping;this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);}
-WebInspector.StyleFile.updateTimeout=200;WebInspector.StyleFile.sourceURLRegex=/\n[\040\t]*\/\*#[\040\t]sourceURL=[\040\t]*([^\s]*)[\040\t]*\*\/[\040\t]*$/m;WebInspector.StyleFile.prototype={_workingCopyCommitted:function(event)
+WebInspector.StyleFile.updateTimeout=200;WebInspector.StyleFile.prototype={_workingCopyCommitted:function(event)
 {if(this._isAddingRevision)
 return;this._commitIncrementalEdit(true);},_workingCopyChanged:function(event)
 {if(this._isAddingRevision)
@@ -9376,8 +9653,7 @@
 WebInspector.showErrorMessage(error);},_clearIncrementalUpdateTimer:function()
 {if(!this._incrementalUpdateTimer)
 return;clearTimeout(this._incrementalUpdateTimer);delete this._incrementalUpdateTimer;},addRevision:function(content)
-{this._isAddingRevision=true;if(this._uiSourceCode.project().type()===WebInspector.projectTypes.FileSystem)
-content=content.replace(WebInspector.StyleFile.sourceURLRegex,"");this._uiSourceCode.addRevision(content);delete this._isAddingRevision;},dispose:function()
+{this._isAddingRevision=true;this._uiSourceCode.addRevision(content);delete this._isAddingRevision;},dispose:function()
 {this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);}}
 WebInspector.NetworkUISourceCodeProvider=function(networkWorkspaceProvider,workspace)
 {this._networkWorkspaceProvider=networkWorkspaceProvider;this._workspace=workspace;WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded,this._resourceAdded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._mainFrameNavigated,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource,this._parsedScriptSource,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetAdded,this);this._processedURLs={};}
@@ -9400,79 +9676,45 @@
 return;if(this._processedURLs[url])
 return;this._processedURLs[url]=true;var isEditable=type!==WebInspector.resourceTypes.Document;this._networkWorkspaceProvider.addFileForURL(url,contentProvider,isEditable,isContentScript);},_reset:function()
 {this._processedURLs={};this._networkWorkspaceProvider.reset();this._populate();}}
-WebInspector.networkWorkspaceProvider=null;WebInspector.ElementsPanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"elements",WebInspector.UIString("Elements"),"ElementsPanel","ElementsPanel.js");WebInspector.ContextMenu.registerProvider(this);}
-WebInspector.ElementsPanelDescriptor.prototype={appendApplicableItems:function(event,contextMenu,target)
-{if(target instanceof WebInspector.RemoteObject){var remoteObject=(target);if(remoteObject.subtype!=="node")
-return;}else if(!(target instanceof WebInspector.DOMNode))
-return;this.panel().appendApplicableItems(event,contextMenu,target);},registerShortcuts:function()
-{var elementsSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));var navigate=WebInspector.ElementsPanelDescriptor.ShortcutKeys.NavigateUp.concat(WebInspector.ElementsPanelDescriptor.ShortcutKeys.NavigateDown);elementsSection.addRelatedKeys(navigate,WebInspector.UIString("Navigate elements"));var expandCollapse=WebInspector.ElementsPanelDescriptor.ShortcutKeys.Expand.concat(WebInspector.ElementsPanelDescriptor.ShortcutKeys.Collapse);elementsSection.addRelatedKeys(expandCollapse,WebInspector.UIString("Expand/collapse"));elementsSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.EditAttribute,WebInspector.UIString("Edit attribute"));elementsSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.HideElement,WebInspector.UIString("Hide element"));elementsSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.ToggleEditAsHTML,WebInspector.UIString("Toggle edit as HTML"));var stylesPaneSection=WebInspector.shortcutsScreen.section(WebInspector.UIString("Styles Pane"));var nextPreviousProperty=WebInspector.ElementsPanelDescriptor.ShortcutKeys.NextProperty.concat(WebInspector.ElementsPanelDescriptor.ShortcutKeys.PreviousProperty);stylesPaneSection.addRelatedKeys(nextPreviousProperty,WebInspector.UIString("Next/previous property"));stylesPaneSection.addRelatedKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.IncrementValue,WebInspector.UIString("Increment value"));stylesPaneSection.addRelatedKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.DecrementValue,WebInspector.UIString("Decrement value"));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.IncrementBy10,WebInspector.UIString("Increment by %f",10));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.DecrementBy10,WebInspector.UIString("Decrement by %f",10));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.IncrementBy100,WebInspector.UIString("Increment by %f",100));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.DecrementBy100,WebInspector.UIString("Decrement by %f",100));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.IncrementBy01,WebInspector.UIString("Increment by %f",0.1));stylesPaneSection.addAlternateKeys(WebInspector.ElementsPanelDescriptor.ShortcutKeys.DecrementBy01,WebInspector.UIString("Decrement by %f",0.1));function toggleEmulationView()
-{if(WebInspector.settings.showEmulationViewInDrawer.get())
-WebInspector.inspectorView.registerViewInDrawer("emulation",WebInspector.UIString("Emulation"),this);else
-WebInspector.inspectorView.unregisterViewInDrawer("emulation");}
-WebInspector.settings.showEmulationViewInDrawer.addChangeListener(toggleEmulationView,this);toggleEmulationView.call(this);},createView:function(id)
-{return this.panel().createView(id);},__proto__:WebInspector.PanelDescriptor.prototype}
-WebInspector.ElementsPanelDescriptor.ShortcutKeys={NavigateUp:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up)],NavigateDown:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down)],Expand:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Right)],Collapse:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Left)],EditAttribute:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Enter)],HideElement:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.H)],ToggleEditAsHTML:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F2)],NextProperty:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Tab)],PreviousProperty:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Tab,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementValue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up)],DecrementValue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down)],IncrementBy10:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up,WebInspector.KeyboardShortcut.Modifiers.Shift)],DecrementBy10:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementBy100:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Shift)],DecrementBy100:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Shift)],IncrementBy01:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecrementBy01:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Alt)]};WebInspector.NetworkPanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"network",WebInspector.UIString("Network"),"NetworkPanel","NetworkPanel.js");WebInspector.ContextMenu.registerProvider(this);}
-WebInspector.NetworkPanelDescriptor.prototype={appendApplicableItems:function(event,contextMenu,target)
-{if(!(target instanceof WebInspector.NetworkRequest||target instanceof WebInspector.Resource||target instanceof WebInspector.UISourceCode))
-return;this.panel().appendApplicableItems(event,contextMenu,target);},__proto__:WebInspector.PanelDescriptor.prototype}
-WebInspector.ProfilesPanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"profiles",WebInspector.UIString("Profiles"),"ProfilesPanel","ProfilesPanel.js");}
-WebInspector.ProfilesPanelDescriptor.prototype={registerShortcuts:function()
-{var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Profiles Panel"));section.addAlternateKeys(WebInspector.ProfilesPanelDescriptor.ShortcutKeys.StartStopRecording,WebInspector.UIString("Start/stop recording"));},__proto__:WebInspector.PanelDescriptor.prototype}
-WebInspector.ProfilesPanelDescriptor.ShortcutKeys={StartStopRecording:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)]}
-WebInspector.ProfilesPanelDescriptor.ProfileURLRegExp=/webkit-profile:\/\/(.+)\/(.+)/;WebInspector.ProfilesPanelDescriptor.resolveProfileTitle=function(title)
-{return title;}
-WebInspector.ProfilesPanelDescriptor._openCPUProfile=function(event)
-{event.preventDefault();var panel=WebInspector.showPanel("profiles");var link=(event.target);var view=(panel.showProfile("CPU",link.profileUID));if(!view)
-return;if(typeof link.timeLeft==="number"&&typeof link.timeRight==="number")
-view.selectRange(link.timeLeft,link.timeRight);}
-WebInspector.ProfilesPanelDescriptor.linkifyCPUProfile=function(uid,linkText,timeLeft,timeRight,tooltipText)
-{var link=document.createElement("a");link.innerText=linkText;link.href=WebInspector.UIString("show CPU profile");link.target="_blank";if(tooltipText)
-link.title=tooltipText;link.timeLeft=timeLeft;link.timeRight=timeRight;link.profileUID=uid;link.addEventListener("click",WebInspector.ProfilesPanelDescriptor._openCPUProfile,true);return link;}
-WebInspector.ProfileManager=function()
-{this._startedProfiles={};};WebInspector.ProfileManager.EventTypes={ProfileStarted:"profile-started",ProfileStopped:"profile-stopped"};WebInspector.ProfileManager.prototype={isStarted:function(profileTypeId)
-{return profileTypeId in this._startedProfiles;},notifyStarted:function(profileTypeId)
-{this._startedProfiles[profileTypeId]=true;this.dispatchEventToListeners(WebInspector.ProfileManager.EventTypes.ProfileStarted,profileTypeId);},notifyStoped:function(profileTypeId)
-{delete this._startedProfiles[profileTypeId];this.dispatchEventToListeners(WebInspector.ProfileManager.EventTypes.ProfileStopped,profileTypeId);},__proto__:WebInspector.Object.prototype};WebInspector.profileManager;WebInspector.SourcesPanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"sources",WebInspector.UIString("Sources"),"SourcesPanel","SourcesPanel.js");WebInspector.ContextMenu.registerProvider(this);}
-WebInspector.SourcesPanelDescriptor.prototype={appendApplicableItems:function(event,contextMenu,target)
-{var hasApplicableItems=target instanceof WebInspector.UISourceCode;if(!hasApplicableItems&&target instanceof WebInspector.RemoteObject){var remoteObject=(target);if(remoteObject.type!=="function")
-return;}
-this.panel().appendApplicableItems(event,contextMenu,target);},registerShortcuts:function()
-{var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Sources Panel"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.PauseContinue,WebInspector.UIString("Pause/Continue"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepOver,WebInspector.UIString("Step over"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepInto,WebInspector.UIString("Step into"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepIntoSelection,WebInspector.UIString("Step into selection"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.StepOut,WebInspector.UIString("Step out"));var nextAndPrevFrameKeys=WebInspector.SourcesPanelDescriptor.ShortcutKeys.NextCallFrame.concat(WebInspector.SourcesPanelDescriptor.ShortcutKeys.PrevCallFrame);section.addRelatedKeys(nextAndPrevFrameKeys,WebInspector.UIString("Next/previous call frame"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.EvaluateSelectionInConsole,WebInspector.UIString("Evaluate selection in console"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.AddSelectionToWatch,WebInspector.UIString("Add selection to watch"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.GoToMember,WebInspector.UIString("Go to member"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.ToggleBreakpoint,WebInspector.UIString("Toggle breakpoint"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.ToggleComment,WebInspector.UIString("Toggle comment"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.IncreaseCSSUnitByOne,WebInspector.UIString("Increment CSS unit by 1"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.DecreaseCSSUnitByOne,WebInspector.UIString("Decrement CSS unit by 1"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.IncreaseCSSUnitByTen,WebInspector.UIString("Increment CSS unit by 10"));section.addAlternateKeys(WebInspector.SourcesPanelDescriptor.ShortcutKeys.DecreaseCSSUnitByTen,WebInspector.UIString("Decrement CSS unit by 10"));},__proto__:WebInspector.PanelDescriptor.prototype}
-WebInspector.SourcesPanelDescriptor.ShortcutKeys={IncreaseCSSUnitByOne:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Up,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecreaseCSSUnitByOne:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Down,WebInspector.KeyboardShortcut.Modifiers.Alt)],IncreaseCSSUnitByTen:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageUp,WebInspector.KeyboardShortcut.Modifiers.Alt)],DecreaseCSSUnitByTen:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.PageDown,WebInspector.KeyboardShortcut.Modifiers.Alt)],RunSnippet:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Enter,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],PauseContinue:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F8),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Backslash,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepOver:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F10),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.SingleQuote,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepInto:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepIntoSelection:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],StepOut:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11,WebInspector.KeyboardShortcut.Modifiers.Shift),WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon,WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],EvaluateSelectionInConsole:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.Ctrl)],AddSelectionToWatch:[WebInspector.KeyboardShortcut.makeDescriptor("a",WebInspector.KeyboardShortcut.Modifiers.Shift|WebInspector.KeyboardShortcut.Modifiers.Ctrl)],GoToMember:[WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta|WebInspector.KeyboardShortcut.Modifiers.Shift)],ToggleBreakpoint:[WebInspector.KeyboardShortcut.makeDescriptor("b",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],NextCallFrame:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Period,WebInspector.KeyboardShortcut.Modifiers.Ctrl)],PrevCallFrame:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Comma,WebInspector.KeyboardShortcut.Modifiers.Ctrl)],ToggleComment:[WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Slash,WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)]};WebInspector.TimelinePanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"timeline",WebInspector.UIString("Timeline"),"TimelinePanel","TimelinePanel.js");}
-WebInspector.TimelinePanelDescriptor.prototype={registerShortcuts:function()
-{var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Timeline Panel"));section.addAlternateKeys(WebInspector.TimelinePanelDescriptor.ShortcutKeys.StartStopRecording,WebInspector.UIString("Start/stop recording"));section.addAlternateKeys(WebInspector.TimelinePanelDescriptor.ShortcutKeys.SaveToFile,WebInspector.UIString("Save timeline data"));section.addAlternateKeys(WebInspector.TimelinePanelDescriptor.ShortcutKeys.LoadFromFile,WebInspector.UIString("Load timeline data"));},__proto__:WebInspector.PanelDescriptor.prototype}
-WebInspector.TimelinePanelDescriptor.ShortcutKeys={StartStopRecording:[WebInspector.KeyboardShortcut.makeDescriptor("e",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],SaveToFile:[WebInspector.KeyboardShortcut.makeDescriptor("s",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)],LoadFromFile:[WebInspector.KeyboardShortcut.makeDescriptor("o",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta)]}
+WebInspector.networkWorkspaceProvider;WebInspector.ElementsPanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"ElementsPanel",extensions:[{type:"@WebInspector.Panel",name:"elements",title:"Elements",order:0,className:"WebInspector.ElementsPanel"},{type:"@WebInspector.ContextMenu.Provider",contextTypes:["WebInspector.RemoteObject","WebInspector.DOMNode"],className:"WebInspector.ElementsPanel.ContextMenuProvider"},{type:"@WebInspector.Drawer.ViewFactory",name:"emulation",title:"Emulation",order:"10",setting:"showEmulationViewInDrawer",className:"WebInspector.ElementsPanel.OverridesViewFactory"},{type:"@WebInspector.Drawer.ViewFactory",name:"rendering",title:"Rendering",order:"11",setting:"showRenderingViewInDrawer",className:"WebInspector.ElementsPanel.RenderingViewFactory"}],scripts:["ElementsPanel.js"]});}
+WebInspector.NetworkPanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"NetworkPanel",extensions:[{type:"@WebInspector.Panel",name:"network",title:"Network",order:1,className:"WebInspector.NetworkPanel"},{type:"@WebInspector.ContextMenu.Provider",contextTypes:["WebInspector.NetworkRequest","WebInspector.Resource","WebInspector.UISourceCode"],className:"WebInspector.NetworkPanel.ContextMenuProvider"}],scripts:["NetworkPanel.js"]});}
+WebInspector.CPUProfilerModel=function()
+{this._delegate=null;this._isRecording=false;InspectorBackend.registerProfilerDispatcher(this);ProfilerAgent.enable();}
+WebInspector.CPUProfilerModel.EventTypes={ProfileStarted:"profile-started",ProfileStopped:"profile-stopped"};WebInspector.CPUProfilerModel.prototype={setDelegate:function(delegate)
+{this._delegate=delegate;},consoleProfileFinished:function(id,scriptLocation,cpuProfile,title)
+{WebInspector.inspectorView.panel("profiles");this._delegate.consoleProfileFinished(id,scriptLocation,cpuProfile,title);},consoleProfileStarted:function(id,scriptLocation,title)
+{WebInspector.inspectorView.panel("profiles");this._delegate.consoleProfileStarted(id,scriptLocation,title);},setRecording:function(isRecording)
+{this._isRecording=isRecording;this.dispatchEventToListeners(isRecording?WebInspector.CPUProfilerModel.EventTypes.ProfileStarted:WebInspector.CPUProfilerModel.EventTypes.ProfileStopped);},isRecordingProfile:function()
+{return this._isRecording;},__proto__:WebInspector.Object.prototype}
+WebInspector.CPUProfilerModel.ProfileURLRegExp=/webkit-profile:\/\/(.+)\/(.+)/;WebInspector.CPUProfilerModel.Delegate=function(){};WebInspector.CPUProfilerModel.Delegate.prototype={consoleProfileStarted:function(protocolId,scriptLocation,title){},consoleProfileFinished:function(protocolId,scriptLocation,cpuProfile,title){}}
+WebInspector.cpuProfilerModel;WebInspector.ProfilesPanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"ProfilesPanel",extensions:[{type:"@WebInspector.Panel",name:"profiles",title:"Profiles",order:4,className:"WebInspector.ProfilesPanel"},{type:"@WebInspector.ContextMenu.Provider",contextTypes:["WebInspector.RemoteObject"],className:"WebInspector.ProfilesPanel.ContextMenuProvider"}],scripts:["ProfilesPanel.js"]});}
+WebInspector.SourcesPanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"SourcesPanel",extensions:[{type:"@WebInspector.Panel",name:"sources",title:"Sources",order:2,className:"WebInspector.SourcesPanel"},{type:"@WebInspector.ContextMenu.Provider",contextTypes:["WebInspector.UISourceCode","WebInspector.RemoteObject"],className:"WebInspector.SourcesPanel.ContextMenuProvider"},{type:"@WebInspector.SearchScope",className:"WebInspector.SourcesSearchScope"},{type:"@WebInspector.Drawer.ViewFactory",name:"search",title:"Search",order:"1",className:"WebInspector.AdvancedSearchController.ViewFactory"}],scripts:["SourcesPanel.js"]});}
+WebInspector.TimelinePanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"TimelinePanel",extensions:[{type:"@WebInspector.Panel",name:"timeline",title:"Timeline",order:3,className:"WebInspector.TimelinePanel"}],scripts:["TimelinePanel.js"]});}
+WebInspector.AuditsPanelDescriptor=function()
+{WebInspector.moduleManager.registerModule({name:"AuditsPanel",extensions:[{type:"@WebInspector.Panel",name:"audits",title:"Audits",order:6,className:"WebInspector.AuditsPanel"}],scripts:["AuditsPanel.js"]});}
 WebInspector.LayersPanelDescriptor=function()
-{WebInspector.PanelDescriptor.call(this,"layers",WebInspector.UIString("Layers"),"LayersPanel","LayersPanel.js");}
-WebInspector.LayersPanelDescriptor.prototype={__proto__:WebInspector.PanelDescriptor.prototype}
+{WebInspector.moduleManager.registerModule({name:"LayersPanel",extensions:[{type:"@WebInspector.Panel",name:"layers",title:"Layers",className:"WebInspector.LayersPanel"}],scripts:["LayersPanel.js"]});}
 WebInspector.DockController=function()
-{this._dockToggleButton=new WebInspector.StatusBarButton("","dock-status-bar-item",3);this._dockToggleButtonOption=new WebInspector.StatusBarButton("","dock-status-bar-item",3);this._dockToggleButton.addEventListener("click",this._toggleDockState,this);this._dockToggleButtonOption.addEventListener("click",this._toggleDockState,this);this._dockToggleButton.setLongClickOptionsEnabled(this._createDockOptions.bind(this));this.setDockSide(WebInspector.queryParamsObject["dockSide"]||"bottom");}
+{if(!WebInspector.queryParamsObject["can_dock"]){this._dockSide=WebInspector.DockController.State.Undocked;this._updateUI();return;}
+WebInspector.settings.currentDockState=WebInspector.settings.createSetting("currentDockState","");WebInspector.settings.lastDockState=WebInspector.settings.createSetting("lastDockState","");this._dockToggleButton=new WebInspector.StatusBarStatesSettingButton("dock-status-bar-item",[WebInspector.DockController.State.DockedToBottom,WebInspector.DockController.State.Undocked,WebInspector.DockController.State.DockedToRight],[WebInspector.UIString("Dock to main window."),WebInspector.UIString("Undock into separate window."),WebInspector.UIString("Dock to main window.")],WebInspector.settings.currentDockState,WebInspector.settings.lastDockState,this._dockSideChanged.bind(this));}
 WebInspector.DockController.State={DockedToBottom:"bottom",DockedToRight:"right",Undocked:"undocked"}
 WebInspector.DockController.Events={DockSideChanged:"DockSideChanged"}
 WebInspector.DockController.prototype={get element()
-{return this._dockToggleButton.element;},dockSide:function()
-{return this._dockSide;},setDockSide:function(dockSide)
+{return WebInspector.queryParamsObject["can_dock"]?this._dockToggleButton.element:null;},dockSide:function()
+{return this._dockSide;},_dockSideChanged:function(dockSide)
 {if(this._dockSide===dockSide)
-return;if(this._dockSide)
-WebInspector.settings.lastDockState.set(this._dockSide);this._dockSide=dockSide;if(dockSide===WebInspector.DockController.State.Undocked)
-WebInspector.userMetrics.WindowDocked.record();else
-WebInspector.userMetrics.WindowUndocked.record();this._updateUI();this.dispatchEventToListeners(WebInspector.DockController.Events.DockSideChanged,this._dockSide);},_updateUI:function()
-{var body=document.body;switch(this._dockSide){case WebInspector.DockController.State.DockedToBottom:body.removeStyleClass("undocked");body.removeStyleClass("dock-to-right");body.addStyleClass("dock-to-bottom");break;case WebInspector.DockController.State.DockedToRight:body.removeStyleClass("undocked");body.addStyleClass("dock-to-right");body.removeStyleClass("dock-to-bottom");break;case WebInspector.DockController.State.Undocked:body.addStyleClass("undocked");body.removeStyleClass("dock-to-right");body.removeStyleClass("dock-to-bottom");break;}
-this._dockToggleButton.setEnabled(true);var sides=[WebInspector.DockController.State.DockedToBottom,WebInspector.DockController.State.Undocked,WebInspector.DockController.State.DockedToRight];sides.remove(this._dockSide);var lastState=WebInspector.settings.lastDockState.get();sides.remove(lastState);if(sides.length===2){lastState=sides[0];sides.remove(lastState);}
-this._decorateButtonForTargetState(this._dockToggleButton,lastState);this._decorateButtonForTargetState(this._dockToggleButtonOption,sides[0]);},_decorateButtonForTargetState:function(button,state)
-{switch(state){case WebInspector.DockController.State.DockedToBottom:button.title=WebInspector.UIString("Dock to main window.");button.state="bottom";break;case WebInspector.DockController.State.DockedToRight:button.title=WebInspector.UIString("Dock to main window.");button.state="right";break;case WebInspector.DockController.State.Undocked:button.title=WebInspector.UIString("Undock into separate window.");button.state="undock";break;}},_createDockOptions:function()
-{return[this._dockToggleButtonOption];},_toggleDockState:function(e)
-{var action;switch(e.target.state){case"bottom":action="bottom";break;case"right":action="right";break;case"undock":action="undocked";break;}
-InspectorFrontendHost.requestSetDockSide(action);},__proto__:WebInspector.Object.prototype}
-WebInspector.dockController=null;WebInspector.TracingAgent=function()
+return;this._dockSide=dockSide;if(WebInspector.queryParamsObject["can_dock"])
+InspectorFrontendHost.requestSetDockSide(dockSide);this._updateUI();this.dispatchEventToListeners(WebInspector.DockController.Events.DockSideChanged,this._dockSide);},_updateUI:function()
+{var body=document.body;switch(this._dockSide){case WebInspector.DockController.State.DockedToBottom:body.classList.remove("undocked");body.classList.remove("dock-to-right");body.classList.add("dock-to-bottom");break;case WebInspector.DockController.State.DockedToRight:body.classList.remove("undocked");body.classList.add("dock-to-right");body.classList.remove("dock-to-bottom");break;case WebInspector.DockController.State.Undocked:body.classList.add("undocked");body.classList.remove("dock-to-right");body.classList.remove("dock-to-bottom");break;}},__proto__:WebInspector.Object.prototype}
+WebInspector.dockController;WebInspector.TracingAgent=function()
 {this._active=false;InspectorBackend.registerTracingDispatcher(new WebInspector.TracingDispatcher(this));}
-WebInspector.TracingAgent.prototype={start:function(categoryPatterns,callback)
-{TracingAgent.start(categoryPatterns,callback);this._active=true;this._events=[];},stop:function(callback)
+WebInspector.TracingAgent.prototype={start:function(categoryPatterns,options,callback)
+{TracingAgent.start(categoryPatterns,options,callback);this._active=true;this._events=[];},stop:function(callback)
 {if(!this._active){callback();return;}
 this._pendingStopCallback=callback;TracingAgent.end();},events:function()
 {return this._events;},_eventsCollected:function(events)
@@ -9483,30 +9725,33 @@
 WebInspector.TracingDispatcher.prototype={dataCollected:function(data)
 {this._tracingAgent._eventsCollected(data);},tracingComplete:function()
 {this._tracingAgent._tracingComplete();}}
-WebInspector.ScreencastView=function()
-{WebInspector.View.call(this);this.registerRequiredCSS("screencastView.css");this.element.addStyleClass("fill");this.element.addStyleClass("screencast");this._createNavigationBar();this._viewportElement=this.element.createChild("div","screencast-viewport hidden");this._glassPaneElement=this.element.createChild("div","screencast-glasspane hidden");this._canvasElement=this._viewportElement.createChild("canvas");this._canvasElement.tabIndex=1;this._canvasElement.addEventListener("mousedown",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mouseup",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mousemove",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mousewheel",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("click",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);this._canvasElement.addEventListener("keydown",this._handleKeyEvent.bind(this),false);this._canvasElement.addEventListener("keyup",this._handleKeyEvent.bind(this),false);this._canvasElement.addEventListener("keypress",this._handleKeyEvent.bind(this),false);this._titleElement=this._viewportElement.createChild("div","screencast-element-title monospace hidden");this._tagNameElement=this._titleElement.createChild("span","screencast-tag-name");this._nodeIdElement=this._titleElement.createChild("span","screencast-node-id");this._classNameElement=this._titleElement.createChild("span","screencast-class-name");this._titleElement.appendChild(document.createTextNode(" "));this._nodeWidthElement=this._titleElement.createChild("span");this._titleElement.createChild("span","screencast-px").textContent="px";this._titleElement.appendChild(document.createTextNode(" \u00D7 "));this._nodeHeightElement=this._titleElement.createChild("span");this._titleElement.createChild("span","screencast-px").textContent="px";this._imageElement=new Image();this._isCasting=false;this._context=this._canvasElement.getContext("2d");this._checkerboardPattern=this._createCheckerboardPattern(this._context);this._shortcuts=({});this._shortcuts[WebInspector.KeyboardShortcut.makeKey("l",WebInspector.KeyboardShortcut.Modifiers.Ctrl)]=this._focusNavigationBar.bind(this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ScreencastFrame,this._screencastFrame,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ScreencastVisibilityChanged,this._screencastVisibilityChanged,this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStarted,this._onTimeline.bind(this,true),this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStopped,this._onTimeline.bind(this,false),this);this._timelineActive=WebInspector.timelineManager.isStarted();WebInspector.profileManager.addEventListener(WebInspector.ProfileManager.EventTypes.ProfileStarted,this._onProfiler.bind(this,true),this);WebInspector.profileManager.addEventListener(WebInspector.ProfileManager.EventTypes.ProfileStopped,this._onProfiler.bind(this,false),this);this._profilerActive=WebInspector.CPUProfileType&&WebInspector.profileManager.isStarted(WebInspector.CPUProfileType.TypeId);this._updateGlasspane();}
-WebInspector.ScreencastView._bordersSize=40;WebInspector.ScreencastView._navBarHeight=29;WebInspector.ScreencastView._HttpRegex=/^https?:\/\/(.+)/;WebInspector.ScreencastView.prototype={wasShown:function()
+WebInspector.tracingAgent;WebInspector.ScreencastView=function(statusBarButtonPlaceholder)
+{WebInspector.View.call(this);this.registerRequiredCSS("screencastView.css");this._statusBarButtonPlaceholder=statusBarButtonPlaceholder;}
+WebInspector.ScreencastView._bordersSize=40;WebInspector.ScreencastView._navBarHeight=29;WebInspector.ScreencastView._HttpRegex=/^https?:\/\/(.+)/;WebInspector.ScreencastView.prototype={initialize:function()
+{this.element.classList.add("fill");this.element.classList.add("screencast");this._createNavigationBar();this._viewportElement=this.element.createChild("div","screencast-viewport hidden");this._glassPaneElement=this.element.createChild("div","screencast-glasspane hidden");this._canvasElement=this._viewportElement.createChild("canvas");this._canvasElement.tabIndex=1;this._canvasElement.addEventListener("mousedown",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mouseup",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mousemove",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("mousewheel",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("click",this._handleMouseEvent.bind(this),false);this._canvasElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);this._canvasElement.addEventListener("keydown",this._handleKeyEvent.bind(this),false);this._canvasElement.addEventListener("keyup",this._handleKeyEvent.bind(this),false);this._canvasElement.addEventListener("keypress",this._handleKeyEvent.bind(this),false);this._titleElement=this._viewportElement.createChild("div","screencast-element-title monospace hidden");this._tagNameElement=this._titleElement.createChild("span","screencast-tag-name");this._nodeIdElement=this._titleElement.createChild("span","screencast-node-id");this._classNameElement=this._titleElement.createChild("span","screencast-class-name");this._titleElement.appendChild(document.createTextNode(" "));this._nodeWidthElement=this._titleElement.createChild("span");this._titleElement.createChild("span","screencast-px").textContent="px";this._titleElement.appendChild(document.createTextNode(" \u00D7 "));this._nodeHeightElement=this._titleElement.createChild("span");this._titleElement.createChild("span","screencast-px").textContent="px";this._imageElement=new Image();this._isCasting=false;this._context=this._canvasElement.getContext("2d");this._checkerboardPattern=this._createCheckerboardPattern(this._context);this._shortcuts=({});this._shortcuts[WebInspector.KeyboardShortcut.makeKey("l",WebInspector.KeyboardShortcut.Modifiers.Ctrl)]=this._focusNavigationBar.bind(this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ScreencastFrame,this._screencastFrame,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ScreencastVisibilityChanged,this._screencastVisibilityChanged,this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStarted,this._onTimeline.bind(this,true),this);WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineStopped,this._onTimeline.bind(this,false),this);this._timelineActive=WebInspector.timelineManager.isStarted();WebInspector.cpuProfilerModel.addEventListener(WebInspector.CPUProfilerModel.EventTypes.ProfileStarted,this._onProfiler.bind(this,true),this);WebInspector.cpuProfilerModel.addEventListener(WebInspector.CPUProfilerModel.EventTypes.ProfileStopped,this._onProfiler.bind(this,false),this);this._profilerActive=WebInspector.cpuProfilerModel.isRecordingProfile();this._updateGlasspane();this._currentScreencastState=WebInspector.settings.createSetting("currentScreencastState","");this._lastScreencastState=WebInspector.settings.createSetting("lastScreencastState","");this._toggleScreencastButton=new WebInspector.StatusBarStatesSettingButton("screencast-status-bar-item",["disabled","left","top"],[WebInspector.UIString("Disable screencast."),WebInspector.UIString("Switch to portrait screencast."),WebInspector.UIString("Switch to landscape screencast.")],this._currentScreencastState,this._lastScreencastState,this._toggleScreencastButtonClicked.bind(this));this._statusBarButtonPlaceholder.parentElement.insertBefore(this._toggleScreencastButton.element,this._statusBarButtonPlaceholder);this._statusBarButtonPlaceholder.parentElement.removeChild(this._statusBarButtonPlaceholder);},_toggleScreencastButtonClicked:function(state)
+{if(state==="disabled")
+WebInspector.inspectorView.hideScreencastView();else
+WebInspector.inspectorView.showScreencastView(this,state==="left");},wasShown:function()
 {this._startCasting();},willHide:function()
 {this._stopCasting();},_startCasting:function()
 {if(this._timelineActive||this._profilerActive)
 return;if(this._isCasting)
-return;this._isCasting=true;const maxImageDimension=800;var dimensions=this._viewportDimensions();if(dimensions.width<0||dimensions.height<0){this._isCasting=false;return;}
-PageAgent.startScreencast("jpeg",80,Math.min(maxImageDimension,dimensions.width),Math.min(maxImageDimension,dimensions.height));WebInspector.domAgent.setHighlighter(this);},_stopCasting:function()
+return;this._isCasting=true;const maxImageDimension=1024;var dimensions=this._viewportDimensions();if(dimensions.width<0||dimensions.height<0){this._isCasting=false;return;}
+dimensions.width*=WebInspector.zoomFactor();dimensions.height*=WebInspector.zoomFactor();PageAgent.startScreencast("jpeg",80,Math.min(maxImageDimension,dimensions.width),Math.min(maxImageDimension,dimensions.height));WebInspector.domAgent.setHighlighter(this);},_stopCasting:function()
 {if(!this._isCasting)
 return;this._isCasting=false;PageAgent.stopScreencast();WebInspector.domAgent.setHighlighter(null);},_screencastFrame:function(event)
-{if(!event.data.deviceScaleFactor){console.log(event.data.data);return;}
-var base64Data=(event.data.data);this._imageElement.src="data:image/jpg;base64,"+base64Data;this._deviceScaleFactor=(event.data.deviceScaleFactor);this._pageScaleFactor=(event.data.pageScaleFactor);this._viewport=(event.data.viewport);if(!this._viewport)
-return;var offsetTop=(event.data.offsetTop)||0;var offsetBottom=(event.data.offsetBottom)||0;var screenWidthDIP=this._viewport.width*this._pageScaleFactor;var screenHeightDIP=this._viewport.height*this._pageScaleFactor+offsetTop+offsetBottom;this._screenOffsetTop=offsetTop;this._resizeViewport(screenWidthDIP,screenHeightDIP);this._imageZoom=this._imageElement.naturalWidth?this._canvasElement.offsetWidth/this._imageElement.naturalWidth:1;this.highlightDOMNode(this._highlightNodeId,this._highlightConfig);},_isGlassPaneActive:function()
+{var metadata=(event.data.metadata);if(!metadata.deviceScaleFactor){console.log(event.data.data);return;}
+var base64Data=(event.data.data);this._imageElement.src="data:image/jpg;base64,"+base64Data;this._deviceScaleFactor=metadata.deviceScaleFactor;this._pageScaleFactor=metadata.pageScaleFactor;this._viewport=metadata.viewport;if(!this._viewport)
+return;var offsetTop=metadata.offsetTop||0;var offsetBottom=metadata.offsetBottom||0;var screenWidthDIP=this._viewport.width*this._pageScaleFactor;var screenHeightDIP=this._viewport.height*this._pageScaleFactor+offsetTop+offsetBottom;this._screenOffsetTop=offsetTop;this._resizeViewport(screenWidthDIP,screenHeightDIP);this._imageZoom=this._imageElement.naturalWidth?this._canvasElement.offsetWidth/this._imageElement.naturalWidth:1;this.highlightDOMNode(this._highlightNodeId,this._highlightConfig);},_isGlassPaneActive:function()
 {return!this._glassPaneElement.classList.contains("hidden");},_screencastVisibilityChanged:function(event)
 {this._targetInactive=!event.data.visible;this._updateGlasspane();},_onTimeline:function(on)
 {this._timelineActive=on;if(this._timelineActive)
 this._stopCasting();else
-this._startCasting();this._updateGlasspane();},_onProfiler:function(on,event){if(!WebInspector.CPUProfileType||event.data!=WebInspector.CPUProfileType.TypeId)
-return;this._profilerActive=on;if(this._profilerActive)
+this._startCasting();this._updateGlasspane();},_onProfiler:function(on,event){this._profilerActive=on;if(this._profilerActive)
 this._stopCasting();else
 this._startCasting();this._updateGlasspane();},_updateGlasspane:function()
 {if(this._targetInactive){this._glassPaneElement.textContent=WebInspector.UIString("The tab is inactive");this._glassPaneElement.classList.remove("hidden");}else if(this._timelineActive){this._glassPaneElement.textContent=WebInspector.UIString("Timeline is active");this._glassPaneElement.classList.remove("hidden");}else if(this._profilerActive){this._glassPaneElement.textContent=WebInspector.UIString("CPU profiler is active");this._glassPaneElement.classList.remove("hidden");}else{this._glassPaneElement.classList.add("hidden");}},_resizeViewport:function(screenWidthDIP,screenHeightDIP)
-{var dimensions=this._viewportDimensions();this._screenZoom=Math.min(dimensions.width/screenWidthDIP,dimensions.height/screenHeightDIP);var bordersSize=WebInspector.ScreencastView._bordersSize;this._viewportElement.removeStyleClass("hidden");this._viewportElement.style.width=screenWidthDIP*this._screenZoom+bordersSize+"px";this._viewportElement.style.height=screenHeightDIP*this._screenZoom+bordersSize+"px";},_handleMouseEvent:function(event)
+{var dimensions=this._viewportDimensions();this._screenZoom=Math.min(dimensions.width/screenWidthDIP,dimensions.height/screenHeightDIP);var bordersSize=WebInspector.ScreencastView._bordersSize;this._viewportElement.classList.remove("hidden");this._viewportElement.style.width=screenWidthDIP*this._screenZoom+bordersSize+"px";this._viewportElement.style.height=screenHeightDIP*this._screenZoom+bordersSize+"px";},_handleMouseEvent:function(event)
 {if(this._isGlassPaneActive()){event.consume();return;}
 if(!this._viewport)
 return;if(!this._inspectModeConfig||event.type==="mousewheel"){this._simulateTouchGestureForMouseEvent(event);event.preventDefault();if(event.type==="mousedown")
@@ -9534,7 +9779,7 @@
 modifiers+=8;return modifiers;},onResize:function()
 {if(this._deferredCasting){clearTimeout(this._deferredCasting);delete this._deferredCasting;}
 this._stopCasting();this._deferredCasting=setTimeout(this._startCasting.bind(this),100);},highlightDOMNode:function(nodeId,config,objectId)
-{this._highlightNodeId=nodeId;this._highlightConfig=config;if(!nodeId){this._model=null;this._config=null;this._node=null;this._titleElement.addStyleClass("hidden");this._repaint();return;}
+{this._highlightNodeId=nodeId;this._highlightConfig=config;if(!nodeId){this._model=null;this._config=null;this._node=null;this._titleElement.classList.add("hidden");this._repaint();return;}
 this._node=WebInspector.domAgent.nodeForId(nodeId);DOMAgent.getBoxModel(nodeId,callback.bind(this));function callback(error,model)
 {if(error){this._repaint();return;}
 this._model=this._scaleModel(model);this._config=config;this._repaint();}},_scaleModel:function(model)
@@ -9561,14 +9806,15 @@
 boxX=canvasWidth-titleWidth-2;var boxY;if(anchorTop>canvasHeight){boxY=canvasHeight-titleHeight-arrowHeight;renderArrowDown=true;}else if(anchorBottom<0){boxY=arrowHeight;renderArrowUp=true;}else if(anchorBottom+titleHeight+arrowHeight<canvasHeight){boxY=anchorBottom+arrowHeight-4;renderArrowUp=true;}else if(anchorTop-titleHeight-arrowHeight>0){boxY=anchorTop-titleHeight-arrowHeight+3;renderArrowDown=true;}else
 boxY=arrowHeight;this._context.save();this._context.translate(0.5,0.5);this._context.beginPath();this._context.moveTo(boxX,boxY);if(renderArrowUp){this._context.lineTo(boxX+2*arrowHeight,boxY);this._context.lineTo(boxX+3*arrowHeight,boxY-arrowHeight);this._context.lineTo(boxX+4*arrowHeight,boxY);}
 this._context.lineTo(boxX+titleWidth,boxY);this._context.lineTo(boxX+titleWidth,boxY+titleHeight);if(renderArrowDown){this._context.lineTo(boxX+4*arrowHeight,boxY+titleHeight);this._context.lineTo(boxX+3*arrowHeight,boxY+titleHeight+arrowHeight);this._context.lineTo(boxX+2*arrowHeight,boxY+titleHeight);}
-this._context.lineTo(boxX,boxY+titleHeight);this._context.closePath();this._context.fillStyle="rgb(255, 255, 194)";this._context.fill();this._context.strokeStyle="rgb(128, 128, 128)";this._context.stroke();this._context.restore();this._titleElement.removeStyleClass("hidden");this._titleElement.style.top=(boxY+3)+"px";this._titleElement.style.left=(boxX+3)+"px";},_viewportDimensions:function()
+this._context.lineTo(boxX,boxY+titleHeight);this._context.closePath();this._context.fillStyle="rgb(255, 255, 194)";this._context.fill();this._context.strokeStyle="rgb(128, 128, 128)";this._context.stroke();this._context.restore();this._titleElement.classList.remove("hidden");this._titleElement.style.top=(boxY+3)+"px";this._titleElement.style.left=(boxX+3)+"px";},_viewportDimensions:function()
 {const gutterSize=30;const bordersSize=WebInspector.ScreencastView._bordersSize;return{width:this.element.offsetWidth-bordersSize-gutterSize,height:this.element.offsetHeight-bordersSize-gutterSize-WebInspector.ScreencastView._navBarHeight};},setInspectModeEnabled:function(enabled,inspectShadowDOM,config,callback)
-{this._inspectModeConfig=enabled?config:null;callback(null);},_createCheckerboardPattern:function(context)
+{this._inspectModeConfig=enabled?config:null;if(callback)
+callback(null);},_createCheckerboardPattern:function(context)
 {var pattern=(document.createElement("canvas"));const size=32;pattern.width=size*2;pattern.height=size*2;var pctx=pattern.getContext("2d");pctx.fillStyle="rgb(195, 195, 195)";pctx.fillRect(0,0,size*2,size*2);pctx.fillStyle="rgb(225, 225, 225)";pctx.fillRect(0,0,size,size);pctx.fillRect(size,size,size,size);return context.createPattern(pattern,"repeat");},_createNavigationBar:function()
 {this._navigationBar=this.element.createChild("div","toolbar-background screencast-navigation");this._navigationBack=this._navigationBar.createChild("button","back");this._navigationBack.disabled=true;this._navigationBack.addEventListener("click",this._navigateToHistoryEntry.bind(this,-1),false);this._navigationForward=this._navigationBar.createChild("button","forward");this._navigationForward.disabled=true;this._navigationForward.addEventListener("click",this._navigateToHistoryEntry.bind(this,1),false);this._navigationReload=this._navigationBar.createChild("button","reload");this._navigationReload.addEventListener("click",this._navigateReload.bind(this),false);this._navigationUrl=this._navigationBar.createChild("input");this._navigationUrl.type="text";this._navigationUrl.addEventListener('keyup',this._navigationUrlKeyUp.bind(this),true);this._navigationProgressBar=new WebInspector.ScreencastView.ProgressTracker(this._navigationBar.createChild("div","progress"));this._requestNavigationHistory();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._requestNavigationHistory,this);},_navigateToHistoryEntry:function(offset)
 {var newIndex=this._historyIndex+offset;if(newIndex<0||newIndex>=this._historyEntries.length)
 return;PageAgent.navigateToHistoryEntry(this._historyEntries[newIndex].id);this._requestNavigationHistory();},_navigateReload:function()
-{PageAgent.reload();},_navigationUrlKeyUp:function(event)
+{WebInspector.resourceTreeModel.reloadPage();},_navigationUrlKeyUp:function(event)
 {if(event.keyIdentifier!='Enter')
 return;var url=this._navigationUrl.value;if(!url)
 return;if(!url.match(WebInspector.ScreencastView._HttpRegex))
@@ -9754,4 +10000,134 @@
 {uiTests._populatedInterface=true;var name=uiTests._pendingTestName;delete uiTests._pendingTestName;if(name)
 new TestSuite().runTest(name);}
 var oldLoadCompleted=InspectorFrontendAPI.loadCompleted;InspectorFrontendAPI.loadCompleted=function()
-{oldLoadCompleted.call(InspectorFrontendAPI);runTests();}})();}
\ No newline at end of file
+{oldLoadCompleted.call(InspectorFrontendAPI);runTests();}})();}
+WebInspector.FlameChart=function(dataProvider)
+{WebInspector.View.call(this);this.registerRequiredCSS("flameChart.css");this.element.className="fill";this.element.id="cpu-flame-chart";this._overviewPane=new WebInspector.FlameChart.OverviewPane(dataProvider);this._overviewPane.show(this.element);this._mainPane=new WebInspector.FlameChart.MainPane(dataProvider,this._overviewPane);this._mainPane.show(this.element);this._mainPane.addEventListener(WebInspector.FlameChart.Events.EntrySelected,this._onEntrySelected,this);this._overviewPane._overviewGrid.addEventListener(WebInspector.OverviewGrid.Events.WindowChanged,this._onWindowChanged,this);if(!WebInspector.FlameChart._colorGenerator)
+WebInspector.FlameChart._colorGenerator=new WebInspector.FlameChart.ColorGenerator();}
+WebInspector.FlameChart.prototype={_onWindowChanged:function(event)
+{this._mainPane.changeWindow(this._overviewPane._overviewGrid.windowLeft(),this._overviewPane._overviewGrid.windowRight());},selectRange:function(timeLeft,timeRight)
+{this._overviewPane._selectRange(timeLeft,timeRight);},_onEntrySelected:function(event)
+{this.dispatchEventToListeners(WebInspector.FlameChart.Events.EntrySelected,event.data);},update:function()
+{this._overviewPane.update();this._mainPane.update();},__proto__:WebInspector.View.prototype};WebInspector.FlameChartDataProvider=function()
+{}
+WebInspector.FlameChartDataProvider.prototype={timelineData:function(colorGenerator){},prepareHighlightedEntryInfo:function(entryIndex){},canJumpToEntry:function(entryIndex){},entryData:function(entryIndex){}}
+WebInspector.FlameChart.Calculator=function()
+{}
+WebInspector.FlameChart.Calculator.prototype={_updateBoundaries:function(mainPane)
+{function log10(x)
+{return Math.log(x)/Math.LN10;}
+this._decimalDigits=Math.max(0,-Math.floor(log10(mainPane._timelineGrid.gridSliceTime*1.01)));var totalTime=mainPane._timelineData().totalTime;this._minimumBoundaries=mainPane._windowLeft*totalTime;this._maximumBoundaries=mainPane._windowRight*totalTime;this.paddingLeft=mainPane._paddingLeft;this._width=mainPane._canvas.width-this.paddingLeft;this._timeToPixel=this._width/this.boundarySpan();},computePosition:function(time)
+{return(time-this._minimumBoundaries)*this._timeToPixel+this.paddingLeft;},formatTime:function(value,hires)
+{var format="%."+this._decimalDigits+"f\u2009ms";return WebInspector.UIString(format,value+this._minimumBoundaries);},maximumBoundary:function()
+{return this._maximumBoundaries;},minimumBoundary:function()
+{return this._minimumBoundaries;},zeroTime:function()
+{return 0;},boundarySpan:function()
+{return this._maximumBoundaries-this._minimumBoundaries;}}
+WebInspector.FlameChart.OverviewCalculator=function()
+{}
+WebInspector.FlameChart.OverviewCalculator.prototype={_updateBoundaries:function(overviewPane)
+{this._minimumBoundaries=0;var totalTime=overviewPane._timelineData().totalTime;this._maximumBoundaries=totalTime;this._xScaleFactor=overviewPane._overviewCanvas.width/totalTime;},computePosition:function(time)
+{return(time-this._minimumBoundaries)*this._xScaleFactor;},formatTime:function(value,hires)
+{return Number.secondsToString((value+this._minimumBoundaries)/1000,hires);},maximumBoundary:function()
+{return this._maximumBoundaries;},minimumBoundary:function()
+{return this._minimumBoundaries;},zeroTime:function()
+{return this._minimumBoundaries;},boundarySpan:function()
+{return this._maximumBoundaries-this._minimumBoundaries;}}
+WebInspector.FlameChart.Events={EntrySelected:"EntrySelected"}
+WebInspector.FlameChart.ColorGenerator=function()
+{this._colorPairs={};this._colorIndexes=[];this._currentColorIndex=0;this._colorPairForID("(idle)::0",50);this._colorPairForID("(program)::0",50);this._colorPairForID("(garbage collector)::0",50);}
+WebInspector.FlameChart.ColorGenerator.prototype={_colorPairForID:function(id,sat)
+{if(typeof sat!=="number")
+sat=100;var colorPairs=this._colorPairs;var colorPair=colorPairs[id];if(!colorPair){colorPairs[id]=colorPair=this._createPair(this._currentColorIndex++,sat);this._colorIndexes[colorPair.index]=colorPair;}
+return colorPair;},_colorPairForIndex:function(index)
+{return this._colorIndexes[index];},_createPair:function(index,sat)
+{var hue=(index*7+12*(index%2))%360;return{index:index,highlighted:"hsla("+hue+", "+sat+"%, 33%, 0.7)",normal:"hsla("+hue+", "+sat+"%, 66%, 0.7)"}}}
+WebInspector.FlameChart.OverviewPaneInterface=function()
+{}
+WebInspector.FlameChart.OverviewPaneInterface.prototype={zoom:function(zoom,referencePoint){},setWindow:function(windowLeft,windowRight){},}
+WebInspector.FlameChart.OverviewPane=function(dataProvider)
+{WebInspector.View.call(this);this._overviewContainer=this.element.createChild("div","overview-container");this._overviewGrid=new WebInspector.OverviewGrid("flame-chart");this._overviewGrid.element.classList.add("fill");this._overviewCanvas=this._overviewContainer.createChild("canvas","flame-chart-overview-canvas");this._overviewContainer.appendChild(this._overviewGrid.element);this._overviewCalculator=new WebInspector.FlameChart.OverviewCalculator();this._dataProvider=dataProvider;}
+WebInspector.FlameChart.OverviewPane.prototype={zoom:function(zoom,referencePoint)
+{this._overviewGrid.zoom(zoom,referencePoint);},setWindow:function(windowLeft,windowRight)
+{this._overviewGrid.setWindow(windowLeft,windowRight);},_selectRange:function(timeLeft,timeRight)
+{var timelineData=this._timelineData();if(!timelineData)
+return;this._overviewGrid.setWindow(timeLeft/timelineData._totalTime,timeRight/timelineData._totalTime);},_timelineData:function()
+{return this._dataProvider.timelineData(WebInspector.FlameChart._colorGenerator);},onResize:function()
+{this._scheduleUpdate();},_scheduleUpdate:function()
+{if(this._updateTimerId)
+return;this._updateTimerId=setTimeout(this.update.bind(this),10);},update:function()
+{this._updateTimerId=0;var timelineData=this._timelineData();if(!timelineData)
+return;this._resetCanvas(this._overviewContainer.clientWidth,this._overviewContainer.clientHeight-20);this._overviewCalculator._updateBoundaries(this);this._overviewGrid.updateDividers(this._overviewCalculator);WebInspector.FlameChart.OverviewPane.drawOverviewCanvas(timelineData,this._overviewCanvas.getContext("2d"),this._overviewContainer.clientWidth,this._overviewContainer.clientHeight-20);},_resetCanvas:function(width,height)
+{var ratio=window.devicePixelRatio;this._overviewCanvas.width=width*ratio;this._overviewCanvas.height=height*ratio;},__proto__:WebInspector.View.prototype}
+WebInspector.FlameChart.OverviewPane.calculateDrawData=function(timelineData,width)
+{var entryOffsets=timelineData.entryOffsets;var entryTotalTimes=timelineData.entryTotalTimes;var entryLevels=timelineData.entryLevels;var length=entryOffsets.length;var drawData=new Uint8Array(width);var scaleFactor=width/timelineData.totalTime;for(var entryIndex=0;entryIndex<length;++entryIndex){var start=Math.floor(entryOffsets[entryIndex]*scaleFactor);var finish=Math.floor((entryOffsets[entryIndex]+entryTotalTimes[entryIndex])*scaleFactor);for(var x=start;x<=finish;++x)
+drawData[x]=Math.max(drawData[x],entryLevels[entryIndex]+1);}
+return drawData;}
+WebInspector.FlameChart.OverviewPane.drawOverviewCanvas=function(timelineData,context,width,height)
+{var drawData=WebInspector.FlameChart.OverviewPane.calculateDrawData(timelineData,width);if(!drawData)
+return;var ratio=window.devicePixelRatio;var canvasWidth=width*ratio;var canvasHeight=height*ratio;var yScaleFactor=canvasHeight/(timelineData.maxStackDepth*1.1);context.lineWidth=1;context.translate(0.5,0.5);context.strokeStyle="rgba(20,0,0,0.4)";context.fillStyle="rgba(214,225,254,0.8)";context.moveTo(-1,canvasHeight-1);if(drawData)
+context.lineTo(-1,Math.round(height-drawData[0]*yScaleFactor-1));var value;for(var x=0;x<width;++x){value=Math.round(canvasHeight-drawData[x]*yScaleFactor-1);context.lineTo(x*ratio,value);}
+context.lineTo(canvasWidth+1,value);context.lineTo(canvasWidth+1,canvasHeight-1);context.fill();context.stroke();context.closePath();}
+WebInspector.FlameChart.MainPane=function(dataProvider,overviewPane)
+{WebInspector.View.call(this);this._overviewPane=overviewPane;this._chartContainer=this.element.createChild("div","chart-container");this._timelineGrid=new WebInspector.TimelineGrid();this._chartContainer.appendChild(this._timelineGrid.element);this._calculator=new WebInspector.FlameChart.Calculator();this._canvas=this._chartContainer.createChild("canvas");this._canvas.addEventListener("mousemove",this._onMouseMove.bind(this));this._canvas.addEventListener("mousewheel",this._onMouseWheel.bind(this),false);this._canvas.addEventListener("click",this._onClick.bind(this),false);WebInspector.installDragHandle(this._canvas,this._startCanvasDragging.bind(this),this._canvasDragging.bind(this),this._endCanvasDragging.bind(this),"col-resize");this._entryInfo=this._chartContainer.createChild("div","entry-info");this._dataProvider=dataProvider;this._windowLeft=0.0;this._windowRight=1.0;this._windowWidth=1.0;this._barHeight=15;this._minWidth=1;this._paddingLeft=15;this._highlightedEntryIndex=-1;}
+WebInspector.FlameChart.MainPane.prototype={_timelineData:function()
+{return this._dataProvider.timelineData(WebInspector.FlameChart._colorGenerator);},changeWindow:function(windowLeft,windowRight)
+{this._windowLeft=windowLeft;this._windowRight=windowRight;this._windowWidth=this._windowRight-this._windowLeft;this._scheduleUpdate();},_startCanvasDragging:function(event)
+{if(!this._timelineData())
+return false;this._isDragging=true;this._wasDragged=false;this._dragStartPoint=event.pageX;this._dragStartWindowLeft=this._windowLeft;this._dragStartWindowRight=this._windowRight;return true;},_canvasDragging:function(event)
+{var pixelShift=this._dragStartPoint-event.pageX;var windowShift=pixelShift/this._totalPixels;var windowLeft=Math.max(0,this._dragStartWindowLeft+windowShift);if(windowLeft===this._windowLeft)
+return;windowShift=windowLeft-this._dragStartWindowLeft;var windowRight=Math.min(1,this._dragStartWindowRight+windowShift);if(windowRight===this._windowRight)
+return;windowShift=windowRight-this._dragStartWindowRight;this._overviewPane.setWindow(this._dragStartWindowLeft+windowShift,this._dragStartWindowRight+windowShift);this._wasDragged=true;},_endCanvasDragging:function()
+{this._isDragging=false;},_onMouseMove:function(event)
+{if(this._isDragging)
+return;var entryIndex=this._coordinatesToEntryIndex(event.offsetX,event.offsetY);if(this._highlightedEntryIndex===entryIndex)
+return;if(entryIndex===-1||!this._dataProvider.canJumpToEntry(entryIndex))
+this._canvas.style.cursor="default";else
+this._canvas.style.cursor="pointer";this._highlightedEntryIndex=entryIndex;this._scheduleUpdate();},_onClick:function()
+{if(this._wasDragged)
+return;if(this._highlightedEntryIndex===-1)
+return;var data=this._dataProvider.entryData(this._highlightedEntryIndex);this.dispatchEventToListeners(WebInspector.FlameChart.Events.EntrySelected,data);},_onMouseWheel:function(e)
+{if(e.wheelDeltaY){const zoomFactor=1.1;const mouseWheelZoomSpeed=1/120;var zoom=Math.pow(zoomFactor,-e.wheelDeltaY*mouseWheelZoomSpeed);var referencePoint=(this._pixelWindowLeft+e.offsetX-this._paddingLeft)/this._totalPixels;this._overviewPane.zoom(zoom,referencePoint);}else{var shift=Number.constrain(-1*this._windowWidth/4*e.wheelDeltaX/120,-this._windowLeft,1-this._windowRight);this._overviewPane.setWindow(this._windowLeft+shift,this._windowRight+shift);}},_coordinatesToEntryIndex:function(x,y)
+{var timelineData=this._timelineData();if(!timelineData)
+return-1;var cursorTime=(x+this._pixelWindowLeft-this._paddingLeft)*this._pixelToTime;var cursorLevel=Math.floor((this._canvas.height/window.devicePixelRatio-y)/this._barHeight);var entryOffsets=timelineData.entryOffsets;var entryTotalTimes=timelineData.entryTotalTimes;var entryLevels=timelineData.entryLevels;var length=entryOffsets.length;for(var i=0;i<length;++i){if(cursorTime<entryOffsets[i])
+return-1;if(cursorTime<(entryOffsets[i]+entryTotalTimes[i])&&cursorLevel===entryLevels[i])
+return i;}
+return-1;},draw:function(width,height)
+{var timelineData=this._timelineData();if(!timelineData)
+return;var ratio=window.devicePixelRatio;this._canvas.width=width*ratio;this._canvas.height=height*ratio;this._canvas.style.width=width+"px";this._canvas.style.height=height+"px";var context=this._canvas.getContext("2d");context.scale(ratio,ratio);var timeWindowRight=this._timeWindowRight;var timeToPixel=this._timeToPixel;var pixelWindowLeft=this._pixelWindowLeft;var paddingLeft=this._paddingLeft;var minWidth=this._minWidth;var entryTotalTimes=timelineData.entryTotalTimes;var entryOffsets=timelineData.entryOffsets;var entryLevels=timelineData.entryLevels;var colorEntryIndexes=timelineData.colorEntryIndexes;var entryTitles=timelineData.entryTitles;var entryDeoptFlags=timelineData.entryDeoptFlags;var colorGenerator=WebInspector.FlameChart._colorGenerator;var titleIndexes=new Uint32Array(timelineData.entryTotalTimes);var lastTitleIndex=0;var dotsWidth=context.measureText("\u2026").width;var textPaddingLeft=2;this._minTextWidth=context.measureText("\u2026").width+textPaddingLeft;var minTextWidth=this._minTextWidth;var marksField=[];for(var i=0;i<timelineData.maxStackDepth;++i)
+marksField.push(new Uint16Array(width));var barHeight=this._barHeight;var barX=0;var barWidth=0;var barRight=0;var barLevel=0;var bHeight=height-barHeight;context.strokeStyle="black";var colorPair;var entryIndex=0;var entryOffset=0;for(var colorIndex=0;colorIndex<colorEntryIndexes.length;++colorIndex){colorPair=colorGenerator._colorPairForIndex(colorIndex);context.fillStyle=colorPair.normal;var indexes=colorEntryIndexes[colorIndex];if(!indexes)
+continue;context.beginPath();for(var i=0;i<indexes.length;++i){entryIndex=indexes[i];entryOffset=entryOffsets[entryIndex];if(entryOffset>timeWindowRight)
+break;barX=Math.ceil(entryOffset*timeToPixel)-pixelWindowLeft+paddingLeft;if(barX>=width)
+continue;barRight=Math.floor((entryOffset+entryTotalTimes[entryIndex])*timeToPixel)-pixelWindowLeft+paddingLeft;if(barRight<0)
+continue;barWidth=(barRight-barX)||minWidth;barLevel=entryLevels[entryIndex];var marksRow=marksField[barLevel];if(barWidth<=marksRow[barX])
+continue;marksRow[barX]=barWidth;if(entryIndex===this._highlightedEntryIndex){context.fill();context.beginPath();context.fillStyle=colorPair.highlighted;}
+context.rect(barX,bHeight-barLevel*barHeight,barWidth,barHeight);if(entryIndex===this._highlightedEntryIndex){context.fill();context.beginPath();context.fillStyle=colorPair.normal;}
+if(barWidth>minTextWidth)
+titleIndexes[lastTitleIndex++]=entryIndex;}
+context.fill();}
+var font=(barHeight-4)+"px "+window.getComputedStyle(this.element,null).getPropertyValue("font-family");var boldFont="bold "+font;var isBoldFontSelected=false;context.font=font;context.textBaseline="alphabetic";context.fillStyle="#333";this._dotsWidth=context.measureText("\u2026").width;var textBaseHeight=bHeight+barHeight-4;for(var i=0;i<lastTitleIndex;++i){entryIndex=titleIndexes[i];if(isBoldFontSelected){if(!entryDeoptFlags[entryIndex]){context.font=font;isBoldFontSelected=false;}}else{if(entryDeoptFlags[entryIndex]){context.font=boldFont;isBoldFontSelected=true;}}
+entryOffset=entryOffsets[entryIndex];barX=Math.floor(entryOffset*timeToPixel)-pixelWindowLeft+paddingLeft;barRight=Math.ceil((entryOffset+entryTotalTimes[entryIndex])*timeToPixel)-pixelWindowLeft+paddingLeft;barWidth=(barRight-barX)||minWidth;var xText=Math.max(0,barX);var widthText=barWidth-textPaddingLeft+barX-xText;var title=this._prepareText(context,entryTitles[entryIndex],widthText);if(title)
+context.fillText(title,xText+textPaddingLeft,textBaseHeight-entryLevels[entryIndex]*barHeight);}
+this._entryInfo.removeChildren();if(!this._isDragging){var entryInfo=this._dataProvider.prepareHighlightedEntryInfo(this._highlightedEntryIndex);if(entryInfo)
+this._entryInfo.appendChild(this._buildEntryInfo(entryInfo));}},_buildEntryInfo:function(entryInfo)
+{var infoTable=document.createElement("table");infoTable.className="info-table";for(var i=0;i<entryInfo.length;++i){var row=infoTable.createChild("tr");var titleCell=row.createChild("td");titleCell.textContent=entryInfo[i].title;titleCell.className="title";var textCell=row.createChild("td");textCell.textContent=entryInfo[i].text;}
+return infoTable;},_prepareText:function(context,title,maxSize)
+{if(maxSize<this._dotsWidth)
+return null;var titleWidth=context.measureText(title).width;if(maxSize>titleWidth)
+return title;maxSize-=this._dotsWidth;var dotRegExp=/[\.\$]/g;var match=dotRegExp.exec(title);if(!match){var visiblePartSize=maxSize/titleWidth;var newTextLength=Math.floor(title.length*visiblePartSize)+1;var minTextLength=4;if(newTextLength<minTextLength)
+return null;var substring;do{--newTextLength;substring=title.substring(0,newTextLength);}while(context.measureText(substring).width>maxSize);return title.substring(0,newTextLength)+"\u2026";}
+while(match){var substring=title.substring(match.index+1);var width=context.measureText(substring).width;if(maxSize>width)
+return"\u2026"+substring;match=dotRegExp.exec(title);}
+var i=0;do{++i;}while(context.measureText(title.substring(0,i)).width<maxSize);return title.substring(0,i-1)+"\u2026";},_updateBoundaries:function()
+{this._totalTime=this._timelineData().totalTime;this._timeWindowLeft=this._windowLeft*this._totalTime;this._timeWindowRight=this._windowRight*this._totalTime;this._pixelWindowWidth=this._chartContainer.clientWidth-this._paddingLeft;this._totalPixels=Math.floor(this._pixelWindowWidth/this._windowWidth);this._pixelWindowLeft=Math.floor(this._totalPixels*this._windowLeft);this._pixelWindowRight=Math.floor(this._totalPixels*this._windowRight);this._timeToPixel=this._totalPixels/this._totalTime;this._pixelToTime=this._totalTime/this._totalPixels;this._paddingLeftTime=this._paddingLeft/this._timeToPixel;},onResize:function()
+{this._scheduleUpdate();},_scheduleUpdate:function()
+{if(this._updateTimerId)
+return;this._updateTimerId=setTimeout(this.update.bind(this),10);},update:function()
+{this._updateTimerId=0;if(!this._timelineData())
+return;this._updateBoundaries();this.draw(this._chartContainer.clientWidth,this._chartContainer.clientHeight);this._calculator._updateBoundaries(this);this._timelineGrid.element.style.width=this.element.clientWidth;this._timelineGrid.updateDividers(this._calculator);},__proto__:WebInspector.View.prototype}
+WebInspector.PaintProfilerSnapshot=function(snapshotId)
+{this._id=snapshotId;}
+WebInspector.PaintProfilerSnapshot.prototype={dispose:function()
+{LayerTreeAgent.releaseSnapshot(this._id);},requestImage:function(firstStep,lastStep,callback)
+{var wrappedCallback=InspectorBackend.wrapClientCallback(callback,"LayerTreeAgent.replaySnapshot(): ");LayerTreeAgent.replaySnapshot(this._id,firstStep||undefined,lastStep||undefined,wrappedCallback);},profile:function(callback)
+{var wrappedCallback=InspectorBackend.wrapClientCallback(callback,"LayerTreeAgent.profileSnapshot(): ");LayerTreeAgent.profileSnapshot(this._id,5,1,wrappedCallback);}};
\ No newline at end of file
diff --git a/resources/inspector/inspectorCommon.css b/resources/inspector/inspectorCommon.css
index a554b48..75f040a 100644
--- a/resources/inspector/inspectorCommon.css
+++ b/resources/inspector/inspectorCommon.css
@@ -32,14 +32,6 @@
   font-family: 'Segoe UI', Tahoma, sans-serif;
 }
 
-body.dock-to-right:not(.undocked) {
-    border-left: 1px solid rgb(80, 80, 80);
-}
-
-body.dock-to-right.inactive:not(.undocked) {
-    border-left: 1px solid rgb(64%, 64%, 64%);
-}
-
 * {
     box-sizing: border-box;
 }
@@ -100,7 +92,7 @@
     top: 0;
     left: 0;
     right: 0;
-    background-color: rgba(255, 255, 255, 0.8);
+    background-color: rgba(255, 255, 255, 0.85);
     background-clip: padding-box;
     height: 20px;
     z-index: 200;
@@ -108,10 +100,6 @@
     overflow: hidden;
 }
 
-.resize-enabled .resources-dividers-label-bar {
-    cursor: move;
-}
-
 .resources-divider {
     position: absolute;
     width: 1px;
@@ -180,7 +168,7 @@
     opacity: 0.2;
     border-right: 1px solid black;
     border-left: 1px solid black;
-    z-index: 150;
+    z-index: 250;
     pointer-events: none;
 }
 
@@ -197,10 +185,6 @@
     box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
 }
 
-.resize-enabled .overview-grid-window-resizer {
-    cursor: ew-resize;
-}
-
 .overview-grid-window-resizer-right {
     margin-left: -3px;
     margin-right: -2px;
diff --git a/resources/inspector/layersPanel.css b/resources/inspector/layersPanel.css
index 3420420..c558fb8 100644
--- a/resources/inspector/layersPanel.css
+++ b/resources/inspector/layersPanel.css
@@ -143,4 +143,22 @@
     font-weight: bold;
 }
 
+.paint-profiler-view canvas {
+    z-index: 200;
+    opacity: 0.8;
+    background-color: white;
+}
+
+.paint-profiler-view {
+    overflow: hidden;
+}
+
+.paint-profiler-view .overview-grid-dividers-background,
+.paint-profiler-view .overview-grid-window {
+    bottom: 0;
+    height: auto;
+}
+
+.paint-profiler-view .overview-grid-window-resizer {
+    z-index: 2000;
 }
diff --git a/resources/inspector/networkLogView.css b/resources/inspector/networkLogView.css
index c34afbc..da54643 100644
--- a/resources/inspector/networkLogView.css
+++ b/resources/inspector/networkLogView.css
@@ -343,11 +343,16 @@
     top: 0;
     bottom: 0;
     margin: auto -7px;
-    border-width: 6px 7px;
-    height: 0;
+    height: 12px;
     min-width: 14px;
     opacity: 0.65;
-    -webkit-border-image: url(Images/timelinePillGray.png) 7 7 7 7;
+    border-width: 1px;
+    border-style: solid;
+    border-radius: 7px / 6px;
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8);
+
+    border-color: hsl(0, 0%, 65%);
+    background: linear-gradient(0deg, hsl(0, 0%, 73%), hsl(0, 0%, 78%));
 }
 
 .network-graph-bar.waiting,
@@ -359,63 +364,94 @@
 
 
 .resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillGray.png) 7 7 7 7;
+    background: hsl(0, 0%, 90%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(0, 0%, 73%),
+                inset 0 1px 0 2px hsla(0, 0%, 76%, 0.85);
 }
 
 .network-type-document .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillBlue.png) 7 7 7 7;
+    border-color: hsl(215, 49%, 52%);
+    background: linear-gradient(0deg, hsl(215, 72%, 61%), hsl(215, 100%, 69%));
 }
 
 .network-type-document.resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillBlue.png) 7 7 7 7;
+    background: hsl(215, 99%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(215, 71%, 61%),
+                inset 0 1px 0 2px hsla(215, 58%, 65%, 0.85);
 }
 
 .network-type-stylesheet .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillGreen.png) 7 7 7 7;
+    border-color: hsl(99, 34%, 52%);
+    background: linear-gradient(0deg, hsl(100, 50%, 61%), hsl(90, 50%, 64%));
 }
 
 .network-type-stylesheet.resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillGreen.png) 7 7 7 7;
+    background: hsl(99, 100%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(99, 72%, 61%),
+                inset 0 1px 0 2px hsla(99, 59%, 65%, 0.85);
 }
 
 .network-type-image .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillPurple.png) 6 7 6 7;
+    border-color: hsl(272, 31%, 52%);
+    background: linear-gradient(0deg, hsl(272, 46%, 61%), hsl(272, 64%, 69%));
 }
 
 .network-type-image.resource-cached .network-graph-bar {
-    border-image: url(Images/timelineHollowPillPurple.png) 7 7 7 7;
+    background: hsl(272, 65%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(272, 47%, 61%),
+                inset 0 1px 0 2px hsla(273, 38%, 65%, 0.85);
 }
 
 .network-type-font .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillRed.png) 7 7 7 7;
+    border-color: hsl(8, 49%, 52%);
+    background: linear-gradient(0deg, hsl(8, 72%, 61%), hsl(8, 100%, 69%));
 }
 
 .network-type-font.resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillRed.png) 7 7 7 7;
+    background: hsl(8, 100%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(8, 72%, 61%),
+                inset 0 1px 0 2px hsla(8, 59%, 65%, 0.85);
 }
 
 .network-type-script .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillOrange.png) 7 7 7 7;
+    border-color: hsl(31, 49%, 52%);
+    background: linear-gradient(0deg, hsl(31, 72%, 61%), hsl(31, 100%, 69%));
 }
 
 .network-type-script.resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillOrange.png) 7 7 7 7;
+    background: hsl(31, 100%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(31, 78%, 61%),
+                inset 0 1px 0 2px hsla(31, 64%, 65%, 0.85);
 }
 
 .network-type-xhr .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillYellow.png) 7 7 7 7;
+    border-color: hsl(53, 49%, 52%);
+    background: linear-gradient(0deg, hsl(53, 72%, 61%), hsl(53, 100%, 69%));
 }
 
 .network-type-xhr.resource-cached .network-graph-bar {
-    -webkit-border-image: url(Images/timelineHollowPillYellow.png) 7 7 7 7;
+    background: hsl(53, 100%, 86%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(53, 72%, 61%),
+                inset 0 1px 0 2px hsla(54, 59%, 65%, 0.85);
 }
 
 .network-type-websocket .network-graph-bar {
-    -webkit-border-image: url(Images/timelinePillGray.png) 7 7 7 7;
+    border-color: hsl(0, 0%, 65%);
+    background: linear-gradient(0deg, hsl(0, 0%, 73%), hsl(0, 0%, 78%));
 }
 
 .network-type-websocket.resource-cached .network-graph-bar {
-   -webkit-border-image: url(Images/timelineHollowPillGray.png) 7 7 7 7;
+    background: hsl(0, 0%, 90%);
+    box-shadow: inset 0 1px 1px 0px rgba(255, 255, 255, 0.8),
+                inset 0 0 0 2px hsl(0, 0%, 73%),
+                inset 0 1px 0 2px hsla(0, 0%, 76%, 0.85);
 }
 
 .network-dim-cell {
diff --git a/resources/inspector/overrides.css b/resources/inspector/overrides.css
index 3375ed8..f06fffd 100644
--- a/resources/inspector/overrides.css
+++ b/resources/inspector/overrides.css
@@ -42,6 +42,7 @@
 .overrides-view .tabbed-pane-content {
     padding-top: 10px;
     padding-left: 10px;
+    padding-right: 10px;
     overflow-x: hidden;
 }
 
@@ -115,6 +116,10 @@
     padding-top: 3px;
 }
 
+.overrides-viewport {
+    width: 100%;
+}
+
 .overrides-viewport input {
     text-align: right;
 }
@@ -140,6 +145,12 @@
     margin-bottom: 8px;
 }
 
+.overrides-viewport .help-footnote {
+    border-top: 1px solid #EEEEEE;
+    margin: 0;
+    padding: 12px;
+}
+
 .overrides-user-agent input[type=text] {
     width: 400px;
     max-width: 90%;
@@ -205,7 +216,7 @@
 
 .overrides-view .overrides-footer::before {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     width: 10px;
     height: 10px;
     content: "";
diff --git a/resources/inspector/profilesPanel.css b/resources/inspector/profilesPanel.css
index 7ce4bac..731ed63 100644
--- a/resources/inspector/profilesPanel.css
+++ b/resources/inspector/profilesPanel.css
@@ -116,12 +116,13 @@
 
 .profile-warn-marker {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     background-position: -201px -105px;
-    padding-left: 14px;
+    padding-left: 12px;
     width: 10px;
     height: 10px;
     vertical-align: -1px;
+    margin-right: 2px;
 }
 
 .data-grid tr.selected .profile-node-file {
diff --git a/resources/inspector/resourcesPanel.css b/resources/inspector/resourcesPanel.css
index 5ec05ce..0032f26 100644
--- a/resources/inspector/resourcesPanel.css
+++ b/resources/inspector/resourcesPanel.css
@@ -171,7 +171,7 @@
     margin-top: -7px;
     -webkit-user-select: none;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
 }
 
 @media (-webkit-min-device-pixel-ratio: 1.5) {
diff --git a/resources/inspector/sidebarPane.css b/resources/inspector/sidebarPane.css
index 4f666bc..590c12d 100644
--- a/resources/inspector/sidebarPane.css
+++ b/resources/inspector/sidebarPane.css
@@ -90,7 +90,7 @@
 
 .sidebar-pane-title::before {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     float: left;
     width: 11px;
@@ -130,11 +130,10 @@
     pointer-events: auto;
 }
 
-.sidebar-pane-toolbar > .pane-title-button {
+.sidebar-pane-toolbar > .pane-title-button,
+.sidebar-pane-toolbar > label {
     float: right;
-    width: 23px;
     height: 17px;
-    color: transparent;
     background-color: transparent;
     border: none;
     background-repeat: no-repeat;
@@ -144,6 +143,11 @@
     -webkit-appearance: none;
 }
 
+.sidebar-pane-toolbar > .pane-title-button {
+    width: 23px;
+    color: transparent;
+}
+
 .sidebar-pane-toolbar > .pane-title-button:hover {
     background-position: -23px 0;
 }
@@ -165,6 +169,14 @@
     background-image: url(Images/paneRefreshButtons.png);
 }
 
+.sidebar-pane-toolbar > label > input {
+    vertical-align: bottom;
+}
+
+.sidebar-pane-toolbar > label.scripts-callstack-async {
+    margin-right: 5px;
+}
+
 .sidebar-pane-subtitle {
     position: absolute;
     right: 0;
diff --git a/resources/inspector/sourcesPanel.css b/resources/inspector/sourcesPanel.css
index 2540e21..30b3e8d 100644
--- a/resources/inspector/sourcesPanel.css
+++ b/resources/inspector/sourcesPanel.css
@@ -31,11 +31,11 @@
     -webkit-mask-position: -256px 0;
 }
 
-.scripts-pause-on-exceptions-status-bar-item.toggled-all .glyph {
+.scripts-pause-on-exceptions-status-bar-item.toggled-uncaught .glyph {
     background-color: rgb(66, 129, 235);
 }
 
-.scripts-pause-on-exceptions-status-bar-item.toggled-uncaught .glyph {
+.scripts-pause-on-exceptions-status-bar-item.toggled-all .glyph {
     background-color: purple;
 }
 
@@ -175,11 +175,6 @@
     right: 15px;
 }
 
-#scripts-split-view.vbox button.status-bar-item.scripts-debugger-show-hide-button,
-#scripts-split-view.vbox #scripts-debug-sidebar-resizer-widget {
-    display: none;
-}
-
 button.status-bar-item.scripts-debugger-show-hide-button.toggled-left {
     right: 0;
 }
@@ -224,7 +219,7 @@
 }
 
 .tabbed-pane-header-tab-icon {
-    width: 13px;
+    width: 11px;
     height: 10px;
     margin-top: 3px;
     float: left;
@@ -234,6 +229,21 @@
 
 .editor-container-unsaved-committed-changes-icon {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     background-position: -202px -107px;
 }
+
+.sources-status-bar div.resizer-widget {
+    width: 18px;
+    height: 16px;
+    -webkit-transform: rotate(90deg);
+    top: 2px;
+    right: 17px;
+}
+
+.sources-status-bar .scripts-debugger-show-hide-button {
+    margin-top: 1px !important;
+    height: 16px !important;
+    -webkit-transform: rotate(90deg);
+    right: 0 !important;
+}
diff --git a/resources/inspector/sourcesView.css b/resources/inspector/sourcesView.css
index cc0994a..ef1bb35 100644
--- a/resources/inspector/sourcesView.css
+++ b/resources/inspector/sourcesView.css
@@ -30,6 +30,7 @@
 
 #sources-panel-sources-view {
     flex: auto;
+    position: relative;
 }
 
 #sources-editor-container-tabbed-pane {
@@ -41,6 +42,7 @@
 }
 
 #sources-panel-sources-view .sources-status-bar {
+    position: relative;
     flex: 0 0 20px;
     background-color: rgb(236, 236, 236);
     border-top: 1px solid rgb(196,196,196);
@@ -62,3 +64,8 @@
 #sources-panel-sources-view .sources-toggle-pretty-print-status-bar-item.toggled .glyph {
     background-color: rgb(66, 129, 235);
 }
+
+#sources-panel-sources-view .drag-mask {
+    background-color: transparent;
+    z-index: 1000;
+}
diff --git a/resources/inspector/splitView.css b/resources/inspector/splitView.css
index 8a648a4..eef9641 100644
--- a/resources/inspector/splitView.css
+++ b/resources/inspector/splitView.css
@@ -66,7 +66,6 @@
     bottom: 0;
     width: 5px;
     z-index: 1500;
-    cursor: ew-resize;
 }
 
 .split-view.vbox > .split-view-resizer {
@@ -75,7 +74,6 @@
     right: 0;
     height: 5px;
     z-index: 1500;
-    cursor: ns-resize;
 }
 
 .sidebar-overlay {
@@ -97,5 +95,4 @@
     bottom: 0;
     width: 5px;
     z-index: 500;
-    cursor: ew-resize;
 }
diff --git a/resources/inspector/timelinePanel.css b/resources/inspector/timelinePanel.css
index 36483ad..73aa17f 100644
--- a/resources/inspector/timelinePanel.css
+++ b/resources/inspector/timelinePanel.css
@@ -37,26 +37,35 @@
     pointer-events: none;
 }
 
-.timeline .sidebar {
-    overflow-y: hidden;
-    min-height: 100%;
-    bottom: auto !important;
+.timeline-records-title, .timeline-records-list {
+    background-color: rgb(236, 236, 236);
+}
+
+.timeline-records-title {
+    padding: 3px 3px 3px 5px;
+    flex: 0 0 19px;
+    color: rgb(92, 110, 129); text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
+}
+
+.timeline-records-list {
+    flex: auto;
 }
 
 #timeline-overview-sidebar {
-    position: absolute;
-    width: 200px;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    border-right: 1px solid rgb(163, 163, 163);
+    flex: none;
+    padding-right: 10px;
+    border-right: 1px solid rgb(64%, 64%, 64%);
 }
 
 #timeline-overview-grid {
     background-color: rgb(255, 255, 255);
 }
 
-.timeline-frame-overview #timeline-overview-grid {
+.timeline-frames-view .timeline-records-counter {
+    display: none;
+}
+
+.timeline-frames-view #timeline-overview-grid {
     display: none;
 }
 
@@ -64,12 +73,10 @@
     pointer-events: auto;
 }
 
-.timeline-frame-overview .overview-grid-window {
-    height: 80px;
-}
-
-.timeline-frame-overview .overview-grid-dividers-background {
-    height: 80px;
+.timeline-frames-view .overview-grid-window,
+.timeline-frames-view .overview-grid-dividers-background,
+.timeline-frames-view .overview-grid-window-resizer {
+    height: 15px;
 }
 
 #timeline-overview-grid #resources-graphs {
@@ -84,12 +91,22 @@
     border-right: 0 none transparent;
     overflow-y: scroll;
     overflow-x: hidden;
-    position: relative;
+}
+
+.timeline-records-view {
+    overflow: hidden !important;
+}
+
+.timeline-details-split {
     flex: auto;
 }
 
-#timeline-container .split-view-sidebar {
-    z-index: 1;
+.timeline-view {
+    flex: auto;
+}
+
+.timeline-view-stack {
+    flex: auto;
 }
 
 #timeline-container .webkit-html-external-link,
@@ -97,10 +114,6 @@
     color: inherit;
 }
 
-.status-bar-item.timeline-frame-statistics {
-    pointer-events: none;
-}
-
 .timeline-tree-item {
     height: 18px;
     line-height: 15px;
@@ -112,9 +125,20 @@
     overflow: hidden;
 }
 
+.timeline-tree-item.selected {
+    background-color: rgb(56, 121, 217) !important;
+    color: white;
+}
+
+.timeline-tree-item.hovered:not(.selected),
+.timeline-graph-side.hovered {
+    background-color: rgba(0, 0, 0, 0.05) !important;
+}
+
 .timeline-expandable {
     position: absolute;
     border-left: 1px solid rgb(163, 163, 163);
+    pointer-events: none;
 }
 
 .timeline-expandable-left {
@@ -127,9 +151,37 @@
     border-bottom: 1px solid rgb(163, 163, 163);
 }
 
+.timeline-tree-item-expand-arrow {
+    display: inline-block;
+    -webkit-user-select: none;
+    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
+    -webkit-mask-size: 320px 144px;
+    width: 10px;
+    height: 10px;
+    content: "";
+    background-color: rgb(110, 110, 110);
+    position: relative;
+    top: -1px;
+    left: -1px;
+}
+
+@media (-webkit-min-device-pixel-ratio: 1.5) {
+.timeline-tree-item-expand-arrow {
+    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
+}
+} /* media */
+
+.timeline-tree-item-expand-arrow.parent {
+    -webkit-mask-position: -4px -96px;
+}
+
+.timeline-tree-item-expand-arrow.parent.expanded {
+    -webkit-mask-position: -20px -96px;
+}
+
 .timeline-expandable-arrow {
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     opacity: 0.5;
     width: 10px;
     height: 10px;
@@ -153,7 +205,7 @@
 }
 
 .timeline-tree-item .type {
-    padding-left: 14px;
+    padding-left: 5px;
 }
 
 .timeline-tree-item .count {
@@ -161,50 +213,55 @@
 }
 
 .timeline-tree-item .timeline-tree-icon {
-    display: block;
-    margin-top: 4px;
-    margin-left: 2px;
+    position: relative;
+    top: -1px;
+    left: 1px;
     width: 7px;
     height: 7px;
     border-radius: 1px;
     border: solid 1px;
-    position: absolute;
+    display: inline-block;
 }
 
 .timeline-tree-item.background .timeline-tree-icon {
     background: none !important;
 }
 
-.timeline-tree-item.even {
-    background-color: rgba(0, 0, 0, 0.05);
-}
-
-.timeline-tree-item.warning::after,
-.timeline-tree-item.child-warning::after {
+.timeline-tree-item-warning {
+    display: block;
     background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 120px;
+    background-size: 320px 144px;
     width: 10px;
     height: 10px;
     float: right;
-    content: "";
+    background-position: -202px -107px;
     position: relative;
     top: 2px;
-    background-position: -202px -107px;
+}
+
+.timeline-tree-item-child-warning {
+    opacity: 0.6;
 }
 
 @media (-webkit-min-device-pixel-ratio: 1.5) {
-.timeline-tree-item.warning::after,
-.timeline-tree-item.child-warning::after {
+.timeline-tree-item-warning {
     background-image: url(Images/statusbarButtonGlyphs2x.png);
 }
 } /* media */
 
-.timeline-tree-item.child-warning::after {
-    opacity: 0.5;
-}
-
 .timeline-tree-item .data.dimmed {
     color: rgba(0, 0, 0, 0.7);
+    pointer-events: none;
+    padding-left: 4px;
+}
+
+.timeline-tree-item.selected .data.dimmed {
+    color: rgba(255, 255, 255, 0.8);
+    pointer-events: auto;
+}
+
+.timeline-tree-item.selected .timeline-tree-item-expand-arrow {
+    background-color: white;
 }
 
 #timeline-overview-events,
@@ -221,6 +278,17 @@
     top: 25px;
 }
 
+#timeline-overview-pane {
+    flex: auto;
+    position: relative;
+}
+
+#timeline-overview-container {
+    flex: auto;
+    position: relative;
+    height: 80px;
+}
+
 #timeline-overview-container canvas {
     width: 100%;
     height: 100%;
@@ -236,7 +304,7 @@
     left: 0;
     right: 0;
     max-height: 100%;
-    top: 19px;
+    top: 20px;
 }
 
 .timeline-graph-side {
@@ -247,7 +315,10 @@
     margin-top: 0;
     border-top: 1px solid transparent;
     overflow: hidden;
-    pointer-events: none;
+}
+
+.timeline-graph-side.selected {
+    background-color: rgba(56, 121, 217, 0.1) !important;
 }
 
 .timeline-graph-bar-area {
@@ -286,10 +357,6 @@
     border-width: 2px;
 }
 
-.timeline-graph-side.even {
-    background-color: rgba(0, 0, 0, 0.05);
-}
-
 .timeline-aggregated-category {
     display: inline-block;
     height: 11px;
@@ -323,18 +390,8 @@
     background-color: rgba(0, 0, 0, 0.75);
 }
 
-.timeline-frame-overview-status-bar-item.toggled-on .glyph {
-    background-color: rgb(66, 129, 235) !important;
-}
-
-.timeline-frames-stats {
-    pointer-events: auto;
-    text-decoration: underline;
-    cursor: pointer;
-}
-
 #resources-container-content {
-    overflow: visible;
+    overflow: hidden;
     min-height: 100%;
 }
 
@@ -364,24 +421,43 @@
     left: 9px;
 }
 
+#timeline-overview-sidebar .sidebar-tree {
+    height: 100%;
+}
+
 #timeline-overview-sidebar .sidebar-tree-item {
-    line-height: 26px;
-    height: 24px;
-    margin-top: 0;
+    height: auto;
+    flex: auto;
+    margin: 1px 0 1px 0;
     border-top: none;
+    display: flex;
+    align-items: center;
+    border-left: 6px solid transparent;
+    padding-left: 0;
+    color: #666;
+}
+
+#timeline-overview-sidebar .sidebar-tree-item:hover {
+    color: inherit;
+}
+
+#timeline-overview-sidebar .sidebar-tree-item.selected {
+    font-weight: bold;
+    color: inherit;
+    text-shadow: none;
+    background: none;
+    border-left: 6px solid #555;
 }
 
 #timeline-overview-sidebar .sidebar-tree-item .titles.no-subtitle {
-    top: 5px;
+    top: initial;
 }
 
 #timeline-overview-sidebar .icon {
     height: 24px;
-    margin-top: -1px;
-    margin-left: 0;
-    margin-right: 0;
+    margin: 0;
     -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 120px;
+    -webkit-mask-size: 320px 144px;
     background-color: black;
 }
 
@@ -419,43 +495,37 @@
     bottom: 5px;
 }
 
-#timeline-memory-splitter {
-    position: absolute;
-    z-index: 5;
-    left: 0;
-    right: 0;
-    height: 5px;
-    cursor: ns-resize;
-}
-
 #memory-counters-graph {
-    overflow: hidden;
-}
-
-#memory-graphs-container {
-    border-top: 1px solid #AAA;
-    position: relative;
-    flex: 0 0 auto;
+    border-right: 1px solid rgb(196, 196, 196);
 }
 
 #memory-graphs-canvas-container {
-    border-right: 1px solid #AAA;
-}
-
-#memory-graphs-canvas-container.dom-counters .resources-dividers {
-    top: 15px;
-}
-
-#memory-graphs-container .split-view-contents {
     overflow: hidden;
 }
 
+#memory-graphs-canvas-container.dom-counters .resources-dividers,
+#memory-counters-graph {
+    top: 17px;
+}
+
+#memory-graphs-container .split-view-contents-first {
+    background-color: rgb(236, 236, 236);
+    overflow-y: hidden;
+}
+
+#memory-graphs-container .sidebar-tree-section {
+    padding-left: 5px;
+}
+
 .memory-counter-sidebar-info {
-    margin: 10px;
+    margin: 5px;
+    white-space: nowrap;
 }
 
 .memory-counter-sidebar-info .swatch{
     background-image: none;
+    border: 1px solid rgba(0,0,0,0.3);
+    opacity: 0.5;
 }
 
 .memory-counter-sidebar-info.bottom-border-visible {
@@ -472,7 +542,9 @@
 
 #counter-values-bar {
     border-bottom: solid 1px lightgray;
-    min-height: 15px;
+    width: 100%;
+    height: 17px;
+    overflow: hidden;
 }
 
 .timeline .resources-event-divider {
@@ -496,6 +568,10 @@
     border-color: rgba(255, 178, 23, 0.5);
 }
 
+.resources-green-divider {
+    border-color: rgba(0, 130, 0, 0.5);
+}
+
 .resources-divider:last-child {
     border-color: transparent;
 }
@@ -508,18 +584,12 @@
     pointer-events: none;
 }
 
-.sidebar-tree-item .timeline-frame-overview-status-bar-item {
-    position: absolute;
-    right: 10px;
-    top: 4px;
-}
-
 .timeline-frame-container {
     height: 19px;
     overflow: hidden;
     background-color: rgb(220, 220, 220);
-    opacity: 0.6;
-    color: #222;
+    opacity: 0.8;
+    color: black;
     text-align: center;
     padding-top: 3px;
     z-index: 350;
@@ -535,28 +605,43 @@
     pointer-events: none;
 }
 
-.timeline-cpu-bars {
-    position: absolute;
-    top: 0;
+.timeline-utilization-strips {
     height: 19px;
-    z-index: 350;
-    width: 100%;
-    overflow: hidden;
+    padding: 1px 0;
+    justify-content: center;
 }
 
-.timeline-cpu-bars .timeline-graph-bar {
+.timeline-utilization-strip {
+    z-index: 350;
+    overflow: hidden;
+    flex: 0 1 12px;
+    position: relative;
+}
+
+.timeline-utilization-strip .timeline-graph-bar {
     border-color: rgb(192, 192, 192);
     background-color: rgba(0, 0, 0, 0.1);
-    top: 4px;
-    bottom: 4px;
+    margin: 1.5px auto;
     height: auto;
 }
 
+.timeline-utilization-strip.gpu .timeline-graph-bar {
+    background-color: #00a;
+    border: none;
+    opacity: 0.3;
+    min-width: 0;
+}
+
+.timeline-utilization-strip.gpu .timeline-graph-bar.gpu-task-foreign {
+    background-color: #aaa;
+}
+
 .timeline-cpu-curtain-left, .timeline-cpu-curtain-right {
-    background-color: rgba(0, 0, 0, 0.15);
+    background-color: rgba(210, 210, 210, 0.5);
     position: absolute;
     top: 0;
     height: 100%;
+    z-index: 300;
 }
 
 .timeline-cpu-curtain-left {
@@ -602,3 +687,152 @@
     flex: 0 0 23px;
     overflow: hidden;
 }
+
+.timeline-details {
+    -webkit-user-select: text;
+    vertical-align: top;
+}
+
+.timeline-details-title {
+    border-bottom: 1px solid #B8B8B8;
+    font-weight: bold;
+    padding-bottom: 5px;
+    padding-top: 0;
+    white-space: nowrap;
+}
+
+.timeline-details-row-title {
+    font-weight: bold;
+    text-align: right;
+    white-space: nowrap;
+}
+
+.timeline-details-row-data {
+    white-space: nowrap;
+}
+
+.timeline-details-view {
+    color: #333;
+}
+
+.timeline-details-view-title {
+    padding: 2px 5px;
+    flex: 0 0 19px;
+    border-bottom: 1px solid rgb(202, 202, 202);
+    background-color: rgb(236, 236, 236);
+    white-space: nowrap;
+    display: flex;
+    color: rgb(92, 110, 129);
+    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
+}
+
+.timeline-details-view-body {
+    padding-top: 2px;
+    flex: auto;
+    overflow: auto;
+    position: relative;
+}
+
+.timeline-details-view-block {
+    flex: none;
+}
+
+.timeline-details-view-row {
+    padding: 2px 0 2px 6px;
+    white-space: nowrap;
+}
+
+.timeline-details-view-row-title {
+    font-weight: bold;
+    color: rgb(48, 57, 66);
+}
+
+.timeline-details-view-row-value {
+    padding-left: 10px;
+}
+
+.timeline-details-view-row-details {
+    padding-left: 10px;
+}
+
+.timeline-details-view-row-details .image-preview-container {
+    padding: 10px;
+}
+
+.timeline-details-view-row-stack-trace {
+    padding: 4px 0 4px 20px;
+}
+
+.timeline-details-view-row-stack-trace div {
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+.timeline-details-view-row-stack-trace .webkit-html-external-link,
+.timeline-details-view-row-stack-trace .webkit-html-resource-link {
+    color: #333 !important;
+}
+
+.timeline-memory-split {
+    flex: auto;
+}
+
+.timeline-memory-split > .split-view-contents-first {
+    overflow: hidden;
+}
+
+.pie-chart {
+    width: 100px;
+    height: 110px;
+}
+
+.pie-chart-background {
+    position: absolute;
+    width: 100px;
+    height: 100px;
+    border-radius: 50px;
+    background-color: rgb(248, 248, 248);
+    box-shadow: 0 1px 2px;
+}
+
+.pie-chart-foreground {
+    position: absolute;
+    width: 100px;
+    height: 100px;
+    text-align: center;
+    line-height: 100px;
+    z-index: 10;
+}
+
+.pie-chart-slice {
+    position: absolute;
+    width: 100px;
+    height: 100px;
+    border-radius: 50px;
+    clip: rect(0px, 100px, 100px, 50px);
+}
+
+.pie-chart-slice-inner {
+    position: absolute;
+    width: 100px;
+    height: 100px;
+    border-radius: 50px;
+    clip: rect(0px, 50px, 100px, 0px);
+}
+
+.timeline-aggregated-info {
+    flex: none;
+    position: relative;
+    margin: 8px 2px;
+    width: 160px;
+}
+
+.timeline-aggregated-info-legend > div {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+.timeline-aggregated-info .pie-chart {
+    margin-left: 20px;
+}